    #map {
        width: 100%;
        height: 100%;
        border-radius: 22px;
    }

    .maplibregl-popup {
        max-width: 320px;
        z-index: 20;
    }

    .maplibregl-popup-content {
        padding: 0;
        border-radius: 18px;
        overflow: hidden;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    }

    .maplibregl-popup-close-button {
        font-size: 22px;
        line-height: 22px;
        padding: 8px 10px;
        color: #374151;
        background: transparent;
        border: none;
    }

    .map-marker {
        width: 16px;
        height: 16px;
        border-radius: 50%;
        border: 3px solid white;
        box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.15);
        cursor: pointer;
    }

    .map-object-popup-mini .maplibregl-popup-content {
        padding: 12px 14px;
        border-radius: 16px;
    }

    .map-object-popup .maplibregl-popup-content {
        border-radius: 18px;
    }
    /* ===== FULL CLICK POPUP — MAPLIBRE VERSION ===== */

    .map-object-popup .maplibregl-popup-content {
        margin: 0 !important;
        width: 252px !important;
        max-width: 252px !important;
        min-width: 252px !important;
        background: #fff !important;
        border-radius: 22px !important;
        box-shadow: 0 22px 48px rgba(15, 23, 42, .18) !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .map-object-popup .maplibregl-popup-close-button {
        top: 8px !important;
        right: 8px !important;
        width: 28px !important;
        height: 28px !important;
        padding: 0 !important;
        border-radius: 999px !important;
        background: rgba(255, 255, 255, .92) !important;
        color: #111827 !important;
        font-size: 16px !important;
        line-height: 28px !important;
        text-align: center !important;
        box-shadow: 0 4px 12px rgba(15, 23, 42, .12) !important;
        z-index: 20 !important;
    }

    .map-object-popup .maplibregl-popup-close-button:hover {
        background: #fff !important;
        color: #000 !important;
    }

    .popup-card-airbnb {
        display: block !important;
        background: #fff !important;
    }

    .popup-image-wrap-airbnb {
        width: 100%;
        height: 132px;
        overflow: hidden;
        border: none !important;
        border-radius: 0 !important;
        margin: 0 !important;
        box-shadow: none !important;
        background: #eef2f7;
        position: relative;
    }

    .popup-image-airbnb {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform .25s ease;
    }

    .map-object-popup .maplibregl-popup-content:hover .popup-image-airbnb {
        transform: scale(1.015);
    }

    .popup-body-airbnb {
        padding: 10px 12px 12px;
    }

    .popup-body-airbnb .popup-title-strong {
        margin: 0 0 6px !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        line-height: 1.24 !important;
        color: var(--text, #111827) !important;
        letter-spacing: -0.01em;
    }

    .popup-meta-airbnb {
        display: grid !important;
        gap: 3px !important;
        margin: 0 !important;
    }

    .popup-meta-airbnb .meta-icon {
        display: flex !important;
        align-items: flex-start !important;
        gap: 6px !important;
        font-size: 11px !important;
        line-height: 1.28 !important;
        color: var(--muted, #6b7280) !important;
    }

    .popup-meta-airbnb .bi {
        color: var(--primary-dark, #2563eb) !important;
        flex: 0 0 auto !important;
        margin-top: 1px;
    }

    .popup-desc-airbnb {
        margin: 5px 0 0 !important;
        font-size: 11px !important;
        line-height: 1.32 !important;
        color: var(--muted, #6b7280) !important;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .popup-body-airbnb .popup-link {
        display: inline-flex !important;
        align-items: center !important;
        gap: 5px !important;
        margin-top: 6px !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        color: var(--primary, #2563eb) !important;
        text-decoration: none !important;
    }

    .popup-body-airbnb .popup-link:hover {
        text-decoration: underline !important;
    }

    /* ===== HOVER MINI POPUP — MAPLIBRE VERSION ===== */

    .map-object-popup-mini .maplibregl-popup-content {
        margin: 0 !important;
        width: 188px !important;
        max-width: 188px !important;
        min-width: 188px !important;
        background: #fff !important;
        border-radius: 16px !important;
        box-shadow: 0 16px 34px rgba(15, 23, 42, .14) !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    .popup-card-hover-clean {
        display: block !important;
        background: #fff !important;
    }

    .popup-card-hover-clean .popup-body-mini,
    .popup-card-hover-clean {
        padding: 9px 10px !important;
    }

    .popup-card-hover-clean .popup-title-mini {
        margin: 0 0 6px !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.22 !important;
        color: var(--text, #111827) !important;
        letter-spacing: -0.01em;
    }

    .popup-card-hover-clean .popup-meta-mini {
        display: grid !important;
        gap: 5px !important;
        margin: 0 !important;
    }

    .popup-card-hover-clean .meta-icon {
        display: flex !important;
        align-items: flex-start !important;
        gap: 6px !important;
        font-size: 11px !important;
        line-height: 1.25 !important;
        color: var(--muted, #6b7280) !important;
    }

    .popup-card-hover-clean .meta-icon .bi {
        color: var(--primary-dark, #2563eb) !important;
        flex: 0 0 auto !important;
        margin-top: 1px;
    }

    .map-object-popup-mini .popup-image-wrap,
    .map-object-popup-mini .popup-image-wrap-airbnb,
    .map-object-popup-mini .popup-image,
    .map-object-popup-mini .popup-image-airbnb,
    .map-object-popup-mini .popup-desc,
    .map-object-popup-mini .popup-link {
        display: none !important;
    }

    @media (max-width: 760px) {
        .map-object-popup .maplibregl-popup-content {
            width: min(236px, calc(100vw - 44px)) !important;
            max-width: calc(100vw - 44px) !important;
            min-width: auto !important;
        }

        .popup-image-wrap-airbnb {
            height: 118px;
        }

        .popup-body-airbnb {
            padding: 9px 10px 10px;
        }

        .popup-body-airbnb .popup-title-strong {
            font-size: 14px !important;
            line-height: 1.22 !important;
        }

        .popup-meta-airbnb .meta-icon {
            font-size: 10px !important;
            gap: 5px !important;
        }

        .popup-desc-airbnb {
            font-size: 10px !important;
            line-height: 1.28 !important;
            -webkit-line-clamp: 2;
        }

        .popup-body-airbnb .popup-link {
            font-size: 11px !important;
            margin-top: 5px !important;
        }

        .map-object-popup .maplibregl-popup-close-button {
            top: 6px !important;
            right: 6px !important;
            width: 26px !important;
            height: 26px !important;
            line-height: 26px !important;
            font-size: 15px !important;
        }

        .map-object-popup-mini .maplibregl-popup-content {
            width: 208px !important;
            max-width: 208px !important;
            min-width: 208px !important;
        }

        .popup-card-hover-clean .popup-title-mini {
            font-size: 14px !important;
        }

        .popup-card-hover-clean .meta-icon {
            font-size: 12px !important;
        }
    }
.map-object-popup .maplibregl-popup-tip,
.map-object-popup-mini .maplibregl-popup-tip {
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
    border: 10px solid transparent !important;
    box-shadow: none !important;
}

/* popup сверху маркера, хвост смотрит вниз */
.map-object-popup.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,
.map-object-popup-mini.maplibregl-popup-anchor-bottom .maplibregl-popup-tip {
    border-top-color: #fff !important;
    border-bottom: 0 !important;
    margin-top: -1px !important;
}

/* popup снизу маркера, хвост смотрит вверх */
.map-object-popup.maplibregl-popup-anchor-top .maplibregl-popup-tip,
.map-object-popup-mini.maplibregl-popup-anchor-top .maplibregl-popup-tip {
    border-bottom-color: #fff !important;
    border-top: 0 !important;
    margin-bottom: -1px !important;
}

/* popup слева от маркера, хвост смотрит вправо */
.map-object-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip,
.map-object-popup-mini.maplibregl-popup-anchor-right .maplibregl-popup-tip {
    border-left-color: #fff !important;
    border-right: 0 !important;
    margin-left: -1px !important;
}

/* popup справа от маркера, хвост смотрит влево */
.map-object-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip,
.map-object-popup-mini.maplibregl-popup-anchor-left .maplibregl-popup-tip {
    border-right-color: #fff !important;
    border-left: 0 !important;
    margin-right: -1px !important;
}
/* ===== USER LOCATION POPUP ===== */

.user-location-popup .maplibregl-popup-content {
    padding: 8px 12px !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: #111827 !important;
    font-size: 13px !important;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
    width: auto !important;
    min-width: unset !important;
    max-width: max-content !important;
    box-shadow: 0 8px 20px rgba(0,0,0,0.15) !important;
}

/* хвост */
.user-location-popup .maplibregl-popup-tip {
    border-top-color: #111827 !important;
    border-bottom-color: #111827 !important;
    border-left-color: #111827 !important;
    border-right-color: #111827 !important;
}

/* скрываем крестик */
.user-location-popup .maplibregl-popup-close-button {
    display: none !important;
}
/* ===== USER LOCATION POPUP TIP ===== */

.user-location-popup .maplibregl-popup-tip {
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
    border: 8px solid transparent !important;
}

/* popup над маркером */
.user-location-popup.maplibregl-popup-anchor-bottom .maplibregl-popup-tip {
    border-top-color: #fff !important;
    border-bottom: 0 !important;
}

/* popup под маркером */
.user-location-popup.maplibregl-popup-anchor-top .maplibregl-popup-tip {
    border-bottom-color: #fff !important;
    border-top: 0 !important;
}

/* слева */
.user-location-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip {
    border-left-color: #fff !important;
    border-right: 0 !important;
}

/* справа */
.user-location-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip {
    border-right-color: #fff !important;
    border-left: 0 !important;
}