/* Desktop menus scale with the display while assembly stays within one workspace. */
@media (min-width:1201px) and (min-height:650px) {
 html[data-game-shell=true] body:not(.in-battle){--shell-top:clamp(60px,4vw,84px);--shell-side:clamp(96px,7vw,148px);--desktop-gap:clamp(12px,1.2vw,28px);--desktop-control:clamp(44px,2.3vw,56px);--desktop-robot-height:clamp(240px,calc(100dvh - 620px),820px)}
 html[data-game-shell=true] body:not(.in-battle)>.topbar{padding:8px calc(var(--desktop-control) + 32px) 8px clamp(18px,1.8vw,40px);gap:clamp(14px,1.4vw,30px)}
 html[data-game-shell=true] body:not(.in-battle) .topbar .brand{font-size:clamp(24px,1.55vw,36px);letter-spacing:-1px}
 html[data-game-shell=true] body:not(.in-battle) .shell-profile-open{gap:clamp(12px,1vw,24px);min-height:var(--desktop-control);padding:6px 10px;font-size:clamp(14px,.9vw,19px)}
 html[data-game-shell=true] body:not(.in-battle) .shell-profile-open #pilot-level{font-size:clamp(13px,.8vw,18px)}
 html[data-game-shell=true] body:not(.in-battle) .shell-profile-open #wallet{font-size:clamp(16px,1.1vw,23px)}
 html[data-game-shell=true] body:not(.in-battle) #main-options-toggle{flex-basis:var(--desktop-control);width:var(--desktop-control);height:var(--desktop-control);font-size:clamp(25px,1.6vw,34px)}
 html[data-game-shell=true] body:not(.in-battle) #chat-toggle{width:var(--desktop-control);height:var(--desktop-control);padding:10px}
 html[data-game-shell=true] body:not(.in-battle) #chat-toggle svg{width:clamp(22px,1.2vw,28px);height:clamp(22px,1.2vw,28px)}
 html[data-game-shell=true] body:not(.in-battle)>.shell-nav{gap:clamp(8px,1.4dvh,20px);padding:var(--desktop-gap) 8px}
 html[data-game-shell=true] body:not(.in-battle)>.shell-nav .nav{min-height:clamp(56px,7dvh,82px);padding:14px 5px;font-size:clamp(14px,1vw,20px)}
 html[data-game-shell=true] body:not(.in-battle) .shell-deck-bar{padding:8px clamp(16px,1.4vw,30px);gap:16px}
 html[data-game-shell=true] body:not(.in-battle) .shell-deck-bar>div{gap:12px}
 html[data-game-shell=true] body:not(.in-battle) .shell-deck-bar small{font-size:clamp(12px,.8vw,16px)}
 html[data-game-shell=true] body:not(.in-battle) .shell-deck-name{font-size:clamp(15px,1vw,20px)}
 html[data-game-shell=true] body:not(.in-battle) .shell-deck-state{font-size:clamp(12px,.8vw,16px)}
 html[data-game-shell=true] body:not(.in-battle) .shell-deck-bar>button{min-height:36px;padding:7px 14px;font-size:clamp(13px,.85vw,17px)}

 html[data-game-shell=true] body:not(.in-battle) #lobby .hangar{grid-template-columns:minmax(0,1fr) clamp(280px,20vw,460px);grid-template-rows:clamp(52px,4.5dvh,64px) minmax(0,1fr) clamp(184px,18dvh,252px)}
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-launcher{padding:clamp(16px,1.4vw,34px);gap:clamp(10px,1.2dvh,18px);min-height:0;overflow-y:auto;overscroll-behavior:contain;justify-content:safe center}
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-primary-actions,
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-secondary-actions{gap:clamp(10px,1.2dvh,18px);flex:none}
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-primary-actions button{min-height:clamp(72px,8.4dvh,118px);padding:clamp(14px,1.3vw,28px)}
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-primary-actions strong{font-size:clamp(20px,1.25vw,30px);line-height:1.25}
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-primary-actions small{font-size:clamp(13px,.85vw,18px);line-height:1.4;margin-top:6px}
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-secondary-actions button,
 html[data-game-shell=true] body:not(.in-battle) #lobby .lobby-queue-indicator{min-height:clamp(52px,5.6dvh,80px);padding:12px 8px;font-size:clamp(15px,1vw,21px);flex:none}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip{gap:clamp(8px,.65vw,16px);padding:clamp(8px,.7vw,16px) clamp(12px,1vw,24px)}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip button[data-garage]{grid-template-columns:clamp(48px,3.3vw,80px) minmax(0,1fr);grid-template-rows:clamp(48px,5.8dvh,80px) minmax(0,1fr);gap:5px clamp(8px,.65vw,16px);padding:clamp(8px,.65vw,16px)}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip button[data-garage]>canvas{width:clamp(48px,3.3vw,80px);height:clamp(48px,3.3vw,80px)}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip button[data-garage] .slot-title{gap:clamp(5px,.5vw,12px)}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip button[data-garage] .slot-number{font-size:clamp(11px,.7vw,16px)}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip button[data-garage] b{font-size:clamp(13px,.95vw,21px);line-height:1.3}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip button[data-garage] small.slot-parts{gap:3px;font-size:clamp(12px,.8vw,18px);align-content:center}
 html[data-game-shell=true] body:not(.in-battle) #lobby #loadout-strip button[data-garage] .slot-parts>span{font-size:clamp(12px,.8vw,18px);line-height:1.3}

 html[data-game-shell=true] body:not(.in-battle) main>#garage{padding:clamp(14px,1.3vw,28px);overflow-x:hidden}
 html[data-game-shell=true] body:not(.in-battle) #garage>.section-heading,
 html[data-game-shell=true] body:not(.in-battle) #garage>.shell-garage-deck,
 html[data-game-shell=true] body:not(.in-battle) #garage>.garage-grid{width:100%;max-width:1500px;margin-inline:auto}
 html[data-game-shell=true] body:not(.in-battle) #garage>.section-heading{min-height:48px;margin-bottom:12px;padding:0}
 html[data-game-shell=true] body:not(.in-battle) #garage>.section-heading h1{font-size:clamp(26px,1.6vw,36px)}
 html[data-game-shell=true] body:not(.in-battle) #garage #save-loadout{min-height:var(--desktop-control);padding:10px 22px;font-size:clamp(15px,1vw,20px)}
 html[data-game-shell=true] body:not(.in-battle) #garage>.shell-garage-deck{margin-bottom:14px}
 html[data-game-shell=true] body:not(.in-battle) #garage .garage-grid{gap:10px}
 html[data-game-shell=true] body:not(.in-battle) #garage .assembly-stage{min-width:0;padding:clamp(14px,1.1vw,24px);background:radial-gradient(ellipse at 50% 38%,#223439,#0b171d 76%)}
 html[data-game-shell=true] body:not(.in-battle) #garage .garage-slots{gap:clamp(7px,.6vw,14px);margin-bottom:clamp(12px,1dvh,18px)}
 html[data-game-shell=true] body:not(.in-battle) #garage .garage-slots button{min-height:44px;padding:9px 8px;font-size:clamp(13px,.9vw,18px);overflow:hidden;text-overflow:ellipsis}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-surround{grid-template-columns:clamp(230px,18vw,340px) minmax(0,1fr) clamp(230px,18vw,340px);gap:clamp(16px,1.5vw,32px);align-items:start}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-point{padding:clamp(12px,1vw,20px);border-color:#496066;background:linear-gradient(120deg,#172a31e8,#102027e8)}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-point>strong{font-size:clamp(15px,1vw,20px)}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-lower,
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-equipment{align-self:end}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-point label{margin-top:8px}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-inspect{min-height:clamp(64px,5vw,108px);margin:8px 0;padding:5px}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-icon{width:clamp(60px,4.5vw,100px);height:clamp(60px,4.5vw,100px);margin:0 auto}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-inspect::after{right:5px;bottom:5px;width:18px;height:18px;line-height:18px;font-size:13px}
 html[data-game-shell=true] body:not(.in-battle) #garage .mount-point .part-picker-open{min-height:44px;padding:10px 8px;font-size:clamp(13px,.85vw,17px)}
 html[data-game-shell=true] body:not(.in-battle) #garage .robot-name-label{font-size:clamp(13px,.85vw,17px);margin-bottom:10px}
 html[data-game-shell=true] body:not(.in-battle) #garage .robot-name-label input{min-height:40px;padding:8px;font-size:clamp(15px,1vw,20px);margin-top:5px}
 html[data-game-shell=true] body:not(.in-battle) #garage .robot-visual{width:min(100%,var(--desktop-robot-height));margin-inline:auto}
 html[data-game-shell=true] body:not(.in-battle) #garage .robot-visual #assembly{width:100%;height:auto;aspect-ratio:1;max-height:none;min-height:0;object-fit:contain}
 html[data-game-shell=true][data-robot3d=true] body:not(.in-battle) #garage .robot-visual{width:min(100%,calc(var(--desktop-robot-height) * .8))}
 html[data-game-shell=true][data-robot3d=true] body:not(.in-battle) #garage .robot-visual #assembly{aspect-ratio:4/5}
 html[data-game-shell=true] body:not(.in-battle) #garage .robot-motion-choice{min-height:40px;padding:7px 10px;font-size:clamp(13px,.85vw,17px);margin-top:8px}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-bottom-info{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;align-items:center;margin-top:clamp(12px,1.1dvh,20px);padding:12px 16px}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-bottom-info>.workshop-overview{grid-column:1;grid-row:1}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-stat-details{grid-column:2;grid-row:1;width:auto;margin:0}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-stat-details[open]{grid-column:1/-1;grid-row:2}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-bottom-info .stat-meter>div{font-size:clamp(13px,.9vw,18px);gap:8px}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-bottom-info .stat-meter strong{font-size:clamp(15px,1vw,20px)}
 html[data-game-shell=true] body:not(.in-battle) #garage .workshop-stat-details>summary{padding:9px;font-size:clamp(13px,.85vw,17px)}
 html[data-game-shell=true] body:not(.in-battle) #garage .compact-workshop-help>summary{padding:7px 10px;font-size:12px}
}
/* Landscape phones: keep navigation and content outside either camera cutout. */
@media (orientation:landscape){
 html[data-game-shell=true] body:not(.in-battle){--shell-safe-left:env(safe-area-inset-left,0px);--shell-safe-right:env(safe-area-inset-right,0px);--shell-safe-bottom:env(safe-area-inset-bottom,0px)}
 html[data-game-shell=true] body:not(.in-battle)>.topbar{left:var(--shell-safe-left);right:var(--shell-safe-right)}
 html[data-game-shell=true] body:not(.in-battle)>.shell-nav{left:var(--shell-safe-left);bottom:var(--shell-safe-bottom)}
 html[data-game-shell=true] body:not(.in-battle)>main{left:calc(var(--shell-safe-left) + var(--shell-side));right:var(--shell-safe-right);bottom:max(var(--shell-bottom),var(--shell-safe-bottom))}
}
