/* The stadium is the page. Interface panels float above the same 3D world. */
html:has(.map-mode),body.map-mode{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
.map-mode{--rail:240px;--gutter:22px;--hud:#111a16e8;--hud-line:#dce8cb29}
.map-mode .game-shell{position:relative;width:100%;height:100dvh;max-width:none;padding:0;margin:0;overflow:hidden}
.map-mode .race-layout,.map-mode .arena-column{display:block;position:absolute;inset:0;margin:0;padding:0}
.map-mode .arena{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;border:0;border-radius:0}
.map-mode #race-canvas{position:absolute;inset:0;width:100%;height:100%}
.map-mode .scene-shade{background:linear-gradient(180deg,#09120db8,transparent 28%,transparent 70%,#08120e91);pointer-events:none}
.map-mode .topbar{position:absolute;z-index:10;top:0;left:0;right:0;min-height:0;height:82px;padding:0 var(--gutter);margin:0;border:0;gap:24px;pointer-events:none;background:linear-gradient(#0a141ab3,transparent)}
.map-mode .topbar>*{pointer-events:auto}
.map-mode .brand{font-size:28px;gap:12px;text-shadow:0 2px 10px #0006}
.map-mode .brand-mark{font-size:44px}
.map-mode .brand small{font-size:11px;color:#d9e3d7;letter-spacing:2.1px}
.map-mode .top-actions{gap:7px;flex-wrap:nowrap}
.hud-button,.map-mode .wallet-button,.map-menu>summary{padding:11px 15px;min-height:43px;border:1px solid var(--hud-line);background:var(--hud);backdrop-filter:blur(14px);border-radius:5px;color:#f4f5ed;font-size:14px;font-weight:500;white-space:nowrap}
.map-mode .wallet-button{background:var(--lime);color:var(--limeink);border-color:var(--lime);font-weight:600}
.hud-button:hover,.map-menu>summary:hover{border-color:#dafa4b80;background:#243427}
.map-menu{position:relative}
.map-menu>summary{list-style:none;cursor:pointer}
.map-menu>summary::-webkit-details-marker{display:none}
.map-menu[open]>summary{border-color:var(--lime)}
.map-menu>div{position:absolute;top:50px;right:0;width:188px;background:#111b17f7;border:1px solid #64715b;border-radius:6px;padding:6px;box-shadow:0 12px 32px #0005}
.map-menu button{display:block;width:100%;border:0;background:none;text-align:left;padding:12px;font-size:14px;border-radius:3px}
.map-menu button:hover{background:#2a3b2c;color:var(--lime)}
.map-mode .arena-top{left:calc(var(--rail) + var(--gutter)*2);right:var(--gutter);top:100px;gap:20px}
.map-mode .venue-title h1{font:600 36px/1.05 'Barlow Condensed',sans-serif;letter-spacing:.2px;margin:7px 0 10px}
.map-mode .venue-title .eyebrow{font-size:11px;letter-spacing:2px;color:#e1edba}
.map-mode .venue-title p{font-size:12px;letter-spacing:.4px;gap:10px}
.map-mode .venue-title p span+span{padding-left:10px}
.map-mode .race-timer strong{font-size:38px;letter-spacing:1px;text-shadow:0 2px 12px #0008}
.map-mode .race-timer>span{font-size:13px;padding:6px 10px;background:#111a16d9;border-color:var(--hud-line);margin-bottom:8px}
.map-mode .leader-strip{left:calc(var(--rail) + var(--gutter)*2);top:209px;gap:6px}
.map-mode .leader-item{background:#111a16d9;border-color:var(--hud-line);border-radius:4px;padding:5px 9px 5px 5px;font-size:13px}
.map-mode .leader-item .place{font-size:12px}
.map-mode .arena-bottom{left:calc(var(--rail) + var(--gutter)*2);right:var(--gutter);bottom:140px;display:flex;flex-direction:row;align-items:end;gap:15px}
.map-mode .race-caption{max-width:340px}
.map-mode .race-caption p{font-size:14px;margin-top:6px;color:#f2f7ed}
.map-mode .race-caption>span{font-size:11px;letter-spacing:1.7px}
.map-mode .camera-controls{padding:4px;gap:3px;border:1px solid var(--hud-line);border-radius:6px;background:#111a16df;backdrop-filter:blur(12px);flex-wrap:nowrap}
.map-mode .camera-controls button{border:0;background:none;padding:10px 12px;font-size:13px;white-space:nowrap;min-height:37px;backdrop-filter:none}
.map-mode .camera-controls button[aria-pressed=true]{background:var(--lime)}
.map-mode .runners-section{position:absolute;z-index:6;top:100px;bottom:24px;left:var(--gutter);width:var(--rail);display:flex;flex-direction:column;gap:10px;margin:0;min-height:0}
.map-mode .runners-section>.section-line{display:block;margin:0;padding:0 2px;flex-shrink:0}
.map-mode .runners-section h2{font-size:12px;font-weight:600;letter-spacing:2px;color:#f3f7eb;margin-bottom:6px}
.map-mode #selection-hint{font-size:12px;color:#d7e3cf;line-height:1.3;display:block;text-shadow:0 1px 5px #102018}
.map-mode .runner-grid{display:flex;flex-direction:column;gap:6px;overflow-y:auto;overflow-x:hidden;min-height:0;flex:1;scrollbar-width:thin;scrollbar-color:#b1c39455 transparent;padding:2px}
.map-mode .runner-card{display:grid;grid-template-columns:86px minmax(0,1fr);grid-template-rows:auto auto auto;align-content:center;column-gap:10px;row-gap:0;flex:1 0 89px;min-height:89px;width:100%;padding:9px 10px;background:#111b17e8;backdrop-filter:blur(12px);border:1px solid #a6b79635;border-radius:5px;transition:background .16s,border-color .16s}
.map-mode .runner-card:hover{background:#273e2ceb;border-color:#c4d7b788}
.map-mode .runner-card[aria-pressed=true]{border-color:var(--runner-color);background:#203624ed;box-shadow:inset 3px 0 var(--runner-color)}
.map-mode .runner-card::after{display:none}
.map-mode .runner-card-top{grid-column:2;grid-row:1;align-items:center;gap:5px;font-size:12px;line-height:1.2}
.map-mode .runner-no{color:var(--runner-color);font-size:12px}
.map-mode .runner-live-tag{font-size:10px;letter-spacing:1px;color:#aebbab}
.map-mode .runner-card .fly-preview{grid-column:1;grid-row:1/3;align-self:center;width:86px;height:auto;aspect-ratio:1.6;margin:0;object-fit:contain;border-radius:3px;background:#19261d;filter:none}
.map-mode .runner-card strong{grid-column:2;grid-row:2;font:600 25px/1.1 'Barlow Condensed',sans-serif;letter-spacing:.2px;margin:4px 0 0;align-self:start}
.map-mode .runner-card>small{display:none}
.map-mode .runner-card-bottom{grid-column:1/-1;grid-row:3;margin:8px 0 0;padding:6px 0 0;border-top:1px solid #b9c7aa20;display:flex;justify-content:space-between;flex-wrap:nowrap;font-size:11px;line-height:1.2;gap:5px}
.map-mode .runner-card-bottom b{font-size:12px;white-space:nowrap}
/* Each runner is a live camera tile, with its identity over the image. */
.map-mode .runner-card.runner-camera-card{display:block;padding:0;isolation:isolate;background:#1a281f;min-height:89px;flex-basis:89px}
.map-mode .runner-card.runner-camera-card .fly-preview{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center;margin:0;border-radius:0}
.map-mode .runner-card.runner-camera-card::after{display:block;position:absolute;inset:0;width:100%;height:100%;opacity:1;background:linear-gradient(180deg,#07120b55,transparent 40%,#07120b12 60%,#07120bba);z-index:1;pointer-events:none}
.map-mode .runner-card.runner-camera-card .runner-card-top{position:absolute;top:8px;left:8px;right:8px;z-index:2;display:flex;justify-content:space-between}
.map-mode .runner-card.runner-camera-card .runner-no{display:grid;place-items:center;min-width:25px;height:23px;padding:2px 5px;border-radius:3px;background:var(--runner-color);color:#101910;font-size:12px;font-weight:700}
.map-mode .runner-card.runner-camera-card .runner-live-tag{color:#fff;text-shadow:0 1px 4px #000;background:#07120b70;padding:4px 5px;border-radius:3px}
.map-mode .runner-card.runner-camera-card>strong{position:absolute;left:10px;right:10px;bottom:7px;z-index:2;margin:0;color:#fff;font-size:26px;line-height:1;text-shadow:0 2px 6px #0009}
.map-mode .runner-card.runner-camera-card[aria-pressed=true]{border-color:var(--runner-color);box-shadow:0 0 0 1px var(--runner-color)}
@media(max-width:700px),(max-height:500px) and (orientation:landscape){
 .map-mode .runner-card.runner-camera-card{min-height:66px;flex-basis:66px}
 .map-mode .runner-card.runner-camera-card .runner-card-top{top:5px;left:5px;right:5px}
 .map-mode .runner-card.runner-camera-card .runner-no{min-width:22px;height:20px;font-size:11px}
 .map-mode .runner-card.runner-camera-card>strong{left:7px;bottom:5px;font-size:22px}
}
.rail-details{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;width:100%;border:1px solid var(--hud-line);border-radius:5px;background:var(--hud);padding:12px 14px;font-size:13px;color:#dae6d4;backdrop-filter:blur(10px)}
.rail-details:hover{color:var(--lime);border-color:var(--lime)}
.race-dock{position:absolute;z-index:7;bottom:36px;left:calc(var(--rail) + var(--gutter)*2);right:var(--gutter);display:flex;align-items:center;gap:22px;min-height:86px;padding:14px 16px 14px 22px;background:#101b16f2;border:1px solid #b4c7a440;border-radius:7px;backdrop-filter:blur(18px);box-shadow:0 6px 35px #07130d40}
.dock-selection{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.dock-eyebrow{font-size:10px;letter-spacing:1.8px;color:#a7b99f}
.dock-selection>strong{font:600 25px/1 'Barlow Condensed',sans-serif;color:var(--dock-color,var(--lime));letter-spacing:.4px}
.dock-selection>button{width:fit-content;background:none;border:0;padding:0;font-size:12px;color:#b5c4ac;text-align:left}
.dock-ticket{display:grid;grid-template-columns:1fr auto;column-gap:16px;row-gap:3px;border:0;border-left:1px solid #b4c7a433;background:none;text-align:left;padding:3px 0 3px 22px;min-width:164px}
.dock-ticket>span{font-size:12px;color:#b5c4ac}
.dock-ticket>strong{font-size:18px;font-weight:500;grid-column:1;grid-row:2}
.dock-ticket>small{grid-column:2;grid-row:1/3;align-self:center;font-size:12px;color:var(--lime)}
.map-mode .race-dock .start-button{width:220px;flex-shrink:0;min-height:54px;padding:15px 17px;margin:0;box-shadow:none;font-size:16px;gap:12px}
.map-mode .race-dock .start-button:disabled{opacity:.68}
.map-status{position:absolute;bottom:12px;left:calc(var(--rail) + var(--gutter)*2);right:var(--gutter);z-index:5;display:flex;justify-content:space-between;gap:16px;pointer-events:none;color:#d5e2d0;font-size:11px;text-shadow:0 1px 5px #000}
.map-mode #form-error{position:absolute;z-index:12;left:calc(var(--rail) + var(--gutter)*2);right:var(--gutter);bottom:128px;padding:13px 16px;background:#411b19f2;border:1px solid #ffa19388;border-radius:5px;box-shadow:0 4px 20px #0004;font-size:14px}
.map-mode .photo-banner{left:calc(50% + var(--rail)/2);top:49%}
.map-mode .ad-preview-status{top:auto;bottom:235px;left:calc(50% + var(--rail)/2)}
.map-mode .world-runner-label{z-index:1}
.map-mode .food-source-label{font-size:11px}
.map-panel{position:fixed;inset:86px 22px 36px auto;margin:0;width:394px;max-width:calc(100vw - 28px);height:calc(100dvh - 122px);max-height:calc(100dvh - 122px);border:1px solid #657b5880;border-radius:8px;background:#111c16f7;padding:0;color:var(--text);box-shadow:0 16px 80px #020b0666;overflow:hidden}
.map-panel[open]{display:flex;flex-direction:column}
.map-panel::backdrop{background:#06120a30;backdrop-filter:none}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 17px;border-bottom:1px solid #83966d3d;min-height:62px;flex-shrink:0;font-size:12px;font-weight:600;letter-spacing:1.8px}
.panel-close{border:1px solid #8a9e7533;background:#263627;border-radius:4px;width:34px;height:34px;font-size:24px;line-height:1;flex-shrink:0}
.panel-close:hover{border-color:var(--lime)}
.panel-tabs{display:flex;gap:5px}
.panel-tabs button{padding:9px 10px;border:0;background:transparent;font-size:14px;color:#b4c3a9;border-radius:4px}
.panel-tabs button[aria-pressed=true]{background:#344729;color:#e8f5d9}
.panel-scroll{padding:20px;overflow:auto;overscroll-behavior:contain;min-height:0;scrollbar-width:thin;scrollbar-color:#a9c09055 transparent}
.map-mode .map-panel .race-desk{display:block;border:0;border-radius:0;background:none;padding:20px}
.map-mode .selected-profile{display:block;padding:13px 0 0;margin:0}
.map-mode .selected-profile .portrait{width:100%;max-height:none;aspect-ratio:1.6;height:auto;background:#1c2b1e}
.map-mode .profile-title{padding:17px 0 12px}
.map-mode .selected-profile h2{font-size:36px}
.map-mode .profile-form,.map-mode .profile-attributes{gap:8px}
.map-mode .ticket-heading{margin-top:0;padding-top:0;border-top:0}
.map-mode .balance-line{margin:0 0 18px}
.map-mode .ticket-math{margin:22px 0}
.map-mode #ticket-done{width:100%;margin:0}
.map-panel .environment-panel,.map-panel .usdg-pool,.map-panel .ad-market{background:none;border:0;margin:0;padding:0}
.map-panel .environment-controls{gap:18px}
.map-panel .environment-heading{display:block}
.map-panel .environment-heading>strong{display:none}
.map-panel .environment-heading>span{line-height:1.5}
.conditions-dialog{bottom:auto;width:420px;height:auto;max-height:calc(100dvh - 120px)}
.screens-dialog{width:740px}
.pool-dialog{width:610px}
.map-mode .screens-dialog .ad-market-heading h2{font-size:36px}
.map-mode .screens-dialog .ad-market-intro{align-items:flex-start;flex-direction:column;gap:14px}
.map-mode .screens-dialog .ad-screen-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.map-mode .ad-market-footer{flex-wrap:wrap;font-size:13px}
.map-mode .ad-market-footer>span{flex-basis:100%}
.map-mode .loading-screen{background:#111d18}
.map-mode .countdown{padding-left:var(--rail)}
@media(min-width:1600px){.map-mode{--rail:266px;--gutter:28px}.map-mode .runner-card{grid-template-columns:100px minmax(0,1fr);padding:11px 13px}.map-mode .runner-card .fly-preview{width:100px}.map-mode .runner-card strong{font-size:28px}.map-mode .runner-card-bottom{font-size:12px}.map-mode .runner-card-top{font-size:13px}.map-mode .race-dock{max-width:980px;margin-left:auto}.map-mode .arena-top{top:108px}}
@media(max-width:1050px){.map-mode{--rail:206px;--gutter:16px}.map-mode .brand{font-size:25px}.map-mode .brand small{font-size:10px;letter-spacing:1.3px}.map-mode .topbar{gap:14px}.hud-button,.map-mode .wallet-button,.map-menu>summary{padding:10px 11px}.map-mode .runner-card{grid-template-columns:72px minmax(0,1fr);column-gap:8px;padding:8px}.map-mode .runner-card .fly-preview{width:72px}.map-mode .runner-card strong{font-size:23px}.race-dock{gap:15px;padding:13px 14px;bottom:32px}.dock-ticket{min-width:112px;padding-left:15px;display:flex;flex-direction:column;gap:2px}.dock-ticket>small{display:none}.map-mode .race-dock .start-button{width:180px;font-size:14px}.map-mode .arena-bottom{bottom:140px;align-items:start;flex-direction:column;gap:12px}.map-mode .race-caption{max-width:100%}.map-mode .map-status{font-size:10px}.map-mode #model-status{max-width:48%;text-align:right}.map-mode .camera-controls button{padding:9px 11px}}
@media(max-width:700px){
 .map-mode{--rail:126px;--gutter:12px}.map-mode .topbar{height:70px;gap:10px;padding:0 12px}.map-mode .brand{font-size:22px;gap:8px}.map-mode .brand-mark{font-size:32px;letter-spacing:-5px}.map-mode .brand small{display:none}.map-mode .top-actions{gap:5px}.hud-button,.map-mode .wallet-button,.map-menu>summary{font-size:12px;padding:9px;min-height:36px}.map-mode #environment-button{display:none}
 .map-mode .runners-section{top:82px;bottom:128px;gap:7px}.map-mode .runners-section h2{font-size:10px;letter-spacing:1.4px;margin-bottom:3px}.map-mode #selection-hint{font-size:10px;line-height:1.3}.map-mode .runner-grid{gap:5px;padding:1px}.map-mode .runner-card{grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:7px;padding:6px;flex:1 0 66px;min-height:66px}.map-mode .runner-card .fly-preview{width:100%;height:auto;grid-column:1;grid-row:1/3;aspect-ratio:1.6}.map-mode .runner-card-top{grid-column:2;grid-row:1;font-size:10px}.map-mode .runner-live-tag{display:none}.map-mode .runner-card strong{font-size:20px;grid-column:2;grid-row:2;margin:2px 0 0}.map-mode .runner-card-bottom{margin-top:3px;padding-top:3px;font-size:10px;line-height:1.2}.map-mode .runner-card-bottom>span{display:none}.map-mode .runner-card-bottom b{font-size:11px}.map-mode .runner-no{font-size:11px}.rail-details{font-size:11px;padding:10px 8px}
 .map-mode .arena-top{top:84px;gap:10px;display:block}.map-mode .venue-title .eyebrow{font-size:9px;letter-spacing:1.4px}.map-mode .venue-title h1{font-size:29px;margin:5px 0 7px}.map-mode .venue-title p{font-size:10px;gap:6px;line-height:1.5}.map-mode .venue-title p span+span{padding-left:6px}.map-mode .venue-title p span:last-child{display:none}.map-mode .race-timer{text-align:left;margin-top:13px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.map-mode .race-timer>span{margin:0;padding:5px 7px;font-size:11px}.map-mode .race-timer strong{font-size:27px}.map-mode .leader-strip{top:239px;gap:4px;flex-direction:column}.map-mode .leader-item{width:fit-content;font-size:11px;padding:4px 7px 4px 4px;gap:5px}.map-mode .leader-item b{width:18px;height:18px;font-size:10px}.map-mode .leader-item .place{display:inline;font-size:10px}
 .map-mode .arena-bottom{bottom:140px;gap:10px}.map-mode .race-caption p{font-size:12px;line-height:1.4}.map-mode .race-caption>span{display:none}.map-mode .camera-controls{max-width:100%;flex-wrap:wrap;padding:3px;gap:2px}.map-mode .camera-controls button{font-size:11px;padding:8px;min-height:32px}.race-dock{left:12px;right:12px;bottom:24px;min-height:86px;gap:12px;padding:12px}.dock-selection>strong{font-size:23px}.dock-selection>button{font-size:10px;max-width:125px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-eyebrow{font-size:9px;letter-spacing:1.2px}.dock-ticket{min-width:64px;padding-left:12px}.dock-ticket>span{font-size:10px;max-width:60px;line-height:1.2}.dock-ticket>strong{font-size:16px}.map-mode .race-dock .start-button{width:136px;font-size:13px;padding:13px 11px;min-height:50px}.map-mode .start-button>span:last-child{font-size:20px}.map-status{bottom:6px;left:12px;right:12px;font-size:9px}.map-mode #model-status{display:none}.map-mode #form-error{left:12px;right:12px;bottom:121px}.map-mode .photo-banner{left:calc(50% + 50px);min-width:190px;padding:18px 20px}.map-mode .photo-banner strong{font-size:22px}.map-mode .ad-preview-status{left:calc(50% + 50px);bottom:232px;max-width:calc(100% - 155px)}
 .map-panel{inset:76px 12px 120px auto;width:min(390px,calc(100vw - 24px))}.conditions-dialog{bottom:auto;max-height:calc(100dvh - 196px)}.screens-dialog,.pool-dialog{width:calc(100vw - 24px)}.panel-heading{padding:12px 14px}.panel-scroll,.map-mode .map-panel .race-desk{padding:17px}.map-mode .screens-dialog .ad-screen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-mode .screens-dialog .ad-market-heading h2{font-size:30px}.map-mode .pool-inputs{grid-template-columns:1fr 1fr}.map-mode .pool-inputs label:first-child{grid-column:1/-1}.map-mode .pool-summary strong{font-size:14px}.map-mode .pool-summary{gap:10px}.map-mode .countdown{font-size:100px}
}
@media(max-width:390px){.map-mode #screens-button{font-size:0;padding:9px 10px}.map-mode #screens-button::after{content:'Ads';font-size:12px}.map-mode .brand{font-size:20px}.map-mode .brand-mark{font-size:29px}.map-mode .top-actions{gap:4px}.map-mode .wallet-button{font-size:11px}.map-mode .race-dock .start-button{width:119px}.race-dock{gap:9px;padding:10px}.dock-ticket{padding-left:9px}.map-mode .camera-controls button{padding:7px;font-size:10px}}
@media(max-height:620px) and (min-width:701px){.map-mode .runners-section{top:85px;bottom:20px}.map-mode .arena-top{top:85px}.map-mode .venue-title h1{font-size:29px}.map-mode .leader-strip{top:185px}.map-mode .arena-bottom{bottom:125px}.map-mode .race-caption{display:none}.map-mode .runners-section>.section-line{display:none}.map-mode .runner-card{flex-basis:78px;min-height:78px}.map-mode .runner-card-bottom{margin-top:5px;padding-top:4px}.map-panel{inset:75px 18px 20px auto}.conditions-dialog{bottom:auto}}

/* Phone controls stay tappable while the stadium uses the available viewport. */
@media(max-width:700px){
 .map-mode .topbar{padding-top:env(safe-area-inset-top);height:calc(70px + env(safe-area-inset-top))}
 .map-mode .runners-section{top:calc(82px + env(safe-area-inset-top));bottom:calc(138px + env(safe-area-inset-bottom))}
 .map-mode .arena-top{top:calc(84px + env(safe-area-inset-top))}
 .map-mode .arena-bottom{bottom:calc(148px + env(safe-area-inset-bottom));width:calc(100% - var(--rail) - var(--gutter)*3)}
 .map-mode .camera-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:4px}
 .map-mode .camera-controls button{min-height:44px;padding:6px 3px;font-size:10px}
 .map-mode .race-dock{bottom:calc(24px + env(safe-area-inset-bottom));min-height:96px}
 .map-mode .dock-eyebrow{display:none}
 .map-mode .dock-selection>button{min-height:44px;padding:8px 0;text-align:left}
 .map-mode .map-status{bottom:calc(6px + env(safe-area-inset-bottom))}
 .map-mode .hud-button,.map-mode .wallet-button,.map-mode .map-menu>summary,.map-mode .rail-details{min-height:44px}
 .map-mode .map-panel{top:calc(76px + env(safe-area-inset-top));bottom:calc(132px + env(safe-area-inset-bottom));height:calc(100dvh - 208px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 208px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
 .map-mode .conditions-dialog{bottom:auto;height:auto;max-height:calc(100dvh - 208px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
 .map-mode input,.map-mode select{font-size:16px}
}
@media(max-height:500px) and (orientation:landscape){
 .map-mode{--rail:126px;--gutter:12px}
 .map-mode .topbar{height:58px;padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}
 .map-mode .brand small,.map-mode .venue-title .eyebrow,.map-mode .venue-title p,.map-mode .leader-strip,.map-mode .race-caption,.map-mode .runners-section>.section-line{display:none}
 .map-mode .brand{font-size:22px}.map-mode .brand-mark{font-size:32px}
 .map-mode .runners-section{top:66px;bottom:12px;gap:4px}
 .map-mode .runner-card{min-height:66px;flex-basis:66px;grid-template-columns:40px minmax(0,1fr);gap:5px;padding:5px}
 .map-mode .runner-card .fly-preview{width:40px}.map-mode .runner-card strong{font-size:20px}.map-mode .runner-card-bottom{margin-top:2px;padding-top:2px}
 .map-mode .runner-card-bottom>span,.map-mode .runner-live-tag{display:none}
 .map-mode .arena-top{top:66px;display:flex;align-items:center;gap:16px}
 .map-mode .venue-title h1{font-size:25px;margin:0}.map-mode .race-timer{display:flex;align-items:center;gap:8px;margin:0}.map-mode .race-timer>span{margin:0}.map-mode .race-timer strong{font-size:25px}
 .map-mode .arena-bottom{bottom:114px;width:auto;left:calc(var(--rail) + var(--gutter)*2);right:12px}
 .map-mode .camera-controls{display:flex;flex-wrap:nowrap;width:auto;gap:4px}.map-mode .camera-controls button{min-height:44px;padding:6px 10px;font-size:11px}
 .map-mode .race-dock{left:calc(var(--rail) + var(--gutter)*2);bottom:12px;min-height:88px;gap:8px;padding:9px}
 .map-mode .race-dock .start-button{width:130px}.map-mode .dock-ticket{min-width:64px;padding-left:8px}.map-mode .dock-eyebrow,.map-mode .map-status{display:none}
 .map-mode .dock-selection>button{min-height:36px}
 .map-mode .map-panel{top:62px;bottom:12px;height:calc(100dvh - 74px);max-height:calc(100dvh - 74px)}.map-mode .conditions-dialog{height:auto;max-height:calc(100dvh - 74px)}
}

@media(max-height:500px) and (orientation:landscape) and (max-width:620px){
 .map-mode .camera-controls{display:flex;width:100%}
 .map-mode .camera-controls button{flex:1 1 0;min-width:0;font-size:10px;padding:6px 2px}
}
/* An in-page alternative for browsers without native fullscreen. */
.map-mode.expanded-view .topbar,.map-mode.expanded-view .runners-section,.map-mode.expanded-view .race-dock,.map-mode.expanded-view .map-status,.map-mode.expanded-view .race-caption{display:none}
.map-mode.expanded-view .arena-top{left:20px;top:20px}
.map-mode.expanded-view .leader-strip{left:20px;top:140px}
.map-mode.expanded-view .arena-bottom{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;align-items:center}
.map-mode.expanded-view .camera-controls{width:min(100%,520px)}
.map-mode.expanded-view .countdown{padding-left:0}
.map-mode.expanded-view .photo-banner{left:50%}

.ad-upload{margin:0 0 17px;font-size:14px}
.ad-upload input[hidden]{display:none}
.ad-upload #ad-file-button{display:block;margin:12px 0;min-height:44px}

/* The X account sits with the other stadium controls. It carries a mark rather than a
   word, so it is square instead of letter-width, and its label lives in aria-label. */
.x-link{display:inline-flex;align-items:center;justify-content:center;padding:11px;width:43px;text-decoration:none}
.x-link svg{display:block}
