/* v4: true viewport-fitting fullscreen, without scrolling the outer play page. */
.playPanel:fullscreen,.playPanel.pseudoFullscreen{--go-vh:100dvh;position:fixed!important;inset:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;min-height:0!important;margin:0!important;z-index:9999;display:flex!important;flex-direction:column;overflow:hidden!important;padding:10px clamp(10px,1.5vw,22px)!important;gap:6px;border:0!important;border-radius:0!important;box-sizing:border-box}
.playPanel:fullscreen .gameTop,.playPanel.pseudoFullscreen .gameTop{flex:0 0 auto!important;min-height:0;align-items:center;padding:0 0 6px!important;gap:8px}
.playPanel:fullscreen .gameTop h1,.playPanel.pseudoFullscreen .gameTop h1{font-size:clamp(17px,2vw,25px);margin:0}
.playPanel:fullscreen .gameTop p,.playPanel.pseudoFullscreen .gameTop p{margin:2px 0;font-size:11px}
.playPanel:fullscreen .gameTopActions button,.playPanel.pseudoFullscreen .gameTopActions button{padding:8px 12px;font-size:12px}
.playPanel:fullscreen .gameLayout,.playPanel.pseudoFullscreen .gameLayout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(215px,285px)!important;grid-template-rows:minmax(0,1fr);flex:1 1 0;min-height:0!important;height:auto!important;gap:12px!important;margin:0!important;align-items:stretch!important;overflow:hidden}
.playPanel:fullscreen .gameLayout>div,.playPanel.pseudoFullscreen .gameLayout>div{min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.playPanel:fullscreen .boardOuter,.playPanel.pseudoFullscreen .boardOuter{box-sizing:border-box;width:min(calc(100dvh - 100px),calc(100vw - 340px))!important;max-width:100%!important;max-height:100%!important;aspect-ratio:1;min-height:0;padding:clamp(5px,1vh,12px)!important;margin:auto!important;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}
.playPanel:fullscreen .boardOuter canvas,.playPanel.pseudoFullscreen .boardOuter canvas{width:100%!important;height:auto!important;max-height:100%!important;aspect-ratio:1;object-fit:contain;flex:0 1 auto;min-height:0}
.playPanel:fullscreen aside,.playPanel.pseudoFullscreen aside{min-width:0;min-height:0;max-height:100%;overflow:auto;overscroll-behavior:contain;padding:12px!important;scrollbar-width:thin}
.playPanel:fullscreen aside h2,.playPanel.pseudoFullscreen aside h2{margin:5px 0;font-size:16px}
.playPanel:fullscreen aside p,.playPanel.pseudoFullscreen aside p{font-size:12px;line-height:1.45;margin:5px 0}
.playPanel:fullscreen aside button,.playPanel.pseudoFullscreen aside button{margin:5px 0;padding:9px 11px;font-size:12px}
.playPanel:fullscreen .stats,.playPanel.pseudoFullscreen .stats{padding:8px 0;gap:6px;margin:0}
.playPanel:fullscreen .stats div,.playPanel.pseudoFullscreen .stats div{padding:4px 0}
.playPanel:fullscreen .turnCard,.playPanel.pseudoFullscreen .turnCard{padding:9px}
.playPanel:fullscreen .touchHint,.playPanel.pseudoFullscreen .touchHint{margin:2px 0;font-size:10px}
/* Keep the 12 lessons accessible while fitting the training board. */
#trainingPanel:fullscreen .courseOverview,#trainingPanel.pseudoFullscreen .courseOverview{padding:5px 10px;margin:0;flex:0 0 auto}
#trainingPanel:fullscreen .courseOverview p,#trainingPanel.pseudoFullscreen .courseOverview p{display:none}
#trainingPanel:fullscreen .courseMeter,#trainingPanel.pseudoFullscreen .courseMeter{flex:0 0 4px;margin:0}
#trainingPanel:fullscreen .courseLessons,#trainingPanel.pseudoFullscreen .courseLessons{display:flex!important;flex:0 0 auto;gap:4px;padding:2px;overflow-x:auto;overflow-y:hidden;max-height:48px;scrollbar-width:thin}
#trainingPanel:fullscreen .courseLesson,#trainingPanel.pseudoFullscreen .courseLesson{min-width:43px;min-height:36px;padding:5px!important;flex:0 0 auto}
#trainingPanel:fullscreen .courseLesson small,#trainingPanel.pseudoFullscreen .courseLesson small{display:none}
#scenarioPanel:fullscreen .settingsGrid,#scenarioPanel.pseudoFullscreen .settingsGrid{display:flex;flex:0 0 auto;gap:10px;margin:0}
#scenarioPanel:fullscreen .settingsGrid label,#scenarioPanel.pseudoFullscreen .settingsGrid label{font-size:11px}
#scenarioPanel:fullscreen .settingsGrid select,#scenarioPanel.pseudoFullscreen .settingsGrid select{padding:5px;font-size:12px}
@media(max-width:700px){.playPanel:fullscreen,.playPanel.pseudoFullscreen{padding:5px!important;gap:2px}.playPanel:fullscreen .gameLayout,.playPanel.pseudoFullscreen .gameLayout{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr) auto!important;gap:4px!important}.playPanel:fullscreen .boardOuter,.playPanel.pseudoFullscreen .boardOuter{width:min(calc(100vw - 12px),calc(100dvh - 240px))!important;max-height:100%!important}.playPanel:fullscreen aside,.playPanel.pseudoFullscreen aside{max-height:clamp(120px,26dvh,215px);width:100%;padding:7px!important}.playPanel:fullscreen .gameTop,.playPanel.pseudoFullscreen .gameTop{flex-wrap:nowrap}.playPanel:fullscreen .gameTop h1,.playPanel.pseudoFullscreen .gameTop h1{font-size:16px}.playPanel:fullscreen .gameTop p,.playPanel.pseudoFullscreen .gameTop p{display:none}.playPanel:fullscreen .gameTopActions,.playPanel.pseudoFullscreen .gameTopActions{width:auto;flex:0 0 auto}.playPanel:fullscreen .gameTopActions button,.playPanel.pseudoFullscreen .gameTopActions button{padding:6px;font-size:11px}}
@media(max-height:570px) and (orientation:landscape){.playPanel:fullscreen .boardOuter,.playPanel.pseudoFullscreen .boardOuter{width:min(calc(100dvh - 64px),calc(100vw - 320px))!important}.playPanel:fullscreen .gameTop h1,.playPanel.pseudoFullscreen .gameTop h1{font-size:16px}#trainingPanel:fullscreen .courseOverview,#trainingPanel.pseudoFullscreen .courseOverview{display:none}}
body.gameFullscreenFallback{overflow:hidden!important}
