/* ============================================================================
   ADUAPORTIX ANIMATIONS - Glows, Shimmers & Reveal Effects
   Parte de la Fase 8 de Refactorización.
   ============================================================================ */

/* --- Fade & Slide Effects --- */
@keyframes adxFadeIn {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes adxPriceReveal {
    from { opacity: 0; transform: scale(0.9) translateY(8px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes adx-fade-in-slide {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

.fade-in-slide {
    animation: adx-fade-in-slide 0.35s forwards cubic-bezier(0.4, 0, 0.2, 1);
    opacity: 0;
}

/* --- Live Pill Swipe Effects --- */
@keyframes adx-swipe-in-left {
    from { 
        opacity: 0; 
        transform: translateX(-50px);
        filter: blur(8px);
    }
    to { 
        opacity: 1; 
        transform: translateX(0);
        filter: blur(0);
    }
}

@keyframes adx-swipe-out-down {
    to { 
        opacity: 0; 
        transform: translateY(50px);
        filter: blur(12px);
    }
}

.adx-toast-out {
    animation: adx-swipe-out-down var(--adx-lp-exit, 0.6s) cubic-bezier(0.4, 0, 1, 1) forwards !important;
}

/* --- Shimmer & Skeletons --- */
@keyframes adx-shimmer {
    0% { opacity: 0.3; }
    50% { opacity: 0.6; }
    100% { opacity: 0.3; }
}

.adx-loading-skeleton {
    padding: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    animation: adx-shimmer 1.5s infinite;
}

.adx-skeleton-line {
    height: 10px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
    margin-bottom: 8px;
}
.adx-skeleton-line.short { width: 40%; }
.adx-skeleton-line.mid { width: 70%; }

/* --- Pulses & Glows --- */
@keyframes adx-blue-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.4);
        border-color: rgba(99, 102, 241, 0.5);
    }
    50% {
        box-shadow: 0 0 0 10px rgba(99, 102, 241, 0);
        border-color: rgba(99, 102, 241, 1);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);
        border-color: rgba(99, 102, 241, 0.5);
    }
}

.adx-pulse-blue {
    animation: adx-blue-pulse 1.6s infinite ease-in-out !important;
    background-color: rgba(99, 102, 241, 0.08) !important;
    border-color: rgba(99, 102, 241, 0.7) !important;
}

/* --- Miscellaneous --- */
@keyframes adx-dot-blink {
    0% { opacity: 0.2; }
    100% { opacity: 1; }
}

@keyframes adx-btn-glow {
    from { box-shadow: 0 8px 15px rgba(99, 102, 241, 0.3); transform: scale(1); }
    to { box-shadow: 0 12px 30px rgba(124, 58, 237, 0.5); transform: scale(1.03); }
}

/* --- Transitions --- */
.aduaportix-scope .transition-all {
    transition: var(--ix-transition);
}

/* --- VIN Search Loop --- */
@keyframes adx-search-loop {
    0% { transform: rotate(0deg) translateX(3px) rotate(0deg); }
    100% { transform: rotate(360deg) translateX(3px) rotate(-360deg); }
}

.adx-search-loop-anim {
    animation: adx-search-loop 1s linear infinite !important;
    display: inline-block;
}