/* ── Velvixie Page Transition ─────────────────────────────────────────────── */

/* ── Full-screen loader overlay ─────────────────────────────────────────── */
#_vxLoader {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(248, 248, 255, 0.82);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.18s ease;
    will-change: opacity;
}
#_vxLoader.vx-show {
    opacity: 1;
    pointer-events: all;
}

/* ── Loading card ────────────────────────────────────────────────────────── */
#_vxLoader .vx-card {
    background: #ffffff;
    border-radius: 22px;
    padding: 30px 44px;
    box-shadow:
        0 24px 64px rgba(102, 126, 234, 0.22),
        0 4px 20px rgba(0, 0, 0, 0.07);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    transform: translateY(0);
    animation: _vxCardIn 0.22s ease-out both;
}
@keyframes _vxCardIn {
    from { opacity: 0; transform: translateY(10px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0)   scale(1);    }
}

/* ── Gradient spinner ────────────────────────────────────────────────────── */
#_vxLoader .vx-spinner {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 4px solid rgba(102, 126, 234, 0.15);
    border-top-color: #667eea;
    border-right-color: #9B72E8;
    animation: _vxSpin 0.72s linear infinite;
    will-change: transform;
}
@keyframes _vxSpin {
    to { transform: rotate(360deg); }
}

/* ── Brand text ──────────────────────────────────────────────────────────── */
#_vxLoader .vx-brand {
    font-family: 'Poppins', 'Segoe UI', sans-serif;
    font-size: 1.05rem;
    font-weight: 700;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: 0.3px;
    line-height: 1;
}
#_vxLoader .vx-sub {
    font-family: 'Poppins', 'Segoe UI', sans-serif;
    font-size: 0.73rem;
    color: #a0aec0;
    letter-spacing: 0.5px;
    margin-top: -6px;
}

/* ── Top progress bar ────────────────────────────────────────────────────── */
#_vxBar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000000;
    height: 3px;
    width: 0%;
    background: linear-gradient(90deg, #667eea 0%, #9B72E8 55%, #B8A4FF 100%);
    box-shadow: 0 0 10px rgba(102, 126, 234, 0.7);
    border-radius: 0 3px 3px 0;
    pointer-events: none;
    opacity: 0;
    will-change: width, opacity;
}

/* ── Dark mode ───────────────────────────────────────────────────────────── */
body.dark #_vxLoader {
    background: rgba(12, 12, 22, 0.88);
}
body.dark #_vxLoader .vx-card {
    background: #181828;
    box-shadow:
        0 24px 64px rgba(102, 126, 234, 0.18),
        0 4px 20px rgba(0, 0, 0, 0.4);
}
body.dark #_vxLoader .vx-spinner {
    border-color: rgba(102, 126, 234, 0.12);
    border-top-color: #667eea;
    border-right-color: #9B72E8;
}
