[hidden]{display:none!important}.mode-nav{display:flex;gap:28px;font-size:1rem}.mode-nav a{color:var(--muted);padding:10px 0;border-bottom:2px solid transparent}.mode-nav a[aria-current=page]{color:var(--accent);border-bottom-color:var(--accent)}.room-setup{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,.8fr);gap:60px;max-width:1100px;margin:35px auto 50px}.create-panel{padding:28px}.create-panel input[type=text]{width:100%;height:46px;border:1px solid #3b4650;border-radius:4px;background:#0e1419;color:var(--text);padding:0 12px;font-size:16px}.create-panel .stage-button{margin-top:28px}.race-guide{padding:16px 0}.race-guide ol{padding-left:25px;margin:28px 0}.race-guide li{padding-left:9px;margin:0 0 24px;color:var(--accent)}.race-guide strong{font-size:17px;color:var(--text)}.race-guide p{color:var(--muted);font-size:1rem;line-height:1.65;margin:8px 0}.room-note{font-size:1rem;line-height:1.7;color:var(--muted)}.live-alert{padding:15px 20px;border:1px solid #b9663b;border-radius:4px;background:#362318;color:#ffcca8;font-size:1rem;line-height:1.5}.room-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 20px}.room-toolbar p{font-size:1rem;color:var(--muted);margin:8px 0 0}.room-actions,.round-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.outline-button{border:1px solid #5b6a76;background:#1b242c;color:var(--text);font-size:1rem;padding:12px 18px;border-radius:4px;text-decoration:none}.outline-button:hover{border-color:var(--accent)}.match-banner{border:1px solid #344b60;border-left:3px solid var(--accent);background:#142335;padding:18px 22px;display:flex;justify-content:space-between;gap:20px;align-items:center;margin:18px 0}.match-banner strong{font-family:'Barlow Condensed',sans-serif;font-size:26px;text-transform:uppercase}.match-banner span{font-size:1rem;line-height:1.6;color:#c4d6e7;max-width:540px}.race-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1000px;margin:auto}.racer-lane{padding:24px 30px;background:radial-gradient(ellipse at 50% 25%,#232c2d,#12191f 65%)}.racer-lane.mine{border-top:2px solid var(--accent)}.racer-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.racer-heading h2{font-family:'Barlow Condensed',sans-serif;font-size:27px;word-break:break-word;margin-top:6px}.score{display:flex;flex-direction:column;text-align:right}.score span{font-family:'Barlow Condensed',sans-serif;font-size:40px;line-height:1}.score small{font-size:.875rem;color:var(--muted);letter-spacing:1px;margin-top:5px}.race-tree{display:flex;align-items:center;flex-direction:column;margin:22px 0 18px;min-height:359px}.race-tree .bulb{width:45px;height:45px}.race-tree .stage-label{font-size:.875rem}.race-readout{text-align:center;min-height:107px}.race-readout>span{font-size:.9375rem;color:var(--muted);letter-spacing:1px}.race-readout output{display:block;font-family:'Barlow Condensed',monospace;font-size:63px;font-variant-numeric:tabular-nums;line-height:1.2}.input-instruction,.opponent-note{font-size:.9375rem;color:var(--muted);line-height:1.65;text-align:center;margin:15px 0 0}.opponent-note{max-width:280px;margin:20px auto;min-height:68px}.round-actions{margin:22px auto;max-width:1000px}.round-actions .text-button{font-size:1rem}.round-actions>span{font-size:.9375rem;color:var(--muted);margin-left:auto}.match-history{padding:23px;margin:24px 0}.match-history .panel-heading{margin-bottom:6px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:1rem}th{color:var(--muted);font-weight:500}td,th{padding:13px 10px;border-bottom:1px solid var(--line)}.room-expired{opacity:.65}@media(max-width:700px){.room-setup{display:flex;flex-direction:column;gap:20px;margin:20px 0}.create-panel{padding:22px}.race-guide{padding:10px}.mode-nav{gap:14px}.version{display:none}.room-toolbar{align-items:flex-start;flex-direction:column}.match-banner{align-items:flex-start;flex-direction:column;gap:6px}.race-grid{gap:10px}.racer-lane{padding:16px 10px}.racer-heading{align-items:flex-start;gap:5px}.racer-heading h2{font-size:21px}.racer-heading .eyebrow{font-size:.875rem;letter-spacing:1px}.score span{font-size:30px}.score small{font-size:.875rem}.race-tree{min-height:335px}.race-tree .bulb{width:38px;height:38px}.race-readout output{font-size:48px}.race-readout>span{font-size:.875rem}.racer-lane .stage-button{font-size:.875rem;letter-spacing:.2px;padding:10px;height:56px}.input-instruction,.opponent-note{font-size:.875rem}.round-actions>span{width:100%;margin-left:0}.match-history{padding:16px 10px}.room-actions{gap:8px}.outline-button{padding:10px 13px}}

.fixed-rollout{min-height:46px;border:1px solid #344b60;background:#142335;color:var(--accent);padding:11px 12px;border-radius:4px;font-size:17px}.fixed-rollout span{display:block;font-size:.875rem;letter-spacing:.5px;color:#b5c9dc;margin-top:4px}

.admin-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(280px,.8fr);gap:55px;max-width:1100px;margin:30px auto}.admin-layout fieldset{border:0;padding:0;margin:0}.admin-layout hr{border:0;border-top:1px solid var(--line);margin:30px 0}.room-rollout-editor{max-width:520px;padding:20px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}.room-rollout-editor input{max-width:170px}.room-rollout-editor label{margin-top:0}@media(max-width:700px){.admin-layout{display:flex;flex-direction:column;gap:20px;margin:20px 0}}
@media(max-width:700px){header{flex-wrap:wrap;height:auto;gap:14px;padding-top:18px;padding-bottom:16px}.mode-nav{flex-wrap:wrap;gap:16px}}

@media(max-width:1000px){header{height:auto;flex-wrap:wrap;gap:16px;padding-top:18px;padding-bottom:16px}.mode-nav{flex-wrap:wrap;gap:16px}}
/* Keep live updates and touch holds from scrolling the race page. */
html:has(#race-room){overflow-anchor:none}
#live-trigger{touch-action:none}
.match-banner{min-height:112px}
@media(max-width:700px){.match-banner{min-height:164px}}
