/* Landscape play surface: all primary actions stay inside the device safe area. */
html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{display:grid;place-items:center;background:#081619}
.game-shell{position:relative;width:min(100vw,177.778dvh);height:min(100dvh,56.25vw);min-height:300px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box;background:#132728;box-shadow:0 0 60px #0008}
header{height:40px;padding:0 12px;gap:8px}.brand{font-size:15px;letter-spacing:1px}.connection{font-size:12px;margin-left:auto}header button{min-height:36px;font-size:14px;padding:5px 9px}#fullscreen{color:#ead398}main{height:calc(100% - 40px);padding:0 8px 8px;margin:0}.arena{position:relative;display:grid;grid-template-columns:176px minmax(0,1fr) 92px;grid-template-rows:32px minmax(0,1fr);gap:6px}
.scorebar{grid-column:1/-1;grid-row:1;height:32px;padding:0 6px}.competitor .micro,.competitor .avatar,.matchtime>span{display:none}.competitor strong{font-size:14px;max-width:130px}.competitor b{font-size:21px}.matchtime strong{font-size:18px}.matchtime{min-width:90px}.street-bar{display:none}
.intel-dock{grid-column:1;grid-row:2;display:flex;flex-direction:column;padding:7px;gap:10px;min-height:0;overflow:auto;background:#17322f;border-color:#506654}.bounty-ribbon{width:100%;flex-direction:column;gap:5px}.bounty-card{width:100%;flex:none;min-height:44px;justify-content:flex-start;padding:5px 7px}.bounty-card .tab-name{font-size:14px}.bounty-card .tab-kind{font-size:12px;display:block!important}.bounty-card .evidence-photo.compact,.bounty-card .evidence-symbol.compact{width:28px;height:34px}.bounty-card .evidence-photo.compact img{height:34px}.quick-intel{display:flex;flex-direction:column;align-items:stretch;width:100%;padding:0;gap:8px;flex:none}.quick-copy strong{font-size:14px;line-height:1.55}.quick-copy p{display:block;font-size:13px;line-height:1.55}.quick-intel>button{width:100%;min-height:44px;padding:8px;font-size:14px}
.viewport{grid-column:2;grid-row:2;height:100%;width:100%;min-height:0;min-width:0;touch-action:none}.district-controls{top:7px;left:7px;right:7px;justify-content:center;padding:2px;gap:0}.district-controls button{flex:1;min-height:40px;font-size:14px;padding:5px}.zoom-controls{right:7px;bottom:7px;left:auto;max-width:calc(100% - 14px);height:42px}.zoom-controls button{min-width:40px;min-height:40px;font-size:20px;padding:3px 6px}.zoom-controls #motion{font-size:12px;display:block;min-width:48px}.zoom-controls span{font-size:12px}.zoom-controls #resetView{display:none}
.controlbar{grid-column:3;grid-row:2;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding:8px 5px;min-height:0;background:#17312e}.controlbar button{width:100%;min-height:48px;font-size:15px;padding:8px 3px;white-space:normal}.controlbar #fire{min-width:0;min-height:64px;font-size:19px;border-radius:12px}.controlbar #scope{min-height:54px}.controlbar kbd,.controlbar .shot-state{display:none}.controlbar .ammo{display:block;text-align:center}.controlbar .ammo .micro{font-size:12px}.controlbar .ammo strong{font-size:16px;letter-spacing:1px}.readout{position:absolute;left:188px;right:104px;bottom:56px;z-index:4;pointer-events:none;flex:none;border:0;background:transparent;text-align:center;padding:0 8px;line-height:1.4}.inspect{background:#102b29eb;border-radius:5px;padding:5px 8px}.inspect strong,.inspect span{font-size:13px;display:block;white-space:normal}.inspect small,.inspect progress,#aimHint{display:none!important}
#toast{bottom:100px;max-width:90%;font-size:14px}.boss-warning{top:55px;right:7px}.opponent-feed{top:55px;max-width:90%}.cover{padding:10px}.lobby-card,.waiting-card,.result-card{max-height:100%;overflow:auto;width:400px;padding:14px 20px}.lobby-card h1{font-size:23px;margin:0 0 9px}.lobby-card .micro,.lobby-card>p,.lobby-card>small{display:none}.lobby-card input,.lobby-card button{min-height:44px;font-size:15px}.lobby-card>input,.lobby-card>button{margin-bottom:7px}.lobby-card label{font-size:14px}.waiting-card h2,.result-card h2{margin:3px 0 10px;font-size:22px}.waiting-card p{font-size:14px;line-height:1.4}.waiting-card .lan-instructions{font-size:14px}.countdown strong{font-size:64px}dialog{max-height:90dvh;max-width:92vw;min-height:0}dialog .close{position:sticky;top:0;float:right;z-index:2}
body[data-phase=loading] .arena,body[data-phase=lobby] .arena,body[data-phase=waiting] .arena,body[data-phase=finished] .arena{display:flex}body:not([data-phase=playing]):not([data-phase=countdown]) .viewport{flex:1}body[data-phase=waiting] .intel-dock,body[data-phase=finished] .intel-dock{display:none}
.rotate-notice{display:none;position:fixed;inset:0;z-index:100;background:#10282cf5;align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:30px;text-align:center;color:#e8ddbc}.rotate-notice strong{font-size:24px}.rotate-notice p{font-size:16px;line-height:1.7;max-width:280px}.rotate-notice button{font-size:16px;min-height:46px;padding:10px 22px}.rotate-notice .rotate-symbol{font-size:64px;color:#e8c883}
@media(orientation:portrait) and (max-width:700px){.rotate-notice:not([hidden]){display:flex}.game-shell{width:100vw;height:100dvh;min-height:0}.arena{grid-template-columns:120px minmax(0,1fr) 68px}.readout{left:130px;right:78px}.district-controls{flex-wrap:wrap}.district-controls button{flex:1 1 40%}.brand{font-size:12px}.connection{display:none}header #journal{display:none}}
@media(orientation:landscape) and (max-height:500px){.game-shell{width:100vw;height:100dvh;min-height:0}header{height:36px}.brand{font-size:14px}.brand .cross{font-size:23px}.connection{display:none}header #journal{margin-left:auto}main{height:calc(100% - 36px);padding:0 6px 6px}.arena{grid-template-columns:164px minmax(0,1fr) 84px;grid-template-rows:26px minmax(0,1fr);gap:5px}.scorebar{height:26px}.scorebar .competitor strong{font-size:13px}.quick-copy p{display:none}.intel-dock{gap:6px;padding:5px}.bounty-card{min-height:44px}.bounty-card .tab-kind{display:none!important}.readout{left:174px;right:94px;bottom:53px}.controlbar{gap:6px;padding:6px 4px}.controlbar #fire{min-height:56px}.controlbar #scope{min-height:46px}.controlbar button{min-height:44px}.zoom-controls #motion{display:none}.lobby-card{padding:10px 18px}.lobby-card h1{font-size:20px}.lobby-card label{display:none}.lobby-card input,.lobby-card button{min-height:44px;padding:7px 10px}.lobby-card h1{margin-bottom:6px}.lobby-card>input,.lobby-card>button{margin-bottom:6px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.lobby-card .vehicle-challenge{display:flex;gap:9px;align-items:center;font-size:14px;margin:4px 0 9px;cursor:pointer;min-height:32px}.vehicle-challenge input{width:19px!important;height:19px!important;min-height:0!important;margin:0!important;accent-color:#d9bf86;flex:none}
.vehicle-clue{display:block;color:#f0ce88;font-size:14px;font-weight:600;line-height:1.6;margin-bottom:5px}

/* v11.1: the city uses the whole landscape surface; HUD panels float above it. */
header{border-bottom:0}header button{line-height:20px}
main{padding:0}
.arena{display:block}
.viewport{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0}
.scorebar{position:absolute;inset:0 0 auto;z-index:6;height:32px;padding:0 12px;background:#132b2bea;border-bottom:1px solid #60716466}
.intel-dock{position:absolute;z-index:6;left:8px;top:42px;width:176px;max-height:calc(100% - 52px);height:auto;flex-wrap:nowrap;background:#132e2dec;box-shadow:0 3px 12px #071b2340}
.controlbar{position:absolute;z-index:6;right:8px;bottom:8px;width:84px;height:auto;background:#132e2dd9;box-shadow:0 3px 12px #071b2340;border:1px solid #60716480}
.district-controls{top:39px;left:194px;right:102px;background:#132e2de6}
.zoom-controls{right:102px;bottom:8px}
.readout{left:194px;right:102px;bottom:59px}
#toast{left:calc(50% + 42px);bottom:109px;max-width:calc(100% - 310px)}
.boss-warning{top:91px;right:104px}.opponent-feed{top:91px;left:194px}
body.intel-hidden .intel-dock{display:none}
body.intel-hidden .district-controls,body.intel-hidden .readout{left:8px}
body.intel-hidden #toast{left:50%;max-width:75%}
body.intel-hidden .opponent-feed{left:8px}
#intelToggle{color:#e7d099}
body[data-phase=loading] #intelToggle,body[data-phase=lobby] #intelToggle,body[data-phase=waiting] #intelToggle,body[data-phase=finished] #intelToggle{display:none}
@media(orientation:landscape) and (max-height:500px){
 main{padding:0}.scorebar{height:26px;padding:0 10px}
 .intel-dock{left:6px;top:34px;width:154px;max-height:calc(100% - 42px)}
 .controlbar{right:6px;bottom:6px;width:80px}
 .district-controls{top:32px;left:168px;right:94px}
 .zoom-controls{right:94px;bottom:6px}
 .readout{left:168px;right:94px;bottom:55px}
 #toast{max-width:calc(100% - 270px);bottom:102px}
 .boss-warning{top:80px;right:94px}.opponent-feed{top:80px;left:168px}
}
@media(orientation:portrait) and (max-width:700px){
 main{padding:0}.intel-dock{width:120px}.controlbar{width:68px}
 .district-controls{left:136px;right:84px}.readout{left:136px;right:84px}
 .zoom-controls{right:84px}#intelToggle{font-size:12px;padding:5px 4px}
}
