/**
 * Page Loader Component
 * A 4px height, theme-colored progress bar shown at the top of the page during loading
 */

:root {
    --page-loader-transition: 0.3s;
    --page-loader-complete-duration: 0.6s;
}

#page-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background-color: transparent;
    z-index: 9999;
    pointer-events: none;
}

#page-loader-bar {
    height: 100%;
    background: linear-gradient(90deg, var(--admin-primary), var(--admin-accent));
    width: 0%;
    transition: width var(--page-loader-transition) ease-out;
    box-shadow: 0 0 10px var(--primary-outline);
}

/* Loading states */
#page-loader.loading #page-loader-bar {
    animation: page-loader-progress 2s ease-in-out infinite;
}

#page-loader.complete #page-loader-bar {
    width: 100% !important;
    transition: width var(--page-loader-transition) ease-out, opacity var(--page-loader-transition) ease-out var(--page-loader-transition);
    opacity: 0;
}

@keyframes page-loader-progress {
    0% {
        width: 0%;
    }
    50% {
        width: 70%;
    }
    100% {
        width: 90%;
    }
}
