/* All visual overrides stay inside the map module. */
.camp-map{position:relative;isolation:isolate;width:100%;height:clamp(340px,56svh,540px);min-height:300px;overflow:hidden;background:#e3e9d9;border-radius:22px;color:#26392d}
.camp-map .camp-map-canvas{width:100%;height:100%;min-height:inherit;background:#e3e9d9;font:12px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif}
.camp-map .leaflet-container{outline-offset:-3px}
.camp-map .leaflet-tile-pane img{max-width:none!important;max-height:none!important;border:0;border-radius:0;object-fit:fill}
.camp-map .leaflet-control-container a{color:#284331;text-decoration:none}
.camp-map .leaflet-control-zoom{overflow:hidden;border:1px solid rgba(38,57,45,.15);border-radius:15px;box-shadow:0 3px 14px rgba(35,50,32,.12);margin:14px}
.camp-map .leaflet-control-zoom a{display:block;box-sizing:border-box;width:42px;height:43px;background:#fafbf5;color:#2b4432;line-height:42px;font-family:Arial,sans-serif;font-weight:400;font-size:24px;border-color:#e1e5d8}
.camp-map .leaflet-control-zoom a:hover{background:#edf2e4}
.camp-map .leaflet-control-zoom a.leaflet-disabled{color:#a6afa2;background:#f4f6ee}
.camp-map .leaflet-control-attribution{max-width:calc(100% - 12px);margin:0 6px 5px 0;padding:3px 7px;border-radius:5px;background:rgba(250,251,245,.94);color:#53614f;font-size:10px;line-height:1.4;box-shadow:0 1px 6px rgba(35,50,32,.07)}
.camp-map .leaflet-control-attribution a{color:#344b36;text-decoration:underline;text-underline-offset:2px}
.camp-map .camp-map-pin{background:transparent;border:0;display:flex;justify-content:center;align-items:flex-start;filter:drop-shadow(0 3px 4px rgba(24,46,32,.27));touch-action:manipulation}
.camp-map .camp-map-pin::after{content:"";position:absolute;bottom:2px;left:14px;width:10px;height:10px;background:#36543c;border-right:2px solid #fbfcf6;border-bottom:2px solid #fbfcf6;transform:rotate(45deg);z-index:-1}
.camp-map .camp-map-pin-face{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:36px;height:36px;border:2px solid #fbfcf6;border-radius:50%;background:#36543c;color:#fffdf4;font-size:13px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1;transition:background .16s ease,transform .16s ease}
.camp-map .camp-map-pin.is-selected{filter:drop-shadow(0 3px 6px rgba(66,40,24,.32))}
.camp-map .camp-map-pin.is-selected .camp-map-pin-face{background:#b66b42;transform:scale(1.12);outline:5px solid rgba(255,252,238,.35)}
.camp-map .camp-map-pin.is-selected::after{background:#b66b42}
.camp-map .camp-map-pin:focus-visible{outline:3px solid #b66b42;outline-offset:5px;border-radius:20px}
.camp-map .leaflet-control-zoom a:focus-visible,.camp-map .leaflet-control-attribution a:focus-visible{outline:3px solid #b66b42;outline-offset:-3px}
.camp-map .camp-map-tooltip{border:1px solid #e1e5d8;border-radius:10px;background:#fafbf5;padding:8px 11px;color:#2b4432;font-size:12px;box-shadow:0 4px 16px rgba(35,50,32,.13);width:max-content;max-width:min(260px,calc(100vw - 64px));white-space:nowrap;overflow-wrap:normal;word-break:normal;pointer-events:none}
.camp-map .camp-map-tooltip-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.camp-map .camp-map-tooltip::before{border-top-color:#fafbf5}
.camp-map .camp-map-notice{position:absolute;z-index:800;left:12px;right:12px;bottom:32px;margin:0;padding:11px 13px;border:1px solid rgba(70,91,62,.14);border-radius:13px;background:rgba(250,251,245,.96);color:#43533c;box-shadow:0 3px 15px rgba(35,50,32,.09);font-size:12px;line-height:1.65;pointer-events:none}
.camp-map .camp-map-notice[hidden]{display:none}
@media(max-width:360px){.camp-map{border-radius:18px;height:350px}.camp-map .leaflet-control-zoom{margin:10px}.camp-map .leaflet-control-zoom a{width:40px;height:41px;line-height:40px}}
@media(prefers-reduced-motion:reduce){.camp-map .camp-map-pin-face{transition:none}}
