/*
 * Animações globais do Portal DP.
 * Sutis e desativadas automaticamente para quem prefere menos movimento.
 * Carregado após o tailwind.css nas duas bases (autenticada e pública).
 */

/* A flag do flash de salvamento funciona mesmo com reduced-motion (é só cor). */
@keyframes portalFlash {
    0%   { background-color: rgba(34, 197, 94, .18); }
    100% { background-color: transparent; }
}
.ponto-flash > td { animation: portalFlash .9s ease-out both; }

@media (prefers-reduced-motion: no-preference) {
    @keyframes portalFadeUp {
        from { opacity: 0; transform: translateY(12px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes portalFadeIn {
        from { opacity: 0; }
        to   { opacity: 1; }
    }

    /* Entrada do conteúdo principal em toda página. */
    .page-anim { animation: portalFadeIn .3s ease both; }

    /* Stagger leve dos blocos de nível superior do conteúdo. */
    .page-anim > * { animation: portalFadeUp .5s cubic-bezier(.22, .61, .36, 1) both; }
    .page-anim > *:nth-child(1) { animation-delay: .04s; }
    .page-anim > *:nth-child(2) { animation-delay: .10s; }
    .page-anim > *:nth-child(3) { animation-delay: .16s; }
    .page-anim > *:nth-child(4) { animation-delay: .22s; }
    .page-anim > *:nth-child(5) { animation-delay: .28s; }
    .page-anim > *:nth-child(6) { animation-delay: .34s; }
    .page-anim > *:nth-child(n+7) { animation-delay: .40s; }

    /* Utilitário reutilizável para entrada de elementos pontuais. */
    .anim-fade-up { animation: portalFadeUp .5s cubic-bezier(.22, .61, .36, 1) both; }

    /* Elevação suave de cards (aplicar a classe .card-hover). */
    .card-hover { transition: transform .18s ease, box-shadow .18s ease; }
    .card-hover:hover { transform: translateY(-3px); box-shadow: 0 12px 30px -12px rgba(2, 6, 23, .28); }

    /* Feedback de clique nos botões de marca. */
    .btn-brand { transition: transform .12s ease, opacity .15s ease, box-shadow .15s ease; }
    .btn-brand:active { transform: scale(.97); }

    /* Transições suaves de interação. */
    tbody tr { transition: background-color .15s ease; }
    a, button { transition: color .15s ease, background-color .15s ease, opacity .15s ease, border-color .15s ease; }

    /* Itens do menu lateral deslizam levemente ao passar o mouse. */
    aside nav a { transition: transform .15s ease, background-color .15s ease, color .15s ease; }
    aside nav a:hover { transform: translateX(3px); }
}
