/* Subtle status halo; transforms never affect the card layout. */
#clientHome .garage-status.ok .garage-dot,
#clientHome .garage-status.warn .garage-dot { position: relative; }
#clientHome .garage-status.ok .garage-dot { --status-pulse-color: #30c96a; }
#clientHome .garage-status.warn .garage-dot { --status-pulse-color: #ff5969; }
#clientHome .garage-status.ok .garage-dot::after,
#clientHome .garage-status.warn .garage-dot::after {
  content: "";
  position: absolute;
  inset: -3px;
  border: 1px solid var(--status-pulse-color);
  border-radius: 50%;
  pointer-events: none;
  animation: garage-status-halo 2.8s ease-out infinite;
}
@keyframes garage-status-halo {
  0% { transform: scale(.85); opacity: 0; }
  20% { opacity: .35; }
  80%, 100% { transform: scale(1.55); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #clientHome .garage-status .garage-dot::after { content: none; animation: none !important; }
}
