/* ==========================================================================
   ui/styles/motion.css — movimento do terminal novo (spec secao 3 e 7).
   Regras: hover 120ms, estado 180ms, dialogo 200ms, painel ate 240ms; opacidade
   e translacao de no maximo 6px; nada de zoom dramatico; nenhum movimento
   continuo decorativo; informacao continua disponivel com movimento reduzido.
   ========================================================================== */

@keyframes dialog-in {
  from { opacity: 0; transform: translateY(var(--motion-shift)); }
  to   { opacity: 1; transform: none; }
}

@keyframes panel-in {
  from { opacity: 0; transform: translateY(var(--motion-shift)); }
  to   { opacity: 1; transform: none; }
}

#oracle-dashboard-root [data-motion="panel"] {
  animation: panel-in var(--motion-panel) var(--motion-ease) both;
}

/* Progresso de IA e indeterminado, sem porcentagem inventada. */
.status-pill[data-state="loading"] .status-pill__dot {
  animation: pulse-dot 1.4s ease-in-out infinite;
}

@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

/* O sistema operacional pedindo menos movimento vale sempre. */
@media (prefers-reduced-motion: reduce) {
  #oracle-dashboard-root *,
  #oracle-dashboard-root *::before,
  #oracle-dashboard-root *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }

  #oracle-dashboard-root [data-motion="panel"],
  #oracle-dashboard-root .sheet__panel {
    animation-name: none !important;
  }
}

/* Preferencia do proprio painel, alem da do sistema. */
#oracle-dashboard-root[data-motion="reduzido"] *,
#oracle-dashboard-root[data-motion="reduzido"] *::before,
#oracle-dashboard-root[data-motion="reduzido"] *::after {
  animation-duration: 0.001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0.001ms !important;
}

#oracle-dashboard-root[data-motion="reduzido"] [data-motion="panel"],
#oracle-dashboard-root[data-motion="reduzido"] .sheet__panel {
  animation-name: none !important;
}

/* Pausa timers visuais quando a pagina esta oculta. */
@media (prefers-reduced-motion: no-preference) {
  html[data-page-hidden="true"] #oracle-dashboard-root .status-pill[data-state="loading"] .status-pill__dot {
    animation-play-state: paused;
  }
}
