:root{
  --bg:#07111b;--bg2:#0b1b29;--panel:#0d2131;--line:#1b4058;--text:#eef8ff;--muted:#8ba8bb;--cyan:#3bd7ff;--green:#37e5ad;--red:#ff5a6a;--amber:#ffbd58;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);font-synthesis:none
}
*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%;background:linear-gradient(160deg,#0c2334 0,#07111b 55%,#06101a 100%)}body{min-height:100dvh;overflow-x:hidden}button,input,a{font:inherit}.app-shell{min-height:100dvh;padding:18px clamp(14px,3vw,34px) 96px;max-width:1500px;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px}.topbar h1{margin:0;font-size:clamp(24px,4vw,42px);letter-spacing:-.04em}.topbar small{color:var(--muted)}.status-pill{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:18px;background:rgba(6,18,28,.7);min-width:190px}.status-pill i{width:10px;height:10px;border-radius:50%;background:#536a78}.status-pill i.online{background:var(--green);box-shadow:0 0 14px var(--green)}.status-pill div{min-width:0}.status-pill b,.status-pill small{display:block}.status-pill small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.main{display:grid;gap:16px}.card{background:linear-gradient(180deg,rgba(16,40,58,.92),rgba(8,24,36,.92));border:1px solid var(--line);border-radius:20px}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.hero{min-height:330px;padding:32px;display:grid;align-content:center;justify-items:center;gap:28px}.hero-speed{display:flex;align-items:flex-end;gap:12px}.hero-speed strong{font-size:clamp(86px,12vw,170px);line-height:.78;letter-spacing:-.08em}.hero-speed span{font-size:24px;color:var(--cyan)}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%}.hero-meta span{padding:14px;border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;font-size:12px;letter-spacing:.08em}.hero-meta b{display:block;color:var(--text);font-size:clamp(18px,3vw,28px);margin-top:6px;text-transform:none;letter-spacing:-.03em}.quick{padding:22px}.quick h2,.page-head h2{margin:0 0 8px}.kv{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-top:1px solid rgba(42,83,108,.55)}.kv span{color:var(--muted)}.kv b{text-align:right;max-width:65%;overflow-wrap:anywhere}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}button,.button{border:1px solid #2f8cb4;border-radius:12px;background:#0d83b1;color:white;padding:11px 14px;text-decoration:none;cursor:pointer}button.secondary,.button.secondary{background:transparent;border-color:var(--line);color:var(--text)}button.danger{background:transparent;border-color:#a43e4b;color:#ff9aa5}button:disabled{opacity:.5;cursor:wait}.metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.metric{padding:18px}.metric span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.07em}.metric strong{display:block;margin-top:10px;font-size:clamp(24px,3vw,42px);letter-spacing:-.04em}.metric i{font-style:normal}.metric small{font-size:14px;color:var(--muted)}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.page-head p,.card p{color:var(--muted);margin:.4rem 0}.data-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.info{padding:15px}.notice{padding:14px 16px;border:1px solid #5d512d;background:#1d1b10;border-radius:14px;color:#e3ca7e}.dtc-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.dtc-sections>.card{padding:18px}.dtc-list{display:grid;gap:10px}.dtc{display:grid;gap:4px;padding:12px;background:#071923;border-radius:12px}.dtc b{color:#ffcc6b;font-size:18px}.dtc span{color:#b8cfdd;font-size:13px}.empty{padding:20px;color:var(--muted);text-align:center}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.two-col>.card{padding:20px}label{display:grid;gap:8px;color:var(--muted)}input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#07141f;color:var(--text)}hr{border:0;border-top:1px solid var(--line);margin:20px 0}.compat{display:grid;gap:3px;padding:13px 15px;border:1px solid #735b27;border-radius:14px;background:#231d0b;color:#f5d276}.compat span{font-size:13px}.terminal-card{padding:14px}.terminal{height:min(58dvh,560px);overflow:auto;background:#03090f;border-radius:12px;padding:12px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.terminal>div{display:grid;grid-template-columns:80px 40px 1fr;gap:8px;border-bottom:1px solid #102432;padding:4px 0}.terminal time{color:#607f92}.terminal b{color:#49d8ff}.terminal pre{margin:0;white-space:pre-wrap;color:#d6edf8}.terminal-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chips button{background:transparent;border-color:var(--line);padding:8px 10px}.nav{position:fixed;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(920px,calc(100% - 24px));display:grid;grid-template-columns:repeat(5,1fr);padding:8px;border:1px solid var(--line);border-radius:22px;background:rgba(4,14,22,.94);backdrop-filter:blur(16px);z-index:100}.nav a{color:#7894a7;text-decoration:none;text-align:center;padding:8px 4px;border-radius:14px;font-size:11px}.nav a span{display:block;font-size:20px;margin-bottom:2px}.nav a.active{color:#eafaff;background:#0e2a3a}.nav a.active span{color:var(--cyan)}
@media(max-width:1050px){.metrics,.data-grid{grid-template-columns:repeat(3,1fr)}.hero-grid{grid-template-columns:1fr}.dtc-sections{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}}
@media(max-width:620px){.app-shell{padding:12px 12px 88px}.topbar{align-items:center}.topbar small{display:none}.status-pill{min-width:0;max-width:48vw;padding:8px 10px}.status-pill small{max-width:32vw}.hero{min-height:240px;padding:22px 16px}.hero-speed strong{font-size:96px}.hero-meta{gap:6px}.hero-meta span{padding:10px 6px}.metrics,.data-grid{grid-template-columns:repeat(2,1fr)}.metric{padding:14px}.page-head{display:grid}.page-head .actions{margin-top:0}.nav{bottom:max(6px,env(safe-area-inset-bottom));width:calc(100% - 12px);padding:5px}.nav a{font-size:9px}.nav a span{font-size:17px}.terminal>div{grid-template-columns:58px 34px 1fr}.terminal{height:55dvh}.kv{font-size:13px}}

/* PSA ABS/ESP diagnostic */
.section-title{margin:10px 0 0;font-size:16px;color:#cfe9f6}.case-banner{padding:16px;display:grid;gap:7px;border-color:#66552a;background:linear-gradient(180deg,rgba(54,45,18,.55),rgba(19,23,22,.65))}.case-banner>div{display:grid;gap:3px}.case-banner b{color:#ffe3a0}.case-banner span,.case-banner small{color:#d7c893}.abs-primary{background:#145f7d;border-color:#42cfff}.abs-section{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.abs-summary,.abs-dtc-card{padding:18px}.abs-summary-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.abs-summary-head h3{margin:2px 0 0}.eyebrow{display:block;color:#58dfff;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.abs-state{border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted);font-size:11px}.abs-state.ok{color:#69f1bf;border-color:#2e8b70;background:#09231d}.abs-state.no-response,.abs-state.error{color:#ffacb4;border-color:#7e3941;background:#291015}.abs-state.probing{color:#ffe3a0;border-color:#66552a;background:#211b0a}.wheel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:14px}.wheel-card{min-height:92px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#071923;display:grid;align-content:center;gap:4px}.wheel-card span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.wheel-card strong{font-size:15px}.wheel-card small{color:#6f91a4}.wheel-card.suspect{border-color:#d65b68;background:linear-gradient(180deg,#30131a,#17111a);box-shadow:inset 0 0 25px rgba(255,64,86,.08)}.wheel-card.suspect strong{color:#ff9aa5}.suspect-box{margin-top:14px;padding:14px;border:1px solid #d26931;border-radius:14px;background:#28190d;display:grid;grid-template-columns:1fr auto;gap:4px 12px}.suspect-box b{color:#ffd18c}.suspect-box span{color:#d5ad75;font-size:12px}.suspect-box p{grid-column:1/-1;margin:6px 0 0;color:#ead9c2}.abs-dtc-list{display:grid;gap:9px;margin-top:14px}.abs-dtc{padding:11px;border-radius:12px;background:#071923;border:1px solid #16394d;display:grid;grid-template-columns:1fr minmax(150px,.7fr);gap:12px}.abs-dtc>div{display:grid;gap:3px}.abs-dtc b{color:#ffcc72;font-size:17px}.abs-dtc span,.abs-dtc small{color:#9fbaca;font-size:12px}.abs-dtc strong{color:#d9edf7;font-size:12px}.hardware-note{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;color:#9fbaca}.hardware-note summary{cursor:pointer;color:#d8eef8}.hardware-note p{font-size:12px;line-height:1.5}
@media(max-width:900px){.abs-section{grid-template-columns:1fr}}
@media(max-width:620px){.wheel-grid{grid-template-columns:1fr 1fr}.abs-dtc{grid-template-columns:1fr}.suspect-box{grid-template-columns:1fr}.suspect-box p{grid-column:1}}
