/* --- Lucide Icons Fix --- */
/* By default, lucide-react UMD icons have no size. */
svg.lucide {
    width: 1em;
    height: 1em;
    display: inline-block;
}

/* --- Loader Animation --- */
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

/* --- Button Loading State --- */
/* Hide text when icon is shown */
button .btn-icon:not(:empty) + .btn-text {
    display: none;
}
/* Hide icon when text is shown */
button .btn-icon:empty + .btn-text {
    display: inline;
}
/* Show icon and hide text */
button .btn-icon:not(:empty) {
    display: inline-flex;
    align: center;
}

/* --- Page Load Animation --- */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-fade-in-up {
  /* Set animation-fill-mode to backwards to apply frame-0 styles before animation starts */
  animation: fadeInUp 0.6s ease-out forwards;
  opacity: 0; 
}

/* --- Table Row Animation --- */
@keyframes fadeInRow {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.new-row-animation {
  animation: fadeInRow 0.3s ease-out;
}

