/* Custom Engine Animations & Transitions */
.anim-spin { animation: spin 0.8s linear infinite; }
.anim-pulse { animation: pulse-green 2s infinite; }
.anim-fade-in-up { animation: fade-in-up 0.4s cubic-bezier(0.16, 1, 0.3, 1); }
.anim-toast-enter { animation: toast-enter 0.4s cubic-bezier(0.16, 1, 0.3, 1); }

/* Подсветка новых грузов */
.flash-highlight { animation: highlight-flash 1.5s ease-out; }

.rotate-180 { transform: rotate(180deg) !important; }
.translate-y-2 { transform: translateY(-2px) !important; }

@keyframes spin { 100% { transform: rotate(360deg); } }
@keyframes pulse-green { 
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(52, 199, 89, 0.7); } 
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(52, 199, 89, 0); } 
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(52, 199, 89, 0); } 
}
@keyframes fade-in-up { 
    0% { opacity: 0; transform: translateY(10px); } 
    100% { opacity: 1; transform: translateY(0); } 
}
@keyframes toast-enter { 
    0% { opacity: 0; transform: translateY(20px) scale(0.9); } 
    100% { opacity: 1; transform: translateY(0) scale(1); } 
}
@keyframes highlight-flash { 
    0% { background-color: rgba(52, 199, 89, 0.2); } 
    100% { background-color: var(--bg-secondary); } 
}

/* GPU Accelerated Slide Engine */
.slide-transition {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
    will-change: transform, opacity;
}
.slide-enter { transform: translateX(var(--slide-enter)); opacity: 0; }
.slide-center { transform: translateX(0); opacity: 1; }
.slide-leave { transform: translateX(var(--slide-leave)); opacity: 0; }
.absolute-tab { position: absolute !important; top: 0; left: 0; width: 100%; z-index: 1; }
