/* ========================================= */
/* MAP PREMIUM FEATURES                     */
/* ========================================= */
.user-location-pulse {
  width: 20px;
  height: 20px;
  background: var(--accent);
  border-radius: 50%;
  position: relative;
  box-shadow: 0 0 10px var(--accent), 0 0 20px var(--accent);
}
.user-location-pulse::after {
  content: '';
  position: absolute;
  top: -15px;
  left: -15px;
  right: -15px;
  bottom: -15px;
  border-radius: 50%;
  border: 2px solid var(--accent);
  animation: pulse-ring 2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}
@keyframes pulse-ring {
  0% { transform: scale(0.3); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: scale(1.5); opacity: 0; }
}

.barber-map-pin {
  animation: drop-in 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) both;
}
@keyframes drop-in {
  0% { transform: translateY(-50px) scale(0); opacity: 0; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

.map-radar-overlay {
  display: none;
}

@keyframes radar-spin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

.btn-find-me {
  position: absolute;
  bottom: 90px;
  right: 20px;
  z-index: 1000;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--surface-light);
  border: 1px solid var(--border-light);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.btn-find-me:active {
  transform: scale(0.9);
}
.btn-find-me.loading svg {
  animation: radar-spin 1s linear infinite;
}

/* Dashboard route path style */
.route-path {
  stroke-dasharray: 10;
  animation: dash-flow 1s linear infinite;
}
@keyframes dash-flow {
  to {
    stroke-dashoffset: -20;
  }
}

.route-path-animated { stroke-dasharray: 10, 15; animation: dash-flow 1s linear infinite; }
@keyframes dash-flow { to { stroke-dashoffset: -25; } }
