:root{--bg:#0e1116;--panel:#161b22;--line:#262d36;--text:#e6edf3;--muted:#8b949e;--accent:#2f81f7;--warn:#d29922;--good:#3fb950;--brand:#f4140a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent)}a.plain{color:inherit;text-decoration:none}.shell{min-height:100vh;display:flex}.content{flex:1;min-width:0}.sidebar{background:var(--panel);border-inline-end:1px solid var(--line);flex-direction:column;flex-shrink:0;width:232px;height:100vh;display:flex;position:sticky;top:0}.sidebar .brand{border-bottom:1px solid var(--line);padding:20px 18px 16px}.sidebar .wordmark{letter-spacing:.02em;color:var(--text);font-size:17px;font-weight:200;display:block}.sidebar .wordmark strong{color:var(--brand);letter-spacing:0;font-weight:800}.sidebar .role{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:9px;font-size:11px;display:inline-block}.sidebar nav{flex-direction:column;flex:1;padding:14px 10px;display:flex;overflow-y:auto}.sidebar nav .nav-group{flex-direction:column;gap:2px;display:flex}.sidebar nav .nav-group+.nav-group{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.sidebar .nav-group-label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:0 12px 7px;font-size:11px}.sidebar nav a{color:var(--muted);border-radius:6px;padding:8px 12px;text-decoration:none;display:block}.sidebar nav a:hover{color:var(--text);background:#1a2029}.sidebar nav a.active{color:var(--text);background:#1d2530;font-weight:600}.sidebar .foot{border-top:1px solid var(--line);gap:10px;padding:14px 14px 18px;display:grid}.sidebar .lang{gap:5px;display:grid}.sidebar .lang label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.sidebar .lang select{width:100%;padding:7px 9px}.sidebar .who{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}button.block{width:100%}.centered{place-items:center;min-height:100vh;padding:24px;display:grid}.centered main{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:100%;max-width:380px;padding:28px 26px 24px}.centered .wordmark{letter-spacing:.02em;color:var(--text);margin-bottom:18px;font-size:18px;font-weight:200;display:block}.centered .wordmark strong{color:var(--brand);letter-spacing:0;font-weight:800}.centered form.card{max-width:none}.centered .alt{color:var(--muted);margin:16px 0 0;font-size:13px}main{max-width:1100px;margin:0 auto;padding:28px 20px 64px}.topbar{z-index:30;-webkit-backdrop-filter:saturate(140%)blur(8px);backdrop-filter:saturate(140%)blur(8px);border-bottom:1px solid var(--line);background:#0e1116d1;align-items:center;gap:10px;height:56px;padding:0 16px;display:flex;position:sticky;top:0}.topbar-gap{flex:1}.topbar-brand{align-items:center;display:flex}.icon-btn{border:1px solid var(--line);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:#1a2029}.usermenu{position:relative}.avatar{border:1px solid var(--line);width:34px;height:34px;color:var(--text);cursor:pointer;background:#1d2530;border-radius:50%;padding:0;font-size:13px;font-weight:700}.avatar:hover{border-color:#3a4552}.usermenu-pop{inset-inline-end:0;z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:10px;gap:8px;min-width:232px;padding:12px;display:grid;position:absolute;top:calc(100% + 8px);box-shadow:0 12px 28px #00000073}.usermenu-pop .k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}.usermenu-pop .role{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border:1px solid var(--line);border-radius:99px;justify-self:start;padding:1px 8px;font-size:11px}td .strong{font-weight:600}.sub-inline{color:var(--muted)}.roleset{flex-wrap:wrap;gap:4px;display:inline-flex}.cars{gap:10px;display:grid}.car-head{justify-content:space-between;align-items:start;gap:14px;display:flex}.car-name{font-size:15px;font-weight:600}.car-notes{margin:8px 0 0;font-size:13px}.car-counts{flex-wrap:wrap;gap:22px;margin-top:12px;display:flex}.count{color:inherit;gap:1px;text-decoration:none;display:grid}.count .v{font-variant-numeric:tabular-nums;font-size:19px}.count .v.small{padding-top:4px;font-size:14px}.count .k{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px}a.count:hover .v{color:var(--brand)}.car-head button.link{color:var(--muted);text-decoration:none}.car-head button.link:hover{color:#f85149;text-decoration:underline}.reads{gap:8px;display:grid}.read-head{width:100%;color:var(--text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:10px;padding:0;display:flex}.read-head .when{font-variant-numeric:tabular-nums;font-size:14px}.read-head .grow{flex:1}.read-head .chev{color:var(--muted);font-size:12px}.read-body{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.read-body .dtc-row{cursor:default}.read-body .dtc-row:hover{background:0 0}.read-body .dtc-row .meta{text-align:end;white-space:nowrap;font-size:12px}@media (max-width:640px){.read-body .dtc-row{flex-wrap:wrap}.read-body .dtc-row .meta{white-space:normal;text-align:start}}.read-body .gone{margin:10px 0 0;font-size:12px}.viewswitch{gap:4px;margin-top:4px;display:grid}.viewswitch form{display:block}.viewopt{text-align:start;width:100%;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:7px 10px;font-weight:400}.viewopt:hover{color:var(--text);background:#1a2029}.viewopt.on{border-color:var(--line);color:var(--text);background:#1d2530;font-weight:600}.usermenu-pop .who{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.scrim,.narrow-only{display:none}@media (max-width:900px){.narrow-only{display:flex}.sidebar{z-index:50;width:264px;height:100dvh;transition:transform .18s ease-out;position:fixed;inset-block:0;inset-inline-start:0;transform:translate(-100%)}.shell.nav-open .sidebar{transform:translate(0)}.scrim{z-index:45;opacity:0;pointer-events:none;background:#00000080;border:0;padding:0;transition:opacity .18s ease-out;display:block;position:fixed;inset:0}.shell.nav-open .scrim{opacity:1;pointer-events:auto}main{padding:20px 14px 56px}.topbar{padding:0 12px}}@media (prefers-reduced-motion:reduce){.sidebar,.scrim{transition:none}}h1{margin:0 0 4px;font-size:20px}h2{color:var(--muted);margin:28px 0 10px;font-size:15px;font-weight:600}p.sub{color:var(--muted);margin:0 0 24px}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:10px 12px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom-color:#313a46;padding-bottom:8px;font-size:12px;font-weight:600}tbody tr:hover{background:#1a2029}td.num,th.num{text-align:right}td a{color:var(--text);font-weight:600;text-decoration:none}td a:hover{color:var(--brand);text-decoration:underline}td .sub{color:var(--muted);margin-top:2px;font-size:12px;font-weight:400;display:block}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}form.card{gap:10px;max-width:340px;display:grid}.hint{color:var(--muted);margin:-4px 0 0;font-size:12px}label.field{gap:5px;display:grid}label.field span{color:var(--muted);font-size:12px}input,button,select{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:6px;padding:9px 11px}button{background:var(--accent);border-color:var(--accent);cursor:pointer;font-weight:600}button.ghost{background:var(--panel);border-color:var(--line);color:var(--text);font-weight:400}.err{color:#f85149}.ok{color:var(--good)}.pill{border:1px solid var(--line);color:var(--muted);border-radius:99px;padding:1px 7px;font-size:12px}.pill.live{color:var(--good);border-color:#23502f}.pill.stalled,.pill.lab{color:var(--warn);border-color:#4a3b12}.cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:8px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px}.card .k{color:var(--muted);font-size:12px}.card .v{font-variant-numeric:tabular-nums;font-size:18px}.bits{gap:2px;display:inline-flex}.bits i{background:#21262d;border-radius:1px;width:6px;height:12px;display:block}.bits i.on{background:var(--accent)}.empty{color:var(--muted);padding:24px 0}.gauges{flex-wrap:wrap;gap:18px;margin:4px 0 8px;display:flex}.gauge{text-align:center}.gauge .track{fill:none;stroke:#21262d;stroke-width:9px;stroke-linecap:round}.gauge .redline{fill:none;stroke:var(--crit,#f85149);stroke-width:9px;stroke-linecap:round;opacity:.8}.gauge .filled{fill:none;stroke:var(--accent);stroke-width:9px;stroke-linecap:round}.gauge .tick{stroke:var(--muted);stroke-width:1.5px;opacity:.55}.gauge .needle{stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.gauge .hub{fill:var(--text)}.gauge .reading{font-variant-numeric:tabular-nums;margin-top:-46px}.gauge .reading .value{font-size:26px;font-weight:700}.gauge .reading .unit{color:var(--muted);margin-inline-start:4px;font-size:11px}.gauge .name{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:26px;font-size:11px}.telltales{flex-wrap:wrap;gap:6px;display:flex}.lamp{background:var(--panel);border:1px solid var(--line);color:var(--faint,#44515f);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;display:flex}.lamp .glyph{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.lamp .name{letter-spacing:.06em;text-transform:uppercase;font-size:10px}.lamp.lit.good{color:var(--good);background:#3fb9501a;border-color:#23502f}.lamp.lit.warn{color:var(--warn);background:#d299221a;border-color:#4a3b12}.lamp.lit.crit{color:#f85149;background:#f851491a;border-color:#5a2321}.lamp.lit.beam{color:#5aa9ff;background:#5aa9ff1a;border-color:#1d3b5c}.lamp.lit.text{color:var(--text);border-color:var(--line)}.replay-bar{align-items:center;gap:12px;margin-bottom:10px;display:flex}.replay-bar input[type=range]{accent-color:var(--accent);flex:1;padding:0}.replay-bar .clock{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}button.danger{color:#fff;background:#b3251d;border-color:#b3251d}button.ghost.danger{background:var(--panel);color:#f85149;border-color:#5a2321}.confirm{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.confirm .ask{color:var(--text);font-size:13px}.mono .moved{color:var(--accent,#46d9e6)}button.link{font:inherit;color:var(--accent,#46d9e6);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.scroller{overflow-x:auto}.group-form{gap:14px;max-width:1100px;display:grid}.group-form .title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.group-form h2{color:var(--text);margin:0 0 10px;font-size:14px}.group-form section.card,.fields{gap:10px;display:grid}.fields.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.fields.three{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.fields.stretch>.card{min-width:0}.field>span:first-child{color:var(--muted);margin-bottom:5px;font-size:12px;display:block}.field .hint{margin-top:4px}.field input,.field select,.field textarea{box-sizing:border-box;width:100%}.field .pair{align-items:center;gap:8px;display:flex}.field .pair input{flex:1;min-width:0}textarea{font:inherit;border:1px solid var(--line);background:var(--panel);color:var(--text);box-sizing:border-box;resize:vertical;border-radius:6px;width:100%;padding:9px 11px}input.short{max-width:110px}input.invalid{border-color:#f85149}.grow{flex:1;min-width:0}button.small{padding:5px 10px;font-size:12px}.segmented{border:1px solid var(--line);border-radius:6px;display:inline-flex;overflow:hidden}.segmented button{background:var(--panel);color:var(--muted);border:0;border-inline-end:1px solid var(--line);border-radius:0;padding:7px 11px;font-size:13px;font-weight:500}.segmented button:last-child{border-inline-end:0}.segmented button.on{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent);background:#1a2029;font-weight:600}.checks{flex-wrap:wrap;gap:12px;padding-top:6px;display:flex}.check{align-items:center;gap:6px;font-size:13px;display:inline-flex}.check input{width:auto}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--panel);border-radius:99px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;display:inline-flex}.chip .x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 0 0 2px;font-size:14px;line-height:1}.chip .x:hover{color:#f85149}table.editable input{padding:6px 9px}table.editable td{padding:4px 8px}table.editable th.addr,table.editable td.addr{width:130px}.names-editor .paste{gap:8px;display:grid}.coding-editor,.coding-editor .unit{gap:10px;display:grid}.coding-editor .byte{border:1px dashed var(--line);border-radius:6px;gap:8px;padding:8px 10px;display:grid}.field.inline{align-items:center;gap:8px;display:inline-flex}.field.inline>span:first-child{margin:0}.savebar{background:var(--bg);border-top:1px solid var(--line);align-items:center;gap:14px;padding:12px 14px;display:flex;position:sticky;bottom:0}.savebar.dirty{border-top-color:var(--accent)}.savebar .summary{flex-wrap:wrap;flex:1;gap:12px;font-size:13px;display:flex}.tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;display:flex}.tabs button{border:0;color:var(--muted);background:0 0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:9px 12px;font-weight:500;position:relative}.tabs button.on{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.tabs button.dirty:after{content:"";top:8px;background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;inset-inline-end:4px}.drive{gap:16px;max-width:1200px;display:grid}.drive-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.drive-head h1{margin:2px 0 4px}.drive-head .who{color:var(--muted)}.drive-head .who .mono{margin-inline-start:8px}.drive-head .note{max-width:640px;margin:8px 0 0}.drive-stats{gap:28px;display:flex}.drive-stats .stat .v{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.1}.drive-stats .stat .k{color:var(--muted);font-size:12px}.drive-stats .stat .v.warn{color:var(--warn)}.drive-stats .stat .v.good{color:var(--good)}.drive-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;display:flex}.drive-meta .sep{opacity:.5}.drive-grid{grid-template-columns:minmax(0,3fr) minmax(280px,2fr);align-items:start;gap:16px;display:grid}@media (max-width:900px){.drive-grid{grid-template-columns:1fr}}.drive .card h2{margin:0 0 12px;font-size:14px}.drive .card.replay .gauges{justify-content:center}.unit-faults{gap:10px;display:grid}.unit-faults .unit{border:1px solid var(--line);background:#0f141b;border-radius:8px;padding:10px 12px}.unit-faults .unit .k{color:var(--muted);justify-content:space-between;gap:8px;font-size:12px;display:flex}.codes{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.code{color:#f85149;background:#1a1214;border:1px solid #5a2321;border-radius:5px;padding:2px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}details.fold{border:1px solid var(--line);background:var(--panel);border-radius:8px}details.fold>summary{cursor:pointer;color:var(--text);align-items:center;gap:10px;padding:12px 14px;font-weight:600;list-style:none;display:flex}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary:before{content:"▸";color:var(--muted);font-size:12px}details.fold[open]>summary:before{content:"▾"}details.fold>summary .sub{font-weight:400}details.fold>.body{padding:0 14px 14px}.drive-foot{border-top:1px solid var(--line);justify-content:flex-end;padding-top:8px;display:flex}a.button{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:6px;padding:9px 13px;font-size:13px;text-decoration:none;display:inline-block}a.button.primary{background:var(--accent);border-color:var(--accent);color:#0b0e13;font-weight:600}.dtc-list{gap:6px;margin:8px 0 4px;padding:0;list-style:none;display:grid}.dtc-list li{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.segmented.wrap{flex-wrap:wrap}.drive .topline{margin-bottom:-4px}.drive .tabs button .sub{margin-inline-start:6px;font-size:12px}.dtc-list li.open{display:block}.dtc-row{width:100%;color:var(--text);text-align:start;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;align-items:baseline;gap:8px;margin:-4px -6px;padding:4px 6px;display:flex}.dtc-row:hover{background:#ffffff0a}.dtc-row .grow{flex:1}.dtc-row .chev{color:var(--muted);font-size:12px}.dtc-row .count{white-space:nowrap;font-size:12px}.dtc-row.has-detail .chev{color:var(--accent)}.fault-detail{border:1px solid var(--line);background:var(--panel);border-radius:8px;gap:12px;margin:8px 0 4px;padding:12px 14px;display:grid}.fault-detail.empty{color:var(--muted);font-size:13px}.fault-detail .row{grid-template-columns:130px 1fr;align-items:start;gap:10px;font-size:13px;display:grid}@media (max-width:600px){.fault-detail .row{grid-template-columns:1fr;gap:4px}}.fault-detail .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-top:2px;font-size:12px}.fault-detail .chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fault-detail .freeze{flex-wrap:wrap;gap:8px;display:flex}.fault-detail .value{border:1px solid var(--line);background:#0f141b;border-radius:6px;gap:2px;min-width:72px;padding:6px 10px;display:grid}.fault-detail .value .k{color:var(--muted);letter-spacing:.06em;font-size:10px}.fault-detail .records{gap:8px;display:grid}.fault-detail .bytes{word-break:break-all;color:var(--text);font-size:12px;line-height:1.5;display:block}.fault-detail .history{gap:3px;margin:0;padding:0;list-style:none;display:grid}.replay-frames{margin-top:12px}.replay-frames>button.ghost{font-size:13px}.frame-ticker{border:1px solid var(--line);background:#0f141b;border-radius:8px;flex-direction:column;height:200px;margin-top:8px;padding:6px 10px;display:flex;overflow:hidden}.frame-ticker .frame-row{white-space:nowrap;gap:10px;font-size:12px;line-height:1.7;display:flex}.frame-ticker .frame-row .fid{color:#58a6ff;min-width:66px}.frame-ticker .frame-row .fdlc{min-width:12px}.frame-ticker .frame-row .fdata{color:var(--text);letter-spacing:.02em}.replay-faults-list{gap:4px;margin-top:12px;display:grid}.replay-faults-list .k{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.replay-faults-list .fault-row{align-items:baseline;gap:10px;font-size:13px;display:flex}.replay-faults-list .fault-row .ft{min-width:46px}.replay-faults-list .fault-row .fcode{font-weight:600}td.warn{color:var(--warn)}.notice{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin:0;padding:10px 14px}.notice.warn{background:#d2992214;border-color:#4a3b12}.analyzer .card-head{flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-bottom:12px;display:flex}.analyzer .card .card-head h2{margin:0}.analyzer .chips{margin:10px 0 12px}.doc{max-width:780px}.doc-index{gap:12px;max-width:780px;display:grid}a.doc-card{color:inherit;text-decoration:none;display:block}a.doc-card:hover{border-color:#3a4552}.doc-card-title{color:var(--text);font-size:15px;font-weight:600}.doc-card-summary{color:var(--muted);margin:6px 0 0;font-size:13px;line-height:1.55}.doc-card-meta{color:var(--muted);margin-top:10px;font-size:12px}.doc-back{margin:0 0 14px}.doc-back a{color:var(--muted);font-size:13px;text-decoration:none}.doc-back a:hover{color:var(--text)}.doc-updated{color:var(--muted);margin:0 0 24px;font-size:12px}.doc section{margin-bottom:26px}.doc h2{color:var(--text)}.doc h3{color:var(--text);margin:18px 0 6px;font-size:14px}.doc p{max-width:68ch;margin:0 0 12px;line-height:1.65}.doc ul,.doc ol{max-width:68ch;margin:0 0 14px;padding-inline-start:22px}.doc li{margin:0 0 7px;line-height:1.6}.doc .notice{max-width:68ch;margin:14px 0}.doc-pre{border:1px solid var(--line);max-width:68ch;color:var(--text);white-space:pre;background:#0f141b;border-radius:8px;margin:0 0 14px;padding:12px 14px;font-size:13px;line-height:1.6;overflow-x:auto}
