/* Garage and racing layouts share safe-area aware, device-independent bounds. */
:root{--panel-width:min(40vw,520px)}
body{background:#0b1015}p{font-size:16px}button{min-height:44px}button:disabled{opacity:.55}
header{padding-inline:3%;gap:20px}.account{gap:12px}.edition{display:none}
#panel{width:var(--panel-width);max-height:calc(100dvh - 200px);padding:20px 16px 28px 0}
main{padding-inline:3%}.car-caption{right:4%;bottom:34px;pointer-events:none}
nav{width:100%;max-width:100%;overflow-x:auto;flex-shrink:0}
#shade{background:linear-gradient(90deg,#0b1015 0%,#0b1015ed 38%,#0b10153d 65%,transparent 100%)}
.garage-menu h1{font-size:clamp(26px,3vw,40px);font-weight:600;margin-bottom:6px}.garage-subtitle{margin:0 0 16px}
.garage-spec{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:20px 0;font-variant-numeric:tabular-nums}.garage-spec>b{font-size:34px;font-weight:500}.garage-spec small{font-size:14px;color:#a4b3c1}.garage-spec>span{font-size:14px;color:#ced8df}
.tuning-sheet,.car-catalog{margin-top:24px;padding-top:20px;border-top:1px solid #ffffff20}
.sheet-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px}.sheet-heading h2{font-size:20px;margin:0;font-weight:500}.sheet-heading>span{font-size:12px;color:#a7b1bc;text-align:right}
.performance-bars{display:grid;gap:13px;font-variant-numeric:tabular-nums}.performance-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.performance-row>span{font-size:14px;color:#c9d2db}.performance-row>b{font-size:15px;font-weight:500;white-space:nowrap}.performance-row small{font-size:12px;color:#8f9eae}.performance-row em{font-style:normal;color:#a8e0d3}
.performance-track{grid-column:1/-1;position:relative;height:5px;border-radius:4px;background:#ffffff15;overflow:hidden}.performance-track i{height:100%;position:absolute;left:0;top:0;background:linear-gradient(90deg,#987644,#edcc8c);border-radius:4px}.performance-track i.preview{background:#96d5c5}
.metric-note{font-size:13px;line-height:1.6;color:#929fae;margin:14px 0}.upgrade-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.upgrade-picker button{text-align:left;padding:12px;background:#18212ce0;border-radius:8px}.upgrade-picker strong{font-size:14px;font-weight:500;display:block}.upgrade-picker span{font-size:12px;color:#e8bd70;display:block;margin:5px 0}.upgrade-picker small{font-size:12px;color:#9faebe;display:block;line-height:1.5}.upgrade-picker .selected{border-color:var(--gold);background:#b8935121}
.garage-menu .primary{width:100%;min-height:48px;margin:0}.car-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.car-card{min-width:0;padding:14px 12px;background:#101a24e8;border-radius:8px;text-align:left;border-top:3px solid var(--car-paint)}.car-card.selected{outline:1px solid #e8bd70;border-color:#e8bd70;background:#1c2830}.car-card-heading{display:grid;gap:5px}.car-card-heading>b{font-size:14px;letter-spacing:.5px}.car-card-heading>small{font-size:12px;color:#e6c690}.car-class{font-size:12px;color:#a1adbb;display:block;margin:8px 0 14px}.compact{gap:8px}.compact .performance-row{gap:4px}.compact .performance-row>span,.compact .performance-row>b{font-size:12px}.compact .performance-row small{font-size:10px}.compact .performance-track{height:3px}
.settings-extras{border-top:1px solid #ffffff26;margin-top:20px;padding-top:16px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.settings-grid button,.settings-extras select{width:100%;min-height:44px;font-size:14px}.settings-extras label{display:grid;gap:8px;margin-top:14px;font-size:14px}
@media(min-width:1101px) and (pointer:fine){body.racing:not(.touch-device) #touch{display:none!important}}
@media(max-width:1100px){header{height:64px;padding:8px 14px}header img{width:120px}header .account{max-width:none;overflow:visible;margin-right:120px;gap:8px}.account>span,.account>button,#language-select{display:none}.account b{font-size:16px;white-space:nowrap}#controls-toggle{width:108px;min-height:44px}main{height:calc(100dvh - 64px)}nav{height:48px;gap:22px}nav button{font-size:14px}#panel{max-height:calc(100dvh - 132px)}footer{display:none}.car-caption{bottom:16px}.car-caption h2{font-size:24px}#sound-dock{display:none}}
@media(max-width:760px) and (orientation:portrait){
 :root{--panel-width:100%}header{height:64px}header img{width:100px}.account b{font-size:14px}header .account{margin-left:auto;margin-right:116px;gap:0}.account #license{display:none}nav{position:fixed;top:64px;left:0;right:0;padding:0 14px;background:#0b1015ed;height:48px;z-index:5;gap:20px;scrollbar-width:none}
 main{position:static;padding:0}#panel,.proof-menu #panel{position:fixed;top:43dvh;bottom:0;left:0;right:0;width:100%;max-height:none;padding:20px 18px calc(24px + env(safe-area-inset-bottom));background:linear-gradient(#0c141de8,#0c141dfa 80%);border-top:1px solid #ffffff25;border-radius:20px 20px 0 0;scrollbar-width:thin;overscroll-behavior:contain}
 #shade{background:linear-gradient(#0b1015 0 110px,transparent 112px 42dvh,#0b1015 65dvh)}.car-caption{display:none}.proof-menu h1,h1{font-size:28px}#panel .intro{margin-bottom:16px}.track{grid-template-columns:28px 1fr auto;padding:12px 10px}.track em{font-size:12px}.garage-spec{margin:14px 0}.car-grid{gap:8px}.car-card{padding:12px 10px}.garage-menu h1{font-size:29px}
 body.racing header{height:58px!important}.race-top{top:65px!important;left:12px;right:12px}.race-top .timing{min-width:115px}.race-top .position-box,.race-top .lap-box{padding:7px;min-width:56px!important}.sector-strip{display:none}.position-box>small,.lap-box>small{font-size:12px!important}.position-box strong,.lap-box h2{font-size:24px!important}
 body.racing .view-controls{bottom:calc(20px + env(safe-area-inset-bottom) + var(--visual-bottom,0px));width:calc(100% - 24px);max-width:none;flex-wrap:wrap;gap:5px}.view-controls button{min-height:40px;font-size:12px;padding:8px;max-width:120px}body.racing .pause{top:212px;right:12px;min-height:44px}body.racing .telemetry{transform:scale(.64);right:12px;bottom:calc(var(--button-lift,88px) + 76px + env(safe-area-inset-bottom))}body.cockpit-view .telemetry{transform:scale(.6)}body.racing #map{width:96px;height:77px;left:12px;bottom:calc(var(--button-lift,88px) + 80px + env(safe-area-inset-bottom))}
 #touch{gap:6px}#touch button{min-width:46px;min-height:58px;padding:10px 6px;font-size:14px}#touch button:nth-child(3){margin-left:0}.control-options{gap:8px}dialog{width:calc(100% - 24px);padding:18px}#callout{font-size:28px!important}
}
@media(max-height:540px) and (orientation:landscape){
 header{height:48px;padding-block:4px}header img{width:104px}#controls-toggle{top:4px;min-height:40px}main{height:calc(100dvh - 48px)}nav{height:48px}#panel,.proof-menu #panel{width:40vw;max-height:calc(100dvh - 108px);padding-top:12px}h1,.proof-menu h1,.garage-menu h1{font-size:25px}.car-caption{display:none}.garage-spec>b{font-size:26px}.car-grid{grid-template-columns:1fr}.tuning-sheet{margin-top:16px;padding-top:14px}.upgrade-picker button{padding:9px}
 body.racing .view-controls{bottom:calc(12px + env(safe-area-inset-bottom) + var(--visual-bottom,0px));max-width:65%;gap:5px}.view-controls button{min-height:40px;font-size:12px;padding:7px 10px}.sector-strip{display:none}body.racing .pause{top:104px;right:12px;min-height:44px}.race-top{top:46px!important}.telemetry .dial svg,.telemetry .car-health,.telemetry #condition,.telemetry #shift-light,.telemetry #handbrake-state{display:none}.telemetry .dial{width:125px;height:60px}.telemetry .speed-readout{inset:0;grid-template-columns:1fr 30px;gap:0 8px}.telemetry .speed-readout b{font-size:38px}.telemetry .speed-readout strong{font-size:25px}.telemetry .rpm-caption{top:56px;font-size:10px}.telemetry .pedals{right:-10px;bottom:0;height:42px}.telemetry .pedals>div{height:42px}body.racing .telemetry,body.cockpit-view .telemetry{transform:none;bottom:calc(var(--button-lift,88px) + 66px + env(safe-area-inset-bottom));right:20px;width:125px}body.racing #map{width:80px;height:64px;left:16px;bottom:calc(var(--button-lift,88px) + 66px + env(safe-area-inset-bottom))}#touch button{min-height:52px;min-width:52px;font-size:14px}
}
@media(max-width:350px){.car-grid,.upgrade-picker{grid-template-columns:1fr}.garage-spec{flex-wrap:wrap}header img{width:80px}.account b{font-size:12px}#controls-toggle{width:96px}header .account{margin-right:104px}.performance-row>b{font-size:14px}}
@media(max-width:1100px){header .account #credits{display:block}body.racing .account #quality-toggle{display:none}}
@media(max-width:760px) and (orientation:portrait){.proof-menu #shade{background:linear-gradient(#0b1015 0 110px,transparent 112px 42dvh,#0b1015 65dvh)}}
/* Five direct camera choices stay above the action on both input types. */
#camera-quick{position:fixed;pointer-events:auto;z-index:14;right:calc(max(12px,env(safe-area-inset-right)) + 140px);top:max(8px,env(safe-area-inset-top));display:flex;align-items:center;gap:7px;min-height:44px;background:#10202bd9;border:1px solid #d7bc7e66;border-radius:6px;padding:0 8px;font-size:12px;max-width:180px}
#camera-quick select{background:transparent;color:#f1e4c9;border:0;font:inherit;min-height:44px;width:108px;padding:4px;cursor:pointer}#camera-quick option{background:#10202b;color:#fff}#camera-toggle{display:none}
.music-library{border:1px solid #dac08735;background:#111d26;border-radius:10px;padding:14px;margin-top:20px}.music-library h3{font-size:16px;margin:0 0 10px;color:#e6cc91}.music-transport{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;margin-top:12px}.music-transport span{text-align:center;font-size:13px;line-height:1.4;color:#deceac}.music-transport button{font-size:24px;padding:0;min-height:44px}
@media(max-width:1100px){#camera-quick{right:calc(max(12px,env(safe-area-inset-right)) + 120px);max-width:136px;padding:0 5px;gap:3px}#camera-quick>span{display:none}#camera-quick select{width:124px;font-size:12px}}
@media(max-height:540px) and (orientation:landscape){#camera-quick{top:max(4px,env(safe-area-inset-top))}}
@media(max-width:360px){body.racing header img{width:64px}#camera-quick{right:calc(max(12px,env(safe-area-inset-right)) + 107px);max-width:125px}#camera-quick select{width:112px}}
@media(min-width:1101px){body.racing header .account{margin-right:316px}}
.settings-extras>a{display:inline-block;margin-top:16px;color:#dfc58d;font-size:13px}
.weather-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-bottom:1px solid #ffffff20;padding-bottom:14px}.weather-settings p{grid-column:1/-1;margin:0}.weather-settings select{min-width:0}
#wiper-toggle{min-height:44px;min-width:70px}#mirror-frame{border-width:3px;border-radius:8px}#mirror-frame span{display:none}
@media(max-width:420px){.weather-settings{grid-template-columns:1fr}.weather-settings p{grid-column:1}#wiper-toggle{font-size:11px}}
body.racing header #credits{display:none}

@media(max-height:540px) and (orientation:landscape){body.racing .pause{right:calc(max(12px,env(safe-area-inset-right)) + 166px);top:104px}}

.music-transport strong{display:block;font-size:15px;font-weight:600}.music-transport small{display:block;margin-top:4px;color:#a4b4c3;font-size:11px}.music-credit{font-size:11px;color:#a4b4c3;margin:12px 0 0}.music-credit a{color:#d9c490;text-underline-offset:3px}

.livery-id{font-size:13px;letter-spacing:1px;color:#d8c28e;display:flex;align-items:center;gap:10px}.livery-id b{display:inline-block;padding:6px 9px;background:#edece3;color:#131c22;font-size:19px;letter-spacing:0}
