/* Table data appearance animations (TableAnim)
   Applied automatically to newly inserted rows in dynamic tables/lists.
   See public/js/table-anim.js. Accent matches site theme (#ff007f). */

/* New row slides in + soft accent highlight that fades to normal */
.tanim-new {
    animation: tanimSlideIn .35s ease-out, tanimHighlight 1.8s ease-out;
    will-change: transform, opacity, background-color;
}

@keyframes tanimSlideIn {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes tanimHighlight {
    0%   { background-color: rgba(255, 0, 127, .16); }
    100% { background-color: transparent; }
}

/* Optional in-place value change flash (opt-in via data-tanim-flash) */
.tanim-up   { animation: tanimFlashUp 1s ease; }
.tanim-down { animation: tanimFlashDown 1s ease; }

@keyframes tanimFlashUp {
    0%   { background-color: rgba(54, 167, 100, .35); }
    100% { background-color: transparent; }
}

@keyframes tanimFlashDown {
    0%   { background-color: rgba(255, 80, 80, .30); }
    100% { background-color: transparent; }
}

@media (prefers-reduced-motion: reduce) {
    .tanim-new, .tanim-up, .tanim-down { animation: none; }
}
