:root{--D:#2f6fd6;--R:#d63a3a;--I:#8a5cc2;--O:#8a8f98;--bg:#0f1218;--card:#171c25;--line:#283041;--txt:#e7ebf2;--mut:#8d97a8;--gold:#f5c542}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--txt);font:14px/1.35 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
.muted{color:var(--mut)}.small{font-size:12px}
.sim-banner{position:sticky;top:0;z-index:20;background:repeating-linear-gradient(45deg,#7a1010,#7a1010 14px,#5a0a0a 14px,#5a0a0a 28px);color:#fff;font-weight:800;text-align:center;padding:8px;letter-spacing:.5px}
body.sim .race::after{content:"SIMULATED";position:absolute;right:8px;bottom:6px;font-size:10px;font-weight:800;color:#ff6b6b;opacity:.55;letter-spacing:1px}
.top{display:flex;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
h1{margin:0;font-size:22px}.sub{color:var(--mut);font-size:12px}
.status{text-align:right;font-size:13px}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#777}
.dot.live{background:#3ad16b;box-shadow:0 0 0 0 rgba(58,209,107,.7);animation:pulse 2s infinite}.dot.err{background:#e24}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(58,209,107,0)}100%{box-shadow:0 0 0 0 rgba(58,209,107,0)}}
.chambers{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px 20px}
@media(max-width:900px){.chambers{grid-template-columns:1fr}}
.chamber{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.chamber .hd{display:flex;justify-content:space-between;align-items:baseline}
.chamber h2{margin:0;font-size:17px}.ctl{font-weight:800;font-size:13px;padding:2px 8px;border-radius:4px;background:#2a3140}
.ctl.D{background:var(--D)}.ctl.R{background:var(--R)}
.nums{display:flex;justify-content:space-between;margin:8px 0 4px;font-weight:800;font-size:26px}
.nums .D{color:#6fa0ff}.nums .R{color:#ff7a7a}.nums .I{color:#b896e8;font-size:18px;align-self:center}.nums .U{color:var(--mut);font-size:15px;align-self:center;font-weight:600}
.cbar{position:relative;height:26px;background:#242b38;border-radius:5px;overflow:visible;display:flex}
.cbar .seg{height:100%;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.seg.D{background:var(--D)}.seg.Dh{background:#24539f}.seg.I{background:var(--I)}.seg.U{background:transparent}.seg.R{background:var(--R)}.seg.Rh{background:#9f2a2a}
.cbar .maj{position:absolute;top:-5px;bottom:-5px;width:2px;background:#fff}
.cbar .majl{position:absolute;top:29px;font-size:11px;transform:translateX(-50%);color:#fff;white-space:nowrap}
.chamber .det{font-size:12px;color:var(--mut);margin-top:22px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:0 20px 10px;align-items:center}
.toolbar input,.toolbar select,.tabs button{background:var(--card);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:7px 10px;font:inherit}
.toolbar input{flex:1;min-width:220px}.tabs button.on{background:#2c3a55;border-color:#4a6290}
.layout{display:grid;grid-template-columns:1fr 300px;gap:14px;padding:0 20px 20px}
@media(max-width:1100px){.layout{grid-template-columns:1fr}.feed{order:-1;max-height:220px}}
h2.sec{font-size:16px;margin:10px 0 8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.grid.house{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.stgroup{margin-bottom:14px}.stgroup h3{font-size:14px;margin:8px 0 6px;display:flex;gap:10px;align-items:baseline}
.stgroup h3 .tally{font-size:12px;font-weight:600}.tally .D{color:#6fa0ff}.tally .R{color:#ff7a7a}
.race{position:relative;background:var(--card);border:1px solid var(--line);border-left:5px solid #3a4352;border-radius:8px;padding:9px 10px 12px;transition:border-color .6s, box-shadow .6s}
.race.called.D{border-left-color:var(--D)}.race.called.R{border-left-color:var(--R)}.race.called.I,.race.called.O{border-left-color:var(--I)}
.race.flash{animation:flash 2.2s ease-out}@keyframes flash{0%{box-shadow:0 0 0 3px var(--gold);background:#2b2a1a}100%{box-shadow:none}}
.race.justcalled{animation:called 3s ease-out}@keyframes called{0%{box-shadow:0 0 0 4px #fff, 0 0 30px #fff}100%{box-shadow:none}}
.race .rh{display:flex;justify-content:space-between;align-items:center;gap:6px}
.race .nm{font-weight:700}.badge{font-size:11px;font-weight:800;padding:2px 6px;border-radius:4px;white-space:nowrap}
.b-called{background:#e9edf5;color:#111}.b-called.D{background:var(--D);color:#fff}.b-called.R{background:var(--R);color:#fff}.b-called.I,.b-called.O{background:var(--I);color:#fff}
.b-counting{background:#3b3315;color:var(--gold)}.b-not_started,.b-no_data{background:#262c38;color:var(--mut)}.b-flip{background:var(--gold);color:#111;margin-left:4px}
.rep{margin:7px 0 6px;font-size:11px;color:var(--mut);display:flex;align-items:center;gap:6px}
.rep .rbar{flex:1;height:6px;background:#262d3a;border-radius:3px;overflow:hidden}.rep .rfill{height:100%;width:0;background:linear-gradient(90deg,#6c7a93,#cfd8e8);transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.cand{display:grid;grid-template-columns:1fr auto;gap:2px 8px;margin-top:4px;font-size:13px}
.cand .cn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cand .cv{text-align:right;font-variant-numeric:tabular-nums}
.cand .cv b{display:inline-block;min-width:46px}
.cand .sbar{grid-column:1/3;height:8px;background:#232a36;border-radius:4px;overflow:hidden}
.cand .sfill{height:100%;width:0;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.sfill.D{background:var(--D)}.sfill.R{background:var(--R)}.sfill.I{background:var(--I)}.sfill.O{background:var(--O)}
.pt{display:inline-block;width:16px;font-size:10px;font-weight:800;text-align:center;border-radius:3px;margin-right:4px}
.pt.D{background:var(--D)}.pt.R{background:var(--R)}.pt.I{background:var(--I)}.pt.O{background:var(--O)}
.cand.win .cn{font-weight:800}.cand.win .cn::after{content:" ✓";color:var(--gold)}
.cand.lead .cn{font-weight:700}
.race .others{font-size:11px;color:var(--mut);margin-top:3px}
.feed{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;position:sticky;top:44px;max-height:calc(100vh - 60px);overflow:auto;align-self:start}
.feed h3{margin:0}.feed ol{list-style:none;margin:8px 0 0;padding:0}
.feed li{padding:6px 0;border-bottom:1px solid var(--line);font-size:13px;animation:slide .5s ease-out}
@keyframes slide{from{opacity:0;transform:translateY(-8px)}to{opacity:1}}
.feed li .t{color:var(--mut);font-size:11px}.feed li.call b{color:var(--gold)}
.foot{padding:10px 20px 30px}.foot a{color:#9fb6e0}
[hidden]{display:none!important}
.uncalled{margin:0 20px 12px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.uncalled.done{border-color:#3ad16b}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;max-height:150px;overflow:auto}
.chip{font-size:12px;background:#222a37;border:1px solid var(--line);border-radius:14px;padding:3px 9px;cursor:pointer;white-space:nowrap}
.chip:hover{border-color:#6c7a93}.chip .D{color:#6fa0ff;font-weight:700}.chip .R{color:#ff7a7a;font-weight:700}.chip .I,.chip .O{color:#b896e8;font-weight:700}
.status a{color:#9fb6e0}
