/* Mobile lobby keeps every destination reachable; racing owns the viewport. */
@media (max-width:800px), (max-width:1000px) and (max-height:500px){
 body{overflow-x:hidden;overflow-y:auto}
 .game-header{height:auto;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:'brand account account account' 'nav nav nav nav' 'lang currency sound help';gap:8px;padding:12px max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));align-items:center}
 .brand{grid-area:brand;font-size:22px;min-width:0}.brand img{flex:none}.brand small{display:none}
 .header-tools{display:contents;padding:0}.google-account-controls{grid-area:account;position:static;justify-self:end;flex-wrap:wrap;justify-content:flex-end}
 .google-account-controls button{min-height:36px;font-size:11px;padding:7px 9px}
 .language-control{grid-area:lang;justify-self:start;padding:6px}.language-control select{font-size:12px;max-width:110px;min-height:25px}
 .header-tools .currency{grid-area:currency;min-width:44px;font-size:12px;padding:8px}
 #sound{grid-area:sound}.header-tools>button[data-modal=help]{grid-area:help}
 .header-tools .icon-button{width:36px;height:36px;font-size:17px}
 .game-header nav{grid-area:nav;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;width:100%;min-width:0}
 .game-header nav button,.game-header nav button:nth-child(n){display:flex;align-items:center;justify-content:center;gap:4px;min-height:46px;min-width:0;font-size:10px;letter-spacing:0;padding:8px 2px;border:1px solid #ffffff26;border-radius:4px;background:#302635}
 .game-header nav button>span{font-size:15px;margin:0}.game-header nav button small,.game-header nav button:after{display:none!important}
 .game-panel{height:max(800px,calc(100dvh - 150px));min-height:800px}
 body.is-racing{height:100dvh;overflow:hidden;overscroll-behavior:none}
 .is-racing .game-header{display:none}
 .is-racing .game-panel{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;margin:0}
 .is-racing .scene{height:100%;min-height:0}
 .is-racing .scene-top{top:max(10px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));gap:8px}
 .is-racing .microbot-shop,.is-racing .connection,.is-racing .scene-bottom,.is-racing .control-strip{display:none}
 .is-racing .scene-buttons .icon-button{width:40px;height:40px;font-size:20px}
 .is-racing .course-label{max-width:65%;font-size:8px;overflow:hidden}
 .is-racing .race-hud{top:calc(60px + env(safe-area-inset-top));left:16px;right:16px}
 .is-racing .place>strong{font-size:52px}.is-racing .place>span{font-size:19px}.is-racing .race-clock>strong{font-size:25px}
 .is-racing .race-progress{top:calc(123px + env(safe-area-inset-top));left:20px;right:20px}
 .is-racing .driving-ui{width:calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));max-width:680px;bottom:calc(12px + env(safe-area-inset-bottom))}
 .is-racing .rhythm-panel{padding:7px;gap:8px;margin-bottom:8px}.is-racing .rhythm-caption{width:95px}.is-racing .rhythm-caption>strong{font-size:9px}.is-racing .rhythm-caption>span{font-size:7px}
 .is-racing .foot-dock{gap:8px}.is-racing .foot-button{min-height:74px;min-width:0;padding:12px;justify-content:center;touch-action:none;user-select:none;-webkit-user-select:none}
 .is-racing .foot-button>kbd{display:none}.is-racing .foot-button>span b{font-size:25px}.is-racing .foot-button>span small{font-size:10px}
 .is-racing .speed-meter{min-width:65px}.is-racing .speed-meter>span{font-size:9px}
 .is-racing #online-standings{top:calc(154px + env(safe-area-inset-top));right:14px;width:140px;background:#1c1421b8}
 .is-racing #online-room-badge{top:calc(61px + env(safe-area-inset-top));left:50%;right:auto;transform:translateX(-50%);min-height:36px;font-size:9px;max-width:48%}
 .game-overlay{overflow-y:auto;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.result-card{max-height:100%;overflow-y:auto}
 dialog{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain}
}
@media (max-width:1000px) and (max-height:500px){
 .is-racing .race-hud{top:calc(55px + env(safe-area-inset-top))}.is-racing .place>strong{font-size:40px}.is-racing .race-clock>strong{font-size:21px}
 .is-racing .race-progress{top:24px;left:30%;right:30%}.is-racing .driving-ui{bottom:calc(8px + env(safe-area-inset-bottom))}
 .is-racing .rhythm-panel{width:55%;margin:0 auto 6px}.is-racing .rhythm-caption{display:none}.is-racing .rhythm-track{height:28px}
 .is-racing .foot-button{min-height:60px;max-width:150px}.is-racing .foot-dock{justify-content:space-between}.is-racing .speed-meter{margin-inline:auto;flex:0 0 75px}
 .is-racing #online-standings{top:100px;width:125px}.is-racing #online-room-badge{top:55px;font-size:8px}
 .is-racing .race-feedback{top:36%;font-size:25px}.is-racing .countdown{top:40%;font-size:90px}
}
