/* View Transitions */
::view-transition-old(root),
::view-transition-new(root) {
  animation: none;
  mix-blend-mode: normal;
}

/* Morph transitions */
.view-transition-morph {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.view-transition-active {
  view-transition-name: root;
}

/* Smooth page transitions */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fade-out {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-10px);
  }
}

/* Dashboard specific transitions */
.dashboard-metrics {
  view-transition-name: dashboard-metrics;
}

.dashboard-pending {
  view-transition-name: dashboard-pending;
}

/* Loading states */

/* Frame loading states */
turbo-frame[refresh="morph"] {
  transition: opacity 0.2s ease;
}

turbo-frame[refresh="morph"][busy] {
  opacity: 0.7;
}
