/* itsvegan — maps (mini maps + /map) and shared-JS extras (lightbox caption, previews, busy states) */

/* markers & clusters (Leaflet divIcons) */
.mk-icon,.mcl-icon,.me-icon{background:none!important;border:0!important}
.mk{transition:transform .15s}
.mk.hl,.leaflet-marker-icon:hover .mk{transform:rotate(-45deg) scale(1.18)}
.mk-pick{width:34px;height:34px}
.mcl{cursor:pointer;transition:transform .15s;line-height:1}
.mcl:hover{transform:scale(1.08)}
.mcl.one{width:14px;height:14px;background:var(--c,#16A34A);box-shadow:0 0 0 3px rgba(255,255,255,.9),0 2px 6px rgba(0,0,0,.3)}
.me-dot{display:block;width:18px;height:18px;border-radius:50%;background:#2563EB;border:3px solid #fff;box-shadow:0 0 0 6px rgba(37,99,235,.25),0 2px 6px rgba(0,0,0,.3)}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:none}
.pop-r{font-size:13px;display:flex;align-items:center;gap:4px;margin-top:2px}
.pop-r .stars{font-size:13px}
.pop .card-kicker{margin-bottom:2px}
.leaflet-popup-content a.pop:hover b{color:var(--leaf-2)}
.leaflet-container a.leaflet-popup-close-button{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6);top:6px;right:6px;font-size:22px}
.mini-map .leaflet-control-attribution{font-size:10px}

/* ── /map page ─────────────────────────────────────────────── */
body.map-page main.full{padding:0}
.map-page .map-panel,.map-page .map-fab{z-index:1001}
.map-page .map-loading{z-index:1002}
.mp-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.mp-title h1{margin:0!important;white-space:nowrap}
.mp-count{font-size:12.5px;font-weight:650;color:var(--leaf-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mp-search{position:relative}
.mp-search>i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:13px;pointer-events:none}
.map-panel .mp-search input[type=search]{width:100%;height:40px;min-height:40px;border-radius:999px;border:1px solid var(--line);background:var(--paper);padding:0 38px 0 36px;font-size:14.5px}
.mp-search input::-webkit-search-cancel-button{display:none}
.map-panel .mp-search input[type=search]:focus{outline:none;border-color:var(--leaf);background:#fff;box-shadow:0 0 0 4px rgba(22,163,74,.12)}
.mp-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer}
.mp-clear:hover{background:var(--paper-2);color:var(--ink)}
.mp-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;border-bottom:1px solid var(--line-2)}
.mp-bar .chip-btn{padding:5px 11px;font-size:13px}
.mp-bar .chip-btn span{color:var(--muted);font-weight:500}
.mp-switch{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink-2);cursor:pointer;user-select:none;white-space:nowrap}
.mp-switch input{position:absolute;opacity:0;width:1px;height:1px}
.mp-switch .sw{position:relative;width:36px;height:21px;border-radius:999px;background:#D6D3C7;transition:background .15s;flex-shrink:0}
.mp-switch .sw::after{content:"";position:absolute;top:2.5px;left:2.5px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.mp-switch input:checked+.sw{background:var(--forest)}
.mp-switch input:checked+.sw::after{transform:translateX(15px)}
.mp-switch input:focus-visible+.sw{outline:3px solid var(--lime);outline-offset:2px}
.map-filters[hidden]{display:none}
.map-filters{max-height:300px;overflow:auto}
.mf-group{display:grid;grid-template-columns:76px 1fr;gap:8px;align-items:start}
.mf-label{font:700 11px/26px var(--ui);text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.map-filters .mf-chip{user-select:none;gap:5px;padding:4px 10px;font-size:12.5px}
.map-filters .mf-chip i{color:var(--c);font-size:11.5px}
.map-filters .mf-chip.on{background:var(--c);border-color:var(--c);color:#fff}
.map-filters .mf-chip.on i{color:#fff}
.map-filters .mf-chip:focus-within{outline:3px solid var(--lime);outline-offset:1px}
#map-filters-reset{align-self:flex-start}
#map-filters-reset[hidden]{display:none}
.map-item{text-decoration:none}
.map-item .mi-ico.lv-o{background:#fff;color:var(--c);box-shadow:inset 0 0 0 2px var(--c)}
.map-item .mi-b{min-width:0;flex:1}
.map-item b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-item .mi-r{color:#B45309;font-weight:700}
.map-item .mi-lv{font-size:11.5px;font-weight:650;color:var(--leaf-2)}
.map-item .mi-lv.v{color:var(--forest)}
.map-hint{display:flex;gap:10px;align-items:flex-start;line-height:1.45}
.map-hint i{margin-top:3px;color:var(--leaf-2)}
.mh-zoom b{color:var(--ink)}
.map-empty{padding:26px 20px;text-align:center}
.map-empty .empty-ico{width:52px;height:52px;margin:0 auto 10px;border-radius:16px;display:grid;place-items:center;background:var(--mint);color:var(--forest);font-size:22px}
.map-empty b{display:block;font:700 17px/1.3 var(--display);margin-bottom:4px}
.map-empty p{color:var(--muted);font-size:14px;margin:0 0 12px}
.map-loading{position:absolute;z-index:600;left:0;right:0;top:0;height:3px;overflow:hidden;pointer-events:none}
.map-loading[hidden]{display:none}
.map-loading::after{content:"";position:absolute;top:0;bottom:0;width:30%;background:linear-gradient(90deg,transparent,var(--leaf),transparent);animation:mapload 1s linear infinite}
@keyframes mapload{from{left:-30%}to{left:100%}}
.map-page .leaflet-top.leaflet-right{margin-top:6px}
.map-page .leaflet-control-zoom{border:0!important;box-shadow:var(--sh-2)!important;border-radius:12px!important;overflow:hidden}
.map-page .leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:38px!important;color:var(--ink)!important}
.map-page .leaflet-control-scale{margin-left:376px!important;margin-bottom:12px!important}

/* ── shared JS extras ─────────────────────────────────────── */
.lb-cap{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);color:rgba(255,255,255,.88);font-size:14px;background:rgba(0,0,0,.35);padding:6px 14px;border-radius:999px;max-width:calc(100% - 140px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-cap[hidden]{display:none}
.lb .lb-p,.lb .lb-n{transform:translateY(-50%)}
.lb button:hover{background:rgba(255,255,255,.24)}
.previews figure.is-busy{animation:ivpulse 1s ease-in-out infinite alternate}
@keyframes ivpulse{from{opacity:.55}to{opacity:1}}
.dropzone.is-busy{opacity:.75;pointer-events:none}
.chip-btn.pop-anim i{animation:ivpop .35s ease}
@keyframes ivpop{50%{transform:scale(1.35)}}
.upload-progress[hidden]{display:none}
.suggest .s-all i{margin-right:4px}

@media (max-width:1020px){
  .map-page .leaflet-control-scale{margin-left:10px!important}
}
@media (max-width:760px){
  .map-page .leaflet-control-zoom,.map-page .leaflet-control-scale{display:none}
  .map-page .panel-toggle{position:relative;width:100%;height:22px;margin:0;background:transparent;border-radius:20px 20px 0 0}
  .map-page .panel-toggle::before{content:"";position:absolute;left:50%;top:9px;width:44px;height:5px;margin-left:-22px;border-radius:5px;background:var(--line)}
  .map-page .panel-toggle:focus-visible{outline:3px solid var(--lime);outline-offset:-3px}
  .map-panel-head{padding:0 16px 10px}
  .map-page .map-panel.collapsed{transform:translateY(calc(100% - 66px))}
  .map-panel.collapsed .mp-title{margin-bottom:14px}
  .mp-title{cursor:pointer}
  .mp-title h1{font-size:19px!important}
  .map-filters{max-height:38vh}
  .mf-group{grid-template-columns:1fr;gap:4px}
  .mf-label{line-height:1.4}
  .map-fab{flex-direction:row;right:12px;top:12px}
  .map-fab .btn{min-height:38px;padding:7px 13px;font-size:14px}
  .map-fab .btn-line span{display:none}
  .map-page .toast{bottom:84px}
  .map-page .leaflet-bottom.leaflet-right{bottom:64px}
  .lb-cap{bottom:12px;max-width:calc(100% - 32px)}
}
