html,
body {
    color: #333;
    background: #e3e3e3;
    font-family: Tahoma, Geneva, sans-serif;
    font-size: 13px;
    padding: 0;
    margin: 0;
    height: 100%;
    max-height: 100%;
    max-width: 100%;
    overflow: hidden;
}

/* 
 * Légende haut de carte
 */
.legend-badge {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 4px;
}

/* 
 * Carte
 */
#map {
    width: 100%;
    min-height: 600px;
}

/* 
 * Contenu de la carte
 */
.leaflet-popup-content {
    --font-size: 1rem;
    max-width: 360px;
    font-size: var(--font-size);
}
.leaflet-popup-content table {
    --bs-table-color: #737373;
    font-size: calc(var(--font-size) * 0.85);
}

/* 
 * Selecteur de type de carte 
 */
.leaflet-control-layers-base label {
    --size: 60px;
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 1.25rem;
    color:gray;
    height: var(--size);
    padding-left: calc(var(--size) * 1.1);
    padding-right: .75rem;
    background-repeat: no-repeat;
    background-size: contain;
}
.leaflet-control-layers-base label:hover,
.leaflet-control-layers-base label:has(input:checked) {
    color: unset;
    background-color: lightgray;
}
.leaflet-control-layers-base label:has(input:checked) {
    font-weight: 600;
}
.leaflet-control-layers-base label+label {
    margin-top: .5rem;
}
.leaflet-control-layers-base label input {
    display: none;
}
.leaflet-control-layers-base label:first-child {
    background-image: url(data:image/jpeg;base64,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);
}
.leaflet-control-layers-base label:last-child {
    background-image: url(data:image/jpeg;base64,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);
}

/* 
 * Bouton de recentrage
 */
a.leaflet-control-custom {
    display: flex;
    align-items: center;
    justify-content: center;
}
a.leaflet-control-custom span {
    aspect-ratio: 1;
    width: 20px;
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-6"><path d="M6 3a3 3 0 0 0-3 3v1.5a.75.75 0 0 0 1.5 0V6A1.5 1.5 0 0 1 6 4.5h1.5a.75.75 0 0 0 0-1.5H6ZM16.5 3a.75.75 0 0 0 0 1.5H18A1.5 1.5 0 0 1 19.5 6v1.5a.75.75 0 0 0 1.5 0V6a3 3 0 0 0-3-3h-1.5ZM12 8.25a3.75 3.75 0 1 0 0 7.5 3.75 3.75 0 0 0 0-7.5ZM4.5 16.5a.75.75 0 0 0-1.5 0V18a3 3 0 0 0 3 3h1.5a.75.75 0 0 0 0-1.5H6A1.5 1.5 0 0 1 4.5 18v-1.5ZM21 16.5a.75.75 0 0 0-1.5 0V18a1.5 1.5 0 0 1-1.5 1.5h-1.5a.75.75 0 0 0 0 1.5H18a3 3 0 0 0 3-3v-1.5Z" /></svg>');
    background-repeat: no-repeat;
    background-size: contain;
}

/* 
 * Popup optimisé mobile
 */
@media (max-width: 768px) {
    .leaflet-popup-content {
        --font-size: 1.25rem;
        max-width: calc(100vw - 60px);
        margin: 15px 20px;
    }

    .leaflet-popup-content-wrapper {
        border-radius: 8px;
        box-shadow: 0 2px 15px rgba(0, 0, 0, 0.3);
    }
}