/* Live service-status pulse (menu item + site footer). States: checking (grey), ok (green), warn (yellow), bad (red). */
.st-pulse { position: relative; display: inline-grid; place-items: center; width: 12px; height: 12px; flex: none; margin-left: auto; }
.st-pulse i { width: 9px; height: 9px; border-radius: 50%; background: var(--st, var(--ink-3)); position: relative; }
.st-pulse i::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--st, var(--ink-3)); opacity: .55; }
.st-pulse[data-state="ok"] { --st: #1fa463; } .st-pulse[data-state="warn"] { --st: #e3a008; } .st-pulse[data-state="bad"] { --st: #d93025; }
@media (prefers-reduced-motion: no-preference) {
  .st-pulse:not([data-state="checking"]) i::after { animation: st-pulse 1.8s ease-out infinite; }
  .st-pulse[data-state="bad"] i::after { animation-duration: 1.1s; }
}
@keyframes st-pulse { from { transform: scale(1); opacity: .6; } to { transform: scale(2.8); opacity: 0; } }
.st-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
