/**
 * Page loader – professional, fully responsive.
 * Scales and adjusts on all screens (mobile, tablet, desktop, notched devices).
 */

#page-loader {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, #fff 0%, #f8fafc 50%, #f1f5f9 100%);
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
    transition: opacity 0.25s ease-out, visibility 0.25s ease-out;
}

#page-loader.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

#page-loader .page-loader-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(12px, 3vw, 24px);
}

#page-loader .page-loader-spinner-wrap {
    position: relative;
    width: clamp(44px, 12vmin, 64px);
    height: clamp(44px, 12vmin, 64px);
}

#page-loader .page-loader-spinner {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid #e2e8f0;
    border-top-color: var(--accent-blue, #a05360);
    border-right-color: var(--accent-purple, #5A8FA0);
    animation: page-loader-spin 0.8s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}

#page-loader .page-loader-spinner::after {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--accent-orange, #B44446);
    animation: page-loader-spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite reverse;
}

#page-loader .page-loader-text {
    font-family: system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    font-size: clamp(12px, 2.5vw, 14px);
    font-weight: 500;
    color: var(--text-light, #64748b);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

#page-loader .page-loader-bar {
    width: clamp(80px, 40vw, 160px);
    height: 3px;
    background: #e2e8f0;
    border-radius: 3px;
    overflow: hidden;
}

#page-loader .page-loader-bar span {
    display: block;
    height: 100%;
    width: 40%;
    background: linear-gradient(90deg, var(--accent-blue, #a05360), var(--accent-purple, #5A8FA0));
    border-radius: 3px;
    animation: page-loader-bar 1.2s ease-in-out infinite;
}

@keyframes page-loader-spin {
    to { transform: rotate(360deg); }
}

@keyframes page-loader-bar {
    0%, 100% { transform: translateX(-100%); }
    50% { transform: translateX(250%); }
}
