.view-loading {
    position: fixed;
    inset: 0;
    z-index: 20000;
    display: grid;
    place-items: center;
    padding: 24px;
    background: #f8fafc;
    color: #0f172a;
    font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
}
.view-loading-card { text-align: center; max-width: 380px; }
.view-loading-card h1 { margin: 20px 0 8px; font-size: 18px; font-weight: 600; }
.view-loading-card p { color: #64748b; font-size: 13px; line-height: 1.6; }
.view-loading-spinner {
    display: inline-block;
    width: 34px;
    height: 34px;
    border: 3px solid #e2e8f0;
    border-top-color: #0284c7;
    border-radius: 50%;
    animation: view-loading-spin .8s linear infinite;
}
.view-loading-card button {
    margin-top: 14px;
    padding: 9px 18px;
    border: 1px solid #bae6fd;
    border-radius: 8px;
    background: #f0f9ff;
    color: #0369a1;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
}
.view-loading[hidden], .view-loading-spinner[hidden] { display: none; }
@keyframes view-loading-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .view-loading-spinner { animation: none; }
}
