/* SPOT THE WORLD – Weltkarte | V0.4.18.9 */
.worldmap-shell .content { max-width:none; padding:0; }
.worldmap-app { height:calc(100dvh - 50px); min-height:0; display:flex; flex-direction:column; overflow:hidden; }
.worldmap-topbar { height:76px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:6px 28px; border-bottom:1px solid var(--line); background:rgba(21,23,25,.96); position:relative; z-index:5; }
.worldmap-title h1 { margin:2px 0 0; font-size:clamp(22px,2.3vw,30px); }
.worldmap-title p { margin:2px 0 0; color:var(--muted); max-width:760px; font-size:11px; }
.worldmap-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.worldmap-search-wrap { position:relative; width:min(330px,42vw); }
.worldmap-search { width:100%; background:var(--panel2); border:1px solid var(--line); color:var(--text); padding:10px 12px; border-radius:6px; outline:none; }
.worldmap-search:focus { border-color:var(--accent); }
.worldmap-search-results { position:absolute; top:calc(100% + 6px); right:0; width:100%; max-height:360px; overflow:auto; background:rgba(25,28,30,.98); border:1px solid var(--line); border-radius:7px; box-shadow:0 16px 35px rgba(0,0,0,.45); z-index:30; padding:5px; }
.worldmap-search-result { width:100%; display:grid; gap:3px; text-align:left; padding:10px 11px; border:0; border-bottom:1px solid rgba(58,62,67,.7); background:transparent; color:var(--text); cursor:pointer; border-radius:5px; }
.worldmap-search-result:last-child { border-bottom:0; }
.worldmap-search-result:hover,.worldmap-search-result:focus { background:var(--panel2); outline:none; }
.worldmap-search-result strong { font-size:11px; }
.worldmap-search-result span,.worldmap-search-results__empty { color:var(--muted); font-size:9px; line-height:1.4; }
.worldmap-search-results__empty { padding:12px; }

