/* Shared vector controls; only mounted map containers are affected. */
.tatouage-vector-map{background:var(--map-bg);position:relative}
.tatouage-vector-map .maplibregl-ctrl-top-right{top:6px;right:6px}
.tatouage-vector-map .maplibregl-ctrl-group{border:1px solid var(--map-line);border-radius:12px;background:var(--map-surface);box-shadow:0 3px 12px #0002;overflow:hidden}
.tatouage-vector-map .maplibregl-ctrl-group button{width:36px;height:36px;display:grid;place-items:center;padding:0;border:0;background:var(--map-surface);color:var(--map-text);-webkit-tap-highlight-color:transparent}
.tatouage-vector-map .maplibregl-ctrl-group button+button{border-top:1px solid var(--map-line)}
.tatouage-vector-map .maplibregl-ctrl-group button:hover,.tatouage-vector-map .maplibregl-ctrl-group button[aria-pressed="true"]{color:var(--map-accent);background:var(--map-bg)}
.tatouage-vector-map .maplibregl-ctrl-group button:focus-visible{outline:2px solid var(--map-accent);outline-offset:-3px}
.tatouage-vector-map .maplibregl-ctrl-group button .maplibregl-ctrl-icon{background-image:none!important;display:grid;place-items:center;width:100%;height:100%;color:inherit}
.tatouage-vector-map .maplibregl-ctrl-group button .maplibregl-ctrl-icon>svg{display:block;margin:0;width:19px;height:19px}
.tatouage-vector-map .maplibregl-ctrl-group button:disabled{opacity:.4}
.tatouage-vector-map .maplibregl-ctrl-attrib{visibility:hidden}
.tatouage-vector-map.vector-map-ready .maplibregl-ctrl-attrib{visibility:visible}
.tatouage-vector-map .maplibregl-ctrl-bottom-right{bottom:6px;right:6px}
.tatouage-vector-map .maplibregl-ctrl-attrib.maplibregl-compact{background:var(--map-surface);color:var(--map-muted);border:1px solid var(--map-line);border-radius:16px;box-sizing:border-box;min-height:28px;padding:0 29px 0 7px;font:10px/26px sans-serif;max-width:calc(100vw - 45px)}
.tatouage-vector-map .maplibregl-ctrl-attrib.maplibregl-compact:not(.maplibregl-compact-show){width:28px;padding:0}
.tatouage-vector-map .maplibregl-ctrl-attrib-button{position:absolute;right:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--map-surface)!important;color:var(--map-accent);-webkit-tap-highlight-color:transparent}
.tatouage-vector-map .maplibregl-ctrl-attrib-button::before{content:'i';position:absolute;inset:0;display:grid;place-items:center;background:none!important;mask:none!important;-webkit-mask:none!important;font:italic 700 14px/1 Georgia;color:var(--map-accent)}
.tatouage-vector-map .maplibregl-ctrl-attrib-inner{white-space:nowrap;overflow-x:auto}
.tatouage-vector-map .maplibregl-ctrl-attrib a{color:var(--map-text)}
.tatouage-vector-map.vector-map-locked,.tatouage-vector-map.vector-map-locked .maplibregl-canvas-container,.tatouage-vector-map.vector-map-locked canvas{touch-action:pan-y!important}
.tatouage-vector-map.vector-map-locked .maplibregl-canvas-container>canvas{pointer-events:none}
.tatouage-vector-map:not(.vector-map-locked) .maplibregl-canvas-container{touch-action:none}
#studio-map .maplibregl-marker{cursor:pointer}
#studio-map .studio-cluster,#studio-map .studio-pin{display:grid;place-items:center;padding:0;border:2px solid var(--map-accent);background:var(--map-surface);color:var(--map-accent);border-radius:50%;box-shadow:0 2px 8px #0004;font:700 13px system-ui}
#studio-map .studio-cluster{width:44px;height:44px}
#studio-map .studio-pin{width:28px;height:28px}
#studio-map .studio-cluster.is-active,#studio-map .studio-pin.is-active{background:var(--map-accent);color:var(--map-bg)}
#studio-map .maplibregl-popup-content{background:var(--map-surface);color:var(--map-text);border:1px solid var(--map-line);border-radius:12px;max-height:250px;overflow:auto;padding:14px}
#studio-map .maplibregl-popup-tip{border-top-color:var(--map-surface)}
#studio-map .cluster-popup a{color:var(--map-accent)}
#studio-map .cluster-popup button{background:transparent;border:1px solid var(--map-line);border-radius:6px;color:var(--map-text);font:inherit;cursor:pointer}
@media(max-width:600px){.tatouage-vector-map .maplibregl-ctrl-top-right{top:2px;right:2px}}

#discovery .map-location-toolbar{display:none}

/* Shared attribution drawer: theme colors in every pointer/focus state. */
.tatouage-vector-map .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button,
.tatouage-vector-map .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button:is(:hover,:active,:focus,:focus-visible){appearance:none;-webkit-appearance:none;background:var(--map-surface)!important;background-image:none!important;color:var(--map-accent)!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent;user-select:none}
.tatouage-vector-map .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button::before{width:auto;height:auto;inset:0;opacity:1;background:none!important;mask:none!important;-webkit-mask:none!important;color:var(--map-accent)}
.tatouage-vector-map .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button:focus:not(:focus-visible){outline:none}
.tatouage-vector-map .maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-button:focus-visible{outline:1px solid var(--map-accent);outline-offset:2px}
.tatouage-vector-map .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{animation:vector-attribution-in .18s ease-out both}
@keyframes vector-attribution-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.tatouage-vector-map .maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{animation:none}}

#studio-map .studio-pin-featured{width:36px;height:36px;border-width:3px;background:var(--map-accent);color:var(--map-bg);box-shadow:0 0 0 5px color-mix(in srgb,var(--map-accent) 20%,transparent)}
.vector-map-static .maplibregl-canvas-container,.vector-map-static canvas{touch-action:pan-y!important;pointer-events:none}

/* Directory popups close gently; map geometry and marker positions stay intact. */
.tatouage-vector-map .maplibregl-popup{transition:opacity .14s ease}
.tatouage-vector-map .maplibregl-popup.studio-popup-closing{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.tatouage-vector-map .maplibregl-popup{transition:none}}
