/* ak.css — анимации главного экрана и оболочки.
   Перенесено из design/dashboard-mock.html как есть (тайминги, кривые, задержки).
   Цвет фона строки при наведении берётся из токена: в тёмной теме это ровно
   #151b19 из макета, в светлой — светлый аналог. */

@keyframes ak-up    { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes ak-pulse { 0% { box-shadow: 0 0 0 0 rgba(232, 236, 234, .45); } 100% { box-shadow: 0 0 0 12px rgba(232, 236, 234, 0); } }
@keyframes ak-glow  { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
@keyframes ak-draw  { from { stroke-dashoffset: 200; } to { stroke-dashoffset: 0; } }

/* Появление блоков каскадом: 0.55 с, задержки 50–450 мс */
.ak-in { animation: ak-up .55s cubic-bezier(.2, .7, .2, 1) both; }
.ak-d1 { animation-delay: .05s; }
.ak-d2 { animation-delay: .15s; }
.ak-d3 { animation-delay: .25s; }
.ak-d4 { animation-delay: .35s; }
.ak-d5 { animation-delay: .45s; }

/* Живые индикаторы */
.ak-now  { animation: ak-pulse 1.8s ease-out infinite; }
.ak-live { animation: ak-glow 2.2s ease-in-out infinite; }

/* Спарклайн рисуется */
.ak-spark { stroke-dasharray: 200; animation: ak-draw 1.2s ease-out .3s both; }

/* Лента показателей */
.ak-track { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }

/* Строка: подсветка при наведении */
.ak-row { transition: background .15s; }
.ak-row:hover { background: var(--row-hi, #151b19); }

/* Плитка: подъём на 2 px */
.ak-tile { transition: transform .2s, border-color .2s; }
.ak-tile:hover { transform: translateY(-2px); border-color: var(--border-strong, #2c3532); }

/* Пользователь просил меньше движения — движения нет. Содержимое остаётся
   видимым и на своих местах: гасим только анимацию, не сам блок. */
@media (prefers-reduced-motion: reduce) {
  .ak-in, .ak-now, .ak-live, .ak-spark { animation: none !important; }
  .ak-in { opacity: 1; transform: none; }
  .ak-spark { stroke-dasharray: none; }
  .ak-track, .ak-row, .ak-tile { transition: none !important; }
  .ak-tile:hover { transform: none; }
}
