/* Fit the actual mobile viewport, including browser chrome and safe areas. */
.game-menu{max-height:calc(100dvh - 90px);overflow-y:auto}
#flatMap{font-size:14px}
@media(max-width:600px){
  .app-shell{height:100svh;height:100dvh;min-height:0}
  .topbar{height:54px;min-height:54px;padding:0 max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left));gap:8px}
  .topbar .icon-button{width:44px;height:44px;flex-shrink:0}
  .topbar .brand{font-size:15px;letter-spacing:-.5px;white-space:nowrap}
  .topbar .top-nav{margin-left:auto;gap:0}.topbar .top-nav button{font-size:14px;min-width:44px;min-height:44px;padding:8px}
  #navResults,#navStats{display:none}
  main{overflow:auto;overscroll-behavior-y:contain}
  .game-card{min-height:420px;height:100%;grid-template-rows:auto minmax(150px,1fr) auto}
  .mission.mission{padding:9px 12px;grid-template-columns:58px 1fr;gap:0 10px}
  .mission .question-body{padding-top:6px}.mission .question-body h1{font-size:19px;line-height:1.2;letter-spacing:-.4px}
  .mission .question-copy{font-size:13px;margin-top:5px;line-height:1.35}
  .mission .mission-top{font-size:10px;padding-bottom:6px}.mission .question-body .eyebrow{font-size:11px;margin-bottom:4px}
  .mission-bottom{border-radius:8px}.mission-bottom strong{font-size:19px}.mission-bottom>span{font-size:8px;letter-spacing:0}
  .map-toolbar{top:10px;right:10px;gap:5px}.map-toolbar button{min-width:44px;height:44px;padding:8px;font-size:14px}
  .map-toolbar #worldView{font-size:22px}.map-toolbar span{display:none}
  .maplibregl-ctrl-top-right{top:57px;right:0}.maplibregl-ctrl-group button{height:40px;width:40px}
  .map-legend{padding:7px;left:10px;bottom:25px;font-size:9px}
  .maplibregl-ctrl-attrib{max-width:calc(100vw - 20px);font-size:9px!important}
  .game-footer{min-height:0;grid-template-columns:1fr 1fr;padding:9px 12px max(9px,env(safe-area-inset-bottom));gap:7px 10px}
  .game-footer>div{grid-column:1/-1;grid-row:1}.game-footer #guessReadout{font-size:13px}#mapHint{font-size:11px;margin-top:3px}
  .game-footer .confirm-toggle{font-size:12px;grid-column:1;grid-row:2;min-height:44px}.confirm-toggle input{width:20px;height:20px;flex-shrink:0}
  .game-footer .primary-button{grid-column:2;grid-row:2;min-height:46px;padding:12px 14px;font-size:15px}#centerPin{display:none}
  .game-card:has(.fact-card:not([hidden])){grid-template-rows:auto minmax(140px,1fr) auto}
  .game-card .fact-card{position:relative;grid-row:3;left:auto;right:auto;top:auto;bottom:auto;width:100%;max-height:43dvh;margin:0;padding:14px 16px max(14px,env(safe-area-inset-bottom));border-radius:16px 16px 0 0;border-bottom:0;box-shadow:none;backdrop-filter:none}
  .reveal-heading{padding-bottom:10px;margin-bottom:10px}#roundPoints{font-size:30px}.distance strong{font-size:18px}
  .fact-card h2{font-size:20px}.fact-card p:not(.eyebrow){font-size:14px;line-height:1.5}.fact-stats{margin:12px 0}
  #nextButton{position:sticky;bottom:0;min-height:46px;font-size:16px;box-shadow:0 -6px 14px #101c27}
  .results-card{padding:24px 16px max(30px,env(safe-area-inset-bottom))}.results-card h1{font-size:30px}.result-total strong{font-size:62px}
  .results-card .primary-button,.results-card .secondary-button{min-height:48px;font-size:16px}
  #playerDialog,#shareDialog,#ownerDialog{max-height:calc(100dvh - 24px);padding:22px;margin:auto;width:calc(100% - 24px)}
  #playerDialog h2{font-size:28px}#playerName{font-family:inherit;font-size:18px;min-height:50px}#savePlayer{min-height:50px;font-size:16px}
  .player-note{font-size:13px!important;line-height:1.5!important}.game-menu{left:10px;top:60px;max-height:calc(100dvh - 75px);width:min(300px,calc(100vw - 20px))}.game-menu button{min-height:44px}
  .leaflet-control-zoom{margin-bottom:35px!important;margin-right:10px!important}
}
@media(max-height:500px) and (orientation:landscape){.app-shell{min-height:0}.game-card{min-height:460px}.question-copy{display:none}.topbar{height:50px}.game-footer{padding:8px 12px}}
.mission-top{flex-wrap:wrap;column-gap:14px}
#challengeNumber{white-space:nowrap}
#dailyCountdown{margin:0;font-size:11px!important;line-height:1.5!important;letter-spacing:0;white-space:nowrap}
@media(max-width:600px){#dailyCountdown{flex-basis:100%;font-size:10px!important}.mission .mission-top{row-gap:4px}.map-legend{bottom:54px}}
