.garage-page{max-width:1280px;min-height:calc(100vh - 84px);background:linear-gradient(#101619ed,#101619ee),url('assets/wasteland.png') center/cover;padding-top:26px}.garage-page .page-title h1{font-size:36px}.garage-budget{display:flex;align-items:center;gap:20px;background:#0c1216;padding:14px 20px;border:1px solid #735e40;margin-bottom:22px}.garage-budget label{display:flex;align-items:center;gap:12px;flex:1;font-size:14px}.garage-budget input{width:min(320px,100%)}.garage-budget strong{font-family:var(--display);font-size:30px;color:var(--acid)}.garage-budget strong small{font-size:17px;color:#c7bead}.garage-budget>span{font-size:14px;color:#c7bead}.sponsor-art{display:block;aspect-ratio:1;background-image:url('assets/sponsors-logos.png');background-size:400% 400%;background-position:var(--px) var(--py);flex-shrink:0}.sponsor-banner{display:flex;gap:26px;align-items:center;width:100%;padding:0;text-align:left;border:3px solid #776044;background:linear-gradient(100deg,#172025,#0c1317);box-shadow:0 10px 25px #0007;border-radius:4px;overflow:hidden}.sponsor-banner>.sponsor-art{width:220px;align-self:stretch}.sponsor-banner>span:nth-child(2){flex:1;padding:20px 0}.sponsor-banner small{font-size:12px;color:#d3c092;letter-spacing:1.5px}.sponsor-banner h2{font:600 38px/1.2 var(--display);margin:8px 0}.sponsor-banner p{margin:6px 0 12px;color:#c1b7a7}.sponsor-banner b{font-size:14px;color:var(--acid)}.sponsor-banner .banner-chevron{font-size:44px;padding:20px}.garage-fleet{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:28px}.fleet-card{position:relative;background:radial-gradient(ellipse at 50% 30%,#5f4c2f66,#111a20 70%);border:2px solid #685740;border-radius:4px;min-height:320px;padding:18px;text-align:left;overflow:hidden}.fleet-card:hover{border-color:var(--acid)!important}.garage-vehicle{width:100%;aspect-ratio:1.35;max-height:260px;background-size:300% 200%;filter:drop-shadow(0 8px 6px #0009)}.fleet-number{position:absolute;right:18px;top:14px;font:600 30px var(--display);color:#e5d7af88}.fleet-card h2{font:600 29px var(--display);margin:6px 0}.fleet-card p{margin:4px 0;color:#d2c3a7}.fleet-card small{font-size:13px;line-height:1.6;display:block;color:#aaa99e}.fleet-edit{display:block;margin-top:18px;color:var(--acid);font-size:14px}.fleet-new{display:flex;flex-direction:column;align-items:center;justify-content:center;border-style:dashed;color:#ccc0a3}.fleet-new>b{font-size:70px;font-weight:300}.garage-footnote{color:#bdb4a5;font-size:14px;margin-top:24px;max-width:780px}
dialog.garage-dialog{width:min(1120px,95vw);max-width:95vw;max-height:92dvh;padding:24px;border:3px solid #7c6648;border-radius:5px;background:linear-gradient(#101920ed,#0e151aef),url('assets/wasteland.png') center/cover;box-shadow:0 20px 80px #000c;color:#eee7d9}dialog::backdrop{background:#060b10cc;backdrop-filter:blur(5px)}.garage-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #6f5b3d;padding-bottom:15px;margin-bottom:22px}.garage-dialog-head h2{font:600 32px var(--display);margin:5px 0}.garage-dialog-head .eyebrow{font-size:12px}.garage-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.sponsor-card{padding:0 0 16px;background:#111b20;border:2px solid #574b3d;border-radius:4px;overflow:hidden}.sponsor-card .sponsor-art{width:100%;aspect-ratio:1}.sponsor-card h3{font:500 25px var(--display);margin:12px 8px 4px}.sponsor-card small{display:block;padding:0 10px;font-size:12px;color:#c1b8a5}.sponsor-detail{display:grid;grid-template-columns:minmax(180px,38%) 1fr;gap:30px}.sponsor-detail>.sponsor-art{width:100%;border:2px solid #786349;position:sticky;top:0}.sponsor-detail h3{font-family:var(--display);font-size:22px;color:#e8d29b}.sponsor-detail p{font-size:16px;line-height:1.6}.sponsor-detail small{color:#bfb8a9}.car-workshop{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,1.2fr) minmax(0,1fr);grid-template-areas:'weapons hero upgrades' 'weapons hero perks';gap:18px}.car-hero{grid-area:hero;text-align:center;align-self:start;position:sticky;top:0}.car-hero .garage-vehicle{aspect-ratio:1;max-height:none}.car-hero label{font-size:13px;display:block;color:#c0b59e}.car-hero input{width:100%;display:block;margin-top:8px;text-align:center;font-family:var(--display);font-size:24px}.car-hero h3{font-size:21px;font-family:var(--display)}.car-hero p{font-size:14px;line-height:1.65;color:#d0c5ae}.car-hero button{font-size:13px;margin:4px}.loadout-zone{padding:15px;background:#111b21d9;border:1px solid #6a5940;align-self:start;min-width:0}.zone-weapons{grid-area:weapons}.zone-upgrades{grid-area:upgrades}.zone-perks{grid-area:perks}.loadout-zone h3{display:flex;justify-content:space-between;font:500 23px var(--display);margin:0 0 16px}.loadout-zone h3 small{color:#b6c341}.loadout-item{display:flex;gap:8px;align-items:center;padding:10px 0;border-top:1px solid #3d3b30}.loadout-item>span:nth-child(2){flex:1;min-width:0}.loadout-item b{display:block;font-size:13px}.loadout-item small{display:block;font-size:12px;color:#c0b7a4;margin-top:5px}.loadout-item button{padding:4px;align-self:start}.equipment-art{display:block;width:80px;aspect-ratio:1;background-image:url('assets/equipment.png');background-size:300% 200%;background-position:var(--px) var(--py);flex-shrink:0}.loadout-item .equipment-art{width:40px}.loadout-zone>.full{font-size:14px;margin-top:10px}.equipment-card{display:flex;flex-direction:column;align-items:flex-start;background:#101b21;border:1px solid #6b583c;border-radius:4px;padding:16px;min-width:0}.equipment-card>.equipment-art{width:110px;align-self:center}.equipment-card h3{font:500 23px/1.2 var(--display);margin:12px 0}.equipment-card p{font-size:14px;line-height:1.6;color:#cfc6b5}.equipment-card .item-price{color:#dfed64;font-size:14px}.equipment-card .purchase-reason{font-size:12px;color:#d5a18b;display:block;margin:8px 0}.equipment-card button{margin-top:auto;width:100%;font-size:14px}.catalog-vehicle{width:100%;aspect-ratio:1.35}.garage-dialog button:focus-visible{outline:3px solid var(--acid);outline-offset:3px}
@media(max-width:850px){.garage-page{padding:20px}.sponsor-banner>.sponsor-art{width:155px}.sponsor-banner{gap:15px}.sponsor-banner h2{font-size:29px}.garage-fleet{gap:12px}.fleet-card{padding:12px;min-height:260px}.fleet-card h2{font-size:24px}.garage-budget{flex-wrap:wrap}.garage-budget label{flex-basis:100%}.garage-dialog{padding:16px!important}.car-workshop{grid-template-columns:1fr 1fr;grid-template-areas:'hero hero' 'weapons upgrades' 'weapons perks'}.car-hero{position:static;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;align-items:center}.car-hero .garage-vehicle{grid-row:span 5;max-height:260px}.garage-catalog{gap:10px}.equipment-card{padding:10px}.equipment-card h3{font-size:19px}.sponsor-card h3{font-size:22px}}
@media(max-width:560px){.garage-page .page-title{display:block}.garage-page .toolbar{margin-top:15px}.sponsor-banner>.sponsor-art{width:110px}.sponsor-banner .banner-chevron{display:none}.sponsor-banner>span:nth-child(2){padding:12px 8px 12px 0}.sponsor-banner h2{font-size:25px}.sponsor-banner p,.sponsor-banner b{font-size:12px}.sponsor-banner small{font-size:10px}.sponsor-banner .school-chips{margin:8px 0}.garage-fleet{grid-template-columns:1fr}.fleet-card{min-height:0}.fleet-card .garage-vehicle{max-height:190px}.garage-dialog-head h2{font-size:25px}.garage-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.equipment-card{padding:7px}.equipment-card>.equipment-art{width:65px}.equipment-card h3,.sponsor-card h3{font-size:16px;overflow-wrap:anywhere}.equipment-card p,.equipment-card .item-price,.equipment-card button{font-size:12px}.sponsor-card small{font-size:10px;padding:0 4px}.sponsor-detail{grid-template-columns:1fr}.sponsor-detail>.sponsor-art{width:170px;position:static;margin:auto}.car-workshop{grid-template-columns:1fr;grid-template-areas:'hero' 'weapons' 'upgrades' 'perks'}.car-hero input{font-size:18px}.garage-dialog-head{gap:8px}.garage-dialog-head button{font-size:13px}}
.fleet-wrap{position:relative;min-width:0}.fleet-wrap>.fleet-card{width:100%;height:100%}.fleet-delete{position:absolute;right:8px;top:8px;z-index:2;padding:2px 10px;font-size:24px;background:#161a1fe8;border-color:#a47953}.fleet-wrap .fleet-number{right:auto;left:16px}.fleet-delete:hover:not(:disabled){color:#ff9b86;border-color:#ff9b86}

/* Fleet ordering and expanded vehicle inspection. */
.fleet-wrap[draggable="true"]{cursor:grab}.fleet-wrap.dragging{opacity:.45}.fleet-wrap[draggable="true"]:active{cursor:grabbing}
.race-screen .hud-bottom-left>.panel{height:min(620px,calc(100dvh - 240px));max-height:calc(100dvh - 240px);overflow:auto}
.race-screen .inspector-weapons{max-height:none;overflow:visible}
.inspector-equipment{border-top:1px solid #79664d;margin-top:12px;padding-top:10px}.inspector-equipment p{margin:8px 0;font-size:13px}.inspector-equipment small{display:block;color:var(--muted);font-size:12px;line-height:1.5;margin-top:3px}
.race-screen .hud-control-row .help{max-width:none;line-height:1.6}
@media(max-width:560px){.race-screen .hud-bottom-left>.panel{height:43dvh;max-height:43dvh}.inspector-equipment p,.inspector-equipment small{font-size:11px}}

.race-screen.is-moving .finish-overlay{display:none}.race-screen.is-moving .hud-bottom-right{opacity:.65}

.factory-loadout{border:1px solid #79664d;padding:12px;background:#27302230}.factory-loadout h3{margin:0 0 8px}.factory-loadout p{font-size:13px}.inspector-upgrade{margin:10px 0;padding-bottom:8px;border-bottom:1px solid #ffffff14;font-size:13px}.inspector-upgrade>small{display:block;margin-top:4px;color:var(--muted);line-height:1.5}.upgrade-activation{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;flex-wrap:wrap}.upgrade-activation span{font-size:12px}.drive-mode{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.drive-mode small{flex-basis:100%;color:var(--muted);font-size:12px}.drive-mode .selected{background:var(--acid);color:#171d07}

.car-hero>.factory-loadout{grid-column:1/-1;text-align:left;margin-top:12px}

/* Size scroll areas from the visible neighbouring panels, including HUD scaling. */
.race-screen .hud-bottom-left>.panel{max-height:none;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}
.race-screen .hud-top-right{max-height:none;overflow:visible}
.race-screen .hud-standings{overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;box-sizing:border-box}
.race-screen .hud-standings>summary{position:sticky;top:-12px;background:#111b20;z-index:1;padding:8px 0}
.race-screen .hud-fullscreen{display:flex;align-items:flex-start;gap:10px;width:auto;max-width:calc(100vw - 30px)}
.race-screen .hud-fullscreen .hud-next-goal{margin:0;max-width:250px;padding:8px 12px}
.race-screen .hud-fullscreen>button{flex:none}
.page-fullscreen{position:fixed;right:12px;top:10px;z-index:50}
.page-fullscreen>button{background:#111b20;color:#f1eee3}
body:has(.page-fullscreen) header{padding-right:70px}
body:has(.page-fullscreen) .menu-top{padding-right:48px}
@media print{.page-fullscreen{display:none}}

/* Charge upgrades: a counter with + / − replaces the single install button. */
.charge-controls{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;width:100%;margin-top:auto}
.charge-controls>.purchase-reason,.charge-controls>small{grid-column:1/-1;margin:0;font-size:12px;color:#c0b7a4;line-height:1.45}
.charge-controls>.purchase-reason{color:#d5a18b}
.charge-count{display:flex;align-items:baseline;gap:5px}
.charge-count b{font:600 26px/1 var(--display);color:var(--acid)}
.charge-count small{font-size:11px;color:#bfb6a4}
.charge-controls button{min-width:42px;padding:6px 10px;font-size:18px;font-weight:700}
.loadout-item .charge-note{color:#dfed64}
.loadout-weapon{display:grid;grid-template-columns:40px minmax(0,1fr) auto}
.loadout-weapon-details{grid-column:1/-1;min-width:0;line-height:1.5;overflow-wrap:anywhere}
.loadout-weapon-details .weapon-stats{margin-top:0}
@media(max-width:560px){.charge-controls{gap:5px}.charge-count b{font-size:20px}.charge-controls button{min-width:32px;padding:4px 7px;font-size:15px}}

/* An activation that is ready to fire reads as a live control, not a disabled one. */
.upgrade-activation button.activate{background:linear-gradient(#4a9ae8,#2a68b4);border:1px solid #8fcdff;color:#f4faff;font-weight:700;box-shadow:inset 0 1px #ffffff55,0 2px 5px #0006}
.upgrade-activation button.activate:hover{background:linear-gradient(#5aa9f4,#3374c2);border-color:#b6e0ff}
/* Sponsor grid: the team bonus is on the card, not one click away. */
.sponsor-card-bonus{display:block;padding:8px 10px 0;font-size:12px;line-height:1.45;color:var(--acid);font-weight:600}
@media(max-width:700px){.sponsor-card-bonus{font-size:10px;padding:6px 4px 0}}
/* Crowd support with several refillable installations asks which one gets the charge. */
.restore-options{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.restore-options button{justify-content:flex-start;text-align:left;margin-top:0}
.restore-options button span{display:flex;flex-direction:column;gap:2px}
.restore-options button small{color:var(--muted);font-size:12px}
.sponsor-art{background-image:url('assets/sponsors-logos.png');background-size:400% 300%;background-repeat:no-repeat}
.sponsor-banner>.sponsor-art{align-self:center;margin:12px}
.skill-category{grid-column:1/-1;margin:24px 0 4px;padding:12px 16px;border-left:4px solid #edce36;background:#edce3610;font:600 25px var(--display);color:#f0d34a}
.skill-category:first-child{margin-top:0}
.garage-page>.page-title{position:static;background:#151b1df5;padding:16px 0;border-bottom:1px solid #6f5b3d;backdrop-filter:blur(12px)}
body:has(.garage-page)>#app>header{position:sticky;top:0;z-index:11}
.garage-dialog-head{position:sticky;top:-28px;z-index:5;background:#171d1ff5;padding-top:20px;backdrop-filter:blur(12px)}
.car-hero{top:108px}
.fleet-wrap{touch-action:pan-y}
.fleet-wrap.fleet-placeholder{opacity:.3;outline:2px dashed var(--acid);outline-offset:4px}
.fleet-drag-ghost{position:fixed!important;z-index:10000;pointer-events:none;margin:0;opacity:.95;box-shadow:0 22px 60px #000b;transform-origin:center;will-change:transform}
.fleet-drag-ghost .fleet-card{border-color:var(--acid);background:#2c3023}
.fleet-drag-ghost .fleet-delete{display:none}
body.fleet-drag-active{user-select:none;cursor:grabbing}
.restore-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.charge-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 20px;padding:12px 0;border-top:1px solid #675b44}
.charge-preview strong{font-size:24px;color:#aaa}.charge-preview strong span{color:var(--acid)}
.charge-preview small{color:#cfc6b5}
@media(max-width:850px){.garage-dialog-head{top:-16px}.car-hero{top:auto}}
@media(max-width:560px){.garage-page>.page-title{top:72px;padding:8px 0}.garage-page>.page-title h1{font-size:25px}.garage-page>.page-title .toolbar{margin-top:8px}.restore-options{grid-template-columns:1fr}}

.fleet-wrap[data-fleet-index]{touch-action:none;cursor:grab;user-select:none}
.fleet-wrap[data-fleet-index] .fleet-card{cursor:grab}
