/* ── ANIMATIONS.CSS — переходы и анимации ── */

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

@keyframes slideIn {
  from { transform: translateX(-12px); opacity: 0; }
  to   { transform: translateX(0);     opacity: 1; }
}

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

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

/* Анимация появления страницы */
#page-content > * {
  animation: fadeIn var(--t-normal) both;
}

/* Карточки */
.card {
  animation: fadeIn var(--t-normal) both;
}

/* Статус активен — пульс */
.badge[style*="#22c55e"]::before {
  content:       '';
  display:       inline-block;
  width:         6px;
  height:        6px;
  border-radius: 50%;
  background:    currentColor;
  margin-right:  5px;
  animation:     pulse 2s infinite;
}

/* Лоадер */
.spinner {
  width:         20px;
  height:        20px;
  border:        2px solid var(--color-border);
  border-top-color: var(--color-primary);
  border-radius: 50%;
  animation:     spin .7s linear infinite;
}

/* Строки таблицы */
.table__row {
  animation: slideIn var(--t-fast) both;
}
.table tbody tr:nth-child(1)  { animation-delay: 0ms;   }
.table tbody tr:nth-child(2)  { animation-delay: 40ms;  }
.table tbody tr:nth-child(3)  { animation-delay: 80ms;  }
.table tbody tr:nth-child(4)  { animation-delay: 120ms; }
.table tbody tr:nth-child(5)  { animation-delay: 160ms; }

/* Шаги мастера */
.wizard-step {
  transition: opacity var(--t-normal), transform var(--t-normal);
}

/* Прогресс лог */
.log-line {
  animation: fadeIn 200ms both;
}

/* Бренд TR dent — свечение оранжевого */
@keyframes glowOrange {
  0%, 100% { box-shadow: 0 0 8px rgba(254,91,27,0.3); }
  50%       { box-shadow: 0 0 20px rgba(254,91,27,0.6); }
}

.btn--primary {
  animation: glowOrange 3s ease-in-out infinite;
}
.btn--primary:hover {
  animation: none;
}

/* Активный nav item */
.nav-item--active {
  animation: fadeIn var(--t-fast) both;
}
