.fgs-web-links{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem;font:600 14px/1.5 system-ui,sans-serif}.fgs-web-links a{color:#d5e99a;min-height:44px;display:inline-flex;align-items:center}.fgs-web-links a:focus-visible{outline:3px solid #fff;outline-offset:3px}.fgs-web-links span{font-weight:400;color:#d4dfd5}.fgs-storage-warning{padding:.75rem;border:1px solid #f2c47a;color:#ffe1ab;font:400 16px/1.5 system-ui,sans-serif}#game-center-button{display:none!important}

/* Web.2: the menu and every dialog own a reachable touch/keyboard scroll area. */
html,body{height:100%;overscroll-behavior:none}
#app{height:100dvh;min-height:0}
#menu{overflow-y:auto;overflow-x:hidden;touch-action:pan-y pinch-zoom;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;gap:12px}
#menu>*{flex-shrink:0}
#menu .hero{min-height:110px}
#menu #factions{min-height:190px;flex-shrink:0}
#menu .menu-footer{min-height:100px;height:auto;flex-wrap:wrap}
#menu .play-actions{flex-wrap:wrap}
#menu .menu-caption{padding-bottom:max(12px,env(safe-area-inset-bottom));line-height:1.6;gap:12px;flex-wrap:wrap}
#modal{max-height:100dvh;overflow-y:auto;align-items:center;padding:12px max(12px,var(--safe-right)) max(12px,var(--safe-bottom)) max(12px,var(--safe-left));touch-action:pan-y pinch-zoom}
#modal .modal-panel,#modal[data-kind] .modal-panel{max-height:calc(100dvh - 24px - var(--safe-bottom));min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;scroll-padding:24px}
#modal .compact-footer{flex-wrap:wrap;padding-bottom:4px}
#modal .compact-footer>small{flex-basis:100%;line-height:1.5}
#modal .building-detail .academy-options{flex-wrap:wrap}
#settlement-canvas{display:block;width:100%;height:clamp(270px,50vh,380px)!important;touch-action:pan-y pinch-zoom}
.settlement-access{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}
.settlement-access button{min-height:44px!important;font-size:11px!important;white-space:normal!important;line-height:1.25;padding:7px!important}
#roster-nav{overflow-x:auto!important;overflow-y:hidden;touch-action:pan-x pinch-zoom;scrollbar-width:thin;gap:4px;padding-bottom:3px}
#roster-nav button{flex-shrink:0;min-height:36px}
#quick-drawer{overflow-y:auto!important;overscroll-behavior:contain;touch-action:pan-y pinch-zoom}
#territory-caption{max-height:calc(100dvh - 24px);overflow-y:auto;touch-action:pan-y pinch-zoom}
@media(max-width:600px){.settlement-access{grid-template-columns:repeat(2,minmax(0,1fr))!important}#menu{padding-inline:max(16px,var(--safe-left))}#menu .brand{font-size:8px;letter-spacing:1px}#menu .edition{display:none}.building-detail{grid-template-columns:1fr!important}.building-detail>canvas{margin-inline:auto}.settlement-heading{flex-wrap:wrap;gap:8px}.settlement-heading>p{text-align:left}.origin-plot-grid{grid-template-columns:1fr}.menu-caption{font-size:9px}}
