/* MOBILE01: flow layout and touch sizing; rules and world coordinates stay shared. */
button,select,input{touch-action:manipulation}
#dreamLeft,#dreamRight{touch-action:none;user-select:none;-webkit-user-select:none}
.loadout-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.loadout-slots label{min-width:0;display:grid;gap:6px}
.loadout-slots select{width:100%;min-width:0;min-height:44px;background:#1d2a30;color:#e0e4d9;border:1px solid #687e80;padding:8px;font:inherit}
.warehouse-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.warehouse-actions input{width:70px;min-height:44px}
@media(max-width:1000px){
 html{scroll-padding-bottom:80px}body{font-size:14px;overflow-wrap:break-word}
 .app{padding:10px max(10px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));max-width:100%}
 .top{gap:8px;padding-bottom:10px;align-items:flex-start}.top h1{font-size:19px}.eyebrow{font-size:10px;letter-spacing:.03em}
 .header-actions{gap:6px;max-width:100%;flex-wrap:wrap}.top button,.mode-tabs button{min-height:44px;font-size:13px;padding:7px 10px}
 button:not(.runtime-action){min-height:44px}input,select,textarea{font-size:16px;max-width:100%}
 .badge,.stage-badges{display:none}.preview-disclaimer{font-size:11px;line-height:1.5}.workspace{padding-top:10px}
 .stage,.show-editor .stage{width:100%;min-height:0;max-height:none;height:560px;aspect-ratio:auto;border-radius:3px}
 .explore-status{left:12px;top:12px;width:42%;gap:8px}.explore-status>img{width:48px;height:58px;object-fit:contain}
 .vital{font-size:13px;gap:6px}.gauge{height:16px}.gauge small{font-size:10px;line-height:14px}
 .supplies,.carried-echoes{font-size:12px;line-height:1.4}.hud-room{top:15px;left:45%;width:30%;text-align:center}
 .hud-room strong{font-size:16px}.hud-room>span,.hud-room #lightingStatus{font-size:12px}
 .hud-room .gain-feedback{font-size:14px}.hud-mini{top:12px;right:10px;width:20%;padding:5px;min-height:60px}.hud-mini>span{font-size:11px}.hud-mini kbd{display:none}
 .stage .input-bar{left:10px;bottom:12px;right:auto;width:260px;gap:10px;padding:0;justify-content:space-between}
 .stage .dpad{grid-template-columns:48px 48px 48px;grid-template-rows:46px 46px;gap:4px}
 .stage .dpad button{font-size:24px;min-height:46px;min-width:48px}
 .stage .interact{min-width:84px;min-height:70px;margin:0;font-size:16px;padding:6px}.stage .key-guide{display:none}
 .hud-equipment{left:auto;right:10px;bottom:12px;width:32%;height:auto;gap:6px}
 .hud-equipment button{min-width:0;min-height:62px;font-size:13px;overflow-wrap:anywhere;padding:5px}.hud-equipment small{font-size:10px;line-height:1.3}
 .stage .context{left:35%;right:10px;bottom:103px;padding:6px;min-height:38px;font-size:13px;line-height:1.4}
 .stage .nearby-actions{left:35%;right:10px;bottom:148px;margin:0;max-height:100px;overflow-y:auto;gap:5px}
 .stage .nearby-actions button{font-size:12px;min-height:44px;white-space:normal}.floor-direction{display:none}
 .battle-toolbar{min-width:0;max-width:100%;font-size:12px;margin-bottom:8px}.battle-toolbar>span{display:none}
 #battleView{overflow:visible}
 #battleBoard{display:grid;grid-template-columns:minmax(180px,28%) minmax(0,1fr);grid-template-areas:'hunter enemy' 'visual observation' 'visual timing' 'equipment cards' 'equipment confirm' 'detail detail';gap:12px;padding:12px;width:100%;min-width:0;min-height:0;height:auto;aspect-ratio:auto;overflow:visible}
 #battleBoard>.battle-hunter,#battleBoard>.battle-enemy-header,#battleBoard>.battle-observation,#battleBoard>.battle-timing,#battleBoard>.battle-equipment,#battleBoard>.battle-cards,#battleBoard>.battle-confirm,#battleBoard>.battle-detail{position:static;inset:auto;width:auto;height:auto;margin:0;min-width:0}
 #battleBoard h2{font-size:17px}.battle-hunter{grid-area:hunter}.battle-enemy-header{grid-area:enemy}.battle-observation{grid-area:observation}.battle-timing{grid-area:timing}.battle-cards{grid-area:cards}.battle-confirm{grid-area:confirm}.battle-equipment{grid-area:equipment}.battle-detail{grid-area:detail}
 #battleBoard>.battle-hunter{gap:8px;align-items:center}.battle-hunter>img{width:48px;height:65px;object-fit:contain}.battle-hunter h2 small{display:block;font-size:12px;margin:3px 0}
 #battleBoard>.battle-enemy-header{gap:10px;align-items:center;padding-bottom:8px}.enemy-life{min-width:0;width:45%}
 #battleBoard>.battle-visual{grid-area:visual;position:relative;inset:auto;width:100%;height:260px;min-width:0;align-self:start}
 .battle-visual>img{width:100%;height:94%;right:0;object-fit:contain}.battle-action-record{min-height:44px;left:6px;bottom:6px;font-size:13px}
 #battleBoard>.battle-observation{padding:0;overflow:visible}.battle-observation>p{font-size:15px;line-height:1.5}.battle-observation .entry-cue strong{font-size:15px}
 #battleBoard>.battle-timing{padding:9px;min-height:180px;overflow:visible}.battle-timing .timelines{grid-template-columns:48px minmax(0,1fr);grid-template-rows:26px 24px 76px;gap:4px}
 .battle-timing .timeline-scroll{overflow:visible}.battle-timing .axis-label{font-size:10px}.enemy-track span,.ruler>span{font-size:11px}
 .player-track .runtime-action{grid-template-rows:minmax(0,1fr) 22px}.player-track .runtime-action strong{font-size:10px;line-height:12px;overflow-wrap:anywhere}.player-track .runtime-action span{font-size:10px}
 .battle-cards .card-strip{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:minmax(76px,auto);height:auto;gap:6px;overflow:visible}
 .battle-cards .action-card{height:auto;min-height:76px;padding:7px;overflow:visible;justify-content:center}
 .battle-cards .action-card small{font-size:11px;white-space:normal;line-height:1.35}.battle-cards .action-card strong{font-size:14px;line-height:1.4}.battle-cards .action-card>span{display:block;font-size:11px;white-space:normal;line-height:1.35}
 #battleBoard>.battle-confirm{min-height:52px;font-size:18px}.battle-confirm small{font-size:12px;margin-top:2px}
 #battleBoard>.battle-equipment{display:flex;gap:6px;align-content:start}.battle-equipment button{width:calc((100% - 12px)/3);height:auto;min-height:68px;font-size:13px;overflow-wrap:anywhere}.battle-equipment small,.battle-equipment p{font-size:11px}
 #battleBoard>.battle-detail{padding-top:10px;gap:8px;overflow:visible}.battle-detail p,.battle-detail>p{font-size:13px;max-height:none;line-height:1.5}.battle-detail>button{font-size:13px;min-height:44px}
 dialog,#chapterDialog{width:min(720px,calc(100vw - 16px));max-width:calc(100vw - 16px);max-height:calc(100dvh - 24px);padding:14px;overscroll-behavior:contain;overflow:auto}
 #chapterBody{margin:12px 0;overflow-wrap:anywhere}#chapterActions{gap:8px;padding-bottom:env(safe-area-inset-bottom)}#chapterActions button{flex:1 1 120px}
 .growth-attributes>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px 44px}.growth-attributes button{min-height:44px}
 .growth-preview{font-size:13px;table-layout:fixed}.growth-preview th,.growth-preview td{padding:6px;overflow-wrap:anywhere}
 .map-scroll{max-height:70dvh;touch-action:pan-x pan-y;overscroll-behavior:contain}#mapLarge{min-width:900px;width:100%}
 #visceralPrompt{inset:auto 10px max(10px,env(safe-area-inset-bottom)) 10px;transform:none;padding:12px;max-width:600px;margin:auto;text-align:center}#visceralPrompt button{min-height:48px;font-size:16px}
 .dream-controls{gap:8px;padding:12px}.dream-controls button{min-height:48px;font-size:14px}.dream-controls p{flex-basis:100%;font-size:13px}.dream-status{max-width:calc(100% - 20px)}
}
@media(max-width:600px){
 .top{display:block}.header-actions{margin-top:8px}.top h1{font-size:18px}.header-actions .mode-tabs{flex:none}
 .stage,.show-editor .stage{height:clamp(680px,90svh,800px)}
 .explore-status{left:10px;top:12px;width:calc(100% - 108px)}.explore-status>img{width:42px;height:58px}
 .hud-mini{width:82px;right:10px;top:12px}.hud-room{left:12px;top:119px;width:calc(100% - 24px);text-align:left}.hud-room strong{font-size:17px}.hud-room .gain-feedback{margin-top:5px}
 .stage .input-bar{left:10px;right:10px;width:auto;bottom:12px}.stage .interact{min-width:94px}
 .hud-equipment{left:10px;right:10px;bottom:116px;width:auto;min-width:0}.hud-equipment button{font-size:12px;min-height:62px}
 .stage .context{left:10px;right:10px;bottom:194px}.stage .nearby-actions{left:10px;right:10px;bottom:240px;max-height:96px}
 #battleBoard{grid-template-columns:minmax(0,1fr);grid-template-areas:'hunter' 'enemy' 'observation' 'timing' 'cards' 'confirm' 'detail' 'visual' 'equipment';padding:10px;gap:12px}
 #battleBoard>.battle-hunter>img{width:50px}.battle-hunter h2 small{display:inline;margin-left:6px}
 #battleBoard>.battle-timing{min-height:174px;padding:7px}.battle-timing .timelines{grid-template-columns:44px minmax(0,1fr);grid-template-rows:26px 22px 76px}
 .timing-heading{gap:6px}.timing-heading>span{font-size:10px}#battleBoard h2{font-size:16px}
 .battle-cards .card-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.battle-cards .action-card{min-height:82px}
 #battleBoard>.battle-confirm{position:static}
 #battleBoard>.battle-visual{height:210px}.battle-detail{grid-template-columns:minmax(0,1fr) auto}.battle-detail>button{max-width:105px;padding:6px}
 .loadout-slots{grid-template-columns:minmax(0,1fr)}.growth-equipment,.growth-attributes{grid-template-columns:minmax(0,1fr)}.growth-summary{display:block}
 .dream-room h2{left:12px;top:14px;font-size:18px}.dream-status{left:10px;top:54px;width:calc(100% - 20px)}.dream-status #dreamIdentity{font-size:13px}.dream-status .supplies,.dream-status .carried-echoes{font-size:12px}.dream-room>.dream-map{top:190px;width:110px;right:10px}.dream-room>svg{height:350px}.dream-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dream-controls p{grid-column:1/-1}
}
