/* Panele zachowują pełną zawartość; viewport-fit.js dobiera skalę do okna. */
#menu-column{max-height:none!important}
#menu-column #menu{flex:none;max-height:none;overflow:visible}
#command-drawer{max-height:none;overflow:visible}
#command-drawer #selection-info,#command-drawer #selection-info.selection-summary{max-height:none;overflow:visible}
#options-modal .modal-panel,#hud #field-menu{max-height:none!important;overflow:visible}
#commander-panel{bottom:auto;height:auto;overflow:visible;min-height:var(--fit-command-height,100vh)}
body.playing:not(.fpp) #viewport{right:var(--fit-command-width,var(--command-width))}
body.playing:not(.fpp) #commander-abilities{left:calc((100% - var(--fit-command-width,var(--command-width))) / 2)}
/* 2026-09-27 (docs/UI-FIT.md): kampania i okna menu w naturalnym rozmiarze, bez wewnętrznego przewijania i limitów
   z vh — viewport-fit.js mierzy je tak i skaluje zoomem. Panel kampanii wypełnia wysokość przez --fit-height
   (dostępna wysokość / zoom), więc DEPLOY i BACK zostają na dole jak na dużym monitorze. */
@media (min-width:761px){
 #campaign .campaign-panel{bottom:auto;overflow:visible;min-height:var(--fit-height,calc(100vh - 87px))}
}
/* Bestiariusz ma stały rozmiar (bestiary.css, 1240 × 860) — tu bez nadpisań; viewport-fit.js tylko go skaluje. */
#random-op-modal .modal-panel{max-height:none;overflow:visible}
