/* 
 * Afiliados - Main Styles 
 * Desacoplado del HTML para cumplir con Definition of Done.
 * NOTA: Las clases zombis del diseño anterior han sido purgadas en la refactorización (Fase 2).
 */

/* Las animaciones complejas y estilos custom irán aquí para evitar FOUC */
button, a, input, select, textarea, [role="button"], .cursor-pointer {
    touch-action: manipulation;
}

.course-step {
    transition: opacity 0.4s ease-in-out;
}

/* Evitar parpadeo inicial del onboarding si ya fue completado */
.onboarding-seen #onboardingOverlay {
    display: none !important;
}

/* Ocultar barra de scroll para el contenedor horizontal de categorías */
.scrollbar-none::-webkit-scrollbar {
    display: none;
}
.scrollbar-none {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}



/* Animaciones UI */
.animate-fade-in-up {
    animation: fadeInUp 0.6s ease-out forwards;
    opacity: 0;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Animación para el badge de nivel cuando se hace click en curso bloqueado */
@keyframes qmPulseBadge {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); background-color: rgba(140, 122, 107, 0.3); }
}
.qm-pulse-animate {
    animation: qmPulseBadge 0.5s ease-in-out 2;
}
