.olm-map-shell {
    --uon-map-text: #1a1f36;
    --uon-map-secondary: #697386;
    --uon-map-border: #e3e8ee;
    --uon-map-border-strong: #cdd5df;
    --uon-map-surface: #ffffff;
    --uon-map-subtle: #f7f8fa;
    --uon-map-accent: #635bff;
    width: 100%;
    color: var(--uon-map-text);
}
.olm-map {
    width: 100%;
    min-height: 200px;
    overflow: hidden;
    border: 1px solid var(--uon-map-border);
    border-radius: 10px;
    background: var(--uon-map-subtle);
    z-index: 0;
}
.olm-map .leaflet-control-attribution { font-size: 10px; }
.olm-map .leaflet-popup-content-wrapper {
    border: 1px solid var(--uon-map-border);
    border-radius: 8px;
    box-shadow: 0 8px 24px rgba(50, 50, 93, .12);
}
.olm-map .leaflet-popup-content {
    margin: 14px 16px;
    min-width: 180px;
    font-family: inherit;
}
.olm-popup-title { display: block; margin-bottom: 4px; font-size: 14px; line-height: 20px; font-weight: 650; }
.olm-popup-address { margin-bottom: 10px; color: var(--uon-map-secondary); font-size: 12px; line-height: 18px; }
.olm-popup-link { display: inline-flex; align-items: center; color: var(--uon-map-accent); font-size: 12px; line-height: 18px; font-weight: 600; text-decoration: none; }
.olm-popup-link:hover { text-decoration: underline; }
.olm-popup-group { margin: -1px 0 5px; color: var(--uon-map-secondary); font-size: 11px; line-height: 16px; font-weight: 600; }
.olm-popup-distance { margin: -2px 0 8px; color: var(--uon-map-text); font-size: 12px; line-height: 18px; font-weight: 600; }
.olm-empty-map { padding: 24px; border: 1px dashed var(--uon-map-border-strong); border-radius: 8px; background: var(--uon-map-surface); color: var(--uon-map-secondary); text-align: center; }

.olm-nearest-panel {
    margin: 0 0 12px;
    overflow: hidden;
    border: 1px solid var(--uon-map-border);
    border-radius: 10px;
    background: var(--uon-map-surface);
    box-shadow: 0 1px 2px rgba(50, 50, 93, .04);
}
.olm-nearest-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; border-bottom: 1px solid var(--uon-map-border); }
.olm-nearest-head > div { min-width: 0; }
.olm-nearest-head strong { display: block; margin-bottom: 1px; font-size: 13px; line-height: 18px; font-weight: 650; }
.olm-nearest-status { display: block; color: var(--uon-map-secondary); font-size: 11px; line-height: 16px; }
.olm-nearest-retry { flex: 0 0 auto; min-height: 30px; padding: 0 10px; border: 1px solid var(--uon-map-border-strong); border-radius: 6px; background: #fff; color: var(--uon-map-text); font: inherit; font-size: 12px; line-height: 28px; font-weight: 600; cursor: pointer; }
.olm-nearest-retry:hover { background: var(--uon-map-subtle); }
.olm-nearest-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 12px; }
.olm-nearest-list:empty { display: none; }
.olm-nearest-item { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 11px; border: 1px solid var(--uon-map-border); border-radius: 7px; background: #fff; color: var(--uon-map-text); font: inherit; text-align: left; cursor: pointer; transition: border-color .14s ease, background .14s ease, box-shadow .14s ease; }
.olm-nearest-item:hover { border-color: var(--uon-map-border-strong); background: var(--uon-map-subtle); }
.olm-nearest-item:focus-visible { outline: 0; border-color: var(--uon-map-accent); box-shadow: 0 0 0 3px rgba(99,91,255,.16); }
.olm-nearest-item-main { min-width: 0; }
.olm-nearest-item-main strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 18px; font-weight: 650; }
.olm-nearest-item-main small { display: block; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--uon-map-secondary); font-size: 11px; line-height: 16px; }
.olm-nearest-distance { flex: 0 0 auto; color: var(--uon-map-text); font-size: 11px; line-height: 16px; font-weight: 700; white-space: nowrap; }

@media (max-width: 900px) {
    .olm-nearest-list { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .olm-nearest-head { align-items: flex-start; }
    .olm-nearest-list { padding: 8px; }
}

/* WON / УОН marker clustering */
.olm-map .olm-cluster-div-icon {
    width: 58px !important;
    height: 58px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
.olm-cluster-marker {
    position: relative;
    width: 58px;
    height: 58px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    cursor: pointer;
    user-select: none;
}
.olm-cluster-visual {
    position: relative;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.olm-cluster-visual.is-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 3px 7px rgba(50, 50, 93, .22));
}
.olm-cluster-visual.is-neutral {
    width: 44px;
    height: 44px;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--uon-map-accent);
    color: #fff;
    box-shadow: 0 4px 12px rgba(50, 50, 93, .24);
}
.olm-cluster-visual.is-neutral svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
}
.olm-cluster-count {
    position: absolute;
    top: 0;
    right: -2px;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    border: 2px solid #fff;
    border-radius: 999px;
    background: #1a1f36;
    color: #fff;
    box-shadow: 0 2px 7px rgba(50, 50, 93, .22);
    font-family: inherit;
    font-size: 11px;
    line-height: 20px;
    font-weight: 700;
    white-space: nowrap;
}
.olm-map .marker-cluster-spider-leg {
    stroke: #697386;
    stroke-width: 1.5;
    stroke-opacity: .55;
}
