.app-loading { position: fixed; z-index: 1050; display: grid; place-items: center; pointer-events: none; background: rgba(245,247,251,.42); }
.app-loading[hidden] { display: none; }
.app-loading-card { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 18px 22px; background: rgba(255,255,255,.96); border: 1px solid #e5eaf2; border-radius: 12px; box-shadow: 0 5px 24px #17203312; color: #697386; }
.app-loading-spinner { width: 30px; height: 30px; border: 3px solid #e1e9f8; border-top-color: #4077f3; border-radius: 50%; animation: app-loading-spin .75s linear infinite; }
.app-loading-label { font: 12px/1.4 system-ui, sans-serif; }
#main-content[data-initial-loading] > [data-page-root] { visibility: hidden; }
@keyframes app-loading-spin { to { transform: rotate(360deg); } }
@media(prefers-reduced-motion: reduce) { .app-loading-spinner { animation-duration: 1.8s; } }
