/**
 * SPA Transitions - Styles pour navigation fluide avec HTMX
 */

/* Barre de chargement en haut de page */
.page-loader {
    position: fixed;
    top: 60px; /* Sous la navbar */
    left: 0;
    right: 0;
    height: 3px;
    background: transparent;
    z-index: 1100;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

/* Afficher le loader pendant les requêtes HTMX */
.htmx-request .page-loader,
.htmx-request.page-loader {
    opacity: 1;
}

/* Animation de la barre de chargement */
.loader-bar {
    height: 100%;
    width: 30%;
    background: linear-gradient(90deg, var(--secondary-color), var(--nav-gradient-start));
    border-radius: 0 2px 2px 0;
    animation: loading 1s ease-in-out infinite;
}

@keyframes loading {
    0% {
        transform: translateX(-100%);
        width: 30%;
    }
    50% {
        width: 50%;
    }
    100% {
        transform: translateX(400%);
        width: 30%;
    }
}

/* Transitions de contenu */
#main-content {
    transition: opacity 0.15s ease-out;
}

/* Effet pendant le swap (contenu sortant) */
#main-content.htmx-swapping {
    opacity: 0.4;
}

/* Effet après le swap (contenu entrant) */
#main-content.htmx-settling {
    opacity: 1;
}

/* Désactiver les transitions pour les utilisateurs qui préfèrent les mouvements réduits */
@media (prefers-reduced-motion: reduce) {
    .page-loader,
    #main-content {
        transition: none;
    }

    .loader-bar {
        animation: none;
        width: 100%;
    }
}
