/* Reserve space for the loadout first. The battlefield uses the remaining
   viewport height; its canvas keeps the same aspect ratio and aim coordinates. */
.play-page main{height:100vh;height:100dvh;max-width:1600px;display:flex;flex-direction:column;gap:8px;padding:12px 16px;min-height:0}
.play-page header{flex-shrink:0;margin:0;gap:12px}
.play-page h1{font-size:24px}
.play-page h1 span{font-size:18px}
.play-page header p{font-size:12px;margin:3px 0 0}
.play-page .game-shell{flex:1;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.play-page .hud{min-height:40px;padding:8px 12px}
.play-page .stage{display:grid;place-items:center;min-height:0;min-width:0;container-type:size}
.play-page canvas{max-width:100%;max-height:100%;aspect-ratio:auto}
.play-page .loadout{padding:8px 12px}
.play-page .weapon-info{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:4px 12px;min-height:26px;margin-bottom:6px;font-size:12px}
.play-page .weapon-info strong{font-size:13px;min-width:0}
.play-page .hotbar{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;overflow:visible}
.play-page .weapon-slot{min-height:62px;min-width:0;padding:8px;gap:2px;flex:auto}
.play-page .weapon-slot[aria-pressed=true]{padding:7px}
.play-page .weapon-slot img{height:26px;margin-top:3px}
.play-page .weapon-slot .name{line-height:1.4}
.play-page footer{flex-shrink:0;margin:0;font-size:12px;gap:8px}
.play-page .touch-controls{flex-shrink:0;margin:0}
@media(max-width:900px){
  .play-page main{padding:8px;gap:6px}
  .play-page header{align-items:center}
  .play-page header p{display:none}
  .play-page .weapon-info{grid-template-columns:1fr auto;gap:2px 10px}
  .play-page #weapon-pros,.play-page #weapon-cons{grid-column:1/-1;line-height:16px}
  .play-page #heat{grid-column:2;grid-row:1;width:104px}

}
@media(max-width:600px){
  .play-page h1{font-size:20px}
  .play-page h1 span{display:none}
  .play-page header{gap:6px}
  .play-page nav{gap:4px}
  .play-page nav button{font-size:12px;padding:8px;min-height:36px}
  .play-page nav a{font-size:12px}
  .play-page .hud{padding:8px;min-height:34px;font-size:12px}
  .play-page .loadout{padding:8px}
  .play-page .hotbar{grid-template-columns:repeat(5,minmax(0,1fr))}
  .play-page .weapon-slot{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:20px 14px;gap:1px;min-height:51px}
  .play-page .weapon-slot img{grid-column:1;grid-row:1;justify-self:end;width:26px;height:20px;margin:0}
  .play-page .weapon-slot .name{grid-column:1;grid-row:2;justify-self:center;max-width:100%;font-size:11px}
  .play-page .weapon-info{font-size:12px}
  .play-page .weapon-info strong{font-size:12px}
  .play-page footer{display:block;line-height:1.4}
  .play-page #status{display:none}
}
@media(pointer:fine) and (hover:hover){.play-page .touch-controls{display:none}}
@media(hover:none){.play-page .touch-controls{display:flex}}
@container(max-height:240px){
  .mission{inset:8px;max-width:none;width:auto;padding:12px;overflow:auto}
  .mission h2{font-size:20px;margin:0 0 6px}
  .mission #menu-copy{display:none}
  .mission #menu-detail{font-size:12px;line-height:1.35;margin:0 0 6px}
  .mission .primary{min-height:36px;padding:8px;margin:0}
}
@container(max-height:150px){
  .mission{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .mission #menu-detail{display:none}
  .mission h2{font-size:18px;margin:0}
  .mission .primary{width:auto;min-width:125px}
}

@media(max-height:500px) and (min-width:601px){
  .play-page main{padding:6px;gap:4px}
  .play-page h1{font-size:18px}
  .play-page h1 span{font-size:14px}
  .play-page nav button{min-height:32px;padding:8px;font-size:12px}
  .play-page .weapon-info{grid-template-columns:auto 1fr 1fr auto;font-size:12px;min-height:24px}
  .play-page #weapon-pros,.play-page #weapon-cons{grid-column:auto;line-height:1.4}
  .play-page #heat{grid-column:auto;grid-row:auto;width:90px}
  .play-page .weapon-slot{min-height:52px}
  .play-page .weapon-slot img{height:18px;margin-top:0}
  .play-page .touch-controls button{min-height:36px;padding:8px;font-size:12px}
  .play-page footer{line-height:1.4}
}
.play-page nav{flex-wrap:wrap;justify-content:flex-end}
#grenade{white-space:nowrap}#grenade-count{display:inline-block;min-width:12px;color:var(--red)}
@media(max-width:600px){.grenade-word{display:none}}
#controls-dialog{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;color:var(--ink);background:var(--light);border:1px solid var(--line);font-size:14px;line-height:1.5}
#controls-dialog::backdrop{background:#12313e99}
#controls-dialog h2{margin:0 0 16px;font-size:26px}
.control-list{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px 16px;margin:0}
.control-list dt{font-weight:700}
.control-list dd{margin:0}
#controls-dialog p{font-size:13px;margin:20px 0 12px;color:var(--muted)}
#close-controls{position:sticky;bottom:0}
@media(max-width:520px){#controls-dialog{padding:16px}.control-list{grid-template-columns:1fr;gap:3px}.control-list dd{margin-bottom:12px}.play-page nav a{display:none}}
