/* Fixed scene chrome; the settings body owns its scroll, the scene stays visible. */
.harbor-glass{--harbor-glass:rgba(15,43,54,.56);--harbor-line:rgba(208,232,227,.25);--harbor-gold:#efb579}
.harbor-glass header{z-index:10;top:calc(10px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));right:calc(12px + env(safe-area-inset-right));min-height:56px;display:flex;flex-wrap:nowrap;gap:12px;padding:6px 10px 6px 16px;border:1px solid var(--harbor-line);border-radius:18px;background:var(--harbor-glass);backdrop-filter:blur(22px) saturate(130%);-webkit-backdrop-filter:blur(22px) saturate(130%);box-shadow:0 5px 22px #05232c24}
.harbor-glass header h1{font-size:17px;letter-spacing:.06em;flex:none}
.harbor-glass header .harbor-count{display:block;font-size:12px;color:#d3e2df;white-space:nowrap;margin-right:auto}
#harbor-loading-status{margin-inline-start:auto;color:#d3e2df;font-size:12px;text-align:end}
.harbor-loading header>:not(h1):not(#harbor-loading-status){display:none}
.harbor-loading footer,.harbor-loading #harbor-map,.harbor-loading #harbor-controls{visibility:hidden}
.harbor-top-actions{display:flex;align-items:center;gap:6px;flex:none}
.harbor-glass button{appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:8px 12px;border:1px solid #bfd9d32e;border-radius:12px;background:#b7d8d511;color:#eff5eb;box-shadow:none;font:500 13px/1.3 system-ui;white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:background .12s,border-color .12s}
.harbor-glass button:hover{background:#d9e9de20;border-color:#dcebdc66}.harbor-glass button:active{background:#e7b5783d}
.harbor-glass button[aria-pressed=true],.harbor-glass button[aria-expanded=true]{background:#e7ae7045;border-color:#eabd8099;color:#fff0d8}
.harbor-glass button:focus-visible,.harbor-glass input:focus-visible{outline:2px solid #f0be7c;outline-offset:2px}
.harbor-glass button:disabled{opacity:.4;cursor:default}
.harbor-glass #game-fullscreen{flex:none;width:auto;min-width:54px;min-height:44px;font-size:13px}
.harbor-glass header #game-fullscreen-status{position:absolute;right:10px;top:100%;max-width:280px;background:#163b48f2;border-radius:8px;padding:8px}
.harbor-settings{position:absolute;top:calc(100% + 8px);right:0;display:flex;flex-direction:column;width:380px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 170px - env(safe-area-inset-top));border:1px solid var(--harbor-line);border-radius:18px;background:#123442db;backdrop-filter:blur(26px) saturate(125%);-webkit-backdrop-filter:blur(26px) saturate(125%);box-shadow:0 14px 48px #001c3266;overflow:hidden}
.harbor-settings[hidden],.harbor-select[hidden]{display:none!important}
.harbor-panel-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 6px 16px;flex:none}
.harbor-panel-head strong{font-size:14px;font-weight:600}
.harbor-glass .harbor-settings nav{display:flex;flex:1;flex-direction:column;gap:0;width:auto;min-height:0;min-width:0;max-width:none;overflow:auto;margin:0;padding:0 14px 12px;scrollbar-width:thin;scrollbar-color:#94b3ad55 transparent}
.harbor-setting-group{padding:10px 0;border-top:1px solid #c5dfd51f}.harbor-setting-group h2{font:500 11px/1.4 system-ui;letter-spacing:.1em;color:#b4ccc6;margin:0 0 8px}
.harbor-setting-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.harbor-setting-row>button{flex:1 0 auto}.harbor-setting-row [data-view]{flex:1 0 22%;font-size:12px;padding:8px}
.harbor-glass .harbor-native-select{display:none!important}
.harbor-select{position:relative;flex:1 1 165px;min-width:0}
.harbor-glass .harbor-select-button{width:100%;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#06242e4a}
.harbor-select-button::after{content:'⌄';flex:none;color:#c5d7ce;margin-left:8px}
.harbor-options{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow:auto;margin-top:5px;padding:5px;border-radius:12px;background:#082c38c9;border:1px solid #d7e5cc30}
.harbor-options[hidden]{display:none}
.harbor-glass .harbor-option{width:100%;min-height:44px;justify-content:flex-start;white-space:normal;text-align:left;background:transparent;border-color:transparent}
.harbor-glass .harbor-option[aria-selected=true]{background:#e8b17432;color:#ffdeaa}
.harbor-camera-zoom{display:flex;align-items:center;gap:6px;flex:1 0 100%;color:#c5d7ce;font-size:12px}.harbor-camera-zoom span{margin-right:auto}.harbor-camera-zoom button{font-size:19px}
.harbor-map{position:fixed;z-index:5;top:calc(78px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left));width:166px;border:1px solid #d5e8d23d;border-radius:16px;background:#1035408f;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);box-shadow:0 6px 22px #001d3033;overflow:hidden}
.harbor-map-heading{height:36px;display:flex;align-items:center;justify-content:space-between;padding-left:12px;font-size:11px;letter-spacing:.06em;color:#d3e2d8}
.harbor-glass .harbor-map-expand{width:44px;height:44px;min-height:44px;border:0;background:transparent;font-size:21px;z-index:1;padding:0}
#harbor-exploration{width:100%;height:146px;min-height:0;--fc-radius:0;--fc-accent:#edb77b;--fc-surface:#143943de;--fc-border:#bacfc04d;--fc-player-color:#ffe0a5}
.harbor-map:not(.expanded) #harbor-exploration::part(status),.harbor-map:not(.expanded) #harbor-exploration::part(markers){display:none}
.harbor-map.expanded{z-index:9;top:calc(78px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(760px,calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));bottom:calc(68px + env(safe-area-inset-bottom));display:flex;flex-direction:column;background:#123541eb}
.harbor-map.expanded .harbor-map-heading{height:44px;flex:none}.harbor-map.expanded #harbor-exploration{height:auto;flex:1;min-height:0}
.harbor-glass footer{z-index:2;font-size:11px;color:#d9e5e0}.harbor-glass #hint{max-width:calc(100vw - 150px);font-size:10px}.harbor-glass footer>span:first-child{line-height:1.5}
.harbor-glass #components{z-index:11;top:calc(78px + env(safe-area-inset-top));background:#103442df;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-radius:16px}
@media(max-width:600px){
 .harbor-glass header{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));top:calc(8px + env(safe-area-inset-top));min-height:50px;gap:6px;padding:4px 6px 4px 10px;border-radius:15px}
 .harbor-glass header h1{font-size:14px;letter-spacing:0}.harbor-glass header .harbor-count{font-size:10px}.harbor-top-actions{gap:4px}
 .harbor-glass .harbor-top-actions>button{font-size:12px;padding:6px 8px}.harbor-glass #game-fullscreen{font-size:12px;min-width:48px}
 .harbor-map{top:calc(70px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));width:132px;border-radius:13px}.harbor-map-heading{height:32px;font-size:10px;padding-left:10px}#harbor-exploration{height:118px}
 .harbor-map.expanded{top:calc(70px + env(safe-area-inset-top));left:50%;bottom:calc(50px + env(safe-area-inset-bottom));width:calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right))}
 .harbor-settings{max-width:calc(100vw - 16px);width:340px;max-height:calc(100dvh - 145px - env(safe-area-inset-top))}
 .harbor-glass #walkMode{max-width:88px;overflow:hidden;text-overflow:ellipsis}.harbor-glass #components{top:calc(70px + env(safe-area-inset-top));bottom:12px;height:auto}
}
@media(max-width:370px){.harbor-glass header .harbor-count{display:none}.harbor-glass header h1{margin-right:auto}}
@media(orientation:landscape) and (max-height:500px){
 .harbor-glass header{min-height:48px;top:calc(5px + env(safe-area-inset-top));padding:2px 8px 2px 12px}.harbor-glass header h1{font-size:14px}
 .harbor-map{top:calc(62px + env(safe-area-inset-top));width:124px}.harbor-map-heading{height:28px}#harbor-exploration{height:96px}
 .harbor-map.expanded{top:calc(62px + env(safe-area-inset-top));bottom:46px;width:min(650px,calc(100vw - 32px))}
 .harbor-settings{max-height:calc(100dvh - 110px - env(safe-area-inset-top))}.harbor-glass #components{top:62px;bottom:12px}
}
@media(prefers-reduced-motion:reduce){.harbor-glass button{transition:none}}

.harbor-settings-open #harbor-controls,.harbor-map-open #harbor-controls,.harbor-settings-open .harbor-map{visibility:hidden}
.harbor-setting-group:nth-child(2) .harbor-select{flex-basis:115px}
.harbor-setting-group:nth-child(2) #game-music-toggle,.harbor-setting-group:nth-child(2) #game-music-next{flex:0 0 auto;padding-inline:9px}
.harbor-setting-group:nth-child(3) .harbor-select{flex-basis:100%}

/* One contextual hint; the existing settings panel holds the full guide. */
.harbor-glass footer{align-items:flex-end;bottom:calc(12px + env(safe-area-inset-bottom))}
.harbor-glass #harbor-hints{display:flex;align-items:center;gap:6px;min-height:34px;max-width:calc(100vw - 155px);padding:2px 7px 2px 2px;border:1px solid #d5e8d226;border-radius:9px;background:#102e3cc7;pointer-events:auto;line-height:1.25}
html[data-standalone=neybra-top] #harbor-hints{max-width:calc(100vw - 24px)}
.harbor-glass #harbor-help-toggle{position:relative;flex:none;min-width:40px;min-height:28px;padding:3px 6px;border:0;border-right:1px solid #d5e8d226;border-radius:6px 0 0 6px;font-size:11px;background:transparent}
.harbor-glass #harbor-help-toggle::before{content:'';position:absolute;inset:-8px -2px}
.harbor-glass #hint{min-width:0;max-width:none;font-size:11px;line-height:1.25;color:#edf7ee}
.harbor-hint-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.harbor-footer-credits{display:flex;align-items:center;gap:6px;min-width:0;color:#b7cdca;font:8px/10px system-ui}
.harbor-footer-credits:empty{display:none}
.harbor-footer-credits a{color:inherit;text-decoration:none;pointer-events:auto}
.harbor-site-registration{min-width:0;overflow-wrap:anywhere}
#naybra-ip-credit{flex:none;white-space:nowrap}
.harbor-control-guide{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px 14px;width:100%;margin:0;font-size:12px;line-height:1.5}
.harbor-control-guide dt{color:#b4ccc6}.harbor-control-guide dd{margin:0;color:#eff5eb;overflow-wrap:anywhere}
body.walking .harbor-control-guide[data-mode=map],body:not(.walking) .harbor-control-guide[data-mode=walk],body[data-control-input=touch] .harbor-control-guide[data-input=keyboard],body:not([data-control-input=touch]) .harbor-control-guide[data-input=touch]{display:none}
