/* Conteneur & carte */
.ca-map-wrap{ position:relative; z-index:1; max-width:1100px; margin:16px auto; padding:0 12px; }
#ca-map{ width:100%; height:70vh; min-height:380px; border-radius:14px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.08); border:1px solid #e5e7eb; }

/* Barre outils */
.ca-map-toolbar{
  position:absolute; top:12px; left:12px; z-index:1000;
  background:rgba(255,255,255,.92); backdrop-filter:blur(6px);
  border:1px solid #e5e7eb; border-radius:10px; padding:8px; display:flex; gap:8px; align-items:center;
  box-shadow:0 8px 20px rgba(0,0,0,.06);
}
.ca-btn{ appearance:none; border:1px solid #e5e7eb; background:#fff; padding:6px 10px; border-radius:8px; font-weight:600; font-size:14px; cursor:pointer; }
.ca-btn[disabled]{ opacity:.6; cursor:not-allowed; }
.ca-msg{ margin-left:4px; color:#111827; font-weight:600; }

/* Légende */
.ca-legend{
  background:rgba(255,255,255,.95); border:1px solid #e5e7eb; border-radius:10px; padding:10px 12px;
  box-shadow:0 8px 20px rgba(0,0,0,.06); min-width:180px; font-size:14px; color:#111827;
}
.ca-leg-title{ font-weight:700; margin-bottom:6px; }
.ca-leg-row{ display:flex; align-items:center; gap:8px; margin:4px 0; }
.ca-leg-dot{ display:inline-block; width:12px; height:12px; border-radius:50%; border:2px solid transparent; }
.ca-s-actif{ background:#22c55e; border-color:#16a34a; }
.ca-s-attente{ background:#f59e0b; border-color:#d97706; }
.ca-s-trouve{ background:#3b82f6; border-color:#2563eb; }
.ca-s-expire{ background:#9ca3af; border-color:#6b7280; }

/* Voyant utilisateur (couleur dynamique) */
.ca-dot{ width:14px; height:14px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 3px rgba(0,0,0,.15); }
.ca-grey{  background:#9ca3af; }
.ca-blue{  background:#3b82f6; }
.ca-yellow{background:#f59e0b; }
.ca-green{ background:#22c55e; }

/* Note si aucun indice */
.ca-map-note{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  background:#fff; border:1px solid #e5e7eb; padding:10px 14px; border-radius:10px; color:#111827;
  box-shadow:0 8px 20px rgba(0,0,0,.06); font-weight:600;
}

/* Mobile */
@media (max-width: 768px){
  #ca-map{ height:62vh; min-height:320px; }
  .ca-map-toolbar{ left:8px; right:8px; gap:6px; }
  .ca-btn{ padding:6px 8px; font-size:13px; }
  .ca-legend{ padding:8px 10px; min-width:160px; }
}
