/* FortiGate Inventory Design System V2 - animations */
@keyframes fi-fade-up {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes fi-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .55; }
}
.module-section.active-module { animation: fi-fade-up var(--fi-transition-base); }
.ds-card-shell, .summary-tile, .dashboard-chart-box { transition: transform var(--fi-transition-base), box-shadow var(--fi-transition-base), border-color var(--fi-transition-base), background-color var(--fi-transition-base); }
.spinner, .fa-spinner { animation-duration: .85s; }
.status-dot.pulse, .fi-pulse { animation: fi-pulse 2s infinite; }

/* Toast Notification Manager */
.fg-toast {
  opacity: 0;
  transform: translateX(1.5rem) translateY(-0.25rem) scale(0.98);
  transition: opacity 220ms ease-out, transform 220ms ease-out;
}

.fg-toast.show {
  opacity: 1;
  transform: translateX(0) translateY(0) scale(1);
}

.fg-toast.is-leaving {
  opacity: 0;
  transform: translateX(1rem) scale(0.98);
}

.fg-toast__description,
.toast-desc {
  display: block;
  margin-top: 0.25rem;
  color: var(--fi-text-muted, #64748b);
  font-size: 0.78rem;
  line-height: 1.4;
}

.fg-toast__progress,
.toast-progress {
  position: absolute;
  bottom: 0;
  left: 1rem;
  right: 1rem;
  height: 3px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.22;
  animation: toast-progress var(--toast-duration, 4200ms) linear forwards;
}

@keyframes toast-progress {
  from { transform: scaleX(1); transform-origin: left; }
  to { transform: scaleX(0); transform-origin: left; }
}

@media (prefers-reduced-motion: reduce) {
  .fg-toast.toast,
  .fg-toast.toast.show,
  .fg-toast.is-leaving {
    transition: none !important;
    transform: none !important;
  }

  .fg-toast__progress,
  .toast-progress {
    animation: none !important;
  }
}
