﻿:root {
    --app-accent: #0d6efd;
}
/* Bootstrap primary */
#app-loading {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,.9);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
}

    #app-loading.hidden {
        display: none;
    }

    #app-loading .loading-box {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .75rem;
        padding: 1rem 1.25rem;
        border-radius: .5rem;
        background: rgba(255,255,255,.95);
        box-shadow: 0 4px 16px rgba(0,0,0,.08);
    }

    #app-loading .spinner {
        width: 36px;
        height: 36px;
        border: 3px solid rgba(0,0,0,.08);
        border-top-color: var(--app-accent);
        border-radius: 50%;
        animation: app-spin 0.8s linear infinite;
    }

    #app-loading .label {
        font-size: .95rem;
        color: #374151;
    }

#app-loading-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--app-accent), #66b2ff);
    transform-origin: left center;
    transform: scaleX(0);
    transition: transform .2s ease-out, opacity .2s ease-out;
    opacity: 0;
    z-index: 2001;
}

@keyframes app-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    #app-loading .spinner {
        animation: none;
    }

    #app-loading-bar {
        transition: none;
    }
}
