.alert-indicator.alarm-on {
  color: #fff8ef;
  background: linear-gradient(135deg, #b42318, #f79009);
  border-color: rgba(255, 255, 255, 0.25);
  box-shadow: 0 0 0 4px rgba(180, 35, 24, 0.15), 0 18px 35px rgba(180, 35, 24, 0.18);
  animation: guardPulse 1.15s ease-in-out infinite;
}

.alert-indicator.alarm-on .dot {
  background: #fff;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.75);
  animation: guardDotPulse 1.1s ease-in-out infinite;
}

.nav-link-with-badge.alarm-on {
  position: relative;
  border-color: rgba(180, 35, 24, 0.28);
  box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.08);
}

.nav-link-with-badge.alarm-on::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 14px;
  border: 1px solid rgba(180, 35, 24, 0.25);
  animation: guardOutline 1.2s ease-in-out infinite;
  pointer-events: none;
}

.nav-badge.alarm-on {
  background: #b42318;
  color: #fff;
  box-shadow: 0 0 0 0 rgba(180, 35, 24, 0.5);
  animation: guardBadgePulse 1.1s ease-in-out infinite;
}

body.alarm-mode .topbar {
  box-shadow: 0 0 0 2px rgba(180, 35, 24, 0.08), 0 12px 30px rgba(180, 35, 24, 0.08);
}

@keyframes guardPulse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px) scale(1.01); }
}

@keyframes guardDotPulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255,255,255,.65); }
  50% { transform: scale(1.25); box-shadow: 0 0 0 8px rgba(255,255,255,0); }
}

@keyframes guardBadgePulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(180, 35, 24, 0.45); }
  50% { transform: scale(1.08); box-shadow: 0 0 0 8px rgba(180, 35, 24, 0); }
}

@keyframes guardOutline {
  0%, 100% { opacity: .35; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.015); }
}
