/* Public World Map page (world-map.html, 0.4.9). Same dark palette as style.css. */
.world-map-main{padding:calc(var(--header-h) + 28px) clamp(16px,3vw,48px) 60px;max-width:1720px;margin:0 auto}
.world-map-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.world-map-intro h1{font-family:Georgia,serif;font-size:clamp(36px,5vw,58px);font-weight:500;line-height:1.05;color:#f1e8d4;margin:6px 0 10px;letter-spacing:-.02em}
.world-map-intro p:not(.eyebrow){color:#a6b4ad;max-width:720px;margin:0}
.world-map-version{font-size:12px;color:#7f8d87;white-space:nowrap}
.world-map-shell{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;height:calc(100vh - var(--header-h) - 70px);min-height:560px}
.world-map-panel{display:flex;flex-direction:column;min-height:0;background:linear-gradient(180deg,rgba(16,26,24,.92),rgba(9,15,14,.92));border:1px solid var(--line);border-radius:10px;padding:16px}
.world-map-search label{display:block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#d5bd84;margin-bottom:8px}
.world-map-search-box{position:relative}
.world-map-search-box svg{position:absolute;left:12px;top:50%;width:18px;height:18px;transform:translateY(-50%);fill:none;stroke:#a6b4ae;stroke-width:2;stroke-linecap:round}
.world-map-search input{width:100%;min-height:46px;padding:10px 12px 10px 40px;border-radius:8px;border:1px solid rgba(231,218,181,.25);background:#07100e;color:var(--ink);font:inherit;font-size:16px}
.world-map-search input:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.world-map-filters{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.world-map-filters button{min-height:34px;padding:6px 11px;border-radius:999px;border:1px solid rgba(231,218,181,.2);background:transparent;color:#cfd8d3;font-size:12px;font-weight:700;cursor:pointer}
.world-map-filters button:hover{border-color:rgba(214,170,85,.6)}
.world-map-filters button[aria-pressed="true"]{background:rgba(214,170,85,.18);border-color:var(--gold);color:#f5dd9f}
.world-map-count{margin:4px 0 8px;font-size:12px;color:#8e9b94}
.world-map-results{list-style:none;margin:0;padding:0 4px 0 0;overflow-y:auto;flex:1;min-height:120px}
.world-map-result{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:baseline;width:100%;text-align:left;padding:9px 10px;margin-bottom:4px;border-radius:7px;border:1px solid transparent;background:rgba(255,255,255,.025);color:inherit;font:inherit;cursor:pointer}
.world-map-result:hover{background:rgba(255,255,255,.06)}
.world-map-result.is-selected{border-color:rgba(214,170,85,.6);background:rgba(214,170,85,.1)}
.world-map-result:focus-visible,.world-map-tools button:focus-visible,.world-map-filters button:focus-visible,.world-map-more:focus-visible,.world-map-detail-close:focus-visible{outline:2px solid #9bd3ff;outline-offset:2px}
.world-map-result strong{font-size:14px;color:#efe7d6;min-width:0;overflow-wrap:anywhere}
.world-map-result small{grid-column:2;font-size:12px;color:#93a29b}
.world-map-badge{grid-row:span 2;align-self:start;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:3px 6px;border-radius:4px;background:rgba(94,187,178,.14);color:#8fd6cd;white-space:nowrap}
.world-map-result[data-type="quest"] .world-map-badge{background:rgba(214,170,85,.18);color:#f0ce7c}
.world-map-result[data-type="monster"] .world-map-badge{background:rgba(205,93,78,.16);color:#eda39a}
.world-map-result[data-type="shop"] .world-map-badge{background:rgba(116,200,124,.14);color:#a6deac}
.world-map-result[data-type="place"] .world-map-badge,.world-map-result[data-type="area"] .world-map-badge{background:rgba(160,150,220,.14);color:#c5bdf0}
.world-map-more{margin-top:8px;min-height:38px;border-radius:7px;border:1px solid rgba(231,218,181,.2);background:transparent;color:#e7ece9;font-weight:700;cursor:pointer}
.world-map-detail{margin-bottom:10px;padding:14px;border-radius:9px;border:1px solid rgba(214,170,85,.45);background:rgba(214,170,85,.07)}
.world-map-detail h2{margin:2px 0 4px;font-family:Georgia,serif;font-weight:500;font-size:22px;color:#f6ead0}
.world-map-detail p{margin:0 0 4px;font-size:13px;color:#c9d2cd}
.world-map-detail .world-map-detail-kicker{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#d5bd84}
.world-map-detail .world-map-detail-where{color:#f0e1bd;font-weight:600}
.world-map-detail-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
.world-map-detail-actions .text-link{color:#f0ce7c;font-weight:700;font-size:13px}
.world-map-detail-close{margin-left:auto;min-height:32px;padding:4px 12px;border-radius:6px;border:1px solid rgba(231,218,181,.25);background:transparent;color:#cfd8d3;cursor:pointer}
.world-map-stage{position:relative;min-width:0;min-height:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0d1a20}
.world-map-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.world-map-canvas.dragging{cursor:grabbing}
.world-map-canvas:focus-visible{outline:2px solid #9bd3ff;outline-offset:-2px}
.world-map-tools{position:absolute;top:12px;right:12px;display:flex;gap:6px}
.world-map-tools button{min-height:38px;min-width:38px;padding:6px 12px;border-radius:7px;border:1px solid rgba(232,205,135,.35);background:rgba(10,16,15,.85);color:#f1dca6;font-weight:700;cursor:pointer;backdrop-filter:blur(6px)}
.world-map-tools button:hover{background:rgba(30,40,36,.92)}
.world-map-layers{position:absolute;left:12px;top:12px;background:rgba(10,16,15,.88);border:1px solid rgba(232,205,135,.3);border-radius:8px;padding:6px 10px;font-size:13px;backdrop-filter:blur(6px)}
.world-map-layers summary{cursor:pointer;font-weight:700;color:#f1dca6;min-height:28px;display:flex;align-items:center}
.world-map-layers label{display:flex;gap:8px;align-items:center;margin:6px 0;color:#cfd8d3;cursor:pointer}
.world-map-layers input{accent-color:var(--gold)}
.world-map-tip{position:absolute;pointer-events:none;max-width:240px;padding:6px 9px;border-radius:6px;border:1px solid rgba(232,205,135,.35);background:rgba(16,14,10,.95);color:#f3e7cc;font-size:12px;white-space:pre-line;box-shadow:0 6px 18px rgba(0,0,0,.5)}
.world-map-loading{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:#a6b4ae}
@media(max-width:900px){
  .world-map-intro{flex-direction:column;align-items:flex-start}
  .world-map-shell{grid-template-columns:1fr;height:auto}
  .world-map-panel{max-height:none}
  .world-map-results{max-height:36vh}
  .world-map-stage{height:68vh;min-height:380px}
}
@media(max-width:520px){.world-map-tools button[data-map-action="fit"]{font-size:12px;padding:6px 8px}}
