/* Installation belongs to the shared menu, never over game commands. */
html,body{overscroll-behavior:none}
#pwaChrome{font-family:var(--naval-ui-font,system-ui,sans-serif);color:#f5e6be}
#pwaChrome [hidden],#pwaOffer[hidden],#pwaTools[hidden]{display:none!important}
#pwaChrome dialog:not([open]){display:none!important}
#pwaChrome button{font:inherit;cursor:pointer}
#pwaChrome :is(button,a):focus-visible,#menuAppTools :is(#pwaInstall,#pwaTools):focus-visible{outline:2px solid #f5cb76;outline-offset:3px}
#pwaOffer{display:flex;align-items:center;min-width:0}
#pwaInstall,#pwaTools,#pwaDownload,#pwaUpdate,#pwaHelpDone,#pwaSavesOpen,#pwaRotateFullscreen,.pwa-close{box-sizing:border-box;border:1px solid #b59c67;border-radius:4px;clip-path:none;background:#12343b;background-image:none;color:#f5e6be;box-shadow:none;text-shadow:none;font:600 16px/22px var(--naval-ui-font,system-ui,sans-serif)}
#menuAppTools #pwaInstall,#menuAppTools #pwaTools{display:flex;align-items:center;justify-content:center;flex:none;gap:4px;height:44px;min-height:44px;padding:6px;white-space:nowrap;cursor:pointer}
#menuAppTools #pwaInstall{width:124px}
#menuAppTools #pwaTools{width:102px}
#pwaInstall svg,#pwaTools svg{flex:none;width:20px;height:20px}
#pwaChrome svg,#pwaInstall svg,#pwaTools svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pwa-close{display:grid;place-items:center;position:absolute;right:8px;top:8px;width:44px;height:44px;min-height:44px;padding:9px}
.pwa-close svg{width:24px;height:24px}
#pwaStorage,#pwaInstallHelp{position:fixed;inset:0;margin:auto;width:min(600px,calc(100vw - 24px));max-height:calc(var(--naval-vh,100dvh) - 24px);box-sizing:border-box;padding:24px;color:#f5e6be;background:#142b31;background-image:none;border:1px solid #b59c67;border-radius:4px;box-shadow:0 12px 35px #0009;font:400 16px/22px var(--naval-ui-font,system-ui,sans-serif)}
#pwaStorage::backdrop,#pwaInstallHelp::backdrop{background:#061820ed}
#pwaStorage h2,#pwaInstallHelp h2{font:600 24px/28px var(--naval-ui-font,system-ui,sans-serif);margin:0 44px 12px 0;color:#f5e6be}
#pwaOfflineHint{margin:0 36px 10px 0;color:#f5e6be;font:400 16px/22px var(--naval-ui-font,system-ui,sans-serif)}
#pwaPackSize{margin:0 0 16px;color:#d8c8a7;font:400 16px/22px var(--naval-ui-font,system-ui,sans-serif)}
.pwa-device-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#pwaDownload,#pwaUpdate,#pwaHelpDone{min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;cursor:pointer}
#pwaDownload svg{flex:none;width:22px;height:22px}
#pwaDownload:disabled{opacity:.75;cursor:default}
#pwaDownloadStatus{flex-basis:100%;order:3;color:#f5e6be;font:400 16px/22px var(--naval-ui-font,system-ui,sans-serif);overflow-wrap:anywhere}
#pwaDownloadStatus:empty{display:none}
#pwaInstallHelp .pwa-emblem{display:block;margin:0 auto 12px;width:72px;height:72px;border-radius:12px}
#pwaInstallHelp h2{text-align:center}
#pwaInstallHelp ol{padding-left:24px;margin:12px 0 18px;font:400 16px/22px var(--naval-ui-font,system-ui,sans-serif)}
#pwaInstallHelp li+li{margin-top:8px}
#pwaHelpDone{margin:0 0 0 auto;min-width:140px}
#pwaRotate{position:fixed;z-index:30000;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0b2932;padding:24px;color:#f7e8c4;text-align:center;box-sizing:border-box}
#pwaRotate img{width:100px;height:100px;margin-bottom:24px}
#pwaRotate h2{font:600 30px/36px var(--font-display);margin:0 0 12px}
#pwaRotate p{font:600 19px/26px var(--font-body);margin:0 0 24px}
#pwaRotateFullscreen{min-height:48px;padding:10px 18px}
#pwaGraphics{position:fixed;z-index:31000;inset:0;display:grid;place-items:center;background:#0b2932;color:#f1ddaf;font-size:24px}
body.naval-mobile{width:100%;height:min(100dvh,var(--naval-vh,100dvh));overflow:hidden;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body.naval-mobile #sea{touch-action:none}
body.naval-portrait{overflow:hidden}
@media(max-height:440px) and (orientation:landscape){#pwaStorage,#pwaInstallHelp{padding:16px 24px}#pwaStorage h2,#pwaInstallHelp h2{font-size:24px;line-height:28px;margin-bottom:8px}#pwaOfflineHint{margin-bottom:8px}#pwaPackSize{margin-bottom:10px}#pwaDownload,#pwaUpdate,#pwaHelpDone{padding:6px 12px}.pwa-device-actions{gap:8px}#pwaInstallHelp{display:grid;grid-template-columns:80px minmax(0,1fr);gap:4px 18px}#pwaInstallHelp .pwa-emblem{grid-column:1;grid-row:1/4;align-self:center;margin:0;width:80px;height:80px}#pwaInstallHelp h2{grid-column:2;text-align:left;margin-right:30px}#pwaHelpSteps{grid-column:2}#pwaInstallHelp ol{margin:0 0 8px;padding-left:20px}#pwaInstallHelp li+li{margin-top:5px}#pwaHelpDone{grid-column:2}}

#pwaTools{position:relative}#pwaTools.has-update::after{content:'';position:absolute;right:3px;top:3px;width:8px;height:8px;border-radius:50%;background:#f5cb76}

#pwaSavesOpen{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 12px;text-decoration:none}
body.naval-mobile #menuAppTools :is(#pwaInstall,#pwaTools),body.naval-mobile #pwaChrome :is(#pwaStorage,#pwaInstallHelp) :is(button,#pwaSavesOpen){border:1px solid #b59c67!important;border-radius:4px!important;background:#12343b!important;background-image:none!important}

/* Fixed touch layers must use the layout viewport, not a shrink-to-fit visual extent. */
body.naval-mobile #ui{width:var(--naval-vw,100%)!important;height:var(--naval-vh,100dvh)!important;contain:layout paint}
body.naval-mobile #aimOverlay{inset:0 auto auto 0!important;width:var(--naval-vw,100%)!important;max-width:var(--naval-vw,100%)!important;height:var(--naval-vh,100dvh)!important;max-height:var(--naval-vh,100dvh)!important;contain:layout paint;overflow:hidden}
