/* Task completion animation */
.task-card.completing {
  animation: taskComplete 0.3s ease;
}

@keyframes taskComplete {
  0% { transform: scale(1); }
  50% { transform: scale(0.97); }
  100% { transform: scale(1); }
}

.task-checkbox.checking {
  animation: checkBounce 0.4s ease;
}

@keyframes checkBounce {
  0% { transform: scale(1); }
  30% { transform: scale(0.8); }
  60% { transform: scale(1.15); }
  100% { transform: scale(1); }
}

/* View transitions */
.view-enter {
  animation: viewFadeIn 0.25s ease;
}

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

/* Progress ring animation */
.progress-ring-fill {
  animation: ringFill 0.8s ease forwards;
}

@keyframes ringFill {
  from { stroke-dashoffset: var(--ring-circumference); }
}

/* Offline indicator */
.offline-indicator {
  animation: slideDown 0.3s ease;
}

@keyframes slideDown {
  from { transform: translateX(-50%) translateY(-100%); }
  to { transform: translateX(-50%) translateY(0); }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
