/* Presentation-only finishing layer shared by every page, including recovered
   static entry points. Keep selectors away from simulation/cosmetic internals. */
:root{--ui-surface:#20252d;--ui-inset:#191e26;--ui-border:#ffffff18;--ui-text:#e7ecf4;--ui-muted:#a5b0c1;--ui-radius:12px;--ui-gutter:clamp(20px,3.75vw,48px);color-scheme:dark}
html{scroll-padding-top:24px}body{-webkit-font-smoothing:antialiased}
*,*::before,*::after{box-sizing:border-box}
:where(button,input,select,textarea){font-family:inherit}
:where(button,a,input,select,textarea,summary):focus-visible{outline:2px solid #accdff;outline-offset:3px}
:where(button,a.button){transition:background .16s ease,border-color .16s ease,color .16s ease}
:where(a){text-underline-offset:4px}
:where(p){text-wrap:pretty}
:where(h1,h2,h3){text-wrap:balance}
:where(input,select,textarea){max-width:100%}
:where([role=status]){font-size:12px;line-height:1.65;overflow-wrap:anywhere}
:where([role=status]:empty){min-height:0;margin-block:0}
:where(.muted){color:var(--ui-muted)}
:where(button:disabled){cursor:default}
:where(.account-page,.workshop-page,.simulation-page) :where(main,section,article,aside,form){min-width:0}
/* Navigation has one visual language, regardless of which tool is open. */
.page-header,.account-header,.home-header{padding-inline:var(--ui-gutter);gap:20px;min-height:88px;height:auto;flex-wrap:wrap;align-items:center}
.page-header .site-brand,.account-header .site-brand{gap:14px;min-width:0}
.page-header .site-brand strong{font-size:18px;line-height:1.2;font-weight:650;letter-spacing:-.5px}
.page-header .setup-links,.home-header .setup-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.page-header .setup-links :is(a.button,button),#setup .setup-links :is(a.button,button){min-height:36px;padding:9px 12px;font-size:12px;line-height:1.3;border-radius:8px;text-decoration:none}
.page-header .setup-links a.button{border:1px solid transparent;background:transparent;color:#b9c3d3}
.page-header .setup-links a.button:hover{border-color:#ffffff22;background:#ffffff06;color:#f0f4fb}
.site-brand small{line-height:1.5}.site-brand .brand-mark{flex:0 0 35px}
.page-header .match-counter,.home-header .match-counter{flex-shrink:0}
/* Consistent readable text and controls, scoped outside the driving HUD. */
:is(.events-main,.auto-studio,.admin-layout,.account-layout,.cosmetics-layout,.legal-content){padding-inline:var(--ui-gutter)}
:is(.events-main,.auto-studio){max-width:1440px;margin:40px auto 0;padding-bottom:64px}
:is(.events-main,.auto-studio,.admin-layout) h1{font-size:clamp(32px,3.8vw,48px);line-height:1.12;font-weight:650;letter-spacing:-1.7px;margin:18px 0}
:is(.events-main,.auto-studio,.admin-layout) h2{font-size:22px;line-height:1.3;font-weight:600;letter-spacing:-.5px;margin:0 0 16px}
:is(.events-main,.auto-studio,.admin-layout) h3{font-size:16px;line-height:1.4;font-weight:600}
:is(.event-card,.account-card,.workshop-panel) :is(p,small){line-height:1.7}
:is(.event-card,.account-card) p{font-size:13px;color:var(--ui-muted)}
:is(.event-card,.account-card,.workshop-panel,.simulation-page .controls) label{font-size:12px;line-height:1.5;color:#bdc8d8}
:is(.event-card,.account-card,.workshop-panel,.simulation-page .controls) :is(input:not([type=checkbox]):not([type=range]):not([type=color]),select){min-height:42px;border:1px solid #ffffff24;border-radius:8px;background:var(--ui-inset);color:var(--ui-text);font-size:13px;line-height:1.4;padding:10px 12px}
:is(.event-card,.account-card,.workshop-panel) textarea{background:var(--ui-inset);border-color:#ffffff24;color:var(--ui-text);border-radius:8px;padding:14px}
:is(.event-card,.account-card,.workshop-panel) input::placeholder{color:#8492a6;opacity:1}
:is(.event-card,.account-card,.workshop-panel) :is(input,select,textarea):focus-visible{border-color:#8dafe0}
:is(.event-card,.account-card,.workshop-panel) input[type=checkbox]{accent-color:#9ebfee;flex-shrink:0}
:is(.event-card,.account-card) button{min-height:40px;padding:10px 14px;font-size:12px;line-height:1.4;border-radius:8px}
.event-card,.account-card{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:linear-gradient(135deg,#ffffff03,transparent 60%),var(--ui-surface);box-shadow:inset 0 1px #ffffff05}
.event-card{padding:24px;margin:20px 0}
.event-card>h2:first-child,.account-card>h2:first-child{margin-top:0}
.event-actions{align-items:center;gap:10px;margin:20px 0 12px}
.event-actions a{font-size:12px;line-height:1.6}
.event-card a{color:#b1cef5}.event-link:hover{border-color:#7898c5}
.event-next{border-color:#7898c580;background:linear-gradient(120deg,#7babee0d,transparent),var(--ui-surface)}
.event-form{gap:16px 20px;align-items:end}.event-form label{margin:8px 0}.event-form>button{width:max-content;min-width:150px;margin-top:6px}
/* Tables keep their columns; the container scrolls, never the entire page. */
.event-table,.admin-table-wrap,.table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;scrollbar-color:#4d5b70 #191e26;border:1px solid var(--ui-border);border-radius:10px}
.event-table table,.admin-table-wrap table,.table-wrap table{margin:0}
.event-table th,.admin-table th,.table-wrap th{background:#252d39;color:#b4c3d8;font-size:11px;font-weight:600;letter-spacing:.2px}
.event-table :is(th,td){padding:13px 14px;font-size:12px;line-height:1.65}
.event-table tr:last-child td,.admin-table tr:last-child td{border-bottom:0}
.event-table tbody tr:hover,.admin-table tbody tr:hover{background:#ffffff03}
.event-table code{font-size:12px;white-space:nowrap}
/* Home, entry, daily and matchmaking surfaces. */
.tournament-banner{border-radius:10px;min-height:64px;padding:13px 20px;margin-block:16px 20px;background:linear-gradient(100deg,#ed7b7505,#7babee06),#20232a}
.tournament-banner-actions a{min-height:36px;display:inline-flex;align-items:center}
.tournament-banner h2{font-size:16px}.tournament-banner p{font-size:12px}
#ranked-announcement{width:min(430px,calc(100% - 32px));left:auto;right:16px;bottom:16px;transform:none;padding:18px;gap:12px;flex-wrap:wrap;border-radius:12px;box-shadow:0 12px 36px #0006}
#ranked-announcement>img{width:42px}#ranked-announcement>div{min-width:0;flex:1 1 280px}
#ranked-announcement>img+div{flex-basis:260px;padding-right:18px}
#ranked-announcement strong{font-size:19px;letter-spacing:-.4px}#ranked-announcement p{font-size:12px}
#ranked-announcement>button{position:absolute;right:7px;top:7px;width:30px;height:30px;font-size:20px}
#ranked-announcement>div:last-of-type{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-left:54px}
#ranked-announcement a{font-size:12px}
#online-browser .daily-panel,.ranked-panel{padding:20px;border-radius:12px;border-color:#ffffff20;background:linear-gradient(120deg,#7babee06,transparent),#1d242e}
#online-browser h3{font-size:18px;letter-spacing:-.3px;font-weight:600}
#online-browser label{font-size:12px;line-height:1.5}
#online-browser :is(input,select){min-height:42px;font-size:13px;padding:10px 12px}
#online-browser p{font-size:12px;line-height:1.7}
#online-browser .online-list-row{gap:16px;padding:16px}.online-list-row>div{min-width:0}.online-list-row button{flex-shrink:0}
#online-browser .online-forms{gap:16px;margin-top:24px}
#online-room-list:empty{display:none}
.daily-prize-preview{max-width:100%}
/* Compact, consistent dialogs and keyboard-friendly dense views. */
dialog{max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:28px;border:1px solid #56668080;border-radius:14px;scrollbar-color:#516079 #1b2028;overscroll-behavior:contain}
dialog h2,#online-browser h2,#leaderboard h2{font-size:28px;line-height:1.2;letter-spacing:-.8px;font-weight:600}
dialog .close{min-width:36px;min-height:36px;right:10px;top:10px;line-height:1}
.bindings-table td button{min-height:38px}.bindings-table th:first-child{width:36%}
.binding-footer{align-items:flex-start;gap:16px}.binding-footer p{font-size:12px}
.leaderboard-status,.leaderboard-pagination{flex-wrap:wrap}.run-card summary{min-height:76px}
#online-network{line-height:1.5;font-variant-numeric:tabular-nums;padding:6px 12px}
#arena .results{max-height:calc(100dvh - 32px);overflow:auto}.referee-panel{border-color:#56668080;background:#1b222ef5;border-radius:12px;box-shadow:0 12px 32px #0005}
/* Tournaments use the same alliance palette, with a quieter introduction. */
.tournament-page-hero{padding:28px 30px;border-radius:12px;border:1px solid var(--ui-border);background:radial-gradient(ellipse at right top,#7babee14,transparent 65%),#20252d}
.tournament-page-hero h1{margin:14px 0 16px}.tournament-page-hero p{font-size:14px;line-height:1.7;color:var(--ui-muted);margin-bottom:20px}
.tournament-page-hero>a{font-size:12px;color:#b9d4f7}.tournament-kicker{color:#aebbd0;font-size:10px;letter-spacing:1.8px}
/* Studio: editor and preview align, and the command reference stays readable. */
.auto-studio>p:not(.eyebrow){font-size:14px;color:var(--ui-muted);line-height:1.7;max-width:760px}
.auto-grid{gap:24px;margin-top:24px}.auto-grid>.event-card{margin:0}
.auto-studio label{margin:12px 0}.auto-studio .event-actions label{min-width:110px}
.auto-studio textarea{font:13px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;min-height:360px;white-space:pre;overflow:auto}
.auto-studio .event-card>label:first-child{margin-top:0}
.auto-studio #preview-log{padding:12px;border-radius:8px;background:#161d25;color:#b4c2d4;scrollbar-color:#4d5b70 #161d25}
.auto-studio #preview-log:empty{display:none}
.auto-studio #program-save,.auto-studio #program-test:not(:disabled){background:#c6d7ef;color:#192638;border-color:#c6d7ef;font-weight:600}
.auto-studio #program-solo{display:inline-flex;align-items:center;min-height:36px}
/* Moderation: overview first, then distinct, navigable work areas. */
.admin-layout{padding-top:36px}.admin-heading{align-items:flex-start}.admin-heading h1{margin-top:16px}
.admin-section-nav{display:flex;gap:8px;flex-wrap:wrap;padding:0 0 24px}
.admin-section-nav a{font-size:12px;text-decoration:none;color:#b8c9e1;padding:9px 13px;border:1px solid var(--ui-border);border-radius:8px;background:#ffffff03}
.admin-section-nav a:hover{background:#7babee10;border-color:#7babee55}
.admin-layout :is(section,h2,form){scroll-margin-top:24px}
.admin-stats{margin:8px 0 20px}.admin-stats strong{font-size:30px}.admin-stats small{font-size:11px;line-height:1.5}
.admin-layout .account-card{padding:24px}.admin-layout .account-card>p{max-width:900px}
.admin-filters{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-top:20px}
.admin-filters label{flex:1 1 180px;margin:0;min-width:0}.admin-filters label:first-child{flex:2 1 240px}
.admin-filters button{min-height:42px;flex-shrink:0}.admin-filters select{min-width:0;width:100%}
.admin-table{font-size:12px}.admin-table th,.admin-table td{padding:14px 16px}.admin-table td small{font-size:11px;line-height:1.5}
.admin-table select{min-width:100px}.admin-pagination{flex-wrap:wrap;gap:12px;margin-top:18px}
.admin-pagination span{font-size:12px}.admin-note{font-size:12px}
.ip-map-section .admin-filters label:first-child{flex:1 1 150px}.ip-map-section .admin-filters label:last-child{flex:2 1 220px}
.cosmetic-fields{gap:16px}.cosmetic-editor fieldset{border-color:var(--ui-border)}
#score-confirm button[type=submit],#ip-ban-submit{color:#ffd1cd;background:#ed7b7514;border-color:#ed7b7570}
/* Accounts, garage, workshop and simulation: shared finish, original layouts. */
.account-layout{gap:48px;padding-top:44px}.account-card h2{margin-block:24px 18px}
.auth-tabs button[aria-pressed=true]{background:#34435a;color:#f0f5fc;border-color:#7babee55}
.account-perks{gap:18px}.account-intro>p{font-size:14px}.account-card .policy-check{font-size:12px}
.cosmetics-layout{gap:36px;padding-top:36px}.garage-tabs button{min-height:42px}
.cosmetic-categories button{min-height:36px}.paint-list{gap:12px}.cosmetics-layout .cosmetics-note{font-size:12px}
.workshop{gap:20px;padding:28px var(--ui-gutter);grid-template-columns:230px minmax(0,1fr) 290px}
.workshop-panel{padding:20px;border-color:var(--ui-border)}.workshop h1{font-size:26px}
.workshop p,.workshop small{color:#a5b0c1}.workshop p{font-size:12px}.workshop-toolbar{flex-wrap:wrap;gap:8px}
.workshop-toolbar>span{flex:1 1 100px;line-height:1.5}.workshop-toolbar>button{min-height:40px}
.cloud-slots button{min-height:64px}.editor-stage{border-radius:12px;border-color:#ffffff24}
.simulation-page main{padding:32px var(--ui-gutter) 64px;gap:24px}
.simulation-page .sim-intro{padding:0 0 8px}.simulation-page .sim-intro h1{font-size:clamp(30px,3.8vw,46px);line-height:1.15;letter-spacing:-1.5px;margin:16px 0}
.simulation-page .sim-intro p{font-size:14px;line-height:1.7}.simulation-page .section-heading{flex-wrap:wrap}
.simulation-page .robot-card label{font-size:12px}.simulation-page .robot-card h3{font-size:12px}
.legal-content{max-width:860px;margin-inline:auto;padding-block:44px 64px}.legal-content h1{font-size:clamp(30px,3.4vw,42px);line-height:1.2;letter-spacing:-1px}
.legal-content h2{padding-top:16px;border-top:1px solid var(--ui-border);font-size:24px;margin-top:36px}.legal-content p{font-size:14px;line-height:1.9}
.legal-content .policy-links{gap:12px 24px;font-size:12px}
/* Tablet and phone: let content reflow rather than hide controls. */
@media(max-width:1100px){
 .home-header .setup-links{flex-basis:100%;justify-content:flex-start;margin-left:0}
 .workshop{grid-template-columns:200px minmax(0,1fr);gap:16px}.workshop>.workshop-panel:last-child{grid-column:1/-1}
 .auto-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media(max-width:850px){
 .page-header,.account-header,.home-header{padding-block:18px;gap:16px}
 .page-header .setup-links{margin-left:0;flex-basis:100%;justify-content:flex-start}
 .events-main,.auto-studio{margin-top:28px}.auto-grid{grid-template-columns:1fr}
 .event-form{grid-template-columns:repeat(2,minmax(0,1fr))}
 .account-layout{gap:28px}.cosmetics-layout{gap:24px}
 .simulation-page main{display:flex;flex-direction:column}.simulation-page .sim-intro{order:-2}
 .binding-footer{flex-wrap:wrap}
}
@media(max-width:600px){
 :root{--ui-gutter:20px}
 .site-brand small span{display:block;margin-left:0}
 .page-header .setup-links :is(a.button,button),#setup .setup-links :is(a.button,button){padding:8px 10px;font-size:12px}
 .page-header .match-counter{margin-left:auto}
 .tournament-banner{margin:12px 20px 20px;gap:10px;padding:14px 16px}.tournament-banner-actions{gap:14px;flex-wrap:wrap}
 .event-card,.admin-layout .account-card{padding:18px}.event-form{grid-template-columns:1fr;gap:8px}
 .tournament-page-hero{padding:22px}.tournament-page-hero h1{font-size:34px}
 .admin-stats{gap:10px}.admin-stats article{padding:16px}.admin-stats strong{font-size:26px}
 .admin-heading{gap:12px}.admin-filters label,.admin-filters label:first-child{flex-basis:100%}
 .admin-filters button{width:100%}.admin-pagination button{padding:9px 12px}.admin-section-nav{gap:6px}
 .account-layout{grid-template-columns:1fr;padding-top:28px}.account-intro h1,.cosmetics-layout h1{font-size:38px}
 .account-perks{margin:24px 0}.account-card{padding:22px}
 .workshop{display:flex;flex-direction:column;padding:24px 20px}.workshop>*{width:100%}.workshop-panel{padding:18px}
 .workshop-toolbar>button.primary{flex:1 1 140px}.editor-stage{height:380px}
 .auto-studio .event-actions label{flex:1 1 calc(50% - 8px);min-width:0}
 .auto-studio textarea{min-height:300px}.auto-studio .event-table table{min-width:520px}
 .auto-studio .event-actions button{flex:1 1 auto}.auto-studio>h1{font-size:34px}
 dialog{padding:24px 18px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
 dialog h2,#online-browser h2,#leaderboard h2{font-size:25px;padding-right:20px}
 #online-browser .daily-panel,.ranked-panel{padding:16px}.online-slots,.online-forms{grid-template-columns:1fr}
 .bindings-table :is(td,th){padding:8px 6px}.bindings-table td button{font-size:11px;padding:7px 5px}
 #ranked-announcement{right:12px;bottom:12px;width:min(380px,calc(100% - 24px));padding:16px}
 #ranked-announcement>img+div{flex-basis:210px}#ranked-announcement>div:last-of-type{margin-left:0}
 .ranked-cards{gap:10px}.ranked-card{padding:14px}.referee-panel{right:12px;width:min(260px,calc(100vw - 24px));max-height:50dvh}
 .simulation-page main{padding:24px 20px 40px}.simulation-page .batch-settings{grid-template-columns:1fr 1fr}
 .legal-content{padding-top:28px}.legal-content .policy-links{gap:12px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important}
 .ready-burst::after{animation:none!important}
}
/* Final state and flow refinements from the cross-page review. */
#auto-message:empty,#event-message:empty{margin:0;min-height:0}
.admin-heading{align-items:center}
#controls{width:min(800px,calc(100vw - 32px))}.bindings-table{font-size:12px}
:is(.account-tabs,.leaderboard-sections,.garage-tabs,.segmented) button[aria-pressed=false]{background:transparent;color:#a5b0c1;border-color:transparent}
:is(.account-tabs,.leaderboard-sections,.garage-tabs,.segmented) button[aria-pressed=true]{background:#35445a;color:#f1f5fd;border-color:#8aabd04d;box-shadow:inset 0 1px #ffffff0a}
#online-browser .online-preferences{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0 16px}
#online-browser .online-preferences>.daily-panel{margin:0;min-width:0;padding:18px}
#online-browser .online-preferences h3{font-size:14px;margin:0 0 12px}
#online-browser .online-preferences label{margin:0 0 10px}
#online-browser .online-preferences p{margin-bottom:0;font-size:11px}
#online-browser .online-preferences a{font-size:12px;color:#b1cef5}
#online-browser .online-tournaments{display:flex;align-items:center;flex-wrap:wrap;gap:10px 16px;margin:0 0 20px;padding:14px 18px}
#online-browser .online-tournaments h3{margin:0;margin-right:auto;font-size:15px}
#tournament-next-items:not(:empty){flex-basis:100%;font-size:12px;line-height:1.7}
#tournament-next-status:empty{display:none}
.events-main:has(#event-detail:not(:empty)) .tournament-page-hero{padding:0 0 22px;border:0;border-bottom:1px solid var(--ui-border);border-radius:0;background:none;margin-bottom:24px}
.events-main:has(#event-detail:not(:empty)) .tournament-page-hero h1{font-size:26px;letter-spacing:-.7px;margin:10px 0}
.events-main:has(#event-detail:not(:empty)) .tournament-page-hero p{margin:8px 0;font-size:13px}
.event-link .eyebrow{display:block;margin-bottom:10px}
.event-table{font-variant-numeric:tabular-nums}
@media(max-width:600px){#online-browser .online-preferences{grid-template-columns:1fr;gap:12px;margin-top:20px}.admin-heading{align-items:flex-start}.account-tabs button{min-height:42px}#controls{width:calc(100vw - 24px)}}
.segmented #red-alliance[aria-pressed=true]{background:#ed7b751e;color:#ffb1ac;border-color:#ed7b7555}
.segmented #blue-alliance[aria-pressed=true]{background:#7babee25;color:#b1d0ff;border-color:#7babee55}
#online-browser .daily-prize-preview{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 200px;column-gap:20px;align-content:center;padding:16px;border-color:#ffffff20;border-radius:10px;background:#171e27}
#online-browser .daily-prize-preview>strong{font-size:18px}
#online-browser .daily-prize-preview .daily-preview-label{color:#adc4e4;font-size:10px}
#online-browser .daily-preview-stage{grid-column:2;grid-row:1 / span 4;min-height:134px;margin:0;background:radial-gradient(ellipse at center,#334154,#171e27 75%)}
#online-browser .daily-preview-stage canvas{width:200px}
#online-browser .daily-preview-identity{padding:12px}
#online-browser .daily-preview-identity span{font-size:22px}
@media(max-width:550px){#online-browser .daily-prize-preview{grid-template-columns:minmax(0,1fr) 112px;gap:6px 12px}#online-browser .daily-preview-stage{min-height:96px}#online-browser .daily-preview-stage canvas{width:112px}#online-browser .daily-preview-identity span{font-size:16px}#online-browser .daily-preview-description{grid-column:1/-1}#online-browser .daily-prize-preview>strong{font-size:16px}}
:is(button,a.button).primary,button.online-primary{background:linear-gradient(110deg,#e2e9f5,#b9cce7);border-color:#c6d7ef;color:#1b2637;font-weight:600}
:is(button,a.button).primary:hover,button.online-primary:hover{background:linear-gradient(110deg,#f0f5fd,#d0e0f6);border-color:#dae6f7}
.entry-card .policy-links{align-items:center;gap:10px 18px}
.entry-card .policy-links a.button{padding:0;min-height:28px;border:0;background:none;font-size:11px;text-decoration:underline;color:#b9d6ff}
/* The announcement remains on setup screens, never over live field controls. */
body:has(#arena:not([hidden])) #ranked-announcement{display:none}
#ranked-announcement .ranked-announcement-links{flex-direction:row;justify-content:flex-end}
