:root{
  --aqua:#78c9cc;
  --aqua-deep:#277f86;
  --ink:#101315;
  --muted:#667174;
  --paper:#ffffff;
  --cream:#f7f4ef;
  --line:#e2d9ce;
  --surface:#fbfaf7;
  --warning:#91640e;
  --danger:#b94135;
  --success:#237b58;
  --shadow:0 18px 60px rgba(16,19,21,.09);
}
html[data-theme="dark"]{
  --ink:#f5f8f8;
  --muted:#a9b4b8;
  --paper:#151d24;
  --cream:#0b1117;
  --line:#2b3944;
  --surface:#111922;
  --aqua-deep:#8fdadd;
  --warning:#f0c56c;
  --danger:#ff8f82;
  --success:#82d4a8;
  --shadow:0 18px 60px rgba(0,0,0,.34);
}
*{box-sizing:border-box}
html{max-width:100%;overflow-x:clip}
body{margin:0;width:100%;max-width:100%;overflow-x:clip;background:var(--cream);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.4}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.command-shell{width:min(1240px,100%);margin:0 auto;padding:22px;display:grid;gap:16px}
.client-login{width:min(460px,calc(100% - 10px));margin:7vh auto;display:grid;gap:14px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:var(--shadow);padding:28px}
.client-login img{width:190px;margin-bottom:10px}
.client-login p{margin-bottom:8px}
.status-line{min-height:22px;color:var(--muted);font-weight:800}
.status-line[data-tone="error"]{color:var(--danger)}
.status-line[data-tone="success"]{color:var(--success)}
.client-portal{display:grid;gap:16px}
.command-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow);padding:14px}
.brand img{width:172px;max-width:42vw}
.client-meta{display:grid;gap:2px;min-width:0}
.client-meta span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.client-meta strong{font-size:22px;letter-spacing:-.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.theme-toggle,.command-tabs button,.btn{border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font-weight:900;padding:11px 14px}
.theme-toggle{color:var(--aqua-deep)}
.portal-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.command-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:6px;border:1px solid var(--line);border-radius:16px;background:var(--paper);position:sticky;top:8px;z-index:10}
.command-tabs button{border:0;background:transparent;color:var(--muted);min-height:44px}
.command-tabs button.active{background:var(--ink);color:var(--cream)}
.view{display:none}
.view.open{display:grid;gap:16px}
.hero-card,.panel,.ticket-form{border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow);padding:20px}
.hero-card{display:grid;gap:18px}
.eyebrow{margin:0;color:var(--aqua-deep);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}
h1,h2,h3,p{margin:0}
h1{font-size:clamp(36px,5vw,68px);line-height:.95;letter-spacing:-.06em}
h2{font-size:28px;letter-spacing:-.04em}
h3{font-size:19px;letter-spacing:-.025em}
p{color:var(--muted)}
.xp-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px}
.xp-percent{font-size:clamp(42px,8vw,86px);font-weight:900;letter-spacing:-.08em;color:var(--aqua-deep);line-height:.85}
.xp-track{height:22px;border-radius:999px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.xp-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--aqua),var(--aqua-deep));width:0;transition:width .6s ease}
.milestones{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.milestone{display:grid;gap:7px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:10px;min-width:0}
.milestone span{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:50%;background:var(--paper);border:1px solid var(--line);font-size:12px;font-weight:900;color:var(--muted)}
.milestone strong{font-size:12px;line-height:1.25}
.milestone.completed{border-color:color-mix(in srgb,var(--success) 45%,var(--line));background:color-mix(in srgb,var(--success) 9%,var(--paper))}
.milestone.current{border-color:var(--aqua);box-shadow:0 0 0 3px rgba(120,201,204,.18);background:color-mix(in srgb,var(--aqua) 12%,var(--paper))}
.milestone.completed span,.milestone.current span{background:var(--aqua);color:#0b1117;border-color:var(--aqua)}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.wide{grid-column:span 2}
.panel{display:grid;gap:12px;align-content:start}
.list{display:grid;gap:8px}
.list li{margin-left:20px;color:var(--muted);line-height:1.5}
.stat-grid,.resource-grid,.ticket-grid,.log-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.stat,.resource-card,.ticket-card,.log-card{display:grid;gap:9px;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:14px;min-width:0}
.stat span,.resource-card span,.ticket-card span,.log-card span{color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.stat strong,.resource-card strong,.ticket-card strong,.log-card strong{overflow-wrap:anywhere}
.resource-link{display:inline-flex;width:max-content;max-width:100%;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--aqua-deep);padding:9px 11px;font-size:12px;font-weight:900;text-decoration:none}
.progress-mini{height:9px;border-radius:999px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}
.progress-mini b{display:block;height:100%;border-radius:999px;background:var(--aqua)}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters button{border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);font-weight:900;padding:9px 12px}
.filters button.active{background:var(--ink);color:var(--cream)}
.badge{display:inline-flex;width:max-content;border-radius:999px;padding:6px 9px;background:color-mix(in srgb,var(--aqua) 15%,var(--paper));color:var(--aqua-deep);font-size:11px;font-weight:900}
.badge.urgent{background:color-mix(in srgb,var(--danger) 14%,var(--paper));color:var(--danger)}
.support-form{display:grid;gap:12px}
label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}
input,select,textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:12px;outline:none}
textarea{resize:vertical;min-height:120px}
input:focus,select:focus,textarea:focus{border-color:var(--aqua);box-shadow:0 0 0 4px rgba(120,201,204,.16)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.btn.primary{background:var(--aqua);border-color:var(--aqua);color:#0b1117}
.empty-state{border:1px dashed var(--line);border-radius:14px;padding:18px;color:var(--muted);background:var(--surface);font-weight:800}
@media (max-width:980px){
  .dashboard-grid,.stat-grid,.resource-grid,.ticket-grid,.log-grid{grid-template-columns:1fr 1fr}
  .wide{grid-column:span 1}
  .milestones{grid-template-columns:1fr}
  .milestone{grid-template-columns:auto 1fr;align-items:center}
}
@media (max-width:640px){
  .command-shell{padding:14px;gap:12px}
  .command-header{grid-template-columns:1fr auto;gap:10px}
  .brand{grid-column:1/-1}
  .brand img{width:150px;max-width:70vw}
  .client-meta strong{font-size:19px}
  .theme-toggle{width:100%}
  .portal-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%}
  .command-tabs{grid-template-columns:1fr 1fr;position:static}
  .hero-card,.panel,.ticket-form{padding:16px;border-radius:16px}
  .xp-head{grid-template-columns:1fr}
  .dashboard-grid,.stat-grid,.resource-grid,.ticket-grid,.log-grid,.form-row{grid-template-columns:1fr}
  h1{font-size:36px}
  h2{font-size:24px}
}
