#blazor-error-ui { display: none; position: fixed; inset: auto 0 0; z-index: 1000; padding: var(--space-md) var(--space-gutter); color: var(--color-on-error-container); background: var(--color-error-container); border-top: 1px solid var(--color-error); }
#blazor-error-ui .dismiss { position: absolute; right: var(--space-md); cursor: pointer; }
.blazor-error-boundary { padding: var(--space-md); color: var(--color-on-error-container); background: var(--color-error-container); border-radius: var(--radius-control); }
.app-loading { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-md); }
.app-loading__mark { width: 6.5rem; height: 6.5rem; overflow: visible; }
.app-loading__ring { fill: none; stroke: var(--color-primary); stroke-width: 1.2; animation: app-loading-breathe 1.8s ease-in-out infinite; }
.app-loading__ring--a { animation-delay: 0s; }
.app-loading__ring--b { animation-delay: .3s; }
.app-loading__word { font-family: var(--font-editorial); font-size: 1.5rem; font-weight: 600; color: var(--color-text-muted); letter-spacing: .02em; opacity: .85; }

@keyframes app-loading-breathe {
  0%, 100% { opacity: .35; transform: scale(.92); }
  50% { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .app-loading__ring { animation: none; opacity: .85; }
}
