/* Responsive rules for the active Zombie Outpost shell. */
@media (min-width: 1650px) { .zombie-adventure .layout { grid-template-columns: minmax(0,1fr) 310px; } }
@media (max-width: 1180px) {
  .zombie-adventure > header { padding-inline: 18px; }
  .zombie-adventure main { padding-inline: 18px; }
  .zombie-adventure .layout { grid-template-columns: minmax(0,1fr) 255px; gap: 12px; }
  .zombie-adventure .panel { padding: 12px; }
  .zombie-adventure .mission-reward { display: none; }
  .zombie-adventure .mission-track { max-width: 170px; }
  .zombie-adventure .riskbar { align-items: flex-start; }
  .zombie-adventure .cycle-state { gap: 5px; }
  .zombie-adventure .cycle-state #risk-status { display: none; }
  .zombie-adventure .expedition-nav > button { padding-inline: 7px; }
  .zombie-adventure .field-tools { min-width: 110px; }
  .zombie-adventure .play-controls { grid-template-columns: 170px minmax(0,1fr) 108px; gap: 7px; }
  .zombie-adventure .base-supply-row { gap: 8px; }
  .zombie-adventure .house-preview { width: 54px; flex-basis: 54px; }
  .zombie-adventure .house-preview img { width: 50px; }
  .zombie-adventure .counts b { font-size: 18px; }
  .zombie-adventure .weapon-name-tag { font-size: 9px; }
  .zombie-adventure .weapon-ammo-count { font-size: 9px; }
  .zombie-adventure .lobby { gap: 44px; }
}
@media (max-width: 950px) {
  .zombie-adventure .layout { grid-template-columns: minmax(0,1fr); }
  .zombie-adventure .heading { flex-direction: row; align-items: center; }
  .zombie-adventure .heading p { display: block; }
  .zombie-adventure #play aside { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; }
  .zombie-adventure #play aside > .panel { grid-row: auto; grid-column: auto; border-bottom: 1px solid #35422c; }
  .zombie-adventure #play aside > .hq-panel { grid-column: 1; grid-row: 1; }
  .zombie-adventure #play aside > .arsenal-panel { grid-column: 2; grid-row: 1/3; border-left: 1px solid #35422c; }
  .zombie-adventure #play aside > .crew-panel { grid-column: 1; grid-row: 2; }
  .zombie-adventure #play aside > .rank-panel { grid-column: 1/-1; grid-row: 3; }
  .zombie-adventure .viewport { height: clamp(330px, 56vh, 620px); }
  .zombie-adventure .play-controls { grid-template-columns: 200px minmax(0,1fr) 138px; }
  .zombie-adventure .dpad { grid-template-columns: repeat(3,44px); grid-template-rows: repeat(2,36px); }
  .zombie-adventure .dpad button { width: 44px; height: 36px; font-size: 19px; }
  .zombie-adventure .lobby { grid-template-columns: minmax(0,1.15fr) minmax(260px,.85fr); gap: 28px; margin-top: 25px; }
  .zombie-adventure #room-form { padding-left: 22px; margin-top: 70px; }
  .zombie-adventure .expedition-intro h2 { font-size: 49px; }
  .zombie-adventure .expedition-art { height: 228px; }
  .zombie-adventure .expedition-rules li { display: block; font-size: 10px; padding-block: 8px; }
  .zombie-adventure .expedition-rules b { display: block; margin-bottom: 3px; }
}
@media (max-width: 700px) {
  .zombie-adventure > header { height: 58px; padding-inline: 12px; gap: 9px; }
  .zombie-adventure .brand { font-size: 17px; letter-spacing: .03em; gap: 7px; }
  .zombie-adventure .brand img { width: 27px; height: 33px; padding: 2px; }
  .zombie-adventure .game-version { font-size: 7px; letter-spacing: .14em; margin-top: 5px; }
  .zombie-adventure .header-actions { gap: 5px; }
  .zombie-adventure #connection { font-size: 0; margin: 0; max-width: 10px; }
  .zombie-adventure #connection::before { width: 6px; height: 6px; margin: 0; }
  .zombie-adventure .quiet { min-height: 44px; padding: 6px 8px; font-size: 10px; }
  .zombie-adventure #fullscreen-btn { font-size: 22px; padding: 4px 8px; min-width: 42px; }
  .zombie-adventure #fullscreen-btn span { display: none; }
  .zombie-adventure main { padding: 12px; }
  .zombie-adventure .heading { align-items: flex-start; min-height: 48px; margin-bottom: 10px; gap: 12px; }
  .zombie-adventure .heading h1 { font-size: 18px; margin: 0; }
  .zombie-adventure .heading p { display: none; }
  .zombie-adventure #room-badge { flex: 0 0 auto; padding: 4px 6px; gap: 7px; display: flex; }
  .zombie-adventure .room-identity { display: grid; gap: 3px; }
  .zombie-adventure .room-actions { gap: 4px; }
  .zombie-adventure .room-actions button { min-height: 44px; min-width: 36px; padding: 5px 6px; }
  .zombie-adventure #copy-room { font-size: 19px; }
  .zombie-adventure #copy-room span { display: none; }
  .zombie-adventure #leave-room { font-size: 10px; }
  .zombie-adventure #room-badge small { font-size: 8px; }
  .zombie-adventure #room-code { font-size: 12px; letter-spacing: .1em; }
  .zombie-adventure .worldbar { font-size: 9px; padding: 6px 9px; min-height: 27px; }
  .zombie-adventure .mission-bar { padding: 7px 9px; gap: 7px; font-size: 10px; }
  .zombie-adventure .mission-info { gap: 7px; }
  .zombie-adventure .mission-track { max-width: none; min-width: 35px; }
  .zombie-adventure .riskbar { padding: 6px 9px; gap: 7px; min-height: 37px; align-items: center; }
  .zombie-adventure .cycle-actions { gap: 7px; flex: 1; justify-content: flex-end; font-size: 9px; }
  .zombie-adventure .btn-skip-cycle { min-height: 28px; font-size: 8px; padding: 3px 5px; }
  .zombie-adventure .cycle-pill { font-size: 8px; padding: 3px 5px; }
  .zombie-adventure .survival-hud { gap: 14px; padding: 6px 9px 8px; }
  .zombie-adventure .viewport { height: clamp(300px, 48vh, 460px); }
  .zombie-adventure .viewport .map-home, .zombie-adventure .viewport .map-cart { min-height: 36px; font-size: 9px; bottom: 8px; }
  .zombie-adventure .viewport .map-home { top: 9px; bottom: auto; right: auto; left: 9px; }
  .zombie-adventure .viewport .map-cart { top: 51px; bottom: auto; left: 9px; }
  .zombie-adventure .expedition-nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; padding: 8px; }
  .zombie-adventure .expedition-nav > button, .zombie-adventure .field-tools summary { min-height: 44px; padding: 7px 4px; font-size: 11px; white-space: normal; line-height: 1.35; }
  .zombie-adventure .expedition-nav kbd { font-size: 8px; padding-inline: 2px; margin-right: 2px; }
  .zombie-adventure .field-tools { min-width: 0; margin: 0; }
  .zombie-adventure .field-tools summary { gap: 5px; justify-content: center; align-items: center; }
  .zombie-adventure .field-tools-grid { width: min(310px,calc(100vw - 44px)); bottom: 47px; right: 0; }
  .zombie-adventure .field-tools button { min-height: 44px; }
  .zombie-adventure .worldfoot { padding: 0 9px 9px; font-size: 8px; min-height: 24px; }
  .zombie-adventure .worldfoot > span:last-child { display: none; }
  .zombie-adventure .key-divider { padding-inline: 5px; }
  /* Match the reference's edge controls: keep movement and interaction in the map. */
  .zombie-adventure .adventure { display: grid; grid-template-columns: minmax(0,1fr); }
  .zombie-adventure .world { grid-area: 1/1; }
  .zombie-adventure .play-controls { grid-area: 1/1; align-self: end; display: grid; grid-template-columns: 138px minmax(0,1fr); gap: 6px 8px; align-items: end; margin: 0 10px 146px; padding: 0; z-index: 9; pointer-events: none; }
  .zombie-adventure .play-controls button { pointer-events: auto; }
  .zombie-adventure .cargo { grid-column: 2; grid-row: 1; padding: 4px 7px; width: 100%; background: #192315ed; box-shadow: 0 3px 12px #0004; }
  .zombie-adventure .cargo img { width: 29px; height: 29px; }
  .zombie-adventure .cargo small { font-size: 7px; }
  .zombie-adventure .cargo strong { font-size: 10px; }
  .zombie-adventure .context { grid-column: 2; grid-row: 2; width: 100%; align-self: end; }
  .zombie-adventure .context > .primary { font-size: 11px; min-height: 45px; background: #334727f5; box-shadow: 0 3px 12px #0004; }
  .zombie-adventure #near-actions { max-height: 80px; overflow-y: auto; }
  .zombie-adventure .dpad { grid-column: 1; grid-row: 2; grid-template-columns: repeat(3,44px); grid-template-rows: repeat(2,43px); gap: 3px; }
  .zombie-adventure .dpad button { width: 44px; height: 43px; font-size: 21px; background: #26371def; border-color: #849461; box-shadow: 0 3px 10px #0004; }
  .zombie-adventure #play aside { grid-template-columns: 1fr; border-radius: 4px; }
  .zombie-adventure #play aside > .panel { grid-column: auto; grid-row: auto; border-left: 0; }
  .zombie-adventure .hq-panel { order: 1; }
  .zombie-adventure .arsenal-panel { order: 2; }
  .zombie-adventure .crew-panel { order: 3; }
  .zombie-adventure .rank-panel { order: 4; }
  .zombie-adventure .base-supply-row { gap: 16px; }
  .zombie-adventure .house-preview { width: 70px; flex-basis: 70px; }
  .zombie-adventure .house-preview img { width: 64px; }
  .zombie-adventure .counts { justify-content: space-around; }
  .zombie-adventure .counts b { font-size: 23px; }
  .zombie-adventure .weapon-name-tag, .zombie-adventure .weapon-ammo-count { font-size: 11px; }
  .zombie-adventure .weapon-slot-card { min-height: 44px; padding: 8px 10px; }
  .zombie-adventure .alert-banner-float { top: 140px; font-size: 11px; width: calc(100% - 20px); max-width: none; padding: 10px 12px; }
  .zombie-adventure .lobby { display: flex; flex-direction: column; gap: 18px; margin-top: 14px; }
  .zombie-adventure .expedition-intro > .eyebrow { font-size: 8px; letter-spacing: .12em; }
  .zombie-adventure .expedition-intro h2 { font-size: 42px; line-height: 1.16; letter-spacing: -1px; margin: 12px 0 10px; }
  .zombie-adventure .lobby-description { font-size: 11px; line-height: 1.7; }
  .zombie-adventure .expedition-art { height: 170px; margin: 16px 0 0; }
  .zombie-adventure .expedition-art .scene-house { width: 140px; height: 134px; left: 28%; bottom: 16px; }
  .zombie-adventure .expedition-art .scene-tree { width: 78px; left: 6%; bottom: 8px; }
  .zombie-adventure .expedition-art .scene-pig { width: 34px; height: 54px; left: 66%; bottom: 14px; }
  .zombie-adventure .scene-pine-front { height: 182px; right: -65px; }
  .zombie-adventure .scene-pine-back { width: 112px; height: 138px; bottom: 25px; }
  .zombie-adventure .expedition-rules { display: none; }
  .zombie-adventure #room-form { margin: 0; border-left: 0; border-top: 1px solid #3d4a32; padding: 18px 0 0; width: 100%; gap: 9px; }
  .zombie-adventure #room-form h3 { font-size: 22px; margin: 5px 0 0; }
  .zombie-adventure #room-form .form-intro { margin-bottom: 10px; }
  .zombie-adventure .craft-modal, .zombie-adventure .rank-dossier-modal { padding: 10px; }
  .zombie-adventure .craft-modal-content, .zombie-adventure .dossier-content { max-height: calc(100dvh - 20px); }
  .zombie-adventure .craft-header, .zombie-adventure .dossier-header { padding: 12px; gap: 9px; }
  .zombie-adventure .craft-header h2, .zombie-adventure .dossier-header h2 { font-size: 14px; line-height: 1.5; }
  .zombie-adventure .craft-grid { padding: 12px; }
  .zombie-adventure .craft-card { flex-direction: column; align-items: stretch; gap: 10px; }
  .zombie-adventure .craft-card h3 { font-size: 13px; }
  .zombie-adventure .craft-btn { min-height: 44px; }
  .zombie-adventure .craft-stash-bar { padding: 9px 12px; font-size: 10px; gap: 6px 12px; }
  .zombie-adventure .tab-btn { font-size: 10px; min-height: 44px; }
}
/* Keep the small-screen play centre clear when several nearby targets exist. */
@media (max-width: 600px) {
  .zombie-adventure #near-actions { display: none!important; }
  .zombie-adventure .context > #interact { display: block; min-width: 0; max-width: 100%; height: 45px; min-height: 45px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 27px; padding: 8px 10px; }
  .zombie-adventure .cargo { width: max-content; max-width: 100%; justify-self: end; min-height: 26px; padding: 3px 6px; gap: 5px; }
  .zombie-adventure .cargo img { width: 18px; height: 18px; }
  .zombie-adventure .cargo small { display: none; }
  .zombie-adventure .cargo > div { min-width: 0; }
  .zombie-adventure .cargo strong { display: block; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}
@media (max-width: 380px) {
  .zombie-adventure .brand { font-size: 15px; }
  .zombie-adventure .quiet { padding-inline: 6px; }
  .zombie-adventure #connection { display: none; }
  .zombie-adventure .cycle-actions { gap: 5px; }
  .zombie-adventure .riskbar #cycle-timer { font-size: 8px; }
  .zombie-adventure .expedition-nav > button, .zombie-adventure .field-tools summary { font-size: 9px; }
}
@media (max-width: 950px) and (orientation: landscape) and (max-height: 600px) {
  .zombie-adventure > header { height: 46px; }
  .zombie-adventure main { padding-top: 8px; }
  .zombie-adventure .heading { min-height: 34px; }
  .zombie-adventure .heading > div:first-child { display: block!important; }
  .zombie-adventure .heading p { display: none; }
  .zombie-adventure .adventure { display: block; }
  .zombie-adventure .viewport { height: max(280px,62vh); }
  .zombie-adventure .play-controls { display: grid; grid-template-columns: 190px minmax(0,1fr) 138px; }
  .zombie-adventure .context { grid-column: 2; grid-row: 1; }
  .zombie-adventure .cargo { grid-column: 1; grid-row: 1; }
  .zombie-adventure .dpad { grid-column: 3; grid-row: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .zombie-adventure *, .zombie-adventure *::before, .zombie-adventure *::after { animation: none!important; transition: none!important; }
}
