:root{
  --bg:#f5f7fb;
  --card:#ffffff;
  --text:#1d2939;
  --muted:#667085;
  --line:#e4e7ec;
  --primary:#1456d8;
  --primary-dark:#0f46b2;
  --danger:#b42318;
  --success:#027a48;
  --warning:#b54708;
  --shadow:0 10px 30px rgba(16,24,40,.06);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
body.auth-body{display:grid;place-items:center;min-height:100vh;padding:20px}
.auth-card{width:min(520px,100%);background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:28px}
.auth-card h1{margin:0 0 10px;font-size:30px}
.auth-card p{color:var(--muted)}
.layout{display:grid;grid-template-columns:280px 1fr;min-height:100vh}
.sidebar{background:#101828;color:#eaecf0;padding:26px 20px;position:sticky;top:0;height:100vh}
.brand{font-weight:800;font-size:22px;line-height:1.1;margin-bottom:26px}
.brand small{display:block;color:#98a2b3;font-weight:600;font-size:12px;margin-top:6px}
.nav a{display:block;color:#d0d5dd;padding:12px 14px;border-radius:12px;margin:4px 0;font-weight:600}
.nav a.active,.nav a:hover{background:#1d2939;color:#fff;text-decoration:none}
.sidebar .bottom{position:absolute;left:20px;right:20px;bottom:24px;color:#98a2b3;font-size:13px}
.main{padding:30px}
.header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}
.header h1{margin:0;font-size:32px}
.header p{margin:6px 0 0;color:var(--muted)}
.toolbar{display:flex;gap:12px;flex-wrap:wrap}
.btn,.btn-secondary,.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 16px;font-weight:700;cursor:pointer;text-decoration:none}
.btn{background:var(--primary);color:#fff}
.btn:hover{background:var(--primary-dark);text-decoration:none}
.btn-secondary{background:#fff;border:1px solid var(--line);color:var(--text)}
.btn-secondary:hover{text-decoration:none;background:#f8fafc}
.btn-danger{background:#fff;border:1px solid #fecdca;color:var(--danger)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}
.stat .label{color:var(--muted);font-size:14px;margin-bottom:10px}
.stat .value{font-size:34px;font-weight:800}
.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
table{width:100%;border-collapse:collapse}
th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:#f8fafc;font-size:13px;color:#475467;text-transform:uppercase;letter-spacing:.04em}
tr:last-child td{border-bottom:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.form-grid .full{grid-column:1/-1}
label{display:block;font-size:14px;font-weight:700;margin-bottom:7px}
input,textarea,select{width:100%;padding:12px 14px;border:1px solid #d0d5dd;border-radius:12px;font:inherit;background:#fff;color:var(--text)}
textarea{min-height:120px;resize:vertical}
.helper{font-size:13px;color:var(--muted);margin-top:6px}
.badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700}
.badge.green{background:#ecfdf3;color:var(--success)}
.badge.orange{background:#fff6ed;color:var(--warning)}
.badge.red{background:#fef3f2;color:var(--danger)}
.badge.gray{background:#f2f4f7;color:#475467}
.flash{padding:14px 16px;border-radius:14px;margin-bottom:18px;font-weight:600}
.flash.success{background:#ecfdf3;color:var(--success);border:1px solid #abefc6}
.flash.error{background:#fef3f2;color:var(--danger);border:1px solid #fecdca}
.kicker{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#475467;margin-bottom:8px}
.split{display:grid;grid-template-columns:2fr 1fr;gap:18px}
.list-stack{display:grid;gap:14px}
.item{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff}
.item h3,.item h4{margin:0 0 10px}
.meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.ticket-thread{display:grid;gap:14px}
.msg{padding:14px 16px;border-radius:16px;max-width:84%}
.msg.admin{background:#eef4ff;border:1px solid #c7d7fe;margin-left:auto}
.msg.customer{background:#f8fafc;border:1px solid var(--line)}
.msg .who{font-weight:800;margin-bottom:6px}
.portal-shell{max-width:1200px;margin:0 auto;padding:28px}
.portal-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px}
.portal-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.muted{color:var(--muted)}
.empty{padding:28px;text-align:center;color:var(--muted)}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;background:#f8fafc;border:1px solid var(--line);padding:3px 8px;border-radius:8px}
.footer-note{margin-top:18px;color:var(--muted);font-size:13px}
@media (max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.portal-grid{grid-template-columns:1fr}.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar .bottom{position:static;margin-top:20px}}
@media (max-width:720px){.main,.portal-shell{padding:18px}.cards,.form-grid{grid-template-columns:1fr}.header{flex-direction:column}}
