/* Scope belongs to pages; Original / Schematic only changes world display style. */
.map-index-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:12px 0 28px; }
.map-index-card { overflow:hidden; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--hull); }
.map-index-image { display:block; height:290px; background:var(--sea); overflow:hidden; }
.map-index-image img,.map-index-image svg { width:100%;height:100%;object-fit:contain; }
.map-index-content { padding:24px; }
.map-index-content h2 { margin:12px 0 8px; }
.map-index-content p { color:var(--fog);max-width:55ch; }
.world-workspace { display:grid;grid-template-columns:280px minmax(0,1fr);gap:20px;align-items:start;margin-top:20px; }
.world-workspace.original-view { grid-template-columns:minmax(0,1fr); }
.world-browser[hidden],#world-reset[hidden] { display:none; }
.world-return { margin-left:auto; }
.world-help-card { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px;margin:18px 0;border:1px solid var(--gold);border-radius:var(--r-md);background:var(--hull); }
.world-help-card[hidden] { display:none; }
.world-help-card h2 { margin:5px 0;font-family:var(--font-body);font-size:1.15rem; }
.world-help-card p { margin:0;max-width:65ch; }
.world-help-card .chips { flex-shrink:0;justify-content:flex-end; }
.world-browser { border:1px solid var(--line);border-radius:var(--r-md);background:var(--hull);overflow:hidden; }
.world-browser summary { padding:16px;cursor:pointer;font-weight:600;color:var(--bone); }
.world-filter-body { padding:0 16px 16px; }
.world-filter-body label { display:block;font-size:.85rem;color:var(--fog);margin-bottom:14px; }
.world-filter-body select,.world-filter-body input[type=search] { width:100%;min-width:0;min-height:44px;padding:9px 10px;margin-top:6px;border:1px solid var(--line);border-radius:8px;background:var(--abyss);color:var(--bone);font:inherit; }
.world-filter-body .check-row { display:flex;align-items:center;gap:8px;min-height:32px; }
.world-filter-body input[type=checkbox] { width:17px;height:17px;accent-color:var(--gold); }
.world-layer-options { border-top:1px solid var(--line);margin-top:12px; }
.world-layer-options summary { padding:12px 0;font-size:.85rem;color:var(--fog); }
.world-other-locations { border-top:1px solid var(--line);margin-top:14px; }
.world-other-locations > summary { padding:12px 0;font-size:.85rem;color:var(--fog); }
.world-known-results .world-result { border:1px solid var(--line);background:var(--hull-2); }
.world-known-results .world-result span { color:var(--gold); }
.world-results { max-height:300px;overflow:auto;overscroll-behavior:contain;display:grid;gap:5px; }
.world-result { text-align:left;min-width:0;width:100%;border:1px solid transparent;border-radius:8px;color:var(--bone);background:transparent;padding:10px;cursor:pointer;font:inherit; }
.world-result span,.world-result small { display:block; }
.world-result span { font-size:.94rem;overflow-wrap:anywhere; }
.world-result small { color:var(--fog);font-size:.75rem;margin-top:3px; }
.world-result:hover,.world-result.selected { background:var(--hull-2);border-color:var(--line); }
.world-result.selected { border-left:3px solid var(--gold); }
.world-v3-shell { height:clamp(450px,65vh,740px); }
.world-v3-shell .map-toolbar { z-index:500; }
.world-map-key { display:flex;flex-wrap:wrap;gap:15px;margin-top:10px;padding:9px 12px;background:var(--hull);border:1px solid var(--line);border-radius:8px;font-size:.75rem;color:var(--fog); }
.world-map-key[hidden] { display:none; }
.world-map-key span { display:flex;gap:7px;align-items:center; }
.world-map-key .key-swatch { width:12px;height:12px; }
.map-pin-dot { display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--lily); }
.map-pin-dot.available { background:var(--gold); }
.world-guide-label.leaflet-tooltip { background:var(--hull);color:var(--gold);border:1px solid var(--gold);border-radius:6px;padding:5px 8px;font-family:var(--font-body);font-weight:700;font-size:12px;box-shadow:0 2px 6px #0006; }
.world-guide-label.leaflet-tooltip-top::before { border-top-color:var(--gold); }
.map-pin-dot.selected { background:var(--lily);outline:2px solid var(--coral);outline-offset:1px; }
.world-content-note { margin-top:6px; }
.world-area-label { text-align:center;color:var(--bone);font-family:var(--font-body);font-size:12px;line-height:18px;text-shadow:0 1px 3px var(--abyss),0 0 8px var(--abyss);pointer-events:none;white-space:nowrap;font-weight:600; }
.world-area-label { background:var(--hull);border:1px solid var(--line);border-radius:4px;padding:1px 4px; }
.world-selection { border:1px solid var(--gold);background:var(--hull);padding:18px;border-radius:var(--r-md);display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin:12px 0 18px; }
.world-selection[hidden] { display:none; }
.world-selection h2 { margin:5px 0; }
.world-selection p { max-width:75ch;margin:8px 0 12px; }
.world-selection .icon-btn { flex:none; }
.world-browser #world-more { margin-top:10px; }
.world-canvas-column { min-width:0; }
.world-viewport.leaflet-container { background:var(--sea); }
/* Leaflet positions these inside zero-width panes; the site's generic SVG cap must not shrink them. */
#world-map .leaflet-pane > svg { max-width:none; }
@media(max-width:900px){ .world-workspace { grid-template-columns:230px minmax(0,1fr);gap:12px; } }
@media(max-width:1100px){ .world-help-card { align-items:flex-start;flex-direction:column;gap:12px; } .world-help-card .chips { justify-content:flex-start;flex-shrink:1; } }
@media(max-width:680px){
 .world-return { margin-left:0; }
 .world-help-card { padding:14px;margin:14px 0; }
 .world-help-card .btn { padding:10px 12px;font-size:.85rem; }
 .world-guide-label.leaflet-tooltip { font-size:10px;padding:4px 6px; }
 .map-index-grid { grid-template-columns:1fr;gap:16px; }
 .map-index-image { height:240px; }
 .map-index-content { padding:18px; }
 .world-workspace { display:block;margin-top:14px; }
 .world-browser { margin-bottom:14px; }
 .world-results { max-height:180px; }
 .world-v3-shell { height:58vh;min-height:400px; }
 .world-map-key { gap:10px;font-size:.68rem;padding:8px; }
 .world-selection { position:static;padding:14px; }
 .world-selection .chips { gap:8px; }
 .world-selection .btn { padding:9px 12px;font-size:.85rem; }
}

/* Local puzzle selection and optional objects: player-facing controls. */
#map .local-selection { pointer-events:none; }
#map .marker[data-state='flagged'] { opacity:1; }
#map .marker[data-state='flagged'] > :last-child { stroke:var(--sky);stroke-width:1.5;stroke-dasharray:3 2;vector-effect:non-scaling-stroke; }
#map .marker[data-type='checkpoint'] > .local-extra-marker { fill:var(--sky);stroke:var(--abyss);stroke-width:1.2;stroke-dasharray:none;vector-effect:non-scaling-stroke; }
.local-extra-options { margin-top:10px;border-top:1px solid var(--line-soft); }
.local-extra-options > summary { padding:10px 4px;cursor:pointer;color:var(--fog);font-size:.8rem; }
.local-selection-key { display:flex;align-items:center;gap:12px;padding:8px 4px;font-size:.875rem; }
.key-swatch.selection { border:3px solid var(--coral);border-radius:50%;background:transparent;box-shadow:0 0 0 3px color-mix(in srgb,var(--coral) 24%,transparent); }
.key-swatch.extra { background:var(--sky);transform:rotate(45deg);width:15px;height:15px;margin:3px; }
.local-layer-status { margin:8px 4px 0;padding-top:8px;border-top:1px solid var(--line-soft);font-size:.72rem;color:var(--fog); }

.local-info-slot .info-panel { position:relative;inset:auto;width:auto;margin:14px 0 0; }

.local-shell .legend { z-index:4; }

/* Names use capture landmarks; leaders keep them readable at whole-map zoom. */
.world-region-controls { display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;margin:14px 0; }
.world-region-controls[hidden],.world-region-overlay[hidden] { display:none; }
.world-region-controls .check-row { display:flex;align-items:center;gap:9px;min-height:44px;cursor:pointer; }
.world-region-controls input { width:18px;height:18px;accent-color:var(--gold); }
.world-region-overlay { position:absolute;inset:0;z-index:480;pointer-events:none;overflow:hidden; }
.world-region-overlay svg { position:absolute;inset:0;width:100%;height:100%;max-width:none; }
.world-region-overlay line { stroke:var(--gold);stroke-width:1.5; }
.world-region-overlay circle { fill:var(--gold);stroke:var(--abyss);stroke-width:2; }
.world-region-label { position:absolute;width:184px;padding:6px 9px;min-height:44px;border:1px solid var(--gold);border-radius:8px;background:var(--hull);color:var(--bone);font:600 14px/17px var(--font-body);text-align:center;box-shadow:0 2px 8px #0006;pointer-events:auto;cursor:pointer; }
.world-region-label[hidden] { display:none; }
.world-region-label span { display:block; }
.world-region-label:hover,.world-region-label[aria-pressed=true] { background:var(--hull-2);outline:2px solid var(--gold);outline-offset:2px; }
.world-region-label:focus-visible { outline:3px solid var(--bone);outline-offset:3px; }
@media(max-width:680px){
 .world-region-controls { display:block; }
 .world-region-label { width:138px;font-size:12px;line-height:15px;padding:6px; }
}

/* Detailed names remain smaller than the four principal-region callouts. */
.world-detail-overlay { position:absolute;inset:0;z-index:470;pointer-events:none;overflow:hidden; }
.world-detail-overlay[hidden],.world-detail-label[hidden],.world-area-search-results[hidden],#world-area-search-clear[hidden] { display:none; }
.world-detail-overlay svg { position:absolute;inset:0;width:100%;height:100%;max-width:none; }
.world-detail-overlay line { stroke:#fff;stroke-width:1;opacity:.65; }
.world-detail-overlay circle { fill:#fff;stroke:#0c1b2b;stroke-width:1; }
.world-detail-label { position:absolute;width:max-content;max-width:170px;min-height:32px;padding:4px 7px;border:1px solid #ffffff45;border-radius:5px;background:#0c1b2bed;color:#fff;font:600 12px/16px var(--font-body);text-align:center;box-shadow:0 1px 5px #0006;pointer-events:auto;cursor:pointer; }
.world-detail-label:hover,.world-detail-label[aria-pressed=true] { border-color:var(--gold);outline:2px solid var(--gold);outline-offset:1px; }
.world-detail-label:focus-visible { outline:3px solid #fff;outline-offset:3px; }
.world-area-finder { position:relative;flex-basis:100%;display:flex;align-items:center;gap:14px;min-width:0; }
.world-area-finder > label { color:var(--fog);flex:none; }
.world-area-search-field { position:relative;max-width:520px;flex:1;min-width:0; }
.world-area-finder .world-area-search-field input { width:100%;height:44px;padding:9px 48px 9px 12px;background:var(--hull);color:var(--bone);border:1px solid var(--line);border-radius:8px;font:inherit; }
.world-area-search-field input::-webkit-search-cancel-button { -webkit-appearance:none; }
.world-area-search-field .icon-btn { position:absolute;right:2px;top:0;width:44px;height:44px; }
.world-area-search-results { position:absolute;left:0;top:calc(100% + 6px);z-index:20;width:min(100%,680px);padding:12px;background:var(--hull);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px #0006; }
.world-area-search-results p { margin:0 0 8px; }
#world-area-search-matches { max-height:260px;overflow:auto;overscroll-behavior:contain; }
.world-area-search-result { display:block;width:100%;min-height:44px;text-align:left;padding:9px 12px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--bone);font:inherit;cursor:pointer; }
.world-area-search-result span,.world-area-search-result small { display:block; }
.world-area-search-result small { color:var(--fog);font-size:.75rem;margin-top:3px; }
.world-area-search-result:hover,.world-area-search-result:focus-visible { background:var(--hull-2);border-color:var(--gold); }
.world-detail-note { flex-basis:100%;margin:0; }
@media(max-width:680px){
 .world-region-controls .check-row { margin-block:4px; }
 .world-area-finder { display:block;margin-top:14px; }
 .world-area-finder > label { display:block;margin-bottom:6px; }
 .world-area-search-field { max-width:none; }
 .world-area-search-results { width:100%; }
 .world-detail-label { min-height:44px;max-width:148px;font-size:12px;line-height:15px; }
 .world-detail-note { margin-top:10px; }
}

.world-control-short { display:none; }
@media(max-width:680px){
 .world-region-controls { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px; }
 .world-region-controls .check-row { margin:0;gap:7px;font-size:.875rem; }
 .world-control-full { display:none; }
 .world-control-short { display:inline; }
 .world-area-finder,.world-detail-note { grid-column:1/-1; }
 .world-area-finder { margin-top:0; }
 .world-detail-note { margin:0; }
}

/* The all-layer name finder remains available in both map views. */
.world-area-finder { margin:14px 0 8px;flex-wrap:wrap; }
.world-area-layer { display:flex;align-items:center;gap:8px;color:var(--fog);font-size:.875rem;min-width:0;white-space:nowrap; }
.world-area-layer select { min-height:44px;max-width:330px;padding:8px 10px;background:var(--hull);color:var(--bone);border:1px solid var(--line);border-radius:8px;font:inherit; }
.world-name-scope { margin:8px 0 12px; }
@media(max-width:680px){
 .world-area-finder { display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin:12px 0 8px; }
 .world-area-finder > label { margin:0; }
 .world-area-layer { display:flex!important; }
 .world-area-layer select { flex:1;width:0;min-width:0;max-width:none; }
 .world-name-scope { font-size:.75rem; }
}

.world-area-layer[hidden],.world-name-scope[hidden] { display:none!important; }
