#doton-public .partner-map { min-width:0; }
#doton-public .map-viewport { position:relative; height:390px; overflow:hidden; touch-action:pan-y; cursor:grab; background:var(--map-water); }
#doton-public .map-viewport:active { cursor:grabbing; }
#doton-public .map-viewport.map-touch-active { touch-action:none; }
#doton-public .map-base-layer { position:absolute; inset:0; z-index:0; width:100%; height:100%; pointer-events:none; background:#f2eee6; }
#doton-public .map-base-layer.leaflet-container { touch-action:inherit; font-family:inherit; }
#doton-public .map-base-layer img.leaflet-tile { max-width:none!important; max-height:none!important; }
#doton-public .map-viewport-credit { position:absolute; right:0; bottom:0; z-index:3; max-width:calc(100% - 8px); padding:2px 6px; background:#fffffff0; color:#534730; font-size:9px; line-height:1.5; text-decoration:underline; text-underline-offset:2px; white-space:normal; overflow-wrap:anywhere; cursor:pointer; touch-action:manipulation; }
#doton-public .map-tile-feedback { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 12px; background:#fff8ec; border-top:1px solid var(--line); color:#705127; font-size:11px; line-height:1.5; }
#doton-public .map-tile-feedback[hidden] { display:none; }
#doton-public .map-tile-feedback button { min-width:44px; min-height:44px; border:1px solid var(--line); border-radius:9px; background:var(--surface); padding:7px 10px; font-size:12px; }
#doton-public .map-attribution { min-height:24px; line-height:1.5; overflow-wrap:anywhere; }
#doton-public .map-attribution a[data-map-tile-attribution] { display:inline-block; font-size:10px; }
#doton-public .map-center-dot { position:absolute; transform:translate(-50%,-50%); width:10px; height:10px; border:2px solid white; border-radius:50%; background:#c18d35; pointer-events:none; }
#doton-public .map-viewport:focus-visible { outline:3px solid #916322; outline-offset:-4px; }
#doton-public .partner-map .map-viewport .map-canvas { width:100%; height:100%; min-height:0; max-height:none; user-select:none; pointer-events:none; }
#doton-public .directory-layout>.partner-map { top:calc(var(--public-header-height,88px) + env(safe-area-inset-top,0px) + 16px); }
#doton-public .directory-layout>.partner-map.map-selection-open { position:relative; top:auto; }
#doton-public .map-marker-layer { position:absolute; inset:0; z-index:2; overflow:hidden; pointer-events:none; }
#doton-public button.map-marker { position:absolute; transform:translate(-50%,-50%); width:46px; height:46px; min-width:46px; min-height:46px; padding:0; border:0; border-radius:50%; display:grid; place-items:center; pointer-events:auto; color:#fffaf4; cursor:pointer; background:transparent; touch-action:pan-y; }
#doton-public .map-marker-visual { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; border:2px solid #fffdf8; background:#865a26; box-shadow:0 2px 6px #43290945; font-size:15px; line-height:1; }
#doton-public .map-marker[data-map-cluster-count] .map-marker-visual { width:41px; height:41px; background:#8d622a; border:3px solid #fdf5e7; box-shadow:0 0 0 3px #a7773730,0 3px 8px #43290925; font-size:14px; font-weight:650; }
#doton-public .map-marker[data-approximate="true"]:not([data-map-cluster-count]) .map-marker-visual { outline:2px dashed #ac7a3980; outline-offset:3px; }
#doton-public .map-marker:hover .map-marker-visual,#doton-public .map-marker[aria-pressed="true"] .map-marker-visual { background:#513814; box-shadow:0 0 0 5px #c6984b55; }
#doton-public button.map-marker:focus-visible { outline:3px solid #483016; outline-offset:2px; z-index:3; background:#fffdf8a0; }
#doton-public .map-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; padding:10px 12px; border-top:1px solid var(--line); background:var(--surface); }
#doton-public .map-zoom-controls { display:flex; gap:5px; }
#doton-public .map-toolbar button { min-height:44px; min-width:44px; padding:8px 12px; border:1px solid var(--line); border-radius:10px; background:#fffaf4; font-size:12px; line-height:1.3; }
#doton-public .map-zoom-controls button:first-child,#doton-public .map-zoom-controls button:nth-child(2) { font-size:23px; padding:3px 10px; }
#doton-public .map-toolbar button:hover { background:#f1e1cb; }
#doton-public .map-toolbar button:disabled { opacity:.45; cursor:default; }
#doton-public .map-instructions { padding:10px 14px 8px; font-size:11px; line-height:1.55; color:var(--muted); background:var(--surface); }
#doton-public .map-status { padding:0 14px 10px; font-size:11px; line-height:1.5; color:var(--muted); background:var(--surface); }
#doton-public .map-region-context { padding:5px 14px; border-bottom:1px solid var(--line); background:#fff8ed; color:#755127; font-size:12px; font-weight:600; line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#doton-public .partner-map .map-empty { top:180px; z-index:2; pointer-events:none; }
#doton-public .map-selection { padding:14px; background:#fffbf6; border-top:1px solid var(--line); }
#doton-public .map-selection[hidden] { display:none; }
#doton-public .map-selection-heading { display:flex; align-items:center; gap:12px; justify-content:space-between; margin-bottom:9px; }
#doton-public .map-selection-heading h3 { font-size:16px; line-height:1.35; letter-spacing:-.02em; }
#doton-public .map-selection-heading button { flex:none; width:44px; height:44px; border:1px solid var(--line); border-radius:10px; background:var(--surface); font-size:24px; }
#doton-public .map-selection ul { list-style:none; padding:0; margin:0; max-height:300px; overflow-y:auto; overscroll-behavior:auto; }
#doton-public .map-selection li { padding:9px 0; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; }
#doton-public .map-result-select { flex:1; min-width:100px; min-height:44px; text-align:left; padding:3px 0; border:0; background:none; }
#doton-public .map-result-select strong { display:block; font-weight:600; font-size:13px; line-height:1.4; overflow-wrap:anywhere; }
#doton-public .map-result-select small { display:block; font-size:11px; color:var(--muted); margin-top:3px; }
#doton-public .map-result-select:disabled { cursor:default; }
#doton-public .map-result-profile { display:inline-flex; align-items:center; min-height:44px; font-size:12px; color:#82571f; text-decoration:underline; text-underline-offset:3px; }
#doton-public .map-position-note { display:block; flex-basis:100%; color:var(--muted); font-size:10px; line-height:1.4; }
#doton-public .map-compact .map-viewport { height:120px; }
#doton-public .map-compact .map-region-context { padding:4px 10px; font-size:11px; }
#doton-public .map-compact .map-toolbar { padding:8px; gap:5px; }
#doton-public .map-compact .map-toolbar button { padding-inline:9px; }
#doton-public .map-compact .map-instructions { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
#doton-public .map-compact .map-toolbar { flex-wrap:nowrap; }
#doton-public .map-compact .map-toolbar>button:last-child { display:none; }
#doton-public .map-compact .map-toolbar button { min-width:44px; padding-inline:5px; font-size:10px; }
#doton-public .map-compact .map-toolbar .map-zoom-controls button:nth-child(-n+2) { font-size:21px; }
#doton-public .map-compact .map-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
#doton-public .map-compact .map-attribution { padding:4px 8px; }
#doton-public .map-compact .map-attribution a[data-map-tile-attribution] { font-size:9px; }
#doton-public .map-compact .map-selection { padding:10px; }
@media(max-width:900px){#doton-public .directory-layout>.partner-map { position:static; }}
@media(max-width:680px){#doton-public .map-viewport { height:340px; } #doton-public .directory-layout>.partner-map { width:100%; } #doton-public .map-heading { font-size:12px; padding:13px; } #doton-public .map-selection ul { max-height:280px; } #doton-public .map-toolbar { padding:10px; } #doton-public .map-compact .map-viewport { height:120px; }}
@media(prefers-reduced-motion:reduce){#doton-public .map-marker { transition:none; }}
