:root{color-scheme:dark;--bg:#101914;--card:#18231d;--line:#314237;--ink:#f0f0df;--muted:#a2b3a4;--accent:#dfed7b;--phase:#dfed7b;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}body[data-phase=auto]{--phase:#dfed7b}body[data-phase=transition]{--phase:#efb16b}body[data-phase=teleop],body[data-phase=drill]{--phase:#8fd6bf}body[data-phase=finished]{--phase:#b3bfad}main{max-width:1200px;margin:auto;padding:0 32px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:14px 20px;font-weight:650;color:var(--ink);background:none}button:hover{filter:brightness(1.15);border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}header{display:flex;justify-content:space-between;align-items:center;min-height:94px;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;letter-spacing:2px;font-size:14px;font-weight:800;color:var(--ink);text-decoration:none}.mark{font-size:38px;line-height:1;color:var(--accent)}.edition{font-size:10px;color:var(--muted);letter-spacing:1px;margin-left:14px}.quiet{border-color:transparent;padding:10px;color:var(--muted);font-size:13px}.intro{display:flex;align-items:center;justify-content:space-between;padding:42px 0 32px;gap:24px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--accent);margin:0 0 14px}h1{font-size:clamp(28px,4vw,43px);font-weight:550;letter-spacing:-1.5px;line-height:1.1;margin:0 0 13px}.intro p:not(.eyebrow){font-size:14px;color:var(--muted);margin:0}.badge{font-size:10px;letter-spacing:1.5px;white-space:nowrap;border:1px solid var(--line);padding:12px 14px;border-radius:99px;color:var(--muted)}.badge span{display:inline-block;background:var(--accent);width:6px;height:6px;border-radius:50%;margin-right:7px}.clock-panel{position:relative;background:#dfe7cc;color:#17251b;padding:24px 36px 0;border-radius:16px;overflow:hidden}.clock-top{display:flex;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:2px;color:#4b5b47}.phase{text-align:center;font-size:16px;font-weight:700;letter-spacing:3px;text-transform:uppercase;margin-top:22px}.clock{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(104px,19vw,222px);font-weight:650;letter-spacing:-.085em;text-align:center;font-variant-numeric:tabular-nums;line-height:1.1;margin:6px 0 10px;padding-right:.085em}.hint{text-align:center;font-size:13px;min-height:20px;color:#54634f}.progress{height:4px;background:#bdc9ad;margin:24px -36px 0}.progress div{height:100%;width:0;background:#354e30}.controls{display:flex;justify-content:center;gap:10px;margin:24px 0}.primary{background:#213b29;color:#f1f2dc;border-color:#213b29;min-width:230px}.clock-panel .secondary{border-color:#a8b59a;color:#213b29}kbd{display:inline-block;margin-left:12px;border:1px solid currentColor;opacity:.5;font:9px ui-monospace,monospace;padding:3px 5px;border-radius:3px;vertical-align:middle}.phase-rail{display:flex;border-top:1px solid #bdc9ad;margin:0 -36px}.phase-rail span{flex:1;font-size:10px;font-weight:700;letter-spacing:1px;text-align:center;padding:16px 8px;color:#6b7964;border-right:1px solid #bdc9ad}.phase-rail .active{background:#c7d6b6;color:#1f3a27}.workspace{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.card{padding:28px;background:var(--card);border:1px solid var(--line);border-radius:13px}h2{font-size:23px;letter-spacing:-.5px;font-weight:550;margin:0 0 24px}label{display:block;color:var(--muted);font-size:12px;margin:18px 0 8px}input,select,textarea{width:100%;border:1px solid #3c4c40;border-radius:7px;padding:12px;background:#101b14;color:var(--ink)}textarea{resize:vertical}.check{display:flex;align-items:center;gap:10px;margin-top:20px}.check input{width:16px;height:16px;accent-color:var(--accent)}.small{font-size:12px;line-height:1.7;color:var(--muted)}.download{display:inline-block;font-size:13px;color:var(--accent);margin-top:12px;text-underline-offset:5px}.shot-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:12px 0 26px}.shot-stats>div{border-right:1px solid var(--line);padding-left:24px}.shot-stats>div:first-child{padding-left:0}.shot-stats>div:last-child{border:0}.shot-stats strong{display:block;font-family:ui-monospace,monospace;font-size:44px;font-weight:500;letter-spacing:-2px}.shot-stats span{font-size:11px;color:var(--muted)}.shot-buttons{display:flex;gap:8px;flex-wrap:wrap}.shot-buttons .secondary{padding:12px}.wide{width:100%;margin-top:14px}.log{margin-top:24px}.log-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.log-head h2{margin-bottom:18px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:1px;padding:15px 8px;border-bottom:1px solid var(--line)}td{padding:16px 8px;border-bottom:1px solid var(--line);max-width:350px;overflow-wrap:anywhere}footer{padding:28px 0 40px;color:var(--muted);font-size:11px;line-height:1.7}footer a{color:var(--muted)}body:fullscreen main{max-width:1600px}body:fullscreen .intro,body:fullscreen .workspace,body:fullscreen .log,body:fullscreen footer{display:none}body:fullscreen .clock-panel{margin-top:30px}body:fullscreen .clock{font-size:clamp(150px,28vw,420px)}@media(max-width:760px){main{padding:0 16px}.edition,.badge{display:none}header{min-height:76px}.intro{padding:28px 0}.workspace{grid-template-columns:1fr}.clock-panel{padding:20px 16px 0}.progress{margin-left:-16px;margin-right:-16px}.phase-rail{margin-left:-16px;margin-right:-16px}.controls{flex-wrap:wrap}.primary{min-width:170px}.controls button{padding:12px}.controls kbd{display:none}.phase-rail span{font-size:8px;letter-spacing:0}.card{padding:22px}.log-head{align-items:flex-start;flex-direction:column}.clock-top{font-size:9px}.phase{font-size:13px}.hint{font-size:11px}h2{font-size:21px}}

.shared{margin-top:24px}.shared-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:18px}.shared code{color:var(--accent)}@media(max-width:600px){.shared-fields{grid-template-columns:1fr;gap:0}}

