/* Styles hors Tailwind : icônes, animations, carte Leaflet. */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
}
.icon-fill { font-variation-settings: 'FILL' 1; }

@keyframes pulse-ring {
  0% { transform: scale(0.9); opacity: 0.55; }
  70% { transform: scale(2.2); opacity: 0; }
  100% { transform: scale(2.2); opacity: 0; }
}
.animate-pulse-ring { animation: pulse-ring 3s cubic-bezier(0.2, 0.4, 0.3, 1) infinite; }

.scrollbar-none::-webkit-scrollbar { display: none; }
.scrollbar-none { -ms-overflow-style: none; scrollbar-width: none; }

.pb-safe { padding-bottom: env(safe-area-inset-bottom, 0px); }

/* Leaflet : on retire les contrôles natifs, le chrome est celui de Stitch. */
#map { position: absolute; inset: 0; z-index: 0; background: #eef1ed; }
.leaflet-control-container { display: none; }
.leaflet-tile-pane { filter: saturate(0.75) brightness(1.03); }

/* Marqueur sépulture (divIcon) */
.md-marker { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.md-marker__pin {
  width: 28px; height: 28px; border-radius: 9999px;
  background: #ffffff; border: 1px solid #bec9c7;
  display: flex; align-items: center; justify-content: center;
  color: #545f73; box-shadow: 0 1px 2px rgba(15, 23, 42, .12);
}
.md-marker__pin .material-symbols-outlined { font-size: 16px; }
.md-marker__label {
  padding: 2px 8px; border-radius: 9999px; background: rgba(255,255,255,.92);
  border: 1px solid rgba(190,201,199,.6); font-size: 11px; font-weight: 600;
  letter-spacing: .03em; color: #545f73; box-shadow: 0 1px 1px rgba(15,23,42,.06);
}
.md-marker--visited .md-marker__pin { color: #0d5c58; border-color: #8fd3cd; }
.md-marker--selected .md-marker__pin {
  width: 36px; height: 36px; background: #0d5c58; color: #fff;
  border: 2px solid #fff; box-shadow: 0 4px 10px rgba(13,92,88,.35);
}
.md-marker--selected .md-marker__pin .material-symbols-outlined { font-size: 20px; font-variation-settings: 'FILL' 1; }
.md-marker--selected .md-marker__label { color: #1a1c1d; font-size: 13px; }

/* Position utilisateur */
.md-user { position: relative; width: 20px; height: 20px; }
.md-user__ring { position: absolute; inset: -16px; border-radius: 9999px; background: rgba(59,130,246,.3); }
.md-user__dot {
  position: absolute; inset: 0; border-radius: 9999px; background: #2563eb;
  border: 3px solid #fff; box-shadow: 0 1px 4px rgba(15,23,42,.3);
}
.md-user__cone {
  position: absolute; left: 50%; bottom: 50%; width: 64px; height: 56px;
  transform-origin: bottom center; transform: translateX(-50%) rotate(var(--heading, 0deg));
  background: linear-gradient(to top, rgba(59,130,246,.35), transparent);
  clip-path: polygon(50% 100%, 0 0, 100% 0); pointer-events: none;
}

/* Tiroir : états */
#sheet { transition: transform .28s cubic-bezier(.2,.8,.2,1); }
#sheet.is-hidden { transform: translateY(calc(100% - 0px)); }
#sheet.is-collapsed { transform: translateY(calc(100% - 132px)); }
