/* Shared look for the analyzer (/) and the TV board (/tv). */
:root{
 --bg:#04070c;--ink:#eaf0f8;--mute:#8d9bb0;--dim:#5b6779;--line:rgba(160,180,210,.10);--line2:rgba(160,180,210,.18);
 --win:#20e3a0;--loss:#ff4766;--push:#7d8aa0;--gold:#ffd60a;--amber:#ffab1f;--red:#ff3355;
 --team:#7fb2ff;--team-rgb:127,178,255;
 --disp:'Big Shoulders Display',Impact,'Arial Narrow',sans-serif;--body:'Barlow',system-ui,sans-serif;--cond:'Barlow Condensed','Barlow',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{color-scheme:dark}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:15px/1.45 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.pos{color:var(--win)}.neg{color:var(--loss)}.mute{color:var(--mute)}

/* ---------- lights & dots ---------- */
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#3a4556;flex:none}
.dot.ok{background:var(--win);box-shadow:0 0 10px var(--win)}
.dot.beat{background:var(--win);box-shadow:0 0 10px var(--win);animation:beat 2.2s ease-in-out infinite}
.dot.live{background:var(--red);box-shadow:0 0 12px var(--red);animation:blink 1s steps(2,start) infinite}
.dot.warn{background:var(--amber);box-shadow:0 0 10px var(--amber);animation:blink 1.4s steps(2,start) infinite}
.dot.err{background:#5a6474}
@keyframes blink{to{visibility:hidden}}
@keyframes beat{0%,100%{transform:scale(1);opacity:1}12%{transform:scale(1.6);opacity:.55}24%{transform:scale(1)}}
@keyframes pulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.35)}}

/* ---------- stadium art ---------- */
.stadium{position:absolute;inset:0;width:100%;height:100%;display:block}
.stadium .bulb{fill:#fff6dc;filter:url(#glow);animation:twinkle 3s ease-in-out infinite}
.stadium .flash{fill:#fff;opacity:0;animation:flash 6s linear infinite}
.stadium .beams{mix-blend-mode:screen;animation:breathe 7s ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:1}50%{opacity:.7}}
@keyframes flash{0%,93%,100%{opacity:0}94.5%{opacity:1}}
@keyframes breathe{0%,100%{opacity:.55}50%{opacity:.75}}

/* ---------- section label ---------- */
.tab{display:flex;align-items:center;gap:10px;margin:0 0 14px;font:800 14px/1 var(--disp);letter-spacing:.16em;text-transform:uppercase;color:#c9d4e3}
.tab::before{content:"";width:16px;height:14px;background:var(--gold);transform:skewX(-20deg);box-shadow:0 0 12px rgba(255,214,10,.4);flex:none}
.tab .aside{margin-left:auto;font:600 12px var(--cond);letter-spacing:.06em;color:var(--dim)}

/* ---------- verdict lamps ---------- */
.lamp{display:flex;flex-direction:column;align-items:center;gap:9px;width:66px;text-align:center;font:700 11.5px/1.1 var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);transition:color .3s}
.lamp i{width:46px;height:46px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.16),transparent 42%),var(--off);box-shadow:inset 0 -5px 10px rgba(0,0,0,.65),0 0 0 3px #101824,0 0 0 4px rgba(255,255,255,.05);transition:background .3s,box-shadow .3s}
.lamp.edge{--on:#20e3a0;--off:#0b261d}.lamp.none{--on:#ffab1f;--off:#271d0b}.lamp.fade{--on:#ff4766;--off:#2a0e15}
.lamp.on{color:var(--ink)}
.lamp.on i{background:radial-gradient(circle at 35% 30%,#fff 0,var(--on) 38%,color-mix(in srgb,var(--on) 55%,#000) 100%);box-shadow:0 0 0 3px #101824,0 0 22px var(--on),0 0 60px color-mix(in srgb,var(--on) 45%,transparent);animation:pulse 1.8s ease-in-out infinite}

/* ---------- logos ---------- */
.lg{position:relative;display:inline-grid;place-items:center;width:var(--s);height:var(--s);flex:none}
.lg img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.lg b{display:none}
.lg.fail img{display:none}
.lg.fail b{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--c);color:#fff;font:800 calc(var(--s) * .34)/1 var(--cond);letter-spacing:0}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