.worldmap-main { position:relative; flex:1; min-height:0; overflow:hidden; }
#worldmap { position:absolute; inset:0; background:#101416; }
.maplibregl-ctrl-group { background:#1b1e20; border:1px solid #34383b; box-shadow:none; }
.maplibregl-ctrl button { filter:invert(.9); }
.maplibregl-ctrl-attrib { background:rgba(15,17,18,.8)!important; color:#8d9290; }
.maplibregl-ctrl-attrib a { color:#b7b9b5; }
.worldmap-panel { position:absolute; z-index:4; background:rgba(25,28,30,.94); border:1px solid var(--line); box-shadow:0 12px 35px rgba(0,0,0,.3); backdrop-filter:blur(8px); }
.worldmap-panel--filters { top:18px; left:24px; width:235px; border-radius:8px; overflow:hidden; }
.worldmap-panel__head { padding:12px 14px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; }
.worldmap-panel__head strong { font-size:11px; letter-spacing:.12em; }
.worldmap-panel__body { padding:12px 14px; }
.worldmap-control-row { display:flex; flex-wrap:wrap; gap:6px; }
.worldmap-chip { appearance:none; border:1px solid var(--line); background:#151719; color:var(--muted); padding:7px 9px; border-radius:5px; font:inherit; font-size:10px; cursor:pointer; }
.worldmap-chip:hover,.worldmap-chip.is-active { color:var(--text); border-color:var(--accent); background:#222528; }
.worldmap-layer-list { display:grid; gap:8px; }
.worldmap-layer-list label { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--muted); font-size:10px; }
.worldmap-layer-list input { accent-color:var(--accent); }
.worldmap-legend { position:absolute; z-index:4; left:24px; bottom:24px; width:235px; border-radius:8px; overflow:hidden; }
.worldmap-legend-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; }
.worldmap-legend-item { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:9px; }
.worldmap-symbol { width:18px; height:18px; display:grid; place-items:center; color:var(--accent); font-size:16px; line-height:1; flex:0 0 18px; }
.worldmap-symbol--star { font-size:17px; }
.worldmap-symbol--hex { font-size:18px; }
.worldmap-level { position:absolute; z-index:4; right:24px; bottom:24px; padding:9px 12px; border-radius:6px; color:var(--muted); font-size:9px; letter-spacing:.1em; background:rgba(15,17,18,.85); border:1px solid var(--line); }
.worldmap-marker { width:28px; height:28px; display:grid; place-items:center; padding:0; margin:0; border:0; outline:0; background:transparent; appearance:none; -webkit-appearance:none; color:var(--accent); cursor:pointer; filter:drop-shadow(0 1px 2px rgba(0,0,0,.65)); }
.worldmap-marker:hover,.worldmap-marker:focus { background:transparent; border:0; outline:0; }
.worldmap-marker__glyph { display:block; font-family:Arial, Helvetica, sans-serif; font-size:24px; line-height:1; transform-origin:center; color:var(--accent); }
.worldmap-marker--dot .worldmap-marker__glyph { font-size:25px; }
.worldmap-marker--empty .worldmap-marker__glyph { font-size:28px; }
.worldmap-marker--discovered .worldmap-marker__glyph { font-size:25px; }
.worldmap-marker--visited .worldmap-marker__glyph { font-size:26px; }
.worldmap-marker--star .worldmap-marker__glyph { font-size:22px; }
.worldmap-marker--hex .worldmap-marker__glyph { font-size:25px; }
.worldmap-marker--forbidden .worldmap-marker__glyph { font-size:24px; }
.worldmap-marker--triangle .worldmap-marker__glyph { font-size:22px; }
.worldmap-marker--square .worldmap-marker__glyph { font-size:21px; }
.worldmap-popup .maplibregl-popup-content { padding:0; background:#202326; color:var(--text); border:1px solid var(--line); border-radius:8px; overflow:hidden; min-width:230px; box-shadow:0 12px 30px rgba(0,0,0,.4); }
.worldmap-popup .maplibregl-popup-tip { border-top-color:#202326; border-bottom-color:#202326; }
.worldmap-popup__inner { padding:13px 14px; }
.worldmap-popup__eyebrow { color:var(--muted); font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.worldmap-popup__title { margin:4px 0 5px; font-size:15px; }
.worldmap-popup__meta { color:var(--muted); font-size:9px; }
.worldmap-popup__desc { margin:9px 0 0; color:#c6c9c5; font-size:10px; line-height:1.45; }
.worldmap-popup__actions { display:flex; gap:6px; margin-top:10px; }
.worldmap-popup__button { border:1px solid var(--line); background:#151719; color:var(--text); padding:7px 9px; border-radius:5px; font:inherit; font-size:9px; cursor:pointer; }
.worldmap-popup__button:hover { border-color:var(--accent); }
.worldmap-hover { pointer-events:none; }
.worldmap-hover .maplibregl-popup-content { min-width:190px; }
.worldmap-cluster { width:34px; height:34px; border-radius:50%; background:#050607; color:#fff; display:grid; place-items:center; font-size:10px; font-weight:700; border:2px solid var(--accent); box-shadow:0 3px 12px rgba(0,0,0,.45); }
.worldmap-status { position:absolute; z-index:4; top:18px; right:24px; padding:9px 12px; border-radius:6px; background:rgba(15,17,18,.86); border:1px solid var(--line); color:var(--muted); font-size:9px; letter-spacing:.08em; }
@media(max-width:800px){
  .worldmap-topbar { height:auto; min-height:76px; padding:10px 16px; align-items:flex-start; }
  .worldmap-search-wrap { width:100%; }
  .worldmap-actions { width:100%; justify-content:flex-start; }
  .worldmap-main { min-height:0; }
  .worldmap-panel--filters { left:16px; top:16px; width:205px; }
  .worldmap-legend { left:16px; bottom:16px; width:205px; }
  .worldmap-status { right:16px; top:16px; }
}

@media(max-width:900px){
  .worldmap-app { height:calc(100dvh - 106px); }
}
@media(max-width:560px){
  .worldmap-app { height:calc(100dvh - 122px); min-height:0; }
}

.worldmap-popup__stamp{display:flex;align-items:center;gap:8px;margin:8px 0 5px;padding:6px;background:rgba(217,188,88,.05);border:1px solid rgba(217,188,88,.16);border-radius:5px}.worldmap-popup__stamp img{width:46px;height:46px;object-fit:contain}.worldmap-popup__stamp span{font-size:7px;color:var(--muted);letter-spacing:.1em}.worldmap-popup__favorite.is-active{color:var(--accent);border-color:var(--accent)}
.worldmap-marker{position:relative}.worldmap-marker__favorite{position:absolute;right:-1px;top:-2px;color:var(--accent);font-size:10px;line-height:1;text-shadow:0 1px 2px #000;pointer-events:none}

/* V0.5.85 REK-01: mobile Kartenbedienung */
.worldmap-mobile-controls { display:none; }
@media (max-width:800px) {
 .worldmap-mobile-controls { display:flex; position:absolute; top:12px; left:12px; z-index:6; gap:8px; }
 .worldmap-mobile-controls button { background:rgba(25,28,30,.96); border:1px solid #aa863a; color:#f1d080; border-radius:6px; min-height:40px; padding:8px 12px; font:inherit; font-size:11px; font-weight:700; cursor:pointer; }
 .worldmap-mobile-controls button[aria-expanded="true"] { background:#aa863a; color:#101010; }
 .worldmap-panel--filters, .worldmap-legend { display:none; left:12px; width:min(270px,calc(100% - 24px)); max-height:min(65dvh,460px); overflow-y:auto; }
 .worldmap-panel--filters { top:62px; bottom:auto; }
 .worldmap-legend { top:62px; bottom:auto; }
 .worldmap-panel--filters.stw-mobile-open, .worldmap-legend.stw-mobile-open { display:block; z-index:7; }
 .worldmap-level { pointer-events:none; }
}
