/* Extracted animation utilities from original inline styles */
@keyframes bigTradeFlash {
    0% { opacity: 0; transform: scale(0.8); }
    50% { opacity: 1; transform: scale(1.2); }
    100% { opacity: 0; transform: scale(1); }
}

/* 闪烁动画 - 用于超大单提醒 */
@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* 滑入动画 */
@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* 滑出动画 */
@keyframes slideOutRight {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(100%);
        opacity: 0;
    }
}

.big-trade-flash {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(255,71,87,0.8), transparent);
    border-radius: 50%;
    animation: bigTradeFlash 1s ease-out;
    pointer-events: none;
}

@keyframes rocketLaunch {
    0% { transform: translateY(0) rotate(0deg); opacity: 1; }
    100% { transform: translateY(-300px) rotate(10deg); opacity: 0; }
}

.rocket-emoji {
    position: absolute;
    font-size: 30px;
    animation: rocketLaunch 2s ease-out forwards;
}

@keyframes buyAlert {
    0%, 100% { transform: scale(1); opacity: 0.8; }
    50% { transform: scale(1.1); opacity: 1; }
}

.buy-alert-active {
    animation: buyAlert 1s ease-in-out infinite;
}

.horse-red {
    color: #ff4757 !important;
    filter: drop-shadow(0 0 10px rgba(255,71,87,0.6));
}

.horse-yellow {
    color: #fbbf24 !important;
    filter: drop-shadow(0 0 10px rgba(251,191,36,0.6));
}
