/* Карта мира (php/map.php). Палитра — из shop.css/site.css. */
.map-mark{display:inline-flex;align-items:center;gap:7px}
.map-mark::before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid #111510;box-shadow:0 0 0 1px #0008}
.map-mark-exit::before{background:#f0c95a;border-radius:3px}
.map-mark-npc::before{background:#7fd0ff}
.map-mark-camp::before{background:#c3ef78;border-radius:3px}

.map-overview{overflow:auto;margin-top:14px;border:1px solid #3d4933;border-radius:8px;background:#0d110b;max-height:70vh;scroll-behavior:smooth}
.map-overview-inner{position:relative}
.map-overview-links{position:absolute;inset:0;pointer-events:none}
.map-overview-links line{stroke:#c3ef78;stroke-opacity:.35;stroke-width:2;stroke-dasharray:6 6}
.map-tile{position:absolute;display:block;border:1px solid #3d4933;border-radius:4px;overflow:visible;background:#11170e;text-decoration:none}
.map-tile img{display:block;width:100%;height:100%;object-fit:cover;border-radius:3px;opacity:.9}
.map-tile:hover,.map-tile:focus-visible,.map-tile[aria-current=true]{border-color:#c3ef78;z-index:2;outline:none}
.map-tile:hover img,.map-tile[aria-current=true] img{opacity:1}
.map-tile.is-camp{border-color:#6e8d44}
.map-tile-label{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:3px;white-space:nowrap;font-size:10px;line-height:1.3;color:#e3ead7;background:#111510d9;padding:1px 6px;border-radius:3px;pointer-events:none}
.map-tile.is-camp .map-tile-label{top:auto;bottom:100%;margin:0 0 3px;color:#c3ef78}

.map-detached{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.map-detached .field-help{margin:0}
.map-tile-chip{font-size:12px;padding:6px 12px;border:1px solid #3d4933;border-radius:999px;text-decoration:none;color:#e3ead7}
.map-tile-chip:hover,.map-tile-chip[aria-current=true]{border-color:#c3ef78;color:#c3ef78}

.map-location-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.map-location-head h2{margin-top:4px}
.map-zoom-buttons{display:flex;gap:6px}
.map-zoom-buttons .button{min-height:38px;min-width:42px;padding:6px 12px;background:#161d13;color:var(--text);border-color:#4b583f;cursor:pointer;font-size:14px}
.map-zoom-buttons .button:hover{border-color:#c3ef78;color:#c3ef78}
.map-location-body{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;margin-top:14px}
.map-viewport{position:relative;height:min(70vh,640px);overflow:hidden;border:1px solid #3d4933;border-radius:8px;background:#0d110b;touch-action:none;cursor:grab;user-select:none}
.map-viewport.is-dragging{cursor:grabbing}
.map-stage{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}
.map-stage img{display:block;max-width:none;pointer-events:none}
.map-markers{position:absolute;inset:0}
/* Точка метки стоит ровно на координате, подпись уходит внутрь карты (у правого края — влево). */
.map-pin{position:absolute;transform-origin:7px 50%;transform:translate(-7px,-50%) scale(var(--pin-scale,1));display:flex;align-items:center;gap:5px;padding:0;border:0;background:none;color:#fff;font:600 12px "Segoe UI",Arial,sans-serif;cursor:pointer;white-space:nowrap}
.map-pin.is-flipped{flex-direction:row-reverse;transform-origin:calc(100% - 7px) 50%;transform:translate(calc(-100% + 7px),-50%) scale(var(--pin-scale,1))}
.map-pin::before{content:"";flex-shrink:0;width:14px;height:14px;border-radius:50%;border:2px solid #111510;box-shadow:0 0 0 1px #0009,0 2px 6px #000a}
.map-pin span{background:#111510e0;padding:2px 7px;border-radius:4px;text-shadow:none}
.map-pin-exit::before{background:#f0c95a;border-radius:3px}
.map-pin-exit span{color:#f6dc8c}
.map-pin-npc::before{background:#7fd0ff}
.map-pin-npc span{display:none}
.map-pin-npc:hover span,.map-pin-npc:focus span,.map-pin-npc.is-open span{display:block}
.map-pin:focus-visible{outline:2px solid #c3ef78;outline-offset:3px;border-radius:4px}

.map-sidebar{display:grid;gap:14px;align-content:start;font-size:12px}
.map-sidebar h3{font-size:12px;color:#8f9e80;font-weight:600;margin-bottom:6px}
.map-sidebar ul{list-style:none;padding:0;margin:0;display:grid;gap:4px}
.map-sidebar li{display:flex;justify-content:space-between;gap:8px;padding:6px 9px;border:1px solid #3d4933;border-radius:5px;background:#11170e}
.map-sidebar li small{color:#a5af9b}
.map-sidebar button.map-link{all:unset;cursor:pointer;color:#f6dc8c}
.map-sidebar button.map-link:hover,.map-sidebar button.map-link:focus-visible{text-decoration:underline}
.map-sidebar .is-boss{color:#ffb39e}
.map-sidebar .field-help{margin-top:0}

@media(max-width:860px){.map-location-body{grid-template-columns:1fr}.map-viewport{height:60vh}}
@media(max-width:520px){.map-zoom-buttons .button{min-width:38px;padding:6px 9px}}

/* Цельная карта мира (assets/site/worldmap.js) */
.wm-card-wrap{padding:0;overflow:hidden}
.wm{position:relative;height:min(78vh,760px);min-height:420px;overflow:hidden;background:#141912;touch-action:none;cursor:grab;user-select:none;outline:none}
.wm.is-dragging{cursor:grabbing}
.wm:focus-visible{box-shadow:inset 0 0 0 2px #c3ef78}
.wm-base,.wm-tiles,.wm-hi,.wm-labels{position:absolute;inset:0}
.wm-base img,.wm-tiles img,.wm-hi img{position:absolute;left:0;top:0;max-width:none;transform-origin:0 0;pointer-events:none;image-rendering:auto}
.wm-hi img{transition:opacity .2s}
.wm-label{position:absolute;left:0;top:0;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border:1px solid #0009;border-radius:4px;background:#111510e0;color:#f1f3e9;font:600 12px "Segoe UI",Arial,sans-serif;white-space:nowrap;cursor:pointer;box-shadow:0 2px 8px #0008}
.wm-label:hover,.wm-label:focus-visible{background:#26331d;border-color:#c3ef78;outline:none}
.wm-label-level{font:600 10px var(--mono);color:#cdeeb0;background:#2f4a22;border-radius:3px;padding:0 4px}
.wm-label.is-pvp .wm-label-level{background:#8a3b2c;color:#ffe1d6}
.wm-label.is-camp{font-size:11px;color:#c3ef78;background:#111510c0;border-style:dashed;border-color:#6e8d44}
.wm-controls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:3}
.wm-controls .button{min-height:40px;min-width:40px;padding:6px 10px;background:#161d13ee;color:var(--text);border-color:#4b583f;cursor:pointer;font-size:16px}
.wm-controls .button:hover{border-color:#c3ef78;color:#c3ef78}
.wm-controls .wm-fit{font-size:11px}
.wm-hint{position:absolute;left:12px;bottom:10px;z-index:3;font-size:11px;color:#c6cebf;background:#111510c0;padding:4px 8px;border-radius:4px;pointer-events:none}
.wm-card{position:absolute;left:12px;top:12px;z-index:4;width:min(320px,calc(100% - 80px));padding:14px 16px;border:1px solid #526b39;border-radius:8px;background:#161d13f2;box-shadow:0 12px 30px #0009;cursor:default}
.wm-card h3{font-size:18px;margin:6px 0 8px}
.wm-card .kicker{font-size:9px}
.wm-card-mobs{font-size:12px;line-height:1.6;color:var(--muted)}
.wm-card-mobs .is-boss{color:#ffb39e}
.wm-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.wm-card-actions .button{min-height:34px;padding:6px 10px;font-size:12px;background:#11170e;color:var(--text);border-color:#4b583f;text-decoration:none;cursor:pointer}
.wm-card-actions .button:hover{border-color:#c3ef78;color:#c3ef78}
.wm-card-close{position:absolute;right:6px;top:4px;border:0;background:none;color:#b2c2a1;font-size:22px;line-height:1;cursor:pointer;padding:4px 8px}
@media(max-width:520px){.wm{height:70vh}.wm-label{font-size:11px;padding:2px 6px}.wm-hint{display:none}}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
