:root{--bg:#0f1622;--panel:#18222f;--line:#2a3646;--txt:#e8eef5;--mut:#93a3b8;--acc:#1e90ff;--ok:#2fbf71;--warn:#f0ad4e;--bad:#e5534b}
*{box-sizing:border-box}body{margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt)}
a{color:#7cc0ff;text-decoration:none}
header{display:flex;gap:6px;align-items:center;padding:10px 14px;background:#0b111a;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;flex-wrap:wrap}
header .brand{font-weight:700;margin-right:12px}header nav a{padding:10px 14px;border-radius:10px;color:var(--txt)}header nav a.on,header nav a:hover{background:var(--panel)}
header .who{margin-left:auto;display:flex;gap:6px;align-items:center;color:var(--mut)}header .who form{margin:0}
main{padding:14px;max-width:1280px;margin:0 auto}
.grid{display:grid;gap:12px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g5{grid-template-columns:repeat(5,1fr)}
@media(max-width:1050px){.g5{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px}
.card h2,.card h3{margin:0 0 10px;font-size:17px}.big{font-size:34px;font-weight:700}.mut{color:var(--mut);font-size:13px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{color:var(--mut);font-weight:600}
.btn{display:inline-block;border:0;border-radius:12px;padding:14px 18px;font-size:16px;font-weight:600;background:#2b3a4d;color:var(--txt);cursor:pointer;min-height:48px}
.btn.p{background:var(--acc)}.btn.ok{background:var(--ok)}.btn.w{background:var(--warn);color:#111}.btn.b{background:var(--bad)}.btn.sm{padding:8px 12px;min-height:36px;font-size:14px}
input,select,textarea{font:inherit;background:#0f1622;color:var(--txt);border:1px solid var(--line);border-radius:10px;padding:12px;min-height:46px;width:100%}
label{display:block;font-size:13px;color:var(--mut);margin:8px 0 4px}
.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#2b3a4d}
.s-received{background:#3a4a5e}.s-staged{background:#4a4a7a}.s-assembly{background:#8a5a1e}.s-door_mount{background:#9a4b2a}.s-wiring_io{background:#6b3f8f}
.s-software_handoff{background:#1f6f8b}.s-burn_in{background:#a33d3d}.s-qa{background:#2e7d4f}.s-packed{background:#3d6b2e}.s-shipped{background:#555}
.sev-Stop-ship{background:var(--bad)}.sev-High{background:#c46a1d}.sev-Medium{background:#8a7a1e}.sev-Low{background:#3a4a5e}
.pipe{display:flex;gap:6px;flex-wrap:wrap}.pipe .st{flex:1;min-width:90px;text-align:center;padding:10px 6px;border-radius:12px}.pipe .st b{display:block;font-size:26px}
.bar{height:14px;background:#0f1622;border-radius:8px;overflow:hidden;position:relative}.bar i{display:block;height:100%;background:var(--ok)}.bar em{position:absolute;top:-3px;width:3px;height:20px;background:var(--warn)}
.racks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rack{border:1px dashed var(--line);border-radius:12px;padding:10px;min-height:86px}.rack.on{border:1px solid var(--bad);background:#2a1a1e}
.step-nav{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0}.step-nav a{padding:6px 9px;border-radius:8px;background:#223042;font-size:12px;color:var(--txt)}.step-nav a.done{background:#1f5a3a}.step-nav a.cur{outline:2px solid var(--acc)}
.chk{display:flex;gap:12px;align-items:flex-start;padding:12px;border-bottom:1px solid var(--line);cursor:pointer}.chk input{width:28px;height:28px;min-height:0;flex:none;margin-top:2px}
.chk.qa{background:#13202c}.timer{font-size:46px;font-weight:700;font-variant-numeric:tabular-nums}
.warnbox{background:#3b2a12;border:1px solid var(--warn);border-radius:12px;padding:12px;margin-bottom:10px}
.tag{background:#5a2d6b;padding:2px 8px;border-radius:8px;font-size:12px}
.pages{display:flex;gap:8px;overflow-x:auto}.pages img{height:420px;border-radius:8px;border:1px solid var(--line)}.figs img{max-height:220px;border-radius:8px;margin:4px;border:1px solid var(--line)}
.over{color:var(--bad);font-weight:700}.under{color:var(--ok);font-weight:700}
.demo-banner{background:#f4c542;color:#171207;text-align:center;font-weight:800;letter-spacing:.12em;padding:7px;position:sticky;top:0;z-index:7}.demo-banner+header{top:35px}
.notice{border:1px solid var(--acc);background:#142a40;border-radius:12px;padding:11px 14px;margin-bottom:12px}.notice.error{border-color:var(--bad);background:#381b20}.notice.success{border-color:var(--ok);background:#153322}
.fail-banner{background:#531d24;border:2px solid var(--bad);border-radius:12px;padding:13px;margin-bottom:12px;color:#ffd9d6;font-weight:800}
.burn-clock{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}.burn-clock .timer{font-size:32px}.burn-clock-inline{font-weight:700;color:var(--warn);font-variant-numeric:tabular-nums}
.run-card{border:1px solid var(--line);border-left:5px solid var(--ok);border-radius:10px;padding:12px;margin-top:10px}.run-card.run-fail{border-left-color:var(--bad);background:#27191d}.run-head{display:flex;justify-content:space-between;gap:8px}.result-pass{background:var(--ok)}.result-fail{background:var(--bad)}
.small-table{font-size:13px;margin-top:8px}.small-table th,.small-table td{padding:5px}.file-links{margin-top:8px}.csv-summary{margin:8px 0;padding:8px;background:#111b27;border-radius:8px}details{margin-top:8px}summary{cursor:pointer;color:#7cc0ff}.login-card{max-width:430px;margin:8vh auto}
