/* ============================================================
   Animations — All keyframes and reusable motion
   ============================================================ */

@keyframes pulse-working {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.5); }
    50%      { opacity: 0.8; box-shadow: 0 0 0 4px rgba(59, 130, 246, 0); }
}

@keyframes pulse-waiting {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.5); }
    50%      { opacity: 0.6; box-shadow: 0 0 0 4px rgba(255, 193, 7, 0); }
}

@keyframes pulse {
    0%, 100% { opacity: 0.4; }
    50%      { opacity: 1; }
}

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

@keyframes fadeOut {
    from { opacity: 1; }
    to   { opacity: 0; }
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

@keyframes task-spin {
    to { transform: rotate(360deg); }
}
