/* fritzlab.net page-specific styles. Theme atoms (tokens, card, btn,
 * form, footer, wordmark) live in /theme.css and are shared cross-origin
 * with profiles.fritzlab.net and (via @import in branding_custom_css)
 * sso.fritzlab.net. */
@import url('/theme.css');

/* ─── error banner (fritzlab.net status notice) ─────────── */
.banner {
  background: var(--error-bg);
  color: var(--error-fg);
  border-bottom: 1px solid var(--error-border);
  padding: 10px 20px;
  font-size: 13px;
  text-align: center;
  flex-shrink: 0;
  letter-spacing: -0.005em;
}
.banner[hidden] { display: none; }
.banner .dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--error-fg);
  margin-right: 8px;
  vertical-align: middle;
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 0.4; }
  50%      { opacity: 1; }
}
.banner code {
  font-family: var(--font-mono);
  font-size: 12px;
  background: rgba(252, 165, 165, 0.08);
  padding: 1px 6px;
  border-radius: 4px;
}
