.od-map { width: 100%; min-height: 320px; border-radius: .5rem; overflow: hidden; position: relative; background: #e9eef2; }
.od-cluster { background: transparent; }
/* One blue palette, darker as the count grows; white ring so circles stay readable when they touch. */
.od-cluster-inner { width: 100%; height: 100%; border-radius: 50%; display: flex; align-items: center; justify-content: center; font: 600 12px/1 system-ui, sans-serif; color: #fff; background: #3b95e8; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.25), 0 0 0 4px rgba(59,149,232,.22); transition: transform .12s; font-variant-numeric: tabular-nums; }
.od-cluster-m .od-cluster-inner { background: #1e78d0; font-size: 13px; }
.od-cluster-l .od-cluster-inner { background: #155ea8; font-size: 13px; }
.od-cluster-xl .od-cluster-inner { background: #0e4680; font-size: 14px; }
.od-cluster:hover .od-cluster-inner { transform: scale(1.08); }
.od-pin { background: transparent; }
.od-pin-dot { display: block; width: 14px; height: 14px; margin: 2px; border-radius: 50%; background: #1e66a8; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.4); }
.od-pin-rapid .od-pin-dot { background: #158078; border-radius: 3px; }
.od-popup { min-width: 180px; font-size: 13px; }
.od-popup img { width: 100%; height: 110px; object-fit: cover; border-radius: 4px; display: block; margin-bottom: 6px; }
.od-popup-title { font-weight: 600; font-size: 14px; display: block; }
.od-popup-facts { opacity: .75; margin-top: 2px; }
.od-map-status { position: absolute; left: 10px; bottom: 10px; z-index: 500; background: rgba(255,255,255,.9); color: #333; font: 12px/1.3 system-ui, sans-serif; padding: .3rem .55rem; border-radius: .35rem; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.od-map-status[hidden] { display: none; }
