body { font-family: 'Inter', sans-serif; }
.font-mono { font-family: 'JetBrains Mono', monospace; }
.map-tiles { filter: brightness(0.85) contrast(1.1); }

.cluster-marker {
  background-color: #2563eb;
  color: #ffffff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Inter', sans-serif; font-weight: 600; font-size: 12px;
  border: 2px solid #1e3a8a;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transition: background-color 0.2s ease;
  aspect-ratio: 1 / 1;
}
.cluster-marker:hover { background-color: #1d4ed8; cursor: pointer; }

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #3f3f46; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #52525b; }

#drawer { 
  transition: transform 0.3s ease-in-out; 
  pointer-events: auto;
}
.drawer-closed { 
  transform: translateX(100%); 
  pointer-events: none; 
}

@keyframes fade-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
.pulse { animation: fade-pulse 1s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

/* --- CUSTOM TOOLTIP FIX --- */
.leaflet-tooltip.custom-map-tooltip {
  background-color: #18181b !important; 
  color: #f4f4f5 !important;
  border: 1px solid #3f3f46 !important; 
  border-radius: 6px !important;
  padding: 6px 10px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5) !important; 
  text-align: center !important;
  white-space: nowrap !important; 
}

.leaflet-tooltip-top.custom-map-tooltip::before {
  border-top-color: #18181b !important;
  border-width: 6px !important;
  margin-bottom: -1px; 
}
.leaflet-tooltip-bottom.custom-map-tooltip::before {
  border-bottom-color: #18181b !important;
  border-width: 6px !important;
  margin-top: -1px;
}
.leaflet-tooltip-left.custom-map-tooltip::before {
  border-left-color: #18181b !important;
  border-width: 6px !important;
  margin-left: -1px;
}
.leaflet-tooltip-right.custom-map-tooltip::before {
  border-right-color: #18181b !important;
  border-width: 6px !important;
  margin-right: -1px;
}

/* --- ANIMATED SPREAD DOTS --- */
.spread-dot {
  width: 100%; height: 100%;
  background-color: #3b82f6;
  border: 2px solid #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(59,130,246,0.8);
  cursor: pointer;
}