/* 白色拉片留下入口；展開覆蓋海面，避免縮放與島嶼位置跳動。 */
body{overflow-x:hidden}
.archipelago{margin-right:42px}
.edge-drawer{position:fixed;top:74px;right:0;bottom:24px;width:min(calc(var(--panel-width) + 34px),calc(100vw - 24px));z-index:40;pointer-events:none;isolation:isolate}
.edge-drawer[data-drawer="logic"]{z-index:41}
.edge-drawer.is-open>.edge-panel{transform:translateX(0);pointer-events:auto}
.edge-drawer>.edge-panel{position:absolute!important;inset:0 34px 0 0!important;width:calc(100% - 34px)!important;transform:translateX(calc(100% + 34px));transition:transform .3s cubic-bezier(.2,.8,.2,1);pointer-events:none;height:100%!important;max-height:none!important;margin:0!important;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:22px;display:block}
.edge-drawer>.edge-panel::after{display:none}
.edge-drawer:not(.is-open)>.edge-panel{visibility:hidden}
.drawer-tab{position:absolute;right:0;top:0;pointer-events:auto;width:34px;min-height:156px;display:flex;align-items:center;gap:10px;flex-direction:column;padding:14px 6px;background:#fff;border:1px solid #dae6eb;border-right:0;border-radius:12px 0 0 12px;box-shadow:-4px 5px 16px #10395a26;color:#244965;font:600 13px/1.35 var(--body);touch-action:manipulation}
.drawer-tab b{writing-mode:vertical-rl;letter-spacing:.16em;font-weight:700}
.drawer-tab>span{font:28px/18px Georgia,serif}
.drawer-tab small{font-size:10px;writing-mode:vertical-rl;letter-spacing:.1em;color:#5c7481}
.drawer-tab:hover,.drawer-tab:focus-visible{background:#fff9e9;filter:none}
.edge-drawer[data-drawer="logic"] .drawer-tab{top:176px}
.drawer-heading{display:flex;align-items:center;gap:10px;border-top:2px solid #7f5a32;border-bottom:3px double #7f5a32;padding:10px 0;margin-bottom:18px;font:800 24px/1.45 var(--display);letter-spacing:.07em}
.edge-drawer .route-list{height:260px;min-height:180px;display:block}
.edge-drawer .route-card{margin-bottom:12px}
.edge-drawer .logic-content{display:grid;grid-template-columns:1fr;gap:16px}
.edge-drawer .logic-controls{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.edge-drawer .logic-controls>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.edge-drawer .logic-controls button{font-size:14px}
@media(max-width:900px){.archipelago{margin-right:0}.edge-drawer{top:178px;bottom:72px;width:min(444px,calc(100vw - 16px))}.edge-drawer>.edge-panel{padding:18px}.edge-drawer .sky-heading h2{font-size:25px}.edge-drawer .route-card strong{font-size:19px}.edge-drawer .route-list{min-height:180px;max-height:none;margin:16px 0}.drawer-heading{font-size:22px}.drawer-tab{width:34px}}
@media(prefers-reduced-motion:reduce){.edge-drawer>.edge-panel{transition:none}}

.edge-drawer .drawer-heading{padding-right:42px}.edge-panel>.drawer-collapse{position:absolute;top:22px;right:22px;z-index:3;width:36px;height:36px;border:1px solid #a78957;border-radius:5px;background:#fff9e9;color:#51371f;font-size:25px;line-height:1;display:grid;place-items:center}

/* 海面優先：左右、上方資訊窗都可縮小，入口停在螢幕邊緣。 */
.archipelago{height:100svh;min-height:540px;margin:0!important}
.edge-drawer[data-side="left"]{left:0;right:auto;width:min(374px,calc(100vw - 16px));z-index:39}
.edge-drawer[data-side="left"]>.edge-panel{inset:0 0 0 34px!important;transform:translateX(calc(-100% - 34px))}
.edge-drawer[data-side="left"].is-open>.edge-panel{transform:translateX(0)}
.edge-drawer[data-side="left"] .drawer-tab{left:0;right:auto;border-radius:0 12px 12px 0;border:1px solid #dae6eb;border-left:0}
.chrome-left-content{background:#123f65f5;color:#fff3d3;border:1px solid #83b4cb;border-radius:0 12px 12px 0;box-shadow:8px 8px 30px #113b5d33}
.chrome-left-content .map-intro{position:static!important;max-width:none!important;width:auto;pointer-events:auto;padding-top:36px;text-shadow:none}
.chrome-left-content .map-intro h1{font-size:32px;line-height:1.4;margin:12px 0 18px}
.chrome-left-content .map-intro>p:not(.eyebrow){font-size:17px;line-height:1.8}
.chrome-left-content #management-open,.chrome-left-content #fleet-open{position:static;display:block;width:100%;max-width:none;margin:16px 0 0;padding:12px;text-align:left}
.chrome-left-content #fleet-open small,.chrome-left-content #fleet-open span{display:block;font-size:13px}
.edge-drawer[data-side="top"]{top:0;bottom:auto;left:12px;right:12px;width:auto;height:0;z-index:50}
.edge-drawer[data-side="top"]>.edge-panel{inset:34px 0 auto!important;width:100%!important;height:auto!important;max-height:calc(100svh - 100px)!important;transform:translateY(calc(-100% - 34px));padding:12px;overflow:auto}
.edge-drawer[data-side="top"].is-open>.edge-panel{transform:translateY(0)}
.edge-drawer[data-side="top"] .drawer-tab{top:0;left:50%;right:auto;transform:translateX(-50%);width:180px;min-height:34px;height:34px;flex-direction:row;justify-content:center;padding:5px 12px;border-radius:0 0 12px 12px;border:1px solid #dae6eb;border-top:0;gap:9px}
.edge-drawer[data-side="top"] .drawer-tab b,.edge-drawer[data-side="top"] .drawer-tab small{writing-mode:horizontal-tb;letter-spacing:.06em}
.chrome-top-content{background:#123e68f5;border:1px solid #d5c18d;border-radius:0 0 12px 12px;box-shadow:0 8px 30px #113b5d33;display:flex!important;flex-direction:column;gap:10px}
.chrome-top-content .masthead{position:relative;inset:auto;height:auto;min-height:74px;margin:0;padding:12px 56px 12px 16px}
.chrome-top-content .expedition-bar{position:relative;inset:auto;margin:0;min-height:44px;flex:none}
.chrome-top-content #islands-account{position:relative;inset:auto;max-width:none;margin:0;z-index:auto;flex:none}
.edge-drawer[data-side="top"] .drawer-collapse{top:30px;right:26px}
.map-brand-mini{position:fixed;top:14px;left:22px;pointer-events:none;z-index:8;color:#fff8de;text-shadow:0 1px 5px #12486e;font:700 16px/1.4 var(--display);letter-spacing:.06em}
.map-guide,.ship-caption,.sea-note{display:none}
.map-controls{position:absolute;bottom:20px;left:50%;right:auto;transform:translateX(-50%);white-space:nowrap;z-index:8}
.map-controls button{font-size:13px!important;padding:9px 11px!important}
.map-controls #zoom-level{font-size:13px;min-width:42px}
@media(max-width:900px){.edge-drawer{top:68px;bottom:86px}.chrome-top-content .brand-copy{min-width:0}.chrome-top-content .brand-copy strong{font-size:18px}.chrome-top-content .brand-copy>span{font-size:12px}.chrome-top-content .brand-stamp{width:40px;height:40px}.chrome-top-content .reset-windows{font-size:12px}.chrome-top-content .masthead{flex-wrap:wrap}.chrome-top-content #islands-account{font-size:13px}.map-controls{max-width:calc(100vw - 24px);white-space:normal;flex-wrap:wrap;justify-content:center;gap:0}.map-controls button{font-size:12px!important;padding:8px!important}.map-brand-mini{font-size:12px;top:44px;left:48px}}
/* 島牌改成碼頭前的小標籤，不再豎起一張海報擋住屋頂與公仔。 */
.island-label{display:flex;align-items:center;gap:7px;min-width:0!important;width:auto;padding:6px 10px!important;border:1px solid #c8a768;border-radius:7px;background:#fff8e9f5;box-shadow:0 3px 10px #123d6233;transform:translate(-50%,0);line-height:1.25;white-space:nowrap}
.island-label::before{display:none!important}.island-label::after{height:10px;top:-11px;background:#fff2ce;left:50%}
.island-label b{font:400 22px/1.15 var(--pirate)!important;letter-spacing:.04em;margin:0!important;padding:0!important;border:0!important;color:#49351e}
.island-label span{font:600 14px/1.4 var(--body)!important;padding:0!important;margin:0!important;border:0!important;color:#49351e}
.island-label small{display:none!important}
.island-label:hover,.island-label:focus-visible{background:#fff;border-color:#e8bd66;z-index:9!important}
.knowledge-label{transform:translate(-50%,0);width:auto;min-width:0;padding:7px 11px;border:1px solid #c8a768;border-radius:7px;background:#fff8e9f5}
.knowledge-label b,.knowledge-label small{display:none}.knowledge-label span{font:600 14px/1.4 var(--body)}
@media(max-width:600px){.island-label{gap:5px;padding:5px 7px!important}.island-label b{font-size:18px!important}.island-label span{font-size:12px!important}.knowledge-label span{font-size:12px}}

#world,#labels,#task-markers{left:0!important;top:0!important}.knowledge-label{margin:0!important}.chrome-left-content .map-intro::before{display:none}.chrome-left-content .map-intro h1{white-space:normal}

.edge-drawer[data-side="top"] .drawer-collapse{z-index:7;color:#51371f;background:#fff9e9;border-color:#8c7449}
