:root,:root[data-theme=light]{--bg:#f8fafc;--border:#dbe3ea;--muted:#64748b;--soft:#e2e8f0;--surface:#fff;--text:#0f172a;--button-bg:#0f172a;--button-text:#fff;--button-disabled-bg:#cbd5e1;--button-disabled-text:#64748b;--danger-bg:#fee2e2;--danger-text:#991b1b;--success-bg:#dcfce7;--success-border:#86efac;--success-text:#166534;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=dark]{--bg:#020617;--border:#1e293b;--muted:#94a3b8;--soft:#1e293b;--surface:#0f172a;--text:#f8fafc;--button-bg:#38bdf8;--button-text:#082f49;--button-disabled-bg:#1e293b;--button-disabled-text:#64748b;--danger-bg:#450a0a;--danger-text:#fecaca;--success-bg:#052e16;--success-border:#166534;--success-text:#bbf7d0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#020617;--border:#1e293b;--muted:#94a3b8;--soft:#1e293b;--surface:#0f172a;--text:#f8fafc;--button-bg:#38bdf8;--button-text:#082f49;--button-disabled-bg:#1e293b;--button-disabled-text:#64748b;--danger-bg:#450a0a;--danger-text:#fecaca;--success-bg:#052e16;--success-border:#166534;--success-text:#bbf7d0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{min-width:320px;margin:0;overflow-x:hidden}h1,h2,p{margin:0}h1{color:var(--text);font-size:clamp(28px,5vw,44px);line-height:1}h2{color:var(--text);font-size:22px;line-height:1.2}button,select,input{min-height:44px}.shell{overflow-wrap:anywhere;width:min(1120px,100% - 32px);margin:0 auto;padding:24px 0 40px}.topbar,.disclaimer-banner,.hero,.panel,.metrics{margin-bottom:16px}.topbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.theme-switch{color:var(--muted);align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.install-button{min-width:112px}.theme-switch select{background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:6px;min-width:112px;padding:7px 10px}.eyebrow{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:14px;font-weight:700}.status{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:8px 12px;font-size:14px;font-weight:700}.status.online{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}.disclaimer-banner{color:#78350f;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:12px 14px;display:flex}.disclaimer-banner strong{color:#713f12}.hero{color:#e2e8f0;background:linear-gradient(135deg,#0f172a,#164e63);border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:24px;min-height:260px;padding:32px;display:grid;overflow:hidden}.hero h2{color:#fff;max-width:720px;margin-bottom:18px;font-size:clamp(32px,7vw,76px);line-height:.95}.hero p{color:#cbd5e1;max-width:640px}.gauge{aspect-ratio:1;background:radial-gradient(circle at center, #0f172a 0 45%, transparent 46%), conic-gradient(#38bdf8 0 65%, #334155 65% 100%);border-radius:50%;justify-content:center;align-items:center;width:min(240px,28vw);display:flex}.gauge span{color:#fff;font-size:36px;font-weight:800}.panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px}.controls{flex-wrap:wrap;gap:10px;display:flex}.port-control,.baud-control{color:var(--muted);align-items:center;gap:8px;font-size:14px;font-weight:700;display:inline-flex}.port-control select,.baud-control select,.vehicle-form input{background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:6px;padding:7px 10px}.port-control select{min-width:min(280px,70vw)}button{background:var(--button-bg);border:1px solid var(--button-bg);color:var(--button-text);cursor:pointer;font:inherit;text-align:center;border-radius:6px;padding:11px 14px;font-weight:700}button:disabled{background:var(--button-disabled-bg);border-color:var(--button-disabled-bg);color:var(--button-disabled-text);cursor:not-allowed}button:focus-visible{outline-offset:2px;outline:3px solid #38bdf8}.message{color:var(--muted);margin:0 0 16px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:18px}.metric span,.metric small{color:var(--muted);display:block}.metric strong{color:var(--text);margin:16px 0 6px;font-size:clamp(34px,7vw,42px);line-height:1;display:block}.dtc-panel{grid-template-columns:1fr 1fr;gap:20px;display:grid}.codes{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:0;padding:0;list-style:none;display:flex}.codes li,.empty{background:var(--danger-bg);color:var(--danger-text);border-radius:6px;padding:8px 10px;font-weight:800}.codes li{gap:2px;display:grid}.codes span{font-size:14px;font-weight:500}.empty{background:var(--soft);color:var(--muted);text-align:center;margin:0}.package-note p,.sessions-panel p,.session-save-panel p,.session-review p{color:var(--muted)}.session-save-panel{gap:18px;display:grid}.vehicle-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.vehicle-form label{color:var(--muted);gap:6px;font-size:14px;font-weight:700;display:grid}.vehicle-form input{width:100%}.pending-session{background:var(--soft);border-radius:6px;gap:4px;padding:12px;display:grid}.pending-session span{color:var(--muted);font-size:14px}.session-actions,.review-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.sessions-panel{grid-template-columns:minmax(220px,.7fr) 1fr;gap:20px;display:grid}.sessions{gap:10px;margin:0;padding:0;list-style:none;display:grid}.sessions li{background:var(--soft);border-radius:6px;overflow:hidden}.sessions strong,.sessions span{display:block}.sessions span{color:var(--muted);font-size:14px}.session-link{color:var(--text);text-align:left;background:0 0;border:0;width:100%;padding:12px;display:block}.session-link span{color:var(--muted)}.session-review,.report{gap:18px;display:grid}.report dl{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;display:grid}.report dt{color:var(--muted);font-size:13px;font-weight:700}.report dd{margin:0}.report h3{margin:0;font-size:18px}.report-codes{gap:8px;margin:0;padding:0;list-style:none;display:grid}.report-codes li{border:1px solid var(--border);border-radius:6px;gap:2px;padding:10px;display:grid}.report-codes span{color:var(--muted)}@media (width<=760px){.shell{width:min(100% - 20px,1120px);padding:12px 0 28px}.topbar,.hero{align-items:flex-start}.topbar{flex-direction:column;gap:12px}.topbar-actions{justify-content:flex-start;width:100%}.theme-switch{flex:160px}.theme-switch select{flex:1;width:100%}.status{text-align:center}.hero{grid-template-columns:1fr;min-height:auto;padding:24px}.hero h2{font-size:clamp(34px,10vw,48px)}.gauge{width:170px}.controls{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.port-control,.baud-control{flex-direction:column;align-items:flex-start}.port-control select,.baud-control select{width:100%}.port-control,.controls button:first-child,.controls button:last-child{grid-column:1/-1}.metrics,.dtc-panel,.sessions-panel,.vehicle-form,.report dl{grid-template-columns:1fr}.codes{justify-content:flex-start}}@media (width<=430px){.shell{width:min(100% - 16px,1120px)}.topbar-actions,.controls{grid-template-columns:1fr;display:grid}.hero{gap:18px;padding:20px}.hero h2{font-size:32px;line-height:1}.hero p,.message,.package-note p,.sessions-panel p,.session-save-panel p,.session-review p{font-size:15px}.gauge{justify-self:center;width:min(150px,60vw)}.panel,.metric{padding:16px}.metric{grid-template-columns:1fr auto;align-items:end;gap:4px 12px;display:grid}.metric strong{grid-column:1/-1;margin:10px 0 0}.codes li,.empty{width:100%}}@media print{body{background:#fff}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{box-shadow:none;border:0;width:100%;padding:0;position:absolute;top:0;left:0}.review-header button,.review-header p{display:none}}
