/* map.css - separated from style.css */

.map-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}

.map-layers{display:flex;gap:6px;flex-wrap:wrap}

.map-layer{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid var(--border);background:var(--glass);color:var(--text2);cursor:pointer;transition:all .15s;user-select:none}

.map-layer-dot{width:8px;height:8px;border-radius:50%}

#leaflet-map {
  height: calc(100vh - 280px);
  min-height: 500px;
  border: 1px solid var(--border);
  border-radius: 16px;
  overflow: hidden;
  z-index: 1;
}

/* Sélecteur id+classe : le CSS Leaflet (chargé en lazy APRÈS ce fichier) pose
   .leaflet-container{background:#ddd} — il faut le battre en spécificité.
   Couleur = océan des tuiles satellite, assombri comme le filtre .lmap-tiles
   → la carte se fond dans le conteneur sans bord visible. */
#leaflet-map.leaflet-container { background: #112b4a; }

body[data-theme="light"] #leaflet-map.leaflet-container { background: #153760; }

/* mini-cartes/instances Leaflet hors carte tactique (si réintroduites un jour) */
.leaflet-container { background: #0a1428; }

.leaflet-control-zoom a {
  background: rgba(10,18,35,0.92) !important;
  border-color: var(--border) !important;
  color: var(--blue3) !important;
  backdrop-filter: blur(8px);
}

.leaflet-control-zoom a:hover { background: rgba(29,78,216,0.3) !important; }

body[data-theme="light"] .leaflet-control-zoom a { background: rgba(255,255,255,0.92) !important; }

.lmap-popup-wrap .leaflet-popup-content-wrapper {
  background: rgba(10,18,35,0.98);
  border: 1px solid var(--border2);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.5);
  padding: 0; color: var(--text);
}

body[data-theme="light"] .lmap-popup-wrap .leaflet-popup-content-wrapper { background: rgba(255,255,255,0.98); }

.lmap-popup-wrap .leaflet-popup-content { margin: 0; }

.lmap-popup-wrap .leaflet-popup-tip-container { display: none; }

.lmap-popup-wrap .leaflet-popup-close-button { color: var(--text3) !important; top: 6px !important; right: 8px !important; }

.lmap-popup { padding: 12px 14px; font-size: 12px; }

.lmap-popup-title { font-weight: 700; margin-bottom: 4px; color: var(--text); padding-right: 16px; }

.lmap-popup-sub { font-size: 11px; color: var(--text3); margin-bottom: 6px; }

.lmap-popup-desc { font-size: 11px; color: var(--text2); margin-bottom: 8px; line-height: 1.4; }

.lmap-popup-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

.lmap-pin { transition: transform .15s; }

.lmap-pin:hover { transform: scale(1.2); }

.lmap-pin-pulse { animation: lmappulse 2s ease infinite; }

.map-marker-modal, #zone-picker-modal { z-index: 1000; }

.map-marker-modal{position:fixed;inset:0;z-index:600;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.6);backdrop-filter:blur(6px)}

.map-marker-box{background:rgba(10,18,35,0.98);border:1px solid var(--border2);border-radius:16px;padding:22px;width:440px;max-width:95vw}

body[data-theme="light"] .map-marker-box{background:rgba(255,255,255,0.98)}

.map-group-legend{position:absolute;top:12px;right:12px;z-index:1000;background:rgba(8,14,28,0.95);border:1px solid var(--border2);border-radius:10px;box-shadow:0 8px 26px rgba(0,0,0,.55);backdrop-filter:blur(18px);min-width:200px;max-width:260px;max-height:calc(100% - 24px);overflow:hidden;display:flex;flex-direction:column;font-size:12px;color:var(--text)}

.lmap-cluster{border:2px solid;border-radius:50%;color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.5);backdrop-filter:blur(2px)}

.map-float-toolbar{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:1000;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;max-width:calc(100% - 24px);background:rgba(8,14,28,.95);border:1px solid var(--border2);border-radius:12px;padding:8px 12px;box-shadow:0 8px 26px rgba(0,0,0,.55);backdrop-filter:blur(14px);font-size:12px;color:var(--text2)}
body[data-theme="light"] .map-float-toolbar{background:rgba(255,255,255,.95)}
.map-type-menu{z-index:1200;background:rgba(8,14,28,.97);border:1px solid var(--border2);border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 26px rgba(0,0,0,.55)}
body[data-theme="light"] .map-type-menu{background:rgba(255,255,255,.97)}
.map-type-menu button{display:flex;align-items:center;gap:8px;padding:8px 12px;background:none;border:none;color:var(--text);font-size:12px;border-radius:7px;cursor:pointer;text-align:left}
.map-type-menu button:hover{background:rgba(59,130,246,.15)}

.map-vertex-handle{background:#fff;border:2px solid #3b82f6;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.5);cursor:grab}
.map-vertex-mid{background:rgba(255,255,255,.55);border:1.5px dashed #3b82f6;border-radius:50%;cursor:copy}

/* — habillage table d'opérations — */
.lmap-tiles img{filter:brightness(.88) saturate(.82) contrast(1.06)}
body[data-theme="light"] .lmap-tiles img{filter:none}
#leaflet-map{position:relative}
#leaflet-map::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:450;box-shadow:inset 0 0 140px 30px rgba(2,6,18,.55);border-radius:16px}
body[data-theme="light"] #leaflet-map::after{box-shadow:inset 0 0 90px 20px rgba(30,45,80,.22)}

.map-coords-badge{position:absolute;left:12px;bottom:12px;z-index:1000;background:rgba(8,14,28,.9);border:1px solid var(--border2);border-radius:8px;padding:4px 10px;font-size:11px;color:var(--text2);pointer-events:none;font-variant-numeric:tabular-nums;display:none}
body[data-theme="light"] .map-coords-badge{background:rgba(255,255,255,.9)}

@media (max-width:768px){
  .map-layer{padding:10px 14px;font-size:12px}
  .map-float-toolbar .btn{min-height:42px}
  .leaflet-control-zoom a{width:38px !important;height:38px !important;line-height:38px !important}
}