.race-signal{display:flex;align-items:center;justify-content:center;gap:13px;margin:24px auto 0;padding:13px 20px;border-radius:999px;background:#203026;width:max-content;box-shadow:inset 0 2px 8px #0004}.lamp{display:block;width:35px;height:35px;border-radius:50%;background:#101813;border:3px solid #34443a;box-shadow:inset 0 3px 7px #0008}.race-signal[data-light=red] .red{background:#ff6258;box-shadow:0 0 20px #ff625866;border-color:#fa998f}.race-signal[data-light=amber] .amber{background:#ffcf50;box-shadow:0 0 20px #ffcf5066;border-color:#ffe395}.race-signal[data-light=green] .green{background:#71ed93;box-shadow:0 0 22px #71ed9377;border-color:#c0ffcd}.signal-text{min-width:88px;text-align:center;color:#f1f2dc;font-size:12px;font-weight:850;letter-spacing:2px;margin-left:6px}.race-signal+.phase{margin-top:16px}@media(max-width:600px){.lamp{width:28px;height:28px}.race-signal{gap:10px;padding:10px 16px}.controls{gap:7px}.signal-text{min-width:76px}}
/* The field display: side lamps are exactly one eighth of the panel each. */
.clock-panel{display:grid;grid-template-columns:12.5% 75% 12.5%;padding:0;align-items:stretch}.clock-content{min-width:0;padding:22px 26px 0}.panel-signal{background:#23352a;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:clamp(12px,2.5vh,30px);padding:20px 8px;min-width:0}.panel-signal .lamp{width:min(80%,110px);height:auto;aspect-ratio:1;border-width:4px}.panel-signal .signal-text{min-width:0;margin:4px 0 0;font-size:clamp(8px,1vw,13px);letter-spacing:1px}.panel-signal[data-light=red] .red{background:#ff6258;box-shadow:0 0 24px #ff625877;border-color:#ffaaa2}.panel-signal[data-light=amber] .amber{background:#ffd04f;box-shadow:0 0 24px #ffd04f88;border-color:#ffe99f}.panel-signal[data-light=green] .green{background:#71ed93;box-shadow:0 0 28px #71ed9399;border-color:#c3ffce}.clock-content .clock{font-size:clamp(72px,15vw,180px)}.clock-content .phase{margin-top:24px}.clock-content .progress{margin-left:-26px;margin-right:-26px}.clock-content .phase-rail{margin:20px -26px 0}.phase-rail .phase-segment{position:relative;flex-basis:0;overflow:hidden;background:transparent;isolation:isolate}.phase-segment:before{content:'';position:absolute;inset:0 auto 0 0;width:var(--stage-fill,0%);background:#8fae70;z-index:-1}.phase-segment b{font-weight:750}.phase-rail .phase-segment.active{background:#c7d6b633}.scoreboard{border-top:1px solid #aab89b;padding-top:16px;margin-top:20px}.score-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:10px;font-weight:750;letter-spacing:1px}.score-heading strong{font:600 32px ui-monospace,monospace;margin-left:10px}.score-heading select{background:#d0ddbc;border-color:#abbc98;color:#203923;width:auto;max-width:180px;padding:7px;font-size:10px}.score-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.score-metric{background:#c9d7b766;border:1px solid #adbd9b;border-radius:7px;padding:9px;display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center}.score-metric strong{grid-row:span 2;font:500 24px ui-monospace,monospace}.score-metric span{font-size:10px;font-weight:700}.score-metric small{font-size:9px;color:#566a4c}.penalty-metrics{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;margin-top:12px;padding:10px;background:#e4b9a14d;border:1px solid #ba947c66;border-radius:6px;font-size:10px}.penalty-metrics strong{color:#713a22}.penalty-metrics span{color:#614c3b}.score-footnote{font-size:9px;line-height:1.5;color:#5a6b51;margin:8px 0}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.clock-panel:fullscreen,.clock-panel.is-focus{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;z-index:1000;border-radius:0;overflow:auto;background:#dfe7cc;color:#17251b;grid-template-columns:12.5% 75% 12.5%}.clock-panel:fullscreen .clock-content,.clock-panel.is-focus .clock-content{min-height:100dvh;display:flex;flex-direction:column;padding:clamp(12px,2vh,28px) 3vw 0}.clock-panel:fullscreen .clock,.clock-panel.is-focus .clock{font-size:min(27vh,21vw);line-height:1;margin:1vh 0}.clock-panel:fullscreen .phase,.clock-panel.is-focus .phase{margin-top:1.5vh;font-size:clamp(12px,2.2vh,24px)}.clock-panel:fullscreen .controls,.clock-panel.is-focus .controls{margin:1vh 0;gap:6px;flex-wrap:wrap}.clock-panel:fullscreen .controls button,.clock-panel.is-focus .controls button{padding:9px 12px;font-size:12px}.clock-panel:fullscreen .hint,.clock-panel.is-focus .hint{margin:1vh 0}.clock-panel:fullscreen .phase-rail,.clock-panel.is-focus .phase-rail{margin-top:auto;min-height:6vh}.clock-panel:fullscreen .scoreboard,.clock-panel.is-focus .scoreboard{margin-top:1vh;padding-top:1vh}.clock-panel:fullscreen .panel-signal .lamp,.clock-panel.is-focus .panel-signal .lamp{width:min(85%,19vh);max-width:220px}.clock-panel:fullscreen .panel-signal .signal-text,.clock-panel.is-focus .panel-signal .signal-text{font-size:clamp(9px,1.6vw,26px)}.clock-panel:fullscreen .score-metric,.clock-panel.is-focus .score-metric{padding:clamp(7px,1.3vh,18px)}#panelConnection{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;letter-spacing:0}.invite-dialog{max-width:min(430px,94vw);width:430px;border:1px solid #51634d;border-radius:16px;background:#18231d;color:#f0f0df;padding:30px;text-align:center;box-shadow:0 24px 100px #0009}.invite-dialog::backdrop{background:#07150dc9}.invite-dialog h2{font-size:24px}.invite-dialog canvas{max-width:100%;height:auto;border-radius:8px;background:white}.invite-dialog .download{display:block}.close-dialog{position:absolute;right:8px;top:8px}.qr-code{font:700 22px ui-monospace,monospace;letter-spacing:2px}.audio-levels{display:grid;grid-template-columns:1fr 1fr;gap:14px}.audio-levels input{padding:0;accent-color:#dfed7b}.audio-levels label{margin-bottom:9px}.audio-caption{font-size:10px;letter-spacing:0}@media(max-width:650px){.clock-content{padding:16px 12px 0}.clock-content .phase-rail{margin-left:-12px;margin-right:-12px}.clock-content .progress{margin-left:-12px;margin-right:-12px}.clock-top{letter-spacing:0}.score-metrics{grid-template-columns:repeat(2,1fr)}.score-metric span{font-size:9px}.score-heading{align-items:flex-start;flex-direction:column;gap:4px}.score-heading strong{font-size:24px}.panel-signal{padding:12px 4px;gap:15px}.panel-signal .lamp{border-width:2px}.clock-content .controls kbd{display:none}.clock-content .controls{gap:5px}.clock-content .controls button{font-size:10px;padding:10px}.clock-content .primary{min-width:120px}.clock-panel.is-focus .clock-content,.clock-panel:fullscreen .clock-content{padding-left:12px;padding-right:12px}.clock-panel.is-focus .clock,.clock-panel:fullscreen .clock{font-size:min(18vh,21vw)}.score-footnote{font-size:8px}#panelConnection{display:none}}
.phase-rail .phase-segment{min-width:85px;flex-shrink:1}.phase-rail .phase-segment b{display:block;line-height:1.35;overflow-wrap:normal}.clock-panel:fullscreen .score-metric span,.clock-panel.is-focus .score-metric span{font-size:clamp(11px,1.05vw,18px)}.clock-panel:fullscreen .score-metric strong,.clock-panel.is-focus .score-metric strong{font-size:clamp(26px,2.2vw,42px)}.clock-panel:fullscreen .score-metric small,.clock-panel.is-focus .score-metric small{font-size:clamp(9px,.8vw,13px)}.clock-panel:fullscreen .penalty-metrics,.clock-panel.is-focus .penalty-metrics{font-size:clamp(10px,.9vw,15px)}[hidden]{display:none!important}
.phase-rail .phase-segment{padding-left:4px;padding-right:4px}
