.page-loading-overlay { display: none; }
.page-loading .page-loading-overlay { position: fixed; inset: 0; z-index: 2147483647; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: #f8fafc; color: #64748b; font: 600 13px system-ui, sans-serif; opacity: 1; transition: opacity 160ms ease; }
.page-loading-leaving .page-loading-overlay { opacity: 0; pointer-events: none; }
.page-loading-spinner { width: 32px; height: 32px; box-sizing: border-box; border: 3px solid #e0e7ff; border-top-color: #6366f1; border-radius: 50%; animation: page-loading-spin .65s linear infinite; }
@keyframes page-loading-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .page-loading-spinner { animation: none; }
  .page-loading .page-loading-overlay { transition: none; }
}
