/* ============================================================
   Shared Keyframe Animations
   Extracted from .razor.css files to eliminate duplication.
   These keyframes are global (not scoped by Blazor CSS isolation).
   ============================================================ */

/* Spinner rotation */
@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Skeleton loading shimmer */
@keyframes shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Simple fade in */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Fade in with upward slide */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Toast slide in from right */
@keyframes toastSlideIn {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Toast slide in from top */
@keyframes toastIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Modal pop scale */
@keyframes modalPop {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.9); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

/* Drawer slide in from right */
@keyframes drawerSlideIn {
    to { transform: translateX(0); }
}
