.nearby-open,.nearby-button,.nearby-action,.nearby-radius button {
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 18px;
  border:1px solid var(--brand-clay);border-radius:999px;background:transparent;color:var(--brand-clay);
  font:inherit;line-height:1.5;text-decoration:none;cursor:pointer;box-shadow:none;
}
.cafes-v4 .cafe-finder-zone .neighborhood-search { grid-template-columns:48px minmax(0,1fr) auto; }
.nearby-open {grid-column:3;grid-row:1;white-space:nowrap;padding-inline:14px;margin:6px 0;}
.nearby-open>span:first-child {font-family:serif;font-size:1.5rem;}
.nearby-open:hover,.nearby-button:hover,.nearby-action:hover {background:var(--brand-paper);}
.nearby-dialog {box-sizing:border-box;position:fixed;inset:0;width:min(1240px,94vw);max-width:none;height:min(850px,90dvh);max-height:none;margin:auto;padding:0;border:1px solid var(--brand-rule);border-radius:16px;background:var(--brand-surface);color:var(--brand-ink);font-family:var(--camel);overflow:hidden;}
.nearby-dialog::backdrop {background:rgb(24 19 14 / .55);}
.nearby-dialog[open] {display:flex;flex-direction:column;}
.nearby-dialog [hidden] {display:none!important;}
.nearby-dialog :is(button,a,[tabindex]):focus-visible {outline:3px solid var(--brand-clay);outline-offset:3px;}
.nearby-dialog button:disabled {opacity:.55;cursor:wait;}
html.nearby-panel-open {overflow:hidden;}
.nearby-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--brand-rule);flex-shrink:0;}
.nearby-heading h2 {margin:0;font-size:2.2rem;font-weight:400;line-height:1.3;}
.nearby-close {width:44px;height:44px;border:0;background:transparent;color:inherit;cursor:pointer;flex:none;font:2rem/1 sans-serif;}
.nearby-toolbar {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 24px 8px;flex-shrink:0;}
.nearby-controls,.nearby-radius {display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
.nearby-radius {margin:0;padding:0;border:0;}
.nearby-radius button {min-width:74px;border-color:var(--brand-rule);padding:6px 14px;}
.nearby-radius button[aria-pressed="true"] {background:var(--brand-clay);color:var(--brand-action-text);border-color:var(--brand-clay);}
.nearby-button[data-active="true"] {border-color:var(--brand-clay);background:var(--brand-paper);}
.nearby-status {flex-shrink:0;margin:0!important;padding:4px 24px 12px;min-height:28px;font-size:1rem;color:var(--brand-muted);line-height:1.6;}
.nearby-body {display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;min-height:0;flex:1;padding:0 24px;}
.nearby-map-panel {grid-column:2;grid-row:1;position:relative;min-height:0;min-width:0;border:1px solid var(--brand-rule);border-radius:8px;overflow:hidden;background:var(--brand-paper);}
.nearby-map {width:100%;height:100%;min-height:180px;isolation:isolate;background:#e6e1d6;}
.nearby-map .leaflet-control-attribution {font:10px/1.5 sans-serif;direction:ltr;max-width:100%;}
.nearby-map .leaflet-container,.nearby-map .leaflet-popup-content {font-family:var(--camel);}
.nearby-map .leaflet-control-zoom a {color:#252119;background:#fffaf1;}
.nearby-map .leaflet-touch .leaflet-bar a,.nearby-map .leaflet-bar a {width:44px;height:44px;line-height:44px;}
.nearby-map .leaflet-popup-content-wrapper {border-radius:8px;}
.nearby-map .leaflet-popup-content {margin:14px;font-size:1rem;text-align:start;direction:inherit;}
.nearby-map .leaflet-popup-content p {margin:4px 0;}
.nearby-crosshair {pointer-events:none;position:absolute;z-index:450;left:50%;top:50%;width:24px;height:24px;transform:translate(-50%,-50%);border:2px solid #bc482e;border-radius:50%;box-shadow:0 0 0 2px white;}
.nearby-crosshair::before,.nearby-crosshair::after {content:"";position:absolute;background:#bc482e;box-shadow:0 0 1px white;}
.nearby-crosshair::before {width:34px;height:2px;top:9px;left:-7px;}
.nearby-crosshair::after {height:34px;width:2px;left:9px;top:-7px;}
.nearby-map-error {position:absolute;z-index:500;inset:auto 12px 32px;margin:0;padding:10px 14px;background:var(--brand-surface);color:var(--brand-ink);border:1px solid var(--brand-rule);border-radius:8px;font-size:.9rem;}
.nearby-results-panel {grid-column:1;grid-row:1;overflow:auto;min-width:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--brand-rule) transparent;}
.nearby-results {list-style:none;margin:0;padding:0;}
.nearby-result {border-bottom:1px solid var(--brand-rule);padding:16px 12px;border-inline-start:3px solid transparent;}
.nearby-result:first-child {border-top:1px solid var(--brand-rule);}
.nearby-result[data-selected="true"] {background:var(--brand-paper);border-inline-start-color:var(--brand-clay);}
.nearby-select {display:block;width:100%;border:0;padding:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer;}
.nearby-result-head {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:12px;}
.nearby-name {font-size:1.5rem;line-height:1.4;font-weight:400;}
.nearby-rating {display:contents;}
.nearby-score {color:var(--brand-clay);font-size:1.5rem;direction:ltr;white-space:nowrap;}
.nearby-rating-note {display:block;grid-column:1/-1;text-align:end;font-size:.85rem;line-height:1.65;color:var(--brand-muted);margin-block:2px 4px;}
.leaflet-popup-content .nearby-rating {display:block;}
.leaflet-popup-content .nearby-score {display:block;}
.leaflet-popup-content .nearby-rating-note {text-align:start;}
.nearby-unvisited {color:var(--brand-muted);font-size:.95rem;white-space:nowrap;}
.nearby-branch,.nearby-address,.nearby-distance {display:block;font-size:1rem;line-height:1.65;color:var(--brand-muted);}
.nearby-address {font-size:.85rem;overflow-wrap:anywhere;margin-block:2px;}
.nearby-result-actions {display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.nearby-action {min-height:44px;padding:5px 14px;font-size:.9rem;border-radius:10px;}
.nearby-empty {padding:24px 12px;margin:0;color:var(--brand-muted);}
.nearby-footer {flex-shrink:0;padding:12px 24px 16px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--brand-rule);margin-top:16px;}
.nearby-footer p {margin:0!important;color:var(--brand-muted);font-size:.9rem;}
.nearby-footer a {color:var(--brand-clay);font-size:.9rem;min-height:44px;display:inline-flex;align-items:center;}
.nearby-pin {background:transparent;border:0;}
.nearby-pin-label {display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:40px;height:40px;border:2px solid #fff8ef;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:#bc482e;color:#fff8ef;box-shadow:0 2px 5px #0003;}
.nearby-pin-label>span {transform:rotate(45deg);font-family:var(--camel);font-size:13px;}
.nearby-pin[data-visited="false"] .nearby-pin-label {background:#fff8ef;color:#bc482e;border-color:#bc482e;}
.nearby-pin[data-visited="false"] .nearby-pin-label {width:32px;height:32px;}
.nearby-pin[data-selected="true"] .nearby-pin-label {box-shadow:0 0 0 3px #252119,0 2px 5px #0003;}
.nearby-pin:focus-visible {outline:3px solid #252119;outline-offset:5px;border-radius:50%;}
.nearby-cluster-label {display:flex;align-items:center;justify-content:center;flex-direction:column;box-sizing:border-box;width:48px;height:48px;border-radius:50%;border:2px solid #bc482e;background:#fff8ef;color:#9f351f;box-shadow:0 2px 5px #0003;font:16px/1.1 var(--camel);}
.nearby-cluster-label b {font-weight:400;}
.nearby-cluster-label small {font-size:10px;}
.nearby-cluster:focus-visible {outline:3px solid #252119;outline-offset:3px;border-radius:50%;}
@media(max-width:760px){
 .nearby-dialog {width:100%;height:100dvh;border:0;border-radius:0;}
 .nearby-heading {padding:calc(10px + env(safe-area-inset-top)) 16px 10px;}
 .nearby-heading h2 {font-size:1.9rem;}
 .nearby-toolbar {padding:10px 16px 6px;gap:8px;}
 .nearby-controls {gap:6px;}
 .nearby-button {padding:7px 12px;font-size:.95rem;}
 .nearby-radius {width:100%;justify-content:space-between;}
 .nearby-radius button {flex:1;}
 .nearby-status {padding:4px 16px 8px;min-height:24px;font-size:.9rem;}
 .nearby-body {grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(160px,.85fr) minmax(0,1fr);gap:10px;padding:0 12px;}
 .nearby-map-panel {grid-column:1;grid-row:1;}
 .nearby-results-panel {grid-column:1;grid-row:2;}
 .nearby-footer {padding:8px 16px calc(8px + env(safe-area-inset-bottom));margin-top:8px;}
 .nearby-footer p {font-size:.8rem;}
 .nearby-footer a {min-height:28px;font-size:.8rem;}
 .nearby-result {padding:12px 8px;}
 .nearby-name {font-size:1.3rem;}
 .nearby-address {font-size:.8rem;}
 .nearby-dialog .nearby-map {min-height:0;}
}
@media(max-width:520px){
 .cafes-v4 .cafe-finder-zone .neighborhood-search {grid-template-columns:48px minmax(0,1fr);}
 .nearby-open {grid-column:1/-1;grid-row:auto;margin:0 0 8px;}
}
@media(prefers-reduced-motion:no-preference){
 .nearby-dialog[open] {animation:nearby-enter .18s ease-out;}
 .nearby-result,.nearby-button,.nearby-radius button {transition:background-color .15s ease,border-color .15s ease;}
 @keyframes nearby-enter {from{opacity:0;translate:0 8px;}to{opacity:1;translate:0 0;}}
}
