/* Mobile command surface; page zoom remains enabled. */
.command-dock,.map-tools{display:none}
.tap-ready{outline:3px solid var(--brass);outline-offset:3px}
button.door{touch-action:manipulation}
.modal button,.modal select{min-height:48px}
.modal :focus-visible,button:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.door-list button.cycling{color:var(--cyan)}
.front-room.selected{border-color:var(--brass)}
@media(max-width:900px),(pointer:coarse){
  body{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}
  .topbar{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
  button{min-height:48px;touch-action:manipulation}
  .top-actions button{min-width:48px;min-height:48px;font-size:9px}
  .command-dock{display:flex;gap:5px;position:fixed;z-index:9;bottom:0;left:0;right:0;padding:8px max(8px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));background:#0b141cf5;border-top:1px solid var(--brass);box-shadow:0 -8px 24px #0008;backdrop-filter:blur(10px)}
  .command-dock button{flex:1;min-width:0;padding:6px 3px;font-size:8px;min-height:54px}
  .command-dock small{display:block;font:9px Arial;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .command-dock .dock-pause{flex:1.25;background:#d7b974;color:#101b23;font-size:10px}
  .command-dock .dock-pause.live{background:#244638;color:#a9e7ad;border-color:#a9e7ad}
  .command-dock button[data-id=scout]{border-color:var(--cyan)}
  .command-dock button[data-id=sniper]{border-color:var(--pink)}
  .map-tools{display:flex;align-items:center;gap:6px;margin:10px 0;font:10px Arial;color:var(--dim)}
  .map-tools button{padding:6px 10px;min-width:48px;font-size:9px}
  .map-tools span{flex:1}
  .board-wrap{overflow:auto;overflow-anchor:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y pinch-zoom;scrollbar-width:thin;scroll-padding:20px}
  .ship-board{min-width:calc(680px * var(--map-zoom,1))!important}
  button.door{width:48px;height:48px;min-width:48px;min-height:48px;font-size:24px}
  .board-label{font-size:7px;position:sticky;left:0;min-height:48px}
  .board-legend{position:sticky;left:0;flex-wrap:wrap;gap:8px;padding:10px;font-size:8px}
  .side-fronts{flex-direction:row;gap:5px}.side-fronts>div{min-width:0;padding:8px}.side-fronts b{font-size:7px}.side-fronts span{font-size:10px}
  .overview-grid button{min-height:72px}.overview-grid button[aria-current=true]{border-color:var(--brass);background:#38372d}
  .tactical aside>.squad-panel{display:none}
  .crew-modal .squad-panel{display:block;margin:10px 0 0}
  .modal-backdrop{padding:max(10px,env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(10px,env(safe-area-inset-left,0px));z-index:30}
  .modal{max-height:calc(100dvh - 24px);overscroll-behavior:contain;padding:16px}
  .modal .panel-heading{margin:-16px -16px 16px}.modal input,.modal select{font-size:16px;max-width:100%}
  .phone-inspect-modal .modal{max-width:540px}.phone-inspect-modal .modal>button,.crew-modal .modal>button{width:100%;position:sticky;top:0;z-index:2;background:#14232d}
  .crew-modal .modal{max-width:540px}.crew-modal .squad-card .portrait{width:40px;height:54px;--portrait-width:40px}
  .crew-modal .squad-stats,.crew-modal .squad-traits{margin-left:50px}
  .portrait-grid{grid-template-columns:repeat(auto-fit,minmax(55px,1fr))!important;gap:6px}
  .portrait-grid button{min-width:55px;min-height:64px}.picker-roster>div{min-width:135px}
}
@media(max-height:500px) and (orientation:landscape){
  .command-dock{padding-top:4px}.command-dock button{min-height:48px}
  .operation-bar{margin-bottom:10px;padding-bottom:10px}.phone-overview{display:none}
  .modal{max-height:calc(100dvh - 16px)}.modal-backdrop{padding:8px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important}}

@media(max-width:900px),(pointer:coarse){.tactical-grid{grid-template-columns:1fr}.tactical aside>.inspector{display:none}.phone-overview{display:block}.tactical aside{display:block}.overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.command-dock{overflow-x:auto}.command-dock button{flex-shrink:0}}
@media(max-height:500px) and (orientation:landscape){.phone-overview{display:none}}
