.leaflet-popup {
    margin-bottom: 48px;
}

.leaflet-tile {
    outline: 1px solid transparent;
    border: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.leaflet-popup-tip-container {
    display: none;
}

.leaflet-popup-content-wrapper {
    border-radius: var(--sl-border-radius-x-large);
    padding: 0;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15);
    overflow: hidden;
}

.leaflet-popup-content {
    margin: 0;
    width: 240px !important;
}

@media (min-width: 701px) and (max-width: 1000px) {
    .leaflet-popup-content {
        width: 300px !important;
    }
}

.leaflet-control-container {
    position: absolute;
    right: 56px;
}

.map-bottom-panel {
    display: none;
}

@media (max-width: 700px) {
    .map-bottom-panel {
        display: flex;
        justify-content: center;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1001;
    }

    .bottom-panel {
        display: flex;
        flex-direction: row;
        height: 140px;
        width: 100%;
        max-width: 400px;
        margin-bottom: 16px;
        background: white;
        border-radius: var(--sl-border-radius-x-large);
        box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.15);
        overflow: hidden;
    }

    .bottom-panel-image {
        width: 35%;
        flex-shrink: 0;
        overflow: hidden;
        position: relative;
    }

    .bottom-panel-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .bottom-panel-content {
        width: 65%;
        padding: 12px;
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .bottom-panel-content .place-title {
        width: 100%;
        font-size: var(--sl-font-size-medium);
        font-weight: var(--sl-font-weight-semibold);
    }

    .bottom-panel-content .place-title>span {
        font-size: var(--sl-font-size-small);
        font-weight: var(--sl-font-weight-semibold);
        color: var(--sl-color-neutral-1000);
    }

    .bottom-panel-content .place-title>div {
        font-size: var(--sl-font-size-x-small);
        white-space: nowrap;
    }

    .bottom-panel-content .place-description {
        font-size: var(--sl-font-size-x-small);
    }

    .bottom-panel-content .star-icon {
        font-size: var(--sl-font-size-x-small);
    }

    .bottom-panel-content sl-button {
        margin-top: auto;
    }

    .bottom-panel-content sl-button::part(base) {
        font-size: var(--sl-font-size-x-small);
        padding: 6px 8px;
    }

    .bottom-panel-close {
        position: absolute;
        top: 12px;
        left: 12px;
        background: rgba(255, 255, 255, 0.9);
        color: var(--sl-color-neutral-1000);
        border-radius: var(--sl-border-radius-circle);
        border-color: var(--sl-color-neutral-100);
        font-size: 12px;
        padding: 8px;
    }

    .bottom-panel-close::part(base) {
        padding: 4px;
    }
}