:root{--orange: #ff5b04;--orange-h: #ff7429;--orange-d: #c24703;--cyan: #2fc6de;--cyan-d: #1e93a8;--c950: #07090c;--c900: #0b0f14;--c850: #11161d;--c800: #171e27;--c700: #232c38;--c600: #34404f;--c400: #6b7a8c;--c300: #94a3b3;--c200: #c2ccd6;--c100: #e4e9ee;--c50: #f4f6f8;--ok: #30d158;--warn: #ffb020;--crit: #ff3b30;--bg: var(--c950);--panel: var(--c850);--panel2: var(--c800);--border: var(--c700);--border-soft: var(--c800);--text: var(--c100);--muted: var(--c400);--accent: var(--cyan);--f-display: "Saira", system-ui, sans-serif;--f-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--f-data: "IBM Plex Mono", ui-monospace, Consolas, monospace;--e-needle: cubic-bezier(.22, 1, .36, 1.08);--e-crank: cubic-bezier(.65, 0, .35, 1);--e-idle: cubic-bezier(.4, 0, .2, 1);--d-instant: .12s;--d-fast: .2s;--d-move: .32s;--d-scene: .48s;font-family:var(--f-body)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(ellipse 70% 40% at 50% -10%,var(--c900),transparent),var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}::selection{background:var(--orange);color:var(--c950)}a{color:var(--cyan);text-decoration:none;transition:color var(--d-fast) var(--e-idle)}a:hover{color:var(--c100);text-decoration:underline}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px}.layout{display:flex;min-height:100vh}.sidebar{width:220px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border-soft);padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.wordmark{display:flex;align-items:center;gap:10px;margin:2px 6px 6px}.wordmark-text{font-family:var(--f-display);font-weight:800;font-size:1.15rem;letter-spacing:.02em;color:var(--text);white-space:nowrap}.wordmark-text em{font-style:normal;color:var(--orange)}.obd-mark-anim .obd-needle{transform-origin:44px 62px;animation:needle-settle .9s var(--e-needle) .15s both}@keyframes needle-settle{0%{transform:rotate(-58deg)}to{transform:rotate(18deg)}}.sidebar .tagline{font-family:var(--f-data);font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--c400);margin:0 6px 22px}.sidebar nav{display:flex;flex-direction:column;gap:3px}.sidebar nav a{padding:9px 12px;border-radius:8px;color:var(--c200);font-family:var(--f-display);font-weight:600;font-size:13.5px;letter-spacing:.04em;text-transform:uppercase;border-left:2px solid transparent;transition:background var(--d-fast) var(--e-idle),color var(--d-fast) var(--e-idle),border-color var(--d-fast) var(--e-idle)}.sidebar nav a:hover{background:var(--panel2);color:var(--text);text-decoration:none}.sidebar nav a.active{background:var(--panel2);color:var(--text);border-left-color:var(--orange)}.sidebar .who{margin-top:auto;padding:12px 6px 0;color:var(--muted);font-size:12px;border-top:1px solid var(--border-soft)}.main{flex:1;padding:28px;max-width:1200px}.main>h2,.card>h2{font-family:var(--f-display);font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text)}.card{background:var(--panel);border:1px solid var(--border-soft);border-radius:12px;padding:18px;margin-bottom:16px;transition:border-color var(--d-fast) var(--e-idle)}.card h2{margin:0 0 14px;font-size:14px;letter-spacing:.06em;display:flex;align-items:baseline;gap:10px}.card h2:after{content:"";flex:1;height:1px;background:var(--border-soft);transform-origin:left;order:1}.card h3{margin:0 0 8px;font-size:12px;color:var(--muted);font-family:var(--f-data);letter-spacing:.08em;text-transform:uppercase;font-weight:500}button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 16px;cursor:pointer;font-size:13px;font-family:var(--f-display);font-weight:600;letter-spacing:.04em;text-transform:uppercase;transition:transform var(--d-instant) var(--e-crank),background var(--d-fast) var(--e-idle),border-color var(--d-fast) var(--e-idle),box-shadow var(--d-fast) var(--e-idle),color var(--d-fast) var(--e-idle)}button:hover{border-color:var(--c600);background:var(--c700)}button:active{transform:translateY(1px) scale(.98)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}button.primary{background:var(--orange);border-color:var(--orange);color:var(--c950)}button.primary:hover{background:var(--orange-h);border-color:var(--orange-h);box-shadow:0 4px 16px #ff5b044d;transform:translateY(-1px)}button.primary:active{transform:translateY(1px) scale(.98);box-shadow:none}button.danger{background:transparent;border-color:var(--crit);color:var(--crit)}button.danger:hover{background:#ff3b301f;border-color:var(--crit)}input,select,textarea{background:var(--c900);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 11px;font-size:13px;font-family:var(--f-body);transition:border-color var(--d-fast) var(--e-idle),box-shadow var(--d-fast) var(--e-idle)}input::placeholder,textarea::placeholder{color:var(--c600)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 2px #2fc6de40}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border-soft);font-size:13px}th{color:var(--muted);font-weight:500;font-family:var(--f-data);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}td{color:var(--c200)}tbody tr{transition:background var(--d-fast) var(--e-idle)}tbody tr:hover{background:#171e2799}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-family:var(--f-data);font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;border:1px solid transparent;transition:all var(--d-move) var(--e-needle)}.badge:before{content:"";width:6px;height:6px;border-radius:99px;background:currentColor}.badge.on{background:#30d15814;color:var(--ok);border-color:#30d15859}.badge.on:before{box-shadow:0 0 7px var(--ok)}.badge.off{background:#ff3b3014;color:var(--crit);border-color:#ff3b3059}.badge.warn{background:#ffb02014;color:var(--warn);border-color:#ffb02059}.badge.warn:before{box-shadow:0 0 7px var(--warn)}.badge.info{background:#2fc6de14;color:var(--cyan);border-color:#2fc6de59}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.mono{font-family:var(--f-data);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:12px}.timeline{list-style:none;padding:0;margin:0}.timeline li{padding:10px 0 10px 16px;border-left:2px solid var(--c800);position:relative}.timeline li:before{content:"";position:absolute;left:-6px;top:16px;width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 6px #2fc6de80}.timeline li.FLASH:before,.timeline li.MODIFICATION:before{background:var(--warn);box-shadow:0 0 6px #ffb02080}.timeline li.DTC_FOUND:before{background:var(--crit);box-shadow:0 0 6px #ff3b3080}.timeline li.OTA_UPDATE:before,.timeline li.RESTART:before{background:var(--c400);box-shadow:none}.term{background:var(--c950);border:1px solid var(--border-soft);border-radius:10px;padding:12px;font-family:var(--f-data);font-size:12px;max-height:420px;overflow-y:auto;white-space:pre-wrap;font-variant-numeric:tabular-nums}.term .in{color:var(--cyan)}.term .err{color:var(--crit)}.term .ok{color:var(--ok)}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse 60% 45% at 50% 20%,var(--c900),transparent),var(--bg)}.login-box{width:360px;padding:28px}.login-box .login-mark{display:flex;justify-content:center;margin-bottom:14px}.login-box h2{justify-content:center;font-family:var(--f-display);font-weight:800;font-size:1.4rem;letter-spacing:.02em;text-transform:uppercase;margin:0 0 4px;text-align:center}.login-box h2 em{font-style:normal;color:var(--orange)}.login-box .login-sub{text-align:center;font-family:var(--f-data);font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--c400);margin-bottom:22px}.livegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px}.livecell{background:var(--panel2);border:1px solid var(--border-soft);border-radius:10px;padding:12px 10px;text-align:center;transition:border-color var(--d-fast) var(--e-idle),transform var(--d-move) var(--e-needle)}.livecell:hover{border-color:var(--c600);transform:translateY(-2px)}.livecell .v{font-family:var(--f-data);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;color:var(--cyan)}.livecell .l{font-family:var(--f-data);font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:3px}.device-card{animation:card-rise var(--d-move) var(--e-needle) both}.device-card:nth-child(2){animation-delay:60ms}.device-card:nth-child(3){animation-delay:.12s}.device-card:nth-child(n+4){animation-delay:.18s}@keyframes card-rise{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}.error{color:var(--crit);font-size:13px}.okmsg{color:var(--ok);font-size:13px}.anchornav{position:sticky;top:0;z-index:10;display:flex;gap:6px;flex-wrap:wrap;padding:10px 0;margin-bottom:4px;background:linear-gradient(var(--bg) 82%,transparent)}.anchornav a{font-family:var(--f-display);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--c300);padding:5px 12px;border-radius:999px;border:1px solid var(--c800);background:var(--c900);transition:all var(--d-fast) var(--e-idle)}.anchornav a:hover{color:var(--text);border-color:var(--c600);text-decoration:none}.anchornav a.hot{color:var(--orange);border-color:#ff5b0466}[id]{scroll-margin-top:64px}.statstrip{display:flex;gap:22px;flex-wrap:wrap;padding:12px 16px;margin-bottom:14px;background:var(--panel);border:1px solid var(--border-soft);border-radius:12px}.statstrip .stat{display:flex;flex-direction:column;gap:1px}.statstrip .stat b{font-family:var(--f-data);font-size:19px;font-variant-numeric:tabular-nums;color:var(--cyan)}.statstrip .stat.hot b{color:var(--orange)}.statstrip .stat span{font-family:var(--f-data);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--c400)}.connbanner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;margin-bottom:14px;border-radius:10px;font-size:13px;border:1px solid var(--border-soft);background:var(--panel2)}.connbanner.ok{border-color:#30d15859}.connbanner.down{border-color:#ffb02059}.quickchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.quickchips button{font-family:var(--f-data);font-size:11px;font-weight:500;letter-spacing:.03em;text-transform:none;padding:4px 10px;border-radius:999px;background:var(--c900);border-color:var(--c800);color:var(--c200)}.quickchips button:hover{border-color:var(--cyan);color:var(--cyan);background:var(--c900)}.quickchips .chip-label{font-family:var(--f-data);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--c400);align-self:center}details.joblog summary{cursor:pointer;color:var(--cyan);font-size:12px;-webkit-user-select:none;user-select:none}details.joblog pre{margin:8px 0 0;padding:10px;background:var(--c950);border:1px solid var(--border-soft);border-radius:8px;font-family:var(--f-data);font-size:11.5px;white-space:pre-wrap;color:var(--c200);max-height:260px;overflow:auto}.pairflash{animation:pair-pop 1.6s var(--e-needle) both}@keyframes pair-pop{0%{background:#ff5b0440}to{background:transparent}}@media (prefers-reduced-motion: reduce){.pairflash{animation:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
