        #map {
            background-color: #ffffff;
        }

        .leaflet-top.leaflet-left {
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            gap: 0;
            top: max(50px, env(safe-area-inset-top, 0px));
        }

        .leaflet-top .leaflet-control {
            margin-top: 0;
        }

        html, body, #map {
            height: 100%;
            width: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
        .col9{
			height: 100%!important;
		}
		.col3{
			height: 100%;
			overflow: auto;
		}
        .info {
            padding: 6px 8px;
            font: 14px/16px Arial, Helvetica, sans-serif;
            background-color:#f8f8f8 !important;
            color: #444444 !important;
            box-shadow: 0 0 15px rgba(0,0,0,0.2);
            border-radius: 5px;
        }
        .info h2 {
            margin: 0 0 5px;
        }
        .leaflet-container {
            background: #fff;
            padding-right: 10px;
        }
        .leaflet-popup-scrolled {
            border-bottom: unset!important;
            border-top: unset!important;
        }
        .leaflet-popup-content{
            max-height: 70vh;
            max-width: 90vw;
            padding: 14px 16px;
        }
        .leaflet-popup-content.media{
            width: auto!important;
            height: auto!important;
            overflow: auto;
        }
        .leaflet-popup-content:has(.sydeva-popup-layout--with-media) {
            width: min(88vw, 920px) !important;
            min-width: 640px !important;
            max-width: 90vw !important;
        }
        .leaflet-popup-content:has(.sydeva-popup-layout--text-only) {
            width: min(70vw, 480px) !important;
            min-width: 320px !important;
        }
        .leaflet-popup-content th {
            text-align: left;
            vertical-align: top;
            min-width: 75px;
        }
        .leaflet-popup-content td {
            min-width: 75px;
        }
        .leaflet-popup-content td img {
            max-height: 60vh;
            max-width: 60vw;
        }
        .sydeva-popup-layout {
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 22px;
            width: 100%;
        }
        .sydeva-popup-layout--with-media {
            width: 100%;
            min-width: 600px;
            max-width: min(88vw, 900px);
        }
        .sydeva-popup-layout--text-only {
            width: 100%;
            max-width: min(70vw, 460px);
        }
        .sydeva-popup-text-col {
            flex: 1 1 55%;
            min-width: 260px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-self: center;
        }
        .sydeva-popup-media-col {
            flex: 0 0 38%;
            min-width: 220px;
            max-width: 360px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 10px;
            align-self: center;
        }
        .sydeva-popup-title {
            font-weight: 700;
            font-size: 15px;
            line-height: 1.35;
            margin: 0 0 10px 0;
            color: #0f2b5c;
        }
        .sydeva-popup-text {
            padding: 0;
            line-height: 1.55;
            font-size: 13px;
        }
        .sydeva-popup-text p {
            margin: 0 0 12px 0;
        }
        .sydeva-popup-text p:last-child {
            margin-bottom: 0;
        }
        .sydeva-popup-photo img {
            display: block;
            width: 100%;
            height: auto;
            max-height: 55vh;
            max-width: 100%;
            object-fit: cover;
            border-radius: 4px;
        }
        .leaflet-tooltip {
            background: none;
            box-shadow: none;
            border: none;
        }
        .leaflet-tooltip-left:before, .leaflet-tooltip-right:before {
            border: 0px;
        }
        .fa, .leaflet-container, a {
            color: #444444 !important;
        }
        .leaflet-control-zoom-in, .leaflet-control-zoom-out,
        .leaflet-control-locate a,
        .leaflet-touch .leaflet-control-geocoder-icon,
        .leaflet-control-search .search-button,
         .leaflet-control-measure {
            background-color: #f8f8f8 !important;
            border-radius: 0px !important;
            color: #444444 !important;
        }
        .abstract {
            font: bold 18px 'Lucida Console', Monaco, monospace;
            text-indent: 1px;
            background-color: #f8f8f8 !important;
            width: 30px !important;
            color: #444444 !important;
            height: 30px !important;
            text-align: center !important;
            line-height: 30px !important;
        }
        .abstractUncollapsed {
            padding: 6px 8px;
            font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
            background-color:#f8f8f8 !important;
            color: #444444 !important;
            box-shadow: 0 0 15px rgba(0,0,0,0.2);
            border-radius: 5px;
            max-width: 40%;
        }
        .leaflet-control {
            box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4)!important;
            border-radius: 4px;
        }
        .leaflet-touch .leaflet-control-layers,
        .leaflet-touch .leaflet-bar,
        .leaflet-control-search,
        .leaflet-control-measure {
            border: 3px solid rgba(255,255,255,.4) !important;
        }
        .leaflet-control-attribution a {
            color: #0078A8 !important;
        }
        .leaflet-control-scale-line {
            border: 2px solid #f8f8f8 !important;
            border-top: none !important;
            color: black !important;
        }
        .leaflet-control-search .search-button {
            width: 30px !important;
            height: 30px !important;
            font-size: 13px !important;
            text-align: center !important;
            cursor: pointer;
        }
        .search-button.fa.fa-binoculars{
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .leaflet-control-measure .leaflet-control {
            width: 30px !important;
            height: 30px !important;
        }
        .leaflet-container .leaflet-control-search{
            background: none !important;
        }
        .leaflet-control-search .search-input {
            margin: 0px 0px 0px 0px !important;
            height: 30px !important;
        }
        .leaflet-control-measure {
            background: none!important;
            border-radius: 4px !important;
        }
        .leaflet-control-measure .leaflet-control-measure-interaction {
            background-color: #f8f8f8 !important;
        }
        .leaflet-touch .leaflet-control-measure
        .leaflet-control-measure-toggle,
        .leaflet-touch .leaflet-control-measure
        .leaflet-control-measure-toggle:hover {
            width: 30px !important;
            height: 30px !important;
            border-radius: 0px !important;
            background-color: #f8f8f8 !important;
            color: #444444 !important;
            font-size: 13px;
            line-height: 30px;
            text-align: center;
            text-indent: 0%;
        }
        .leaflet-control-layers,
        .leaflet-control-layers.leaflet-control-layers-expanded.leaflet-control {
            padding: 14px 16px;
            max-width: 290px;
            width: 290px;
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            background-color: #f8f8f8 !important;
            color: #444444 !important;
            box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4) !important;
            border-radius: 0 !important;
            border: 1px solid rgba(255, 255, 255, 0.089) !important;
        }
        .leaflet-control-layers-expanded {
            padding: 14px 16px;
        }
        .leaflet-control-layers label {
            display: block;
            font-size: 15px;
            line-height: 1.35;
            padding: 1px 0;
            white-space: normal;
            word-break: break-word;
        }
        .leaflet-control-layers-selector {
            margin-top: 0;
            transform: scale(0.85);
            transform-origin: left center;
        }
  
        .leaflet-overlay-pane {
            z-index: 550;
        }
        .leaflet-popup-pane {
            z-index: 700;
        }
        #gcd-button-control {
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .leaflet-control-layers-base {
            font-size: 14px;
            font-weight: bold;
            color: #142f5f;
            padding: 0.35em;
        }
        .sydeva-top-panel {
            max-width: 290px;
            width: 290px;
            box-sizing: border-box;
            border-radius: 12px;
            box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
            background-color: #f8f8f8;
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, 0.089);
        }
        .sydeva-top-panel .leaflet-control-layers-master {
            padding: 12px 16px 10px 16px;
            width: 100%;
            max-width: 100%;
            box-sizing: border-box;
            background-color: transparent !important;
            color: #142f5f !important;
            box-shadow: none !important;
            border: none !important;
            border-radius: 0 !important;
            border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
            margin-bottom: 0 !important;
            font-size: 14px;
            font-weight: bold;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .sydeva-top-panel .leaflet-control-layers,
        .sydeva-top-panel .leaflet-control-layers.leaflet-control-layers-expanded.leaflet-control {
            width: 100%;
            max-width: 100%;
            box-shadow: none !important;
            border: none !important;
            border-radius: 0 !important;
            margin-top: 0 !important;
        }
        .leaflet-control-layers-master {
            padding: 12px 16px 10px 16px;
            max-width: 290px;
            width: 290px;
            box-sizing: border-box;
            background-color: #f8f8f8 !important;
            color: #142f5f !important;
            box-shadow: none !important;
            border: 1px solid rgba(255, 255, 255, 0.089) !important;
            border-radius: 0;
            border-bottom: none;
            margin-bottom: 0 !important;
            font-size: 14px;
            font-weight: bold;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .sydeva-master-row {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 10px;
            width: 100%;
        }
        .leaflet-control-layers-master label {
            display: flex;
            align-items: center;
            gap: 6px;
            margin: 0;
            cursor: pointer;
        }
        .sydeva-retour-accueil-link {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 5px;
            padding: 5px 10px;
            background-color: #e8bb00;
            color: #0f2b5c !important;
            border-radius: 30px;
            font: 12px/1.3 Arial, Helvetica, sans-serif;
            font-weight: 700;
            text-decoration: none;
            white-space: nowrap;
        }
        .sydeva-retour-accueil-link:hover {
            text-decoration: underline;
            color: #0f2b5c !important;
        }
        .sydeva-retour-accueil-link .retour-accueil-icon {
            height: 1.2em;
            width: auto;
        }
        .leaflet-bottom.leaflet-right {
            bottom: max(10px, env(safe-area-inset-bottom, 0px));
            right: max(10px, env(safe-area-inset-right, 0px));
        }
        .leaflet-bottom.leaflet-right .leaflet-control-zoom {
            margin-bottom: 0 !important;
            margin-right: 0 !important;
        }
        .leaflet-top.leaflet-left .sydeva-top-panel {
            margin-bottom: 0;
            margin-left: 10px !important;
        }
        .sydeva-top-panel .leaflet-control {
            margin-left: 0 !important;
            float: none !important;
            clear: none !important;
        }
        .leaflet-top.leaflet-left .sydeva-disclaimer,
        body.sydeva-mobile-layout .leaflet-bottom.leaflet-left .sydeva-disclaimer {
            margin-left: 10px !important;
        }
        .sydeva-disclaimer {
            max-width: 290px;
            width: 290px;
            box-sizing: border-box;
            padding: 10px 14px;
            font: 11px/1.35 Arial, Helvetica, sans-serif;
            color: #444444;
            background-color: #f8f8f8;
            border-radius: 12px;
            box-shadow: 0 3px 14px rgba(0, 0, 0, 0.2);
            border: 1px solid rgba(255, 255, 255, 0.089);
        }
        body.sydeva-mobile-layout .leaflet-bottom.leaflet-left .sydeva-disclaimer {
            margin-top: 0;
        }
        body:not(.sydeva-mobile-layout) .leaflet-top.leaflet-left .sydeva-disclaimer {
            margin-top: 8px;
        }
        .sydeva-disclaimer strong {
            color: #142f5f;
        }

        /* ── Tablette ── */
        @media (max-width: 900px) {
            .sydeva-top-panel,
            .leaflet-control-layers-master,
            .leaflet-control-layers,
            .leaflet-control-layers.leaflet-control-layers-expanded.leaflet-control,
            .sydeva-disclaimer {
                width: min(290px, calc(100vw - 12px));
                max-width: min(290px, calc(100vw - 12px));
            }

            .leaflet-popup-content:has(.sydeva-popup-layout--with-media) {
                min-width: unset !important;
                width: min(92vw, 520px) !important;
            }

            .sydeva-popup-layout--with-media {
                flex-direction: column;
                align-items: stretch;
                min-width: unset;
                max-width: min(92vw, 520px);
            }

            .sydeva-popup-text-col,
            .sydeva-popup-media-col {
                flex: 1 1 auto;
                min-width: unset;
                max-width: 100%;
                width: 100%;
            }
        }

        /* ── Smartphone ── */
        @media (max-width: 640px) {
            .leaflet-top.leaflet-left {
                top: max(50px, env(safe-area-inset-top, 0px));
                left: max(6px, env(safe-area-inset-left, 0px));
                gap: 0;
                max-width: calc(100vw - 12px);
            }

            body.sydeva-mobile-layout .leaflet-bottom.leaflet-left {
                bottom: max(6px, env(safe-area-inset-bottom, 0px));
                left: max(6px, env(safe-area-inset-left, 0px));
                display: flex;
                flex-direction: column;
                align-items: flex-start;
                gap: 0;
                max-width: calc(100vw - 12px);
                z-index: 1000;
            }

            .leaflet-container {
                padding-right: 0;
                box-sizing: border-box;
            }

            .leaflet-control-layers-master,
            .leaflet-control-layers,
            .leaflet-control-layers.leaflet-control-layers-expanded.leaflet-control,
            .sydeva-disclaimer {
                width: calc(100vw - 12px);
                max-width: calc(100vw - 12px);
            }

            .sydeva-top-panel {
                width: calc(100vw - 12px);
                max-width: calc(100vw - 12px);
            }

            .sydeva-top-panel .leaflet-control-layers-master {
                padding: 10px 12px 8px;
                font-size: 12px;
            }

            .sydeva-top-panel .leaflet-control-layers {
                max-height: 38vh;
                overflow-y: auto;
                -webkit-overflow-scrolling: touch;
                overscroll-behavior: contain;
                padding: 10px 12px;
            }

            .sydeva-master-row {
                gap: 8px;
            }

            .sydeva-retour-accueil-link {
                width: 100%;
                box-sizing: border-box;
                font-size: 11px;
                padding: 8px 12px;
            }

            .leaflet-control-layers-master label {
                font-size: 12px;
                width: 100%;
                justify-content: center;
            }

            .leaflet-control-layers label {
                font-size: 13px;
                line-height: 1.4;
                padding: 3px 0;
            }

            .leaflet-control-layers-selector {
                transform: scale(1);
                margin-right: 4px;
            }

            body.sydeva-mobile-layout .leaflet-bottom.leaflet-left .sydeva-disclaimer {
                padding: 8px 10px;
                font-size: 10px;
                line-height: 1.4;
                border-radius: 12px;
                margin-top: 0;
            }

            .leaflet-top.leaflet-left .sydeva-top-panel {
                margin-left: 10px !important;
            }

            .leaflet-popup-content {
                padding: 10px 12px;
                max-height: 78vh;
            }

            .leaflet-popup-content:has(.sydeva-popup-layout--with-media),
            .leaflet-popup-content:has(.sydeva-popup-layout--text-only) {
                width: calc(100vw - 32px) !important;
                min-width: unset !important;
                max-width: calc(100vw - 32px) !important;
            }

            .sydeva-popup-layout,
            .sydeva-popup-layout--with-media {
                flex-direction: column;
                align-items: stretch;
                gap: 12px;
                min-width: unset;
                max-width: 100%;
            }

            .sydeva-popup-text-col,
            .sydeva-popup-media-col {
                flex: 1 1 auto;
                min-width: unset;
                max-width: 100%;
                width: 100%;
            }

            .sydeva-popup-title {
                font-size: 14px;
                margin-bottom: 8px;
            }

            .sydeva-popup-text {
                font-size: 12px;
                line-height: 1.5;
            }

            .sydeva-popup-photo img {
                max-height: 32vh;
                object-fit: contain;
            }

            .leaflet-popup-close-button {
                font-size: 20px;
                padding: 6px 8px 0 0;
            }

            .leaflet-tooltip-pane {
                display: none;
            }
        }

        @media (max-width: 640px) and (max-height: 700px) {
            .sydeva-top-panel .leaflet-control-layers {
                max-height: 30vh;
            }
        }