.world-map-trigger{display:flex;align-items:center;justify-content:center;gap:2px;width:92px;min-width:0;min-height:48px;box-sizing:border-box;padding:2px 4px;border:1px solid #f6e6bfbb;border-radius:16px;background:#e9dfcceF;color:#273444;font:600 11px system-ui,sans-serif;box-shadow:0 3px 12px #0003;cursor:pointer;touch-action:manipulation}
.world-map-trigger img{width:34px;height:34px;object-fit:contain;pointer-events:none}
.world-map-trigger[hidden]{display:none}
body:has(.boarding) .world-map-trigger{visibility:hidden}
.world-map{--map-ink:#253c43;--map-muted:#52676b;--map-paper:#f0e6cf;--map-line:#a7aa91;position:fixed;inset:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));width:calc(100% - 16px);max-width:620px;max-height:calc(100dvh - 16px);box-sizing:border-box;margin:auto;padding:0;border:1px solid #e7cf9a;border-radius:20px;background:var(--map-paper);color:var(--map-ink);box-shadow:0 12px 40px #0008;font:500 13px/1.5 system-ui,sans-serif;overflow:hidden}
.world-map[open]{display:flex;flex-direction:column}
.world-map [hidden]{display:none!important}
.world-map::backdrop{background:#07121abf;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.world-map button{min-width:44px;min-height:44px;border:1px solid var(--map-line);border-radius:10px;background:#faf5e9;color:var(--map-ink);font:600 12px/1.3 system-ui,sans-serif;touch-action:manipulation;cursor:pointer}
.world-map button:disabled{opacity:.5;cursor:default}
.world-map-trigger:focus-visible,.world-map button:focus-visible,.world-map summary:focus-visible,.world-map [tabindex]:focus-visible{outline:3px solid #986d26;outline-offset:2px}
.world-map__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-bottom:1px solid #b7ac8b;flex:none}
.world-map__title{margin:0;font-size:19px;letter-spacing:-.02em}
.world-map__subtitle{margin:1px 0 0;color:var(--map-muted);font-size:11px}
.world-map .world-map__close{border-radius:50%;font-size:25px;font-weight:400;flex:none}
.world-map__body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.world-map__ship{display:flex;align-items:center;gap:8px;margin-bottom:10px;min-height:42px}
.world-map__ship-symbol{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#1f6577;color:#fff;font-size:18px}
.world-map__ship-name{display:block;font-size:13px}
.world-map__coordinate{margin:0;color:var(--map-muted);font-size:11px;font-variant-numeric:tabular-nums;min-height:16px}
.world-map__canvas{position:relative;height:clamp(230px,42dvh,340px);overflow:hidden;border:1px solid #889d95;border-radius:12px;background:#d5e2db;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.world-map__canvas:active{cursor:grabbing}
.world-map__svg{display:block;width:100%;height:100%;overflow:hidden;touch-action:none}
.world-map__land{fill:#c3b58b;stroke:#746f51;stroke-width:.65;fill-rule:evenodd;vector-effect:non-scaling-stroke}
.world-map__grid{fill:none;stroke:#829d954d;stroke-width:.6;vector-effect:non-scaling-stroke}
.world-map__port{fill:#fff4d2;stroke:#5c5038;stroke-width:1.7;vector-effect:non-scaling-stroke}
.world-map__point[aria-pressed="true"] .world-map__port{fill:#b47c2f;stroke:#3b3c2e;stroke-width:2}
.world-map__port-label{fill:#263c42;paint-order:stroke;stroke:#f5eedc;stroke-width:3px;stroke-linejoin:round;font-weight:700;pointer-events:none;vector-effect:non-scaling-stroke}
.world-map__self{fill:#174f67;stroke:#fff8e4;stroke-width:2.5;vector-effect:non-scaling-stroke}
.world-map__self-ring{fill:#1c61732a;stroke:#205c70;stroke-width:1;vector-effect:non-scaling-stroke}
.world-map__north{position:absolute;right:10px;top:9px;display:grid;text-align:center;color:#526651;font:700 10px/1.1 Georgia,serif;pointer-events:none}
.world-map__north span{font-size:23px}
.world-map__loading{position:absolute;left:10px;bottom:8px;max-width:calc(100% - 20px);padding:3px 7px;border-radius:6px;background:#f5eddbed;color:#4a5c5c;font-size:11px;pointer-events:none}
.world-map__loading[hidden]{display:none}
.world-map__toolbar{display:flex;gap:6px;align-items:center;margin-top:8px}
.world-map__toolbar button{padding:0 10px}
.world-map__toolbar [data-map="locate"]{margin-right:auto}
.world-map__toolbar [data-map="zoom-in"],.world-map__toolbar [data-map="zoom-out"]{font-size:23px;font-weight:400;padding:0}
.world-map__selection{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:10px 0 0;padding-top:9px;border-top:1px solid #b8b299;min-height:23px}
.world-map__selection strong{font-size:13px}
.world-map__selection span{font-size:11px;color:var(--map-muted);font-variant-numeric:tabular-nums}
.world-map__ports{margin-top:8px}
.world-map__ports summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;font-size:12px;font-weight:600;list-style:none}
.world-map__ports summary::after{content:'＋';font-size:18px}
.world-map__ports[open] summary::after{content:'−'}
.world-map__ports-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-bottom:4px}
.world-map__ports-grid button{text-align:left;padding:8px 10px}
.world-map__ports-grid button[aria-pressed="true"]{background:#d4c393;border-color:#7a6c3f}
.world-map__foot{margin:8px 0 0;color:var(--map-muted);font-size:10px;line-height:1.5}
@media(max-height:570px){.world-map__canvas{height:210px}.world-map__header{padding-block:8px}.world-map__body{padding:10px}.world-map__ship{margin-bottom:6px}}
@media(prefers-reduced-motion:no-preference){.world-map[open]{animation:world-map-open .18s ease-out}@keyframes world-map-open{from{opacity:.5;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}}
