/**
 * Map Styles
 */

/* Force le texte normal (évite les majuscules forcées par Drupal) */
#map-container, #map-container *, #sidebar, #sidebar *, .modal, .modal * {
    text-transform: none !important;
}

body,html{margin:0;padding:0;height:100%;width:100%;font-family:Arial,sans-serif;overflow:hidden;max-width:100vw;box-sizing:border-box}
*{box-sizing:border-box}
/* Style pour les UP dans l'autocompl\u00e9tion */
.mapboxgl-ctrl-geocoder--suggestion.is-up{background:linear-gradient(to right,#f0f7ff 0%,#ffffff 100%)!important;border-left:3px solid #002060!important}
.mapboxgl-ctrl-geocoder--suggestion.is-up .mapboxgl-ctrl-geocoder--suggestion-title{color:#002060!important;font-weight:600}#map-container{display:flex;height:85vh!important;width:100%;overflow:hidden;position:relative;transition:height .3s ease-in-out}#sidebar{width:30%;min-width:400px;max-width:450px;background-color:#fff;padding:20px;box-sizing:border-box;display:flex;flex-direction:column;height:100%;transition:width .5s ease-in-out,opacity .5s ease-in-out,transform .5s ease-in-out,min-width .5s ease-in-out;overflow-x:hidden;z-index:15}#map{width:70%;height:100%;transition:width .5s ease-in-out,opacity .5s ease-in-out;opacity:1;z-index:1}.filter-section{margin-bottom:1%}.filter-section h2{margin-bottom:10px;font-size:18px;color:#333}#geocoder-container{display:flex;align-items:center;gap:5px}

/* Container pour recherche et réinitialisation */
.search-and-reset-container{display:flex;align-items:center;gap:0}
.reset-map-inline{padding:8px 13px;background-color:#555;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .3s;white-space:nowrap;flex-shrink:0;margin-left:5px;height:38px}
.reset-map-inline:hover{background-color:#333}

/* Masquer le bouton inline en mode carte plein écran */
#map-container.layout-map-full .reset-map-inline{display:none}

/* Masquer l'ancien bouton réinitialiser en mode liste */
#map-container.layout-sidebar-full #reset-section{display:none}

/* En mode liste, ajuster le h2 */
#map-container.layout-sidebar-full .filter-section h2{margin-bottom:0}

/* Sur petits écrans, mettre le bouton au-dessus */
@media (max-width:600px){
    .search-and-reset-container{flex-direction:column;align-items:stretch}
    .reset-map-inline{width:100%;margin-bottom:8px;margin-left:0;margin-top:8px}
    .container-fluid{padding-left:0px!important;padding-right:0px!important}
}.geolocate-btn{width:34px;height:34px;border:1px solid #ccc;border-radius:4px;cursor:pointer;background-color:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:5px;transition:all 0.2s}
.geolocate-btn:hover{background-color:#f0f0f0;border-color:#999}
.geolocate-btn svg{width:18px;height:18px;fill:#333}.mapboxgl-ctrl-geocoder{margin-left:0!important;min-width:0;flex-grow:1}.mapboxgl-ctrl-geocoder .mapboxgl-ctrl-geocoder--icon{display:none!important}#results-count{font-size:14px;color:#555;margin-top:15px;font-weight:bold}#establishments-view{flex-grow:1;overflow-y:auto;margin-top:5px;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}/* Nouvelle version compacte et moderne des cards */
.establishment-card{background:#fff;margin:0;padding:10px 12px;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.06);cursor:pointer;transition:all .2s ease;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;position:relative;border-left:3px solid #e0e0e0;border:1px solid #f0f0f0;width:100%;box-sizing:border-box}

/* En vue liste plein écran, afficher plusieurs colonnes selon l'espace */
#map-container.layout-sidebar-full .establishment-card{
    width:calc(33.333% - 6px); /* 3 colonnes par défaut */
    max-width:calc(33.333% - 6px);
}

/* Masquer le bouton itinéraire en vue liste plein écran */
#map-container.layout-sidebar-full .card-action-icon.route{
    display:none !important;
}

/* Sur écrans moyens, 2 colonnes */
@media (max-width:1400px){
    #map-container.layout-sidebar-full .establishment-card{
        width:calc(50% - 4px);
        max-width:calc(50% - 4px);
    }
}

/* Sur écrans plus petits, une seule colonne */
@media (max-width:900px){
    #map-container.layout-sidebar-full .establishment-card{
        width:calc(100% - 10px);
        max-width:calc(100% - 10px);
    }
}

/* En vue duale ou normale, toujours une colonne */
#map-container.layout-dual .establishment-card{
    width:100%;
}
.establishment-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.12),0 2px 4px rgba(0,0,0,.08);border-left:3px solid #002060;transform:translateY(-2px);background:#fafbfc}
.establishment-card:active{transform:translateY(0px);box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* Header de la card avec nom et badges */
.card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px}
.establishment-card h3{font-size:14px;font-weight:600;color:#002060;margin:0;line-height:1.3;flex:1}

/* Badges compacts */
.card-badges{display:flex;gap:4px;margin-left:8px;flex-shrink:0}
.distance-badge,.time-badge{padding:2px 6px;border-radius:10px;font-size:10px;font-weight:600;white-space:nowrap}
.distance-badge{background:#e3f2fd;color:#1565c0}
.time-badge{background:#e8f5e9;color:#2e7d32}

/* Adresse */
.card-address{font-size:12px;color:#666;margin-bottom:8px;line-height:1.3}

/* Actions compactes avec icônes */
.card-actions-compact{display:flex;gap:4px;border-top:1px solid #f0f0f0;padding-top:8px;margin-top:8px}
.card-action-icon{flex:1;display:flex;align-items:center;justify-content:center;padding:6px;border-radius:4px;background:#f8f9fa;transition:all .15s;cursor:pointer;border:none;min-height:32px}
.card-action-icon:hover{background:#002060;color:white}
.card-action-icon svg{width:16px;height:16px;fill:currentColor}
.card-action-icon.phone:hover{background:#28a745}
.card-action-icon.route:hover{background:#17a2b8}
.card-action-icon.info:hover{background:#ff9900}
.card-action-icon.view3d:hover{background:#6f42c1}
.card-action-icon.view3d.active{background:#28a745;color:white}
.card-action-icon.page-link{background:#e8f5e9;color:#2e7d32;text-decoration:none}
.card-action-icon.page-link:hover{background:#2e7d32;color:white}

/* Couleurs par type d'activité */
.establishment-card[data-activity="beton"]{border-left-color:#ff9900}
.establishment-card[data-activity="granulat"]{border-left-color:#4682B4}
.establishment-card[data-activity="ciment"]{border-left-color:#228B22}
.establishment-card[data-activity="ciment-prompt"]{border-left-color:#8B4513}
.establishment-card[data-activity="autre"]{border-left-color:#6c757d}

/* État actif/focus pour accessibilité */
.establishment-card:focus-visible{outline:2px solid #002060;outline-offset:2px}
.card-action-icon:focus-visible{outline:2px solid #002060;outline-offset:-2px}#reset-map{width:100%;padding:10px;background-color:#555;color:#fff;border:0;border-radius:4px;cursor:pointer;font-size:16px;transition:background-color .3s}#reset-map:hover{background-color:#333}#loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.8);z-index:17;display:flex;justify-content:center;align-items:center;font-size:20px;color:#333;transition:opacity .5s}/* Popup au clic - design cohérent avec tooltip hover */
.mapboxgl-popup-content{width:max-content;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;padding:18px!important;max-width:320px!important;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,0.12),0 2px 10px rgba(0,0,0,0.08)}.mapboxgl-popup-content h3{color:#002060;margin:0 0 12px 0;font-size:16px;font-weight:600;padding-bottom:8px;border-bottom:2px solid rgba(0,32,96,0.1)}.mapboxgl-popup-content p{margin:0 0 6px 0;line-height:1.5;font-size:13px;color:#4a5568}.mapboxgl-popup-content p strong{color:#2d3748;font-weight:600;display:inline-block;min-width:80px}.mapboxgl-popup-content .popup-actions{display:flex;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,32,96,0.06)}.mapboxgl-popup-content .popup-view-btn{flex:1;padding:8px 14px;background:linear-gradient(135deg,#002060 0%,#003380 100%);color:#fff;border:none;border-radius:6px;cursor:pointer;text-align:center;font-size:12px;font-weight:500;transition:all 0.2s cubic-bezier(0.4,0,0.2,1)}.mapboxgl-popup-content .popup-view-btn:hover{background:linear-gradient(135deg,#003380 0%,#004499 100%);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,32,96,0.2)}

@keyframes tooltipFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}
}#map>div.mapboxgl-control-container>div.mapboxgl-ctrl-bottom-right,#map>div.mapboxgl-control-container>div.mapboxgl-ctrl-bottom-left{display:none}/* Modal moderne */
.modal{display:none;position:fixed;z-index:20;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.6);backdrop-filter:blur(4px);animation:fadeIn 0.3s ease}.modal-content{background:#fff;margin:10vh auto;padding:0;border:none;width:90%;max-width:500px;max-height:80vh;overflow-y:auto;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.2);animation:slideUp 0.3s ease;position:relative}.modal-header{background:linear-gradient(135deg,#002060 0%,#003380 100%);color:white !important;padding:20px 24px;position:relative}.modal-header h3{margin:0;font-size:20px;font-weight:600;padding-right:30px;color:white !important}.close-button{position:absolute;right:20px;top:50%;transform:translateY(-50%);color:white;font-size:24px;font-weight:300;cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all 0.2s;background:rgba(255,255,255,0.1)}.close-button:hover{background:rgba(255,255,255,0.2);transform:translateY(-50%) rotate(90deg)}.modal-body{padding:24px}.modal-info-row{display:flex;padding:12px 0;border-bottom:1px solid #f0f0f0}.modal-info-row:last-child{border-bottom:none}.modal-info-label{font-weight:600;color:#666;min-width:100px;font-size:14px}.modal-info-value{flex:1;color:#333;font-size:14px;line-height:1.4}.modal-info-value a{color:#002060;text-decoration:none;transition:color 0.2s}.modal-info-value a:hover{color:#17a2b8;text-decoration:underline}.activity-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;background:#e3f2fd;color:#1565c0}.modal-footer{padding:16px 24px;background:#f8f9fa;border-top:1px solid #e0e0e0;display:flex;gap:12px}.modal-action-btn{flex:1;padding:10px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center;gap:6px}.modal-action-btn.primary{background:#002060;color:white}.modal-action-btn.primary:hover{background:#003380;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,32,96,0.3)}.modal-action-btn.secondary{background:#e0e0e0;color:#333}.modal-action-btn.secondary:hover{background:#d0d0d0}

/* Animations */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeOut{from{opacity:1}to{opacity:0}}
@keyframes slideUp{from{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes slideDown{from{transform:translateY(0);opacity:1}to{transform:translateY(50px);opacity:0}}

/* Responsive */
@media (max-width:600px){
    .modal-content{width:95%;margin:10% auto}
    .modal-info-row{flex-direction:column;gap:4px}
    .modal-info-label{min-width:unset}
}#map-container.layout-dual #sidebar{width:30%;min-width:400px;opacity:1;transform:translateX(0)}#map-container.layout-dual #map{width:calc(100% - max(30%,400px));opacity:1}#map-container.layout-sidebar-full{height:85vh;width:100%;overflow:hidden}#map-container.layout-sidebar-full #sidebar{width:100%;min-width:unset;max-width:100%;opacity:1;transform:translateX(0);box-sizing:border-box;overflow-x:hidden;overflow-y:auto}#map-container.layout-sidebar-full #map{width:0;opacity:0;pointer-events:none}#map-container.layout-sidebar-full .mode-switcher-container{display:none!important}#map-container.layout-sidebar-full .custom-zoom-controls{display:none!important}#map-container.layout-map-full{height:85vh}#map-container.layout-map-full #sidebar{width:0;min-width:0;opacity:0;transform:translateX(-100%);pointer-events:none;padding:0}#map-container.layout-map-full #map{width:100%;opacity:1}#map-container.layout-map-full .mode-switcher-container{display:none!important}#map-container.layout-map-full .map-legend{transform:scale(0.65);transform-origin:bottom left}#map-container.layout-map-full .map-radius-control{transform:scale(0.65);transform-origin:bottom left}#map-container.layout-map-full .custom-zoom-controls{transform:scale(0.75);transform-origin:top right;top:20px}#map-container.layout-map-full .mapboxgl-popup{transform:scale(0.35);transform-origin:bottom center}#map-container.layout-sidebar-full .mapboxgl-popup{transform:scale(0.35);transform-origin:bottom center}#map-container.layout-map-full .clicked-popup,#map-container.layout-map-full .hover-tooltip{transform:scale(0.35);transform-origin:bottom center}#map-container.layout-sidebar-full .clicked-popup,#map-container.layout-sidebar-full .hover-tooltip{transform:scale(0.35);transform-origin:bottom center}@media (max-width:1383px){#map-container.layout-dual #sidebar{width:400px}#map-container.layout-dual #map{width:calc(100% - 400px)}}@media (max-width:600px){#map-container.layout-sidebar-full #sidebar{width:100%;min-width:unset}}.card-actions{display:flex;gap:10px;margin-top:10px;padding-bottom:5px}.action-btn{flex:1;padding:8px 5px;border-radius:4px;color:#fff!important;text-align:center;text-decoration:none;font-size:14px;transition:transform .2s,background-color .2s}.action-btn:hover{transform:scale(1.05);text-decoration:none}.action-btn.call{background-color:#28a745}.action-btn.call:hover{background-color:#218838}.action-btn.mail{background-color:#007bff}.action-btn.mail:hover{background-color:#0069d9}.action-btn.route{background-color:#17a2b8}.action-btn.route:hover{background-color:#138496}.action-btn:disabled{background-color:#6c757d!important;cursor:not-allowed;transform:none}.action-btn:disabled:hover{transform:none}
.mode-switcher-container{position:absolute;top:20px;left:10px;z-index:7;background:#fff;border-radius:22px;padding:3px;box-shadow:0 2px 10px rgba(0,0,0,0.2)}.mode-switcher{display:flex;background:transparent;border-radius:20px;padding:0}.mode-btn{padding:8px 16px;background:transparent;border:none;border-radius:18px;cursor:pointer;font-size:13px;font-weight:500;color:#6c757d;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;min-width:90px}.mode-btn:hover{background:rgba(0,0,0,0.05);color:#333}.mode-btn.active{background:#002060;color:white;box-shadow:0 1px 3px rgba(0,32,96,0.3);font-weight:600}.mode-btn.active:hover{background:#003380}.mode-btn .mode-icon{font-size:14px}.mode-btn .mode-label{font-size:12px;letter-spacing:0.3px}.mode-interface{transition:opacity 0.3s ease,transform 0.3s ease}#normal-mode-interface .search-container{display:flex;align-items:center;gap:5px;}#normal-geocoder-container{flex:1;display:flex;align-items:center;gap:5px}

/* Légende de la carte */
.map-legend{position:absolute;bottom:30px;left:10px;background:#fff;padding:12px;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.2);z-index:8;font-size:13px}.map-legend h4{margin:0 0 0px 0;font-size:14px;color:#333;font-weight:bold;cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between}.map-legend h4:hover{color:#002060}.map-legend h4::after{content:'\25BC';font-size:10px;transition:transform 0.3s}.map-legend.collapsed h4::after{transform:rotate(-90deg);margin-left: 4px;}.map-legend.collapsed .legend-items{display:none}.legend-item{display:flex;align-items:center;margin:6px 0;cursor:pointer;padding:4px;border-radius:4px;transition:background-color .2s}.legend-item:hover{background-color:#f0f8ff}.legend-item.inactive{opacity:.4}.legend-item.inactive:hover{opacity:.6}.legend-marker{width:30px;height:30px;margin-right:8px;background-size:contain;background-repeat:no-repeat;background-position:center}.legend-marker.beton{background-image:url('https://www.solutions-vicat.fr/sites/default/files/2024-09/point-interet-beton.png')}.legend-marker.granulats{background-image:url('https://www.solutions-vicat.fr/sites/default/files/2024-09/point-interet-granulats.png')}.legend-marker.ciment{background-image:url('https://www.solutions-vicat.fr/sites/default/files/2024-09/point-interet-ciment.png')}.legend-marker.ciment-prompt{background-image:url('https://www.solutions-vicat.fr/sites/default/files/2024-12/ciment-prompt-naturel.png')}

/* Contrôle de rayon sur la carte */
.map-radius-control{position:absolute;bottom:160px;left:10px;background:#fff;padding:12px 15px;border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.2);z-index:7;font-size:13px;display:none;transition:bottom 0.3s ease}.map-radius-control h4{margin:0 0 8px 0;font-size:14px;color:#333;font-weight:bold;cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between}.map-radius-control h4:hover{color:#002060}.map-radius-control h4::after{content:'\25BC';font-size:10px;transition:transform 0.3s;margin-left:4px}.map-radius-control.collapsed h4::after{transform:rotate(-90deg);margin-left:4px}.map-radius-control.collapsed .radius-control-content{display:none}.radius-control-map{display:flex;align-items:center;gap:10px}.radius-control-map label{font-size:13px;color:#333;white-space:nowrap}.radius-control-map input[type="range"]{flex:1;min-width:120px}.radius-control-map span{font-weight:bold;color:#002060;min-width:50px;font-size:13px}

/* Interface d'itinéraire améliorée */
#route-interface-container{margin-top:15px}.route-point-section{border:1px solid #ddd;padding:2px 7px;border-radius:6px;background:#f9f9f9;transition:all .3s ease-in-out}.route-input-group{margin-bottom:12px;display:flex;flex-direction:column;gap:5px}.route-input-group label{display:block;margin-bottom:5px;font-weight:bold;color:#333;font-size:14px}.point-input-container{display:flex;align-items:center;gap:5px}.point-input-container #geocoder-container{flex:1;display:flex;align-items:center;gap:5px;min-width:0}.point-input-container #geocoder-container-b{flex:1;display:flex;align-items:center;gap:5px;min-width:0}.point-input-container input{flex:1;padding:8px;border:1px solid #ccc;border-radius:4px;font-size:14px}.search-btn,.add-point-btn{background:#002060;color:white;border:none;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.search-btn:hover,.add-point-btn:hover{background:#003380}.add-point-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:bold;flex-shrink:0}.route-actions{display:flex;gap:10px;margin-top:15px}.route-action-btn{padding:4px 15px;margin-bottom:5px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.route-action-btn.primary{background:#28a745;color:white}.route-action-btn.primary:hover{background:#218838}.route-action-btn.secondary{background:#6c757d;color:white}.route-action-btn.secondary:hover{background:#545b62}#point-b-section{animation:slideDown .3s ease-in-out}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}#clear-point-a:hover,#clear-point-b:hover{background:rgba(211,47,47,0.2)!important;border-color:rgba(211,47,47,0.5)!important;transform:translateY(-50%) scale(1.1)!important}


/* Animation d'apparition du panneau de routage */
#route-details-panel{animation:slideUpRoute .4s ease-out}@keyframes slideUpRoute{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* Styles pour les options de routage avec molette */
#route-options-container{transition:opacity 0.3s ease, transform 0.3s ease}
#toggle-route-options:hover{background:rgba(255,255,255,0.3)!important;transform:scale(1.1)!important}

/* Animation pour l'overlay d'infos d'itinéraire */
@keyframes slideInFromRight{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}

/* États d'affichage pour masquer/afficher les cartes */
.hide-establishments{display:none !important}.show-establishments{display:block !important}

/* Amélioration des options de routage */
.route-option-group label input[type="radio"]{accent-color:#002060}

.route-mode-active #sidebar{width:40%!important;min-width:500px!important;max-width:600px!important;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-right:3px solid #002060}.route-mode-active #map{width:60%!important;border-left:1px solid #dee2e6}#route-details-panel.route-active{background:linear-gradient(to bottom,#ffffff 0%,#f8f9fa 100%);border:1px solid #e9ecef;border-radius:12px;margin:10px;padding:20px;box-shadow:0 4px 20px rgba(0,32,96,0.1)}#route-summary{background:linear-gradient(135deg,#002060 0%,#003380 100%)!important;box-shadow:0 6px 20px rgba(0,32,96,0.3);border-radius:12px!important;position:relative;overflow:hidden}#route-summary::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#28a745,#ffc107,#dc3545)}.route-segment-fast{stroke:#28a745;stroke-width:6}.route-segment-medium{stroke:#ffc107;stroke-width:6}.route-segment-slow{stroke:#dc3545;stroke-width:6}.route-segment-default{stroke:#007bff;stroke-width:5}.route-line-active{animation:routePulse 2s ease-in-out infinite alternate}@keyframes routePulse{0%{stroke-width:5;opacity:0.8}100%{stroke-width:7;opacity:1}}


.route-action-btn{position:relative;overflow:hidden;font-weight:600;letter-spacing:1px;transition:all 0.3s ease}.route-action-btn::before{content:'';position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,0.2);border-radius:50%;transform:translate(-50%,-50%);transition:width 0.6s,height 0.6s}.route-action-btn:hover::before{width:300px;height:300px}.route-action-btn.primary{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);box-shadow:0 4px 15px rgba(40,167,69,0.3)}.route-action-btn.primary:hover{background:linear-gradient(135deg,#20c997 0%,#17a2b8 100%);transform:translateY(-2px);box-shadow:0 8px 25px rgba(40,167,69,0.4)}

@media (max-width:768px){.route-mode-active #sidebar{width:100%!important;min-width:100%!important}.route-mode-active #map{width:0!important;opacity:0}.route-instruction-item{margin-bottom:6px;padding:10px 12px}}

/* Clustering */
.cluster-marker{background:#555;border:3px solid #fff;border-radius:50%;color:#fff;font-weight:bold;text-align:center;box-shadow:0 2px 6px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;transition:transform .2s}.cluster-marker:hover{transform:scale(1.1)}.cluster-small{width:35px;height:35px;background:#555}.cluster-medium{width:45px;height:45px;background:#333}.cluster-large{width:55px;height:55px;background:#222}



/* Indicateurs de distance */
.distance-badge{display:inline-block;background:#002060;color:#fff;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:bold;margin-left:8px}.time-badge{display:inline-block;background:#28a745;color:#fff;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:bold;margin-left:5px}

/* Contrôles de zoom personnalisés */
.custom-zoom-controls{position:absolute;top:20px;right:20px;z-index:10;display:flex;flex-direction:column;gap:2px}.zoom-btn{width:40px;height:40px;background:#fff;border:1px solid #ccc;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:bold;color:#333;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:all .2s}.zoom-btn:hover{background:#f8f8f8;box-shadow:0 3px 6px rgba(0,0,0,.15)}.zoom-btn:active{transform:scale(0.95);box-shadow:0 1px 2px rgba(0,0,0,.1)}

/* Accessibilité */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus-visible{outline:2px solid #002060;outline-offset:2px}button:focus-visible,a:focus-visible{outline:2px solid #002060;outline-offset:2px}

/* Bouton toggle mobile - toujours visible */
.mobile-toggle-btn{position:fixed;bottom:68px;right:23px;z-index:21;background:#002060;color:#fff;border:none;border-radius:50%;width:56px;height:56px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(0,0,0,.3);cursor:pointer;transition:all .3s}.mobile-toggle-btn:hover{transform:scale(1.1);background:#003380}.mobile-toggle-btn svg{width:24px;height:24px}

/* Bouton de réinitialisation sur la carte */
.map-reset-btn{
    position:absolute;
    top:20px;
    left:10px;
    z-index:10;
    background:#fff;
    color:#002060;
    border:1px solid #ccc;
    border-radius:6px;
    width:40px;
    height:40px;
    display:none;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 4px rgba(0,0,0,.1);
    cursor:pointer;
    transition:all .2s
}
.map-reset-btn:hover{
    background:#002060;
    color:#fff;
    box-shadow:0 3px 6px rgba(0,0,0,.15)
}
.map-reset-btn:active{
    transform:scale(0.95);
    box-shadow:0 1px 2px rgba(0,0,0,.1)
}
.map-reset-btn svg{
    width:18px;
    height:18px;
    fill:currentColor
}

/* Afficher le bouton uniquement en mode carte plein écran */
#map-container.layout-map-full .map-reset-btn{display:flex !important}

/* Mobile responsive amélioré */
@media (max-width:768px){.map-legend{bottom:60px;left:5px;padding:8px;font-size:12px}.legend-item{margin:4px 0}.legend-marker{width:24px;height:24px;margin-right:6px}#map-container.layout-map-full #sidebar{padding:0!important;margin:0!important}}

/* Styles pour le bouton de fermeture des popups */
.mapboxgl-popup-close-button{font-size:20px!important;font-weight:bold!important;color:#666!important;background:transparent!important;border:none!important;cursor:pointer!important;padding:4px 8px!important;position:absolute!important;right:4px!important;top:4px!important;width:28px!important;height:28px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:4px!important;transition:all 0.2s ease!important}.mapboxgl-popup-close-button:hover{background:rgba(0,0,0,0.05)!important;color:#333!important;transform:scale(1.1)!important}.mapboxgl-popup-close-button:active{transform:scale(0.95)!important}

/* Style uniforme pour les popups clicked et hover */
.clicked-popup .mapboxgl-popup-content,.hover-tooltip .mapboxgl-popup-content{opacity:0.98;background:rgba(255,255,255,0.97);backdrop-filter:blur(10px);box-shadow:0 8px 32px rgba(0,0,0,0.08),0 2px 8px rgba(0,0,0,0.06);border:1px solid rgba(0,32,96,0.08);animation:fadeIn 0.15s ease-out;transform-origin:bottom center}.clicked-popup .mapboxgl-popup-tip,.hover-tooltip .mapboxgl-popup-tip{border-top-color:rgba(255,255,255,0.97)}.clicked-popup h3,.hover-tooltip h3{font-size:15px;font-weight:600;color:#002060;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid rgba(0,32,96,0.08)}.clicked-popup p,.hover-tooltip p{font-size:13px;line-height:1.5;color:#4a5568;margin-bottom:6px}.clicked-popup p strong,.hover-tooltip p strong{color:#2d3748;font-weight:600;display:inline-block;min-width:80px}.clicked-popup .popup-actions,.hover-tooltip .popup-actions{margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,32,96,0.06)}.clicked-popup .popup-view-btn,.hover-tooltip .popup-view-btn{background:linear-gradient(135deg,#002060 0%,#003380 100%);border:none;padding:7px 14px;font-size:12px;font-weight:500;letter-spacing:0.3px}.clicked-popup .popup-view-btn:hover,.hover-tooltip .popup-view-btn:hover{background:linear-gradient(135deg,#003380 0%,#004499 100%);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,32,96,0.2)}.hover-tooltip .mapboxgl-popup-close-button,.clicked-popup .mapboxgl-popup-close-button{display:flex!important;opacity:1!important}