:root{color-scheme:dark;--cream:#fff1cf;--gold:#e8bd70;--panel:#102832e8}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#0d2c3c;color:var(--cream);font-family:Arial,sans-serif}button,a{font:inherit}#game{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}header{position:fixed;top:0;left:0;right:0;z-index:8;display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(#081b25dd,#081b2588,transparent)}header a{color:var(--cream);text-decoration:none}header b{margin-right:auto;letter-spacing:.08em}header small{display:block;font-size:9px;color:var(--gold)}button{border:1px solid #ffffff55;background:#183844dd;color:var(--cream);border-radius:6px;padding:9px 12px}.hud{position:fixed;left:18px;top:72px;z-index:7;width:280px;padding:13px 15px;background:var(--panel);border:1px solid #ffffff30;border-radius:9px;backdrop-filter:blur(8px)}.hud .speed{font-size:42px;font-weight:900;line-height:.9}.hud .speed small{font-size:12px;color:var(--gold)}.hud .row{display:flex;justify-content:space-between;margin-top:9px;font-size:11px}.jetbar{height:7px;margin-top:9px;border:1px solid #ffffff33;background:#071820}.jetbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#58bbff,#ffe078,#ff6a2c)}#message{position:fixed;top:78px;right:18px;z-index:8;max-width:330px;background:#102832e8;border:1px solid #ffffff30;border-radius:8px;padding:11px 14px;font-size:12px}#overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#061923c2;backdrop-filter:blur(8px)}#overlay[hidden]{display:none}#overlay section{width:min(560px,92vw);padding:28px;background:#132f38;border:1px solid #ebc77a77;border-radius:14px;box-shadow:0 20px 80px #0008}#overlay h1{font-size:42px;line-height:.95;margin:8px 0 15px}#overlay p{line-height:1.55;color:#d9e1d9}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--gold);font-weight:800}.controls{font-size:12px;border-top:1px solid #ffffff24;padding-top:12px}.primary{background:var(--gold);color:#17242a;border-color:var(--gold);font-weight:900}#touch{display:none;position:fixed;inset:auto 0 14px 0;z-index:12;justify-content:space-between;align-items:end;padding:0 max(18px,env(safe-area-inset-right)) 0 max(18px,env(safe-area-inset-left));pointer-events:none}#stick{width:210px;height:210px;border-radius:50%;border:2px solid #c8e0d499;background:#163b4788;position:relative;pointer-events:auto;touch-action:none}#thumb{position:absolute;left:50%;top:50%;width:68px;height:68px;border-radius:50%;background:#d9bd7de8;border:2px solid #fff1c9;transform:translate(-50%,-50%)}.buttons{display:grid;gap:12px;pointer-events:auto}.buttons button{width:112px;height:82px;font-weight:900;font-size:15px}.buttons #jetButton{background:#7a351ddd;border-color:#ff9b55}.buttons button.held{transform:scale(.97);filter:brightness(1.3)}.keyboard{position:fixed;bottom:10px;left:50%;transform:translateX(-50%);z-index:7;font-size:10px;text-shadow:0 2px 5px #000;white-space:nowrap}@media(pointer:coarse),(max-width:800px){#touch{display:flex}.keyboard{display:none}.hud{top:64px;left:10px;width:230px}.hud .speed{font-size:32px}#message{top:64px;right:10px;max-width:38vw}header{gap:5px;padding:7px}header b{font-size:11px}header button{padding:7px;font-size:10px}#stick{width:190px;height:190px}.buttons button{width:100px;height:72px}}@media(max-height:520px){#stick{width:170px;height:170px}.buttons button{height:62px}.hud{width:210px;padding:9px}.hud .row{margin-top:5px}}

/* V122 temporary Express handling/fleet tuner. */
#tuner{position:fixed;right:18px;top:126px;z-index:18;width:min(390px,calc(100vw - 36px));max-height:calc(100vh - 150px);overflow:auto;padding:12px;background:#0c2029f2;border:1px solid #e8bd7088;border-radius:10px;box-shadow:0 18px 60px #0008;backdrop-filter:blur(10px)}#tuner[hidden]{display:none}.tuneHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;color:var(--gold);font-size:11px;letter-spacing:.12em}.tuneHead button{padding:3px 8px;font-size:18px}.tuneRow{display:grid;grid-template-columns:118px 1fr 62px;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #ffffff12}.tuneRow label{font-size:10px}.tuneRow input{width:100%;accent-color:var(--gold)}.tuneRow output{font:700 11px/1 monospace;text-align:right;color:#fff}.tuneActions{border-top:1px solid #ffffff20;margin-top:5px;padding-top:9px;display:grid;gap:7px}.tuneActions button{font-size:10px}.tuneActions small{font-size:9px;color:#aab7b6;line-height:1.35}@media(pointer:coarse),(max-width:800px){#tuner{right:8px;top:104px;width:min(360px,calc(100vw - 16px));max-height:calc(100vh - 220px)}.tuneRow{grid-template-columns:105px 1fr 56px}}

/* V127 race prototype HUD and course readability. */
#raceHud{position:fixed;right:18px;left:auto;top:88px;z-index:12;width:310px;padding:10px 14px;background:#102832dd;border:1px solid #e8bd7066;border-radius:8px;backdrop-filter:blur(8px)}#raceHud[hidden]{display:none}#raceHud>b{display:block;color:var(--gold);letter-spacing:.12em;font-size:10px;margin-bottom:7px}#raceHud>div{display:flex;justify-content:space-between;font:800 11px/1.7 Arial}#raceHud #raceTime{font-variant-numeric:tabular-nums;color:#fff}#raceHud #raceBest{font-size:9px;color:#cbd7d4}#raceButton.racing{background:#7d351e;border-color:#ff9b55}.countdownFlash{animation:countFlash .33s ease-out}@keyframes countFlash{from{transform:scale(1.12);filter:brightness(1.7)}to{transform:none;filter:none}}
@media(pointer:coarse),(max-width:800px){#raceHud{right:10px;left:auto;top:78px;width:240px;padding:8px 10px}}


/* V128 ballistic-speed course readability. */
#navMapWrap{position:fixed;left:18px;bottom:30px;z-index:7;width:220px;padding:7px 7px 19px;background:#071f2add;border:1px solid #ffffff28;border-radius:9px;backdrop-filter:blur(7px)}#navMap{width:100%;height:auto;display:block;border-radius:5px}#navMapWrap>span,#raceMapWrap>span{position:absolute;left:10px;bottom:5px;font:800 8px/1 Arial;letter-spacing:.14em;color:#d7dfd7}
#raceMapWrap{position:fixed;left:252px;bottom:30px;z-index:7;width:360px;padding:8px 8px 21px;background:#071f2aee;border:2px solid #5fe68188;border-radius:10px;box-shadow:0 8px 30px #0008;backdrop-filter:blur(8px)}#raceMapWrap[hidden]{display:none}#raceMap{display:block;width:100%;height:auto;background:#061923;border-radius:6px}
#nextGateHud{position:fixed;left:50%;top:78px;transform:translateX(-50%);z-index:9;display:flex;align-items:center;gap:13px;min-width:245px;padding:9px 15px;background:#071f2adf;border:2px solid #55e579aa;border-radius:10px;box-shadow:0 10px 35px #0008;text-shadow:0 2px 6px #000}#nextGateHud[hidden]{display:none}#nextTurnArrow{width:52px;text-align:center;font:900 48px/.9 Arial;color:#62f17d}#nextGateHud div{display:grid;grid-template-columns:auto auto;column-gap:12px;align-items:baseline}#nextGateHud b{grid-column:1/-1;font-size:9px;letter-spacing:.16em;color:#aeeab9}#nextGateDistance{font:900 25px/1 Arial;color:#fff;font-variant-numeric:tabular-nums}#nextGateHint{font:800 9px/1 Arial;color:#f6cf78;letter-spacing:.08em}
@media(pointer:coarse),(max-width:800px){#navMapWrap{left:8px;bottom:218px;width:150px;padding:5px 5px 16px}#raceMapWrap{left:165px;bottom:218px;width:210px;padding:5px 5px 16px}#nextGateHud{top:62px;min-width:190px;padding:7px 10px;gap:7px}#nextTurnArrow{width:38px;font-size:37px}#nextGateDistance{font-size:20px}#nextGateHud small{display:none}}

/* V130: race map replaces world nav while racing; composer access lives with race controls. */
.composerLink{display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;border:1px solid #ffffff46;border-radius:7px;background:#102832cc;color:#fff0cc;text-decoration:none;font:700 14px Arial;white-space:nowrap}.composerLink:hover{background:#1d3f4d}
#raceMapWrap{left:18px!important;bottom:30px!important;width:360px!important}
@media(pointer:coarse),(max-width:800px){#raceMapWrap{left:8px!important;bottom:218px!important;width:300px!important}.composerLink{font-size:11px;padding:8px 9px}}

/* V134 waypoint-racing reset: giant progressive posts, relative bearing arrow, one map at a time. */
#nextGateHud{min-width:300px;border-color:#55e579cc}
#nextTurnArrow{width:68px;height:58px;display:grid;place-items:center;perspective:180px}
#nextTurnArrow i{display:block;font-style:normal;font:900 58px/.8 Arial;color:#61ff7d;text-shadow:0 0 12px #4aff78,0 3px 3px #000;transform:rotate(var(--bearing,0rad)) rotateX(18deg);transform-origin:center;transition:transform .08s linear}
#nextGateTitle{color:#afffba!important}#nextGateHint{font-size:11px!important}
#raceMapWrap{left:18px!important;bottom:30px!important;width:280px!important;padding-bottom:20px!important}
#raceMap{aspect-ratio:4/5}
@media(pointer:coarse),(max-width:800px){#nextGateHud{min-width:220px}#nextTurnArrow{width:48px;height:44px}#nextTurnArrow i{font-size:42px}#raceMapWrap{left:8px!important;bottom:218px!important;width:210px!important}}

#raceHud #raceCurrent{font-size:9px;color:#fff1cf}
#raceHud #raceLast{font-size:9px;color:#9fd8dd}
#raceResults{position:fixed;inset:0;z-index:18;display:grid;place-items:center;background:#04141b99;backdrop-filter:blur(4px)}
#raceResults[hidden]{display:none}
.resultsCard{width:min(520px,92vw);padding:22px 24px;background:#0b2630f2;border:2px solid #e8bd70aa;border-radius:14px;box-shadow:0 24px 90px #000a;text-align:center}
.resultsCard>small{display:block;color:var(--gold);font:900 10px/1.2 Arial;letter-spacing:.18em}
.resultsCard h2{margin:5px 0 0;font:900 30px/1 Arial;letter-spacing:.05em}
#resultsPlace{display:block;margin:10px 0 12px;font:900 64px/.9 Arial;color:#fff1cf;text-shadow:0 4px 20px #000}
.resultStats{display:flex;justify-content:center;gap:28px;padding:10px 0 14px;border-top:1px solid #ffffff22;border-bottom:1px solid #ffffff22;font:800 10px/1.3 Arial;color:#9fb7b5}
.resultStats span{display:grid;gap:3px}.resultStats b{font-size:15px;color:#fff}
#resultsRows{margin:12px 0;display:grid;gap:5px}
.resultRow{display:grid;grid-template-columns:56px 1fr 105px;align-items:center;padding:7px 10px;border-radius:6px;background:#ffffff0b;text-align:left;font:800 12px/1 Arial}
.resultRow b{color:#e8bd70}.resultRow span:last-child{text-align:right;font-variant-numeric:tabular-nums;color:#dce8e5}.resultRow.you{background:#55e57920;border:1px solid #55e57955}
.resultActions{display:flex;justify-content:center;gap:10px;margin-top:13px}
@media(pointer:coarse),(max-width:800px){.resultsCard{width:min(430px,92vw);padding:16px}.resultsCard h2{font-size:24px}#resultsPlace{font-size:50px}.resultRow{grid-template-columns:48px 1fr 92px}}

#raceHud{box-shadow:0 12px 36px #0007}
#raceHud>div{gap:14px}
#raceHud #racePos,#raceHud #raceLap{font-size:13px;color:#fff1cf}

#missionHud{position:fixed;left:50%;top:88px;transform:translateX(-50%);z-index:12;min-width:260px;padding:9px 14px;border:1px solid #ff655a88;border-radius:8px;background:#071d27dd;text-align:center;pointer-events:none}#missionHud b,#missionHud span,#missionHud strong,#missionHud small{display:block}#missionHud b{font:900 12px Arial;color:#ff6b61;letter-spacing:.08em}#missionHud span{margin-top:3px;font:800 12px Arial;color:#fff1cf}#missionHud strong{font:900 26px Arial;color:#fff}#missionHud small{font:800 8px Arial;color:#9fb7b5;letter-spacing:.12em}
#missionPanel{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#02101799;backdrop-filter:blur(3px)}#missionPanel[hidden]{display:none}.missionCard{width:min(420px,90vw);display:grid;gap:9px;padding:20px;background:#0b2630f5;border:2px solid #e8bd70aa;border-radius:12px}.missionCard>b{text-align:center;font:900 18px Arial;color:#fff1cf}.missionCard small{color:#aac0be;font:700 11px/1.35 Arial}.missionCard button{min-height:42px}
#raceMapWrap canvas{image-rendering:auto}

#courseSelect{max-width:190px;background:#0b2630;color:#fff1cf;border:1px solid #ffffff33;border-radius:6px;padding:6px 8px;font:800 11px Arial}

/* V165: intrinsic forward-zero race arrow; no track package should alter this. */
#nextTurnArrow i{font-family:Arial,sans-serif;letter-spacing:0}

#raceHud{width:360px;padding:14px 18px}
#raceHud>b{font-size:14px;margin-bottom:10px}
#raceHud>div{font-size:15px;line-height:1.75}
#raceHud #racePos,#raceHud #raceLap{font-size:18px}
#raceHud #raceTime{font-size:16px}
#raceHud #raceCurrent,#raceHud #raceLast,#raceHud #raceBest{font-size:13px}
#raceHud .raceGapRow{display:block;text-align:center;border-top:1px solid #ffffff22;border-bottom:1px solid #ffffff22;margin:5px 0 6px;padding:3px 0}
#raceHud #raceGap{font-size:20px;letter-spacing:.06em;color:var(--gold);font-variant-numeric:tabular-nums}
@media(pointer:coarse),(max-width:800px){
 #raceHud{width:290px;padding:11px 13px}
 #raceHud>b{font-size:12px}
 #raceHud>div{font-size:13px}
 #raceHud #racePos,#raceHud #raceLap{font-size:16px}
 #raceHud #raceGap{font-size:17px}
 #raceHud #raceTime{font-size:14px}
 #raceHud #raceCurrent,#raceHud #raceLast,#raceHud #raceBest{font-size:11px}
}


/* Air Freight van experience ported directly from Braaptopia Air Service. */
.air-freight-van-hud{position:fixed;top:88px;left:18px;z-index:12;padding:14px 18px;border-radius:8px;background:#142d36dd;border:1px solid #b8bbab88;width:max-content;max-width:min(300px,44vw);color:#fff2d3;font:15px/1.5 system-ui,sans-serif;pointer-events:none}
.air-freight-van-hud[hidden]{display:none}
.air-freight-van-hud p{margin:0 0 10px;font-weight:850;max-width:270px}
.air-freight-van-hud .instruments{display:flex;gap:16px;align-items:center}
.air-freight-van-hud .instruments span{font-size:9px;color:#d5dfd8}
.air-freight-van-hud .instruments b{font-size:22px;color:#fff0cb;display:block;line-height:1.2}
.air-freight-van-hud .guide{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12px;min-width:0}
.air-freight-van-hud .guide #vanDirection{display:inline-block;font-size:26px;line-height:1;color:#91e8c4;flex-shrink:0}
.air-freight-van-hud .guide #vanTargetName{overflow-wrap:anywhere}
body[data-hot-wings="driving"]>.hud{display:none}
body[data-hot-wings="driving"] #missionHud{display:none}
@media(pointer:coarse),(max-width:800px){
 .air-freight-van-hud{top:70px;left:10px;right:auto;max-width:44vw;padding:10px}
 .air-freight-van-hud p{font-size:11px;margin-bottom:8px}
 .air-freight-van-hud .instruments{gap:10px}
 .air-freight-van-hud .instruments b{font-size:16px}
 .air-freight-van-hud .guide{gap:5px;font-size:10px;margin-top:8px}
 .air-freight-van-hud .guide #vanDirection{font-size:20px}
}

/* V221 Express championship progression. */
#champPanel{position:fixed;inset:0;z-index:22;display:grid;place-items:center;background:#021017aa;backdrop-filter:blur(5px)}#champPanel[hidden]{display:none}.champCard{width:min(860px,94vw);max-height:90vh;overflow:auto;padding:22px;background:#0b2630f7;border:2px solid #e8bd70aa;border-radius:14px;box-shadow:0 24px 90px #000b}.champCard>small{display:block;text-align:center;color:var(--gold);font:900 9px Arial;letter-spacing:.18em}.champCard h2{text-align:center;margin:5px 0 14px;font:900 28px/1 Arial}.champSummary{display:grid;gap:4px;text-align:center;padding:12px;border:1px solid #ffffff22;border-radius:8px;background:#ffffff08}.champSummary span{font:800 10px Arial;color:#a9bebc;letter-spacing:.08em}.champSummary strong{font:900 20px Arial;color:#fff1cf}#champStart{display:block;margin:12px auto;min-width:240px}.champColumns{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(330px,1.2fr);gap:14px}.champColumns>div{min-width:0}.champColumns>div>b{display:block;margin-bottom:6px;color:var(--gold);font:900 10px Arial;letter-spacing:.12em}.champStanding,.champRound{display:grid;align-items:center;gap:8px;padding:7px 9px;border-top:1px solid #ffffff14;font:800 11px Arial}.champStanding{grid-template-columns:34px 1fr 46px 42px}.champStanding.you{background:#55e57918}.champStanding span:last-child,.champStanding b:last-child{text-align:right}.champRound{grid-template-columns:34px 1fr 115px}.champRound.done{opacity:.55}.champRound.next{background:#e8bd7018;border:1px solid #e8bd7055}.champRound small{text-align:right;color:#9fb7b5}.champActions{display:flex;justify-content:center;gap:10px;margin-top:14px}#resultsChamp{margin:10px 0;padding:9px;border:1px solid #e8bd7055;border-radius:7px;background:#e8bd7010;font:800 11px/1.5 Arial;color:#fff1cf}@media(pointer:coarse),(max-width:800px){.champCard{padding:15px}.champCard h2{font-size:22px}.champColumns{grid-template-columns:1fr}.champRound{grid-template-columns:30px 1fr 95px}.champSummary strong{font-size:17px}}

/* V226 championship broadcast intro + post-race flow. */
#raceIntro{position:fixed;inset:0;z-index:26;display:grid;place-items:center;background:#021017a8;backdrop-filter:blur(5px);padding:16px}#raceIntro[hidden]{display:none}.raceIntroCard{position:relative;width:min(1040px,96vw);aspect-ratio:1672/941;cursor:pointer;filter:drop-shadow(0 20px 45px #000b);outline:none}.raceIntroCard:focus-visible{filter:drop-shadow(0 20px 45px #000b) drop-shadow(0 0 8px #e8bd70)}.raceIntroTemplate{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.raceIntroContent{position:absolute;left:40.5%;right:3.8%;top:5.5%;bottom:5.5%;display:grid;grid-template-rows:34% auto 1fr auto;align-items:center;justify-items:center;gap:1.5%;text-align:center;pointer-events:none}.raceIntroLogo{display:block;max-width:86%;max-height:100%;object-fit:contain;filter:drop-shadow(0 5px 10px #0009)}.raceIntroMeta{width:86%;padding:7px 0;border-top:1px solid #9fd8dd88;border-bottom:1px solid #9fd8dd88;color:#d7edf3;font:900 clamp(9px,1.25vw,15px)/1 Arial;letter-spacing:.13em}.raceIntroQuote{margin:0;width:88%;align-self:center;color:#fff;font:800 clamp(12px,1.55vw,20px)/1.35 Arial;font-style:italic;text-shadow:0 2px 8px #001}.raceIntroStart{align-self:end;margin-bottom:1%;padding:10px 30px;border-radius:999px;background:#efc14d;color:#102029;box-shadow:0 4px 0 #9c7225,0 8px 24px #0008;font:950 clamp(11px,1.4vw,18px)/1 Arial;letter-spacing:.08em}.champFlowPanel{position:fixed;inset:0;z-index:25;display:grid;place-items:center;background:#021017b8;backdrop-filter:blur(5px);padding:14px}.champFlowPanel[hidden]{display:none}.champFlowCard{width:min(600px,94vw);max-height:90vh;overflow:auto;padding:22px 24px;background:#0b2630f7;border:2px solid #e8bd70aa;border-radius:14px;box-shadow:0 24px 90px #000b;text-align:center}.champFlowCard>small{display:block;color:var(--gold);font:900 9px Arial;letter-spacing:.17em}.champFlowCard h2{margin:6px 0 12px;font:900 26px/1.1 Arial}.champFlowHeading{display:block;margin:0 0 10px;color:#fff1cf;font:900 12px/1.4 Arial;letter-spacing:.08em}.champFlowRows{display:grid;gap:5px;margin:12px 0 16px}.champFlowRow{display:grid;grid-template-columns:58px 1fr 70px 84px;align-items:center;gap:8px;padding:9px 10px;border-top:1px solid #ffffff18;font:800 12px Arial;text-align:left}.champFlowRow.you{background:#55e5791c;border:1px solid #55e57955;border-radius:6px}.champFlowRow b{color:#e8bd70}.champFlowRow small{text-align:right;color:#9fb7b5}.champFlowRow strong{text-align:right;color:#fff1cf}.champFlowActions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.champFlowCard>#champPointsContinue{min-width:220px}
@media(pointer:coarse),(max-width:800px){#raceIntro{padding:4px}.raceIntroCard{width:99vw}.raceIntroContent{left:41%;right:3.5%;top:5%;bottom:5%}.raceIntroLogo{max-width:82%}.raceIntroMeta{padding:4px 0;font-size:8px}.raceIntroQuote{font-size:10px;line-height:1.26}.raceIntroStart{padding:7px 18px;font-size:10px}.champFlowCard{padding:16px}.champFlowRow{grid-template-columns:44px 1fr 48px 68px;font-size:10px;gap:5px}}
/* V227 race guidance: unmistakable directional arrow with visible shaft. */
#nextTurnArrow i{font-family:Arial Black,Arial,sans-serif;font-size:62px;line-height:.82;font-weight:900;display:block;width:64px;height:60px;text-align:center;color:#61ff7d;text-shadow:0 0 12px #4aff78,0 3px 3px #000;transform:rotate(var(--bearing,0rad));transform-origin:50% 50%;transition:transform .08s linear}
@media(pointer:coarse),(max-width:800px){#nextTurnArrow i{font-size:48px;width:48px;height:46px}}

/* V228: championship-order selector + integrated Express race HUD skin. */
#raceHud{background:linear-gradient(145deg,rgba(7,43,84,.86),rgba(8,76,130,.74) 58%,rgba(11,48,83,.82));border:1px solid rgba(75,190,255,.52);box-shadow:0 14px 38px #001a2b99,inset 0 1px 0 #ffffff1f;backdrop-filter:blur(10px) saturate(1.15)}
#raceHud>b{color:#8bd8ff;text-shadow:0 1px 8px #001c34}
#raceHud .raceGapRow{border-color:#75cfff2b}
#raceHud #raceGap{color:#ffd36a}
#nextGateHud{background:linear-gradient(145deg,rgba(7,43,84,.86),rgba(9,82,137,.74));border:1px solid rgba(79,210,255,.58);box-shadow:0 12px 34px #001a2b8c,inset 0 1px 0 #ffffff22;backdrop-filter:blur(9px) saturate(1.15)}
#nextGateHud b{color:#8de5ff}
#nextGateHint{color:#ffd36a}

/* V229: unify speedo + navigation maps with the Express blue translucent HUD skin. */
.hud{background:linear-gradient(145deg,rgba(7,43,84,.84),rgba(8,76,130,.72) 58%,rgba(11,48,83,.80));border:1px solid rgba(75,190,255,.48);box-shadow:0 12px 34px #001a2b88,inset 0 1px 0 #ffffff1f;backdrop-filter:blur(10px) saturate(1.15)}
.hud .speed small{color:#ffd36a}.hud .row{color:#d7edf3}.jetbar{border-color:#75cfff33;background:rgba(3,24,44,.68)}
#navMapWrap,#raceMapWrap{background:linear-gradient(145deg,rgba(7,43,84,.78),rgba(8,76,130,.66) 58%,rgba(11,48,83,.76));border-color:rgba(75,190,255,.44);box-shadow:0 10px 30px #001a2b88,inset 0 1px 0 #ffffff1a;backdrop-filter:blur(9px) saturate(1.12)}
#raceMapWrap{border-width:1px!important;border-color:rgba(79,210,255,.52)!important}
#raceMap{background:rgba(4,27,51,.62)}
#navMapWrap>span,#raceMapWrap>span{color:#9edfff;text-shadow:0 1px 5px #001528}
/* V231 — restore aircraft-style Express dispatch shell around existing missions/races. */
#overlay.dispatchOverlay{background:#061923d9;backdrop-filter:blur(9px)}
#overlay .dispatchCard{position:relative;width:min(760px,94vw);min-height:520px;padding:28px 30px 24px 300px;overflow:hidden;background:linear-gradient(145deg,#10364aeF,#071f31f5);border:2px solid #5baee28f;border-radius:18px;box-shadow:0 24px 90px #000b,inset 0 0 60px #0d74aa22}
.dispatchChief{position:absolute;left:10px;bottom:-8px;width:285px;max-height:500px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 14px 24px #0009);pointer-events:none}
#overlay .dispatchCard h1{margin:6px 0 10px;font-size:38px;line-height:1;color:#fff1cf}
#overlay .dispatchCard>#overlayCopy{margin:0 0 15px;color:#d8e6e6;line-height:1.45}
.dispatchMenu{display:grid;gap:9px;margin-top:10px;padding:13px;border:1px solid #76c7f24a;border-radius:11px;background:#0b2c40a8}
.dispatchMenu[hidden]{display:none}
.menuHint{margin:0!important;color:#e8bd70!important;font:900 11px/1.2 Arial!important;letter-spacing:.12em;text-transform:uppercase}
.dispatchButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.dispatchButtons button{min-height:48px}.dispatchMenu>.primary{min-height:46px}
.dispatchMenu small{display:block;margin:-3px 3px 3px;color:#a9c5cf;font:700 11px/1.35 Arial}
.dispatchSelectLabel{display:grid;gap:6px;color:#a9c5cf;font:800 11px Arial}.dispatchSelectLabel select{width:100%;min-height:44px;padding:8px 10px;border-radius:7px;border:1px solid #7bc6ef66;background:#092435;color:#fff1cf;font:700 13px Arial}
.returnSecondary{display:inline-block;margin-top:12px;color:#bcd4dd!important;font:700 11px Arial;text-decoration:none}.returnSecondary:hover{color:#fff1cf!important}
#overlay .dispatchCard .controls{margin:14px 0 0;color:#a9c5cf;font-size:11px}
.legacyControls{display:none!important}
@media(pointer:coarse),(max-width:800px){#overlay .dispatchCard{width:min(700px,96vw);min-height:0;padding:18px 18px 18px 205px}.dispatchChief{width:205px;left:0;bottom:-4px;max-height:390px}#overlay .dispatchCard h1{font-size:28px}.dispatchButtons{grid-template-columns:1fr}.dispatchMenu{padding:10px}.dispatchMenu button{min-height:40px}}
@media(max-width:620px){#overlay .dispatchCard{padding:16px}.dispatchChief{position:relative;float:left;width:118px;height:150px;object-fit:contain;margin:-2px 10px 4px -8px;bottom:auto;left:auto}#overlay .dispatchCard h1{font-size:26px}.dispatchMenu{clear:both}.dispatchButtons{grid-template-columns:1fr}.returnSecondary{clear:both}}

/* V232 — Express menu polish: two-up race mode buttons without clipping. */
#dispatchRaceMenu .dispatchButtons{grid-template-columns:repeat(2,minmax(0,1fr))}
#dispatchRaceMenu .dispatchButtons button{min-width:0;white-space:normal;line-height:1.1;padding-left:8px;padding-right:8px}
@media(pointer:coarse),(max-width:800px){#dispatchRaceMenu .dispatchButtons{grid-template-columns:1fr}}

.boat-sfx{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:800;white-space:nowrap}.boat-sfx input{width:80px;accent-color:var(--gold);cursor:pointer;touch-action:pan-x}@media(pointer:coarse),(max-width:800px){.boat-sfx{font-size:9px}.boat-sfx input{width:58px}}@media(max-width:520px){.boat-sfx input{width:48px}}


/* V275 mobile control + race-card pass */
@media(pointer:coarse),(max-width:800px){
  /* Driving buttons are controls, never selectable/callout text. */
  #jetButton,#brakeButton,#touch,#touch .buttons,#touch .buttons button{
    -webkit-user-select:none!important;
    user-select:none!important;
    -webkit-touch-callout:none!important;
    -webkit-tap-highlight-color:transparent!important;
  }
  #jetButton,#brakeButton{touch-action:none!important;cursor:default}

  /* Fullscreen must survive the crowded mobile header. */
  #fullscreen{
    display:block!important;
    position:fixed!important;
    top:max(7px,env(safe-area-inset-top))!important;
    right:max(7px,env(safe-area-inset-right))!important;
    z-index:40!important;
    min-width:48px;
    min-height:42px;
    padding:7px 9px!important;
    font-size:0!important;
  }
  #fullscreen::after{content:'⛶';font-size:24px;line-height:1}

  /* Fit the entire 16:9-ish race card to BOTH mobile dimensions. */
  #raceIntro{padding:4px!important;overflow:hidden}
  .raceIntroCard{
    width:min(99vw,calc((100dvh - 8px) * 1.7779))!important;
    max-width:99vw!important;
    height:auto!important;
    max-height:calc(100dvh - 8px)!important;
    aspect-ratio:1672/941!important;
  }
  .raceIntroContent{left:40.5%!important;right:3.8%!important;top:5.5%!important;bottom:5.5%!important;gap:1%!important}
  .raceIntroLogo{max-width:82%!important;max-height:100%!important}
  .raceIntroMeta{padding:3px 0!important;font-size:clamp(8px,1.45vh,11px)!important}
  .raceIntroQuote{font-size:clamp(9px,1.75vh,13px)!important;line-height:1.22!important}
  .raceIntroStart{padding:6px 16px!important;font-size:clamp(9px,1.55vh,12px)!important;margin-bottom:0!important}
}

/* V435: persistent Express mission instructions */
#missionHud{width:min(380px,calc(100vw - 24px));box-sizing:border-box}
#missionHud .missionHeading{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:3px}
#missionHud #missionDirection{display:inline-block;margin:0;font:900 30px Arial;color:#ff755b;transform-origin:center center;line-height:1}
#missionHud .missionHeading strong{font:900 25px Arial}
#missionHud .missionHeading small{font:800 9px Arial}
#missionHud #missionObjective{margin:5px 0 0;color:#fff1cf;font:800 12px/1.35 Arial;letter-spacing:.01em}
@media(pointer:coarse),(max-width:800px){#missionHud{top:62px;padding:7px 9px}#missionHud #missionObjective{font-size:11px}}

/* V450 mission completion dispatch choices */
.mission-finish-panel{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#001923ba;padding:20px}.mission-finish-panel[hidden]{display:none!important}.mission-finish-card{width:min(550px,95vw);padding:25px;background:#092b3c;color:#fff1d9;border:2px solid #57a5c4;border-radius:18px;box-shadow:0 18px 60px #000b;text-align:center}.mission-finish-card small{color:#e5b869;letter-spacing:.14em;font-weight:800}.mission-finish-card h2{color:#fff2d5}.mission-finish-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.mission-finish-actions button{min-height:52px;font-weight:800;border-radius:9px;background:#e9b966;color:#152733;border:0;cursor:pointer}

/* V30: mission briefing clears the centerline and numbered waterway gates. */
@media (min-width:801px) and (pointer:fine){
 #missionHud{left:auto;right:18px;top:145px;transform:none;width:min(380px,30vw);min-width:0;}
 body:has(#missionHud:not([hidden])) #message{top:78px;}
}
@media (max-width:800px), (pointer:coarse){
 #missionHud{left:auto;right:8px;top:118px;transform:none;width:min(310px,46vw);min-width:0;}
}


/* Guest Express desktop dispatch; compact secondary view on touch. */
#guestConsole{position:fixed;z-index:14;left:12px;top:145px;width:min(355px,29vw);max-height:calc(100vh - 162px);overflow:auto;background:#071f2bed;color:#fff1d5;border:2px solid #c99c51;border-radius:12px;box-shadow:0 10px 30px #0009;font:12px Arial;padding:12px;box-sizing:border-box}#guestConsole[hidden],#geIntro[hidden],#gePickup[hidden]{display:none!important}#guestConsole header{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.05em}#guestConsole h3{font-size:11px;color:#ffd17a;margin:13px 0 5px}#guestConsole #geStats{margin:10px 0;border-top:1px solid #ffffff33;border-bottom:1px solid #ffffff33;padding:9px 0;font-weight:bold;line-height:1.5}#guestConsole .geRow{display:flex;justify-content:space-between;align-items:center;gap:5px;padding:5px 0;border-bottom:1px solid #ffffff1c}#guestConsole .geRow span{flex:1;line-height:1.3}#guestConsole button,#gePickup button{cursor:pointer;background:#194859;color:#fff2d8;border:1px solid #b9955a;border-radius:6px;padding:6px 9px;font-weight:bold}#guestConsole .geLate{color:#ff7166}#guestConsole .geHelp{font-size:10px;color:#afc9c8;line-height:1.5}#guestConsole #geEnd{margin-top:6px}#geIntro,#gePickup{position:fixed;inset:0;z-index:31;background:#04131ddf;display:grid;place-items:center;padding:16px;box-sizing:border-box}#geIntro .geIntroCard,#gePickup .gePickupCard{width:min(550px,94vw);max-height:90vh;overflow:auto;background:#0b2935;border:2px solid #d7a85d;border-radius:16px;color:#fff1d8;padding:26px;box-sizing:border-box;box-shadow:0 10px 50px #000a}#geIntro small{color:#ffc675;letter-spacing:.13em}#geIntro h1{font:900 28px Arial;color:#fff1d8}#geIntro p{line-height:1.6;font:14px/1.6 Arial}#geIntro button,#gePickup button{margin:5px;min-height:39px}#gePickup .gePickupCard{max-width:440px}#geDockRows{display:grid;gap:6px;margin:15px 0}#geDockRows button{text-align:left}#geDockRows button:disabled{opacity:.5}#guestConsole.collapsed .geBody{display:none}#missionHud:not([hidden])~#guestConsole{pointer-events:auto}@media(pointer:coarse),(max-width:800px){#guestConsole{top:auto;bottom:115px;left:8px;width:min(280px,54vw);max-height:40vh;padding:8px;font-size:10px}#guestConsole .geBody{display:none}#guestConsole:not(.collapsed) .geBody{display:block}#guestConsole #geStats{font-size:10px}#geIntro .geIntroCard{padding:15px}#geIntro h1{font-size:22px}}


/* V04 — Guest Express desktop layout tune-up */
#guestConsole{
 left:auto;
 right:12px;
 top:145px;
 width:min(380px,30vw);
 max-height:calc(100vh - 162px);
}
#guestConsole #geStats{
 font-size:14px;
 line-height:1.6;
}
#guestConsole .geRow{
 align-items:flex-start;
}
#guestConsole .geRow span{
 line-height:1.35;
}
#guestConsole .geHelp{
 margin:10px 0 0;
}
#missionHud[data-ge='1']{
 left:50%;
 right:auto;
 top:82px;
 transform:translateX(-50%);
 width:min(560px,calc(100vw - 420px));
 min-width:420px;
 padding:10px 18px 12px;
 border:2px solid rgba(255,126,95,.78);
 border-radius:12px;
 background:linear-gradient(145deg,rgba(6,23,33,.94),rgba(8,38,53,.90));
 box-shadow:0 12px 34px rgba(0,0,0,.45);
}
#missionHud[data-ge='1'] b{
 font:900 11px/1 Arial;
 letter-spacing:.22em;
 color:#ff8f82;
}
#missionHud[data-ge='1'] #missionTarget{
 margin-top:4px;
 font:900 42px/.95 "Courier New",monospace;
 letter-spacing:.04em;
 color:#fff4cb;
 text-shadow:0 2px 8px rgba(0,0,0,.45);
 font-variant-numeric:tabular-nums;
}
#missionHud[data-ge='1'] .missionHeading{
 margin-top:6px;
 gap:12px;
}
#missionHud[data-ge='1'] #missionDirection{
 font-size:34px;
 color:#ff7b63;
}
#missionHud[data-ge='1'] .missionHeading strong{
 font:900 28px/1 Arial;
}
#missionHud[data-ge='1'] .missionHeading small{
 font:800 10px/1 Arial;
 letter-spacing:.14em;
 color:#b6cac8;
}
#missionHud[data-ge='1'] #missionObjective{
 margin-top:6px;
 font:800 13px/1.35 Arial;
 color:#fff1cf;
}
body:has(#missionHud[data-ge='1']:not([hidden])) #message{
 top:150px;
}
@media (max-width:1400px){
 #missionHud[data-ge='1']{
  width:min(500px,calc(100vw - 380px));
  min-width:360px;
 }
 #guestConsole{
  width:min(345px,31vw);
 }
}
@media(pointer:coarse),(max-width:800px){
 #guestConsole{
  right:auto;
  left:8px;
  top:auto;
  bottom:115px;
  width:min(280px,54vw);
  max-height:40vh;
 }
 #missionHud[data-ge='1']{
  top:62px;
  width:min(360px,calc(100vw - 16px));
  min-width:0;
  padding:7px 10px 8px;
 }
 #missionHud[data-ge='1'] #missionTarget{
  font-size:28px;
 }
 #missionHud[data-ge='1'] .missionHeading strong{
  font-size:21px;
 }
 #missionHud[data-ge='1'] #missionObjective{
  font-size:11px;
 }
 body:has(#missionHud[data-ge='1']:not([hidden])) #message{
  top:118px;
 }
}

/* V07 — make dockside boarding accessible and keep console title inside the panel */
#guestConsole header{position:static;inset:auto;z-index:auto;background:none;padding:0;gap:8px;box-shadow:none;backdrop-filter:none}
#guestConsole #geDockAction{width:100%;display:block;margin:10px 0 5px;background:#25634d;color:#fff5d7;border-color:#91c49a;text-align:center;font-size:11px;padding:9px 5px}
#guestConsole #geDockAction:disabled{opacity:.58;background:#194859;color:#c8d1ce;border-color:#708786;cursor:default}

/* V08: reduce accidental empty pickups; emphasize positive boarding choices. */
#gePickup #geDockRows button{display:block;width:100%;min-height:46px;font-size:15px;padding:11px 14px;border-color:#9cd9a1;background:#1e6449}
#gePickup #geDockRows button:disabled{background:#14372f;color:#c0e9c9}
#gePickup #geDepartHelp{font:12px/1.45 Arial;color:#ffe3a2;margin:12px 5px 5px}
#gePickup #geDepart{display:block;width:100%;margin:12px 0 0;min-height:44px}

/* V10 · Guest Express shift celebration and drop-off rewards */
#geReport[hidden]{display:none!important}
#geReport{position:fixed;inset:0;z-index:36;display:grid;place-items:center;padding:16px;background:rgba(3,15,23,.86);overflow:auto}
.geReportCard{width:min(780px,96vw);max-height:96vh;overflow:auto;padding:24px 30px;background:linear-gradient(160deg,#103b4b,#071e2d 68%);border:2px solid #dfa94f;border-radius:20px;box-shadow:0 20px 80px #000c;color:#fff0cf;font-family:Arial,sans-serif}
.geReportEyebrow{font-size:11px;letter-spacing:.17em;font-weight:900;color:#eabd6c}
.geReportCard h2{font-size:28px;letter-spacing:.04em;margin:12px 0 17px;color:#fff3d6}
.geReportMain{display:flex;align-items:center;gap:24px;padding:15px 20px;background:#041923a8;border-radius:14px;border:1px solid #ffffff2b}
.geGrade{flex:none;display:grid;place-items:center;width:108px;height:108px;border-radius:18px;background:linear-gradient(140deg,#ffd579,#c68633);border:3px solid #fff1bf;color:#092637;font:900 78px/1 Arial;text-shadow:0 1px #fff5}
.geRankName{font:900 23px/1.2 Arial;color:#ffd478;letter-spacing:.07em}
.geWebbLine{margin-top:11px;line-height:1.5;font-size:15px;font-style:italic}
.geReportStats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.geReportStats>div{padding:11px 9px;border-radius:9px;background:#ffffff0e;text-align:center;border:1px solid #ffffff1a}
.geReportStats small{display:block;font:800 10px/1.3 Arial;color:#a9cad0;letter-spacing:.08em}
.geReportStats strong{display:block;font:900 24px/1.25 Arial;color:#fff5d9;margin-top:5px;font-variant-numeric:tabular-nums}
.geRecord{text-align:center;padding:13px 8px;color:#ffd478;letter-spacing:.12em;font:900 13px Arial}
.geReportActions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.geReportActions button{border:1px solid #edbd66;background:#163f4e;color:#fff1d4;padding:12px 19px;border-radius:9px;font-weight:900;cursor:pointer}
.geReportActions button.primary{background:#eabc69;color:#082838}
#geRewardLayer{position:fixed;left:50%;top:48%;transform:translate(-50%,-50%);z-index:24;pointer-events:none;display:grid;justify-items:center;gap:6px}
.geReward{display:grid;justify-items:center;gap:5px;text-shadow:0 3px 9px #001923,0 1px 2px #000;background:rgba(4,35,43,.65);padding:9px 20px;border:1px solid #8befb477;border-radius:14px;white-space:nowrap;animation:geRewardRise 2.8s ease-out forwards}
.geReward strong{font:900 35px/1 Arial;color:#8dff9e}
.geReward b{font:900 17px/1 Arial;color:#fff3c1}
.geReward small{font:800 12px/1 Arial;color:#bbffe0}
@keyframes geRewardRise{0%{opacity:0;transform:translateY(35px) scale(.8)}15%{opacity:1;transform:translateY(0) scale(1.1)}40%{opacity:1;transform:translateY(-15px) scale(1)}80%{opacity:1}100%{opacity:0;transform:translateY(-90px) scale(.94)}}
@media(max-width:800px),(pointer:coarse){.geReportCard{padding:15px}.geReportCard h2{font-size:21px}.geGrade{width:66px;height:66px;font-size:46px}.geReportMain{gap:12px;padding:11px}.geRankName{font-size:16px}.geWebbLine{font-size:12px}.geReportStats{grid-template-columns:repeat(2,1fr)}.geReportStats strong{font-size:20px}.geReward strong{font-size:27px}.geReward b{font-size:14px}}

/* V16 Guest Express intro skybeam guide */
#geIntro .geBeamLegend{margin:12px 0;padding:11px 15px;border:1px solid #c99c5170;border-radius:10px;background:#041923b8}
#geIntro .geBeamLegend>b{display:block;color:#f5c46e;letter-spacing:.12em;font:900 12px Arial;margin-bottom:7px}
#geIntro .geLegendRow{display:flex;align-items:center;gap:12px;padding:5px 0}
#geIntro .geLegendRow span{display:grid;gap:2px;flex:1}
#geIntro .geLegendRow strong{font:800 12px Arial;color:#fff0cc}
#geIntro .geLegendRow small{font:12px/1.3 Arial;color:#c6d7d4;letter-spacing:normal}
#geIntro .geLegendBeam{display:block;flex:0 0 15px;height:37px;border-radius:4px;box-shadow:0 0 10px currentColor}
#geIntro .geYellow{color:#ffdf46;background:linear-gradient(90deg,#ffed5f,#f8b923,#fff174)}
#geIntro .geGreen{color:#42ec7a;background:linear-gradient(90deg,#73ff80,#0fbf66,#83ff9c)}
#geIntro .geMixed{color:#e3eb63;background:repeating-linear-gradient(155deg,#ffe34d 0 7px,#12cd6d 7px 14px)}
@media(pointer:coarse),(max-width:800px){#geIntro .geBeamLegend{padding:8px 10px;margin:8px 0}#geIntro .geLegendRow{gap:9px;padding:3px 0}#geIntro .geLegendRow small{font-size:11px}}

/* V17 — compact Guest Express dispatch, touch and controller */
#geCompactClock[hidden],#geCompact[hidden],#geWaitingLaunch[hidden],#geWaitingOverlay[hidden]{display:none!important}
#geCompactClock,#geCompact,#geWaitingLaunch{display:none}
#geCompactClock{position:fixed;left:50%;top:62px;transform:translateX(-50%);z-index:14;min-width:148px;padding:6px 14px 8px;background:#082431ee;border:1px solid #f07b67;border-radius:11px;box-shadow:0 8px 24px #0007;text-align:center;color:#fff1cc;pointer-events:none}
#geCompactClock b{display:block;font:900 9px/1 Arial;letter-spacing:.22em;color:#ff9c8e}
#geCompactClock strong{display:block;margin-top:3px;font:900 38px/.92 "Courier New",monospace;font-variant-numeric:tabular-nums;color:#fff3cb;text-shadow:0 2px 6px #0008}

#geWaitingOverlay{position:fixed;inset:0;z-index:34;display:grid;place-items:center;padding:14px;background:#031823e8;box-sizing:border-box}
#geWaitingOverlay .geWaitingCard{width:min(760px,100%);max-height:92vh;overflow:auto;background:#0b2935;border:2px solid #d3ad66;border-radius:14px;padding:18px;color:#fff0ce;box-shadow:0 20px 70px #0009}
.geWaitingHead{display:flex;gap:10px;align-items:center;justify-content:space-between}.geWaitingHead h2{margin:0;color:#ffd477;font:900 22px Arial}
#geWaitingOverlay p{font:12px/1.5 Arial;color:#c3d4d5}
#geWaitingRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:14px 0}
#geWaitingRows button{padding:12px;text-align:left;background:#184455;border:1px solid #c9a060;border-radius:9px;font:700 13px/1.4 Arial}
.geWaitingFoot{font-size:11px;color:#a9d8df}
#geWaitingOverlay button:focus-visible,#gePickup button:focus-visible,#geIntro button:focus-visible,#geCompact button:focus-visible{outline:3px solid #ffe275;outline-offset:2px;background:#315d66}
@media(pointer:coarse),(max-width:800px){
 #geCompactClock{display:block}
 body:has(#missionHud[data-ge='1']:not([hidden])) #guestConsole{display:none!important}
 #geCompact{display:block;position:fixed;top:calc(62px + 0px);right:8px;width:min(270px,43vw);z-index:13;box-sizing:border-box;background:#082431e8;border:1px solid #f07b67;border-radius:10px;padding:6px 8px;color:#fff1cc;pointer-events:auto}
 .geCompactHead{display:flex;align-items:center;justify-content:space-between;gap:4px;font:900 10px Arial;letter-spacing:.04em;color:#ffba81}
 #geCompactSlots{display:grid;gap:2px;margin-top:4px}
 .geCompactSlot{display:block;width:100%;min-height:24px;padding:3px 6px;text-align:left;border:1px solid #ffffff18;border-radius:4px;background:#113b49;font:700 11px/1.2 Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .geCompactSlot:disabled{opacity:.45}.geCompactSlot.guiding{border-color:#83f18f;color:#aaffb2}.geCompactSlot.late{color:#ff8773}
 .geCompactHint{font:8px/1.25 Arial;color:#a6bcc2;margin-top:3px}
 #geWaitingLaunch{display:block;position:fixed;left:8px;top:165px;z-index:13;width:135px;min-height:42px;padding:8px 5px;background:#113d4b;border:1px solid #ffd26c;border-radius:8px;font:900 11px Arial;color:#ffda87}
 #missionHud[data-ge='1']{top:118px;left:auto;right:8px;width:min(250px,36vw);min-width:0;padding:5px 7px;border-width:1px}
 #missionHud[data-ge='1'] b{font-size:9px}
 #missionHud[data-ge='1'] #missionTarget{font-size:26px;margin-top:1px}
 #missionHud[data-ge='1'] .missionHeading{margin-top:2px;gap:4px}
 #missionHud[data-ge='1'] #missionDirection{font-size:22px}
 #missionHud[data-ge='1'] .missionHeading strong{font-size:17px}
 #missionHud[data-ge='1'] .missionHeading small{font-size:8px}
 #missionHud[data-ge='1'] #missionObjective{font-size:9px;margin-top:3px;line-height:1.2}
 body:has(#missionHud[data-ge='1']:not([hidden])) #touch .buttons{display:flex;flex-direction:row;gap:8px}
 body:has(#missionHud[data-ge='1']:not([hidden])) #touch #brakeButton{order:0}
 body:has(#missionHud[data-ge='1']:not([hidden])) #touch #jetButton{order:1}
 body:has(#missionHud[data-ge='1']:not([hidden])) #touch .buttons button{width:91px;height:77px;font-size:12px;padding:5px}
 #geWaitingRows{grid-template-columns:1fr}
}
@media(pointer:coarse) and (max-width:650px),(max-width:650px){
 #geCompactClock{top:58px;min-width:128px;padding:5px 11px 6px}
 #geCompactClock strong{font-size:31px}
 #geCompact{right:6px;width:44vw;top:61px}
 #missionHud[data-ge='1']{right:6px;left:auto;width:30vw;top:112px}
 #geWaitingLaunch{top:157px;left:8px}
 body:has(#missionHud[data-ge='1']:not([hidden])) #touch .buttons button{width:75px;height:65px;font-size:10px}
}

/* V19: gamepad-connected full-size view also uses the compact dispatch clock. */
body.braap-compact-gamepad #geCompactClock{display:block}

/* V20 — elevated compact shift clock with integrated scoring */
#geCompactClock{top:42px;min-width:184px;padding:6px 13px 7px;z-index:18}
#geCompactClock strong{font-variant-numeric:tabular-nums}
#geCompactClockStats{margin-top:5px;padding-top:5px;border-top:1px solid #ffffff3b;
 color:#ffd68d;font:800 10px/1.2 Arial;letter-spacing:.035em;white-space:nowrap}
@media(pointer:coarse),(max-width:800px){
 #geCompactClock{top:42px;min-width:174px}
}
@media(pointer:coarse) and (max-width:650px),(max-width:650px){
 #geCompactClock{top:42px;min-width:156px;padding:5px 9px 6px}
 #geCompactClockStats{font-size:9px}
}
body.braap-compact-gamepad #geCompactClock{top:42px}

/* V31 — Fuel gauge: color stays only in the remaining fill, not the empty track. */
.geFuelTrack{
 height:11px;position:relative;overflow:hidden;border-radius:5px;
 border:1px solid #c9d6cf99;background:#0c2430;
}
.geFuelTrack::after{content:none}
.geFuelFill{
 position:absolute;inset:0;width:100%;height:100%;
 background:linear-gradient(to right,#e54642 0 25%,#ffd54d 25% 50%,#39e982 50% 100%);
 clip-path:inset(0 var(--empty,0%) 0 0);
}
#geDesktopFuel[hidden]{display:none!important}
#geDesktopFuel{position:fixed;left:50%;bottom:22px;top:auto;transform:translateX(-50%);z-index:13;width:min(300px,24vw);padding:6px 10px;background:#071f2be8;border:1px solid #e3b86788;border-radius:9px;text-align:center;pointer-events:none;color:#ffdb85;box-shadow:0 8px 20px #0007}
#geDesktopFuel b{font:900 11px Arial;letter-spacing:.03em}#geDesktopFuel .geFuelTrack{margin:5px 0;height:9px}#geDesktopFuel strong{display:block;font:900 14px 'Courier New',monospace;line-height:1.05}#geDesktopFuel small{display:block;font:800 8px Arial;margin-top:3px;color:#d6c9a2;letter-spacing:.04em}
.geCompactFuel{margin-top:6px;text-align:center}.geCompactFuel .geFuelTrack{height:10px}
.geCompactFuel span{display:block;margin-top:3px;color:#e7d58b;font:900 13px 'Courier New',monospace;font-variant-numeric:tabular-nums}
@media(pointer:coarse),(max-width:800px){#geDesktopFuel{display:none!important}}
body.braap-compact-gamepad #geDesktopFuel{display:none!important}
/* V20: shared pilot identity controls ahead of both Express race modes. */
#expPreRaceIdentity{border:1px solid #7bc6ef55;border-radius:9px;padding:12px;background:#0924359c}
#expPreRaceIdentity label:not(#expDifferentPilotWrap){display:block;margin:8px 0;color:#e8d6a9;font-weight:700}
#expPreRaceIdentity input[type="text"],#expPreRaceIdentity input[type="email"],#expPreRaceIdentity input:not([type]){display:block;box-sizing:border-box;width:100%;min-height:42px;margin-top:5px;border:1px solid #7bc6ef88;border-radius:7px;padding:8px 10px;background:#092435;color:#fff1cf;font:700 14px Arial}
#expPreRaceIdentity #expDifferentPilot{width:auto;margin-right:6px}
#expPreRaceIdentity button{margin:5px 6px 5px 0;min-height:40px}
