.live-page {
  position: fixed;
  inset: 0;
  overflow: hidden;
  background: #0f172a;
}

.live-map {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.name-card {
  position: absolute;
  z-index: 500;
  top: 50%;
  left: 50%;
  width: min(92vw, 360px);
  transform: translate(-50%, -50%);
  background: rgba(255,255,255,.96);
  border-radius: 24px;
  padding: 18px;
  display: grid;
  gap: 12px;
  box-shadow: 0 24px 70px rgba(15,23,42,.28);
}

.hud {
  position: absolute;
  z-index: 450;
  top: 16px;
  left: 16px;
  right: 16px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  pointer-events: none;
}

.hud-card {
  background: rgba(255,255,255,.92);
  border-radius: 18px;
  padding: 10px 12px;
  box-shadow: 0 18px 45px rgba(15,23,42,.18);
  font-weight: 900;
}

#userGreeting {
  display: block;
  margin-bottom: 4px;
}

.controls {
  position: absolute;
  z-index: 500;
  left: 50%;
  bottom: 18px;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  width: min(94vw, 520px);
  justify-content: center;
  background: rgba(255,255,255,.86);
  border-radius: 999px;
  padding: 10px;
  box-shadow: 0 22px 60px rgba(15,23,42,.26);
  backdrop-filter: blur(16px);
}

.location-btn,
.listen-btn,
.talk-btn {
  border: 0;
  border-radius: 999px;
  font-weight: 900;
  min-height: 48px;
  padding: 0 18px;
  white-space: nowrap;
}

.location-btn {
  background: #22c55e;
  color: #fff;
}

.location-btn.is-off {
  background: #ef4444;
}

.listen-btn {
  background: #e2e8f0;
  color: #0f172a;
}

.listen-btn.is-on {
  background: #2563eb;
  color: #fff;
}

.talk-btn {
  background: #111827;
  color: #fff;
}

.talk-btn.is-talking {
  background: #dc2626;
}

.toast {
  position: absolute;
  z-index: 600;
  left: 50%;
  bottom: 92px;
  transform: translateX(-50%);
  max-width: min(90vw, 520px);
  background: rgba(15,23,42,.92);
  color: #fff;
  border-radius: 999px;
  padding: 11px 16px;
  font-size: 13px;
  font-weight: 800;
}

[hidden] {
  display: none !important;
}

@media (max-width: 620px) {
  .controls {
    width: calc(100vw - 18px);
    gap: 6px;
    padding: 8px;
  }

  .location-btn,
  .listen-btn,
  .talk-btn {
    min-height: 44px;
    padding: 0 12px;
    font-size: 13px;
  }
}

.map-pin {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 10px 24px rgba(15,23,42,.28);
}

.map-pin.speaking {
  animation: speakingPulse 1s infinite;
}

@keyframes speakingPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(124,58,237,.55), 0 10px 24px rgba(15,23,42,.28);
  }
  70% {
    box-shadow: 0 0 0 16px rgba(124,58,237,0), 0 10px 24px rgba(15,23,42,.28);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(124,58,237,0), 0 10px 24px rgba(15,23,42,.28);
  }
}

.map-pin {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 3px solid #fff;
  box-shadow: 0 10px 24px rgba(15,23,42,.28);
}

.map-pin.speaking {
  animation: speakingPulse 1s infinite;
}

@keyframes speakingPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(124,58,237,.55), 0 10px 24px rgba(15,23,42,.28);
  }
  70% {
    box-shadow: 0 0 0 16px rgba(124,58,237,0), 0 10px 24px rgba(15,23,42,.28);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(124,58,237,0), 0 10px 24px rgba(15,23,42,.28);
  }
}
