/* Campaign overlay is isolated from the original training UI (?lab=1). */
body[data-game]:not([data-game=training]) main{display:block;min-height:0}
body[data-game]:not([data-game=training]) .sidebar,body[data-game]:not([data-game=training]) footer{display:none}
body[data-game]:not([data-game=training]) .viewport{width:100%;height:calc(100dvh - 88px);min-height:300px;max-height:none;position:relative;top:auto}
body[data-game] .scene-heading,body[data-game]:not([data-game=training]) .scene-badge,body[data-game]:not([data-game=training]) .scene-bottom,body[data-game]:not([data-game=training]) .view-hint{display:none}
body[data-game]:not([data-game=training]):not([data-game=mission-battle]):not([data-game=incident-battle]) .combat-hud,
body[data-game]:not([data-game=training]) .quest-card,
body[data-game]:not([data-game=training]):not([data-game=mission-battle]):not([data-game=incident-battle]) #pause-toggle,
body[data-game]:not([data-game=training]):not([data-game=mission-battle]):not([data-game=incident-battle]) #pause-panel,
body[data-game]:not([data-game=training]):not([data-game=mission-battle]):not([data-game=incident-battle]) #round-banner{display:none}
body[data-game=title] .touch-controls,body[data-game=district-select] .touch-controls,body[data-game=quest-detail] .touch-controls,body[data-game=records] .touch-controls,body[data-game=mission-result] .touch-controls,body[data-game=mission-dialogue] .touch-controls{display:none}
body[data-game=headquarters] .touch-action-pad button:not(#touch-run),body[data-game=exploration] .touch-action-pad button:not(#touch-run){display:none}
body[data-game=headquarters] .touch-action-pad,body[data-game=exploration] .touch-action-pad{display:flex}
body[data-game]:not([data-game=training]) #sound-toggle{top:78px;right:18px;z-index:3}
body[data-game=mission-battle] #pause-toggle{top:78px;right:95px}
#game-ui{position:absolute;inset:0;pointer-events:none;color:#e8fff8;z-index:4}
#game-ui button,#game-ui input{pointer-events:auto}#game-ui button{min-height:44px;border:1px solid #75c6be;border-radius:6px;padding:10px 14px;background:#204a56;color:#effff9;font-size:13px;font-weight:600;line-height:1.4;touch-action:manipulation;cursor:pointer}
#game-ui button:hover{background:#30646b}#game-ui button:disabled{opacity:.48;cursor:default}#game-ui button:focus-visible{outline:3px solid #c6ffa4;outline-offset:3px}
#game-hud{position:absolute;top:14px;left:18px;right:18px;min-height:66px;padding:10px 13px;border:1px solid #75c6be88;border-radius:8px;background:#122c3be8;display:flex;flex-direction:column;gap:5px;padding-right:200px}
#game-location{font-size:13px}#game-objective{font-size:12px;line-height:1.45}#game-model-note{font-size:10px;color:#b6d7d6}
#game-pause,#game-abort{position:absolute;right:8px;top:8px;font-size:11px!important}#game-abort{top:58px}
#game-map{position:absolute;right:18px;top:142px;width:132px;background:#152e3eea;border:1px solid #75c6be88;border-radius:8px;padding:6px}
#game-map canvas{display:block;width:100%;height:auto;border-radius:3px}#game-map small{display:block;font-size:8px;line-height:1.5;color:#c4e8e5;margin-top:4px}
#game-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92%,480px);max-height:calc(100% - 28px);overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;padding:22px;border:1px solid #80cfc7;border-radius:12px;background:#102634f5;box-shadow:0 12px 45px #041a2a88}
#game-panel h1{font-size:27px;line-height:1.3;letter-spacing:.03em;margin:9px 0 16px}#game-panel h2{font-size:20px;display:block;margin-bottom:12px}#game-panel h3{font-size:15px;margin:15px 0 8px}#game-panel p{font-size:13px;line-height:1.7;color:#c6dddf}#game-panel small{font-size:10px;line-height:1.7;color:#a4cccb;display:block;margin-top:10px}
#game-panel button{display:block;width:100%;margin-top:10px;text-align:left}#game-panel article{margin:12px 0}#game-panel article p{font-size:11px;margin:5px 0}
#game-interact{position:absolute;right:18px;bottom:130px;max-width:220px;background:#245e65!important}#game-training-return{position:absolute;left:20px;top:20px}
body[data-game=mission-battle] #game-map{top:auto;bottom:220px;width:108px}body[data-game=mission-battle] #game-hud{padding-right:13px}body[data-game=mission-result] #game-panel{border:2px solid #c2ffe2}
@media(max-width:760px){body[data-game]:not([data-game=training]) .viewport{height:calc(100dvh - 72px)}#game-hud{left:10px;right:10px;top:10px;padding:9px 10px;padding-right:88px}#game-location{font-size:12px}#game-objective{font-size:11px}#game-model-note{font-size:9px}#game-pause{right:5px;top:6px;max-width:82px;padding:6px!important;font-size:10px!important}#game-abort{top:110px;right:0;font-size:10px!important;max-width:155px}#game-map{top:172px;right:10px;width:110px}#game-panel{padding:16px;max-height:calc(100% - 22px)}#game-panel h1{font-size:23px}#game-panel h2{font-size:18px}#game-interact{right:17px;bottom:128px;font-size:12px!important}body[data-game]:not([data-game=training]) #sound-toggle{top:110px;right:auto;left:10px}body[data-game=mission-battle] #sound-toggle{top:78px;left:auto;right:10px}body[data-game=mission-battle] #pause-toggle{top:78px;right:85px}body[data-game=mission-battle] #game-map{width:94px;bottom:205px}body[data-game=mission-battle] #game-model-note{display:none}#game-training-return{left:17px;top:20px;max-width:190px}}
@media(max-height:560px){#game-map{display:none}#game-model-note{display:none}#game-interact{bottom:126px}#game-hud{padding-top:7px;padding-bottom:7px}#game-panel{max-height:94%;padding:12px}}
/* Short portrait/landscape screens reserve the middle of battle for readable
   attack/reload warnings. Exploration keeps its minimap. */
@media(max-height:760px){body[data-game=mission-battle] #game-map{display:none}}
