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

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Stat cards (KPI widgets) */
.fi-wi-stats-overview-stat,
.fi-stats-overview-stat {
    animation: fadeInUp 700ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

.fi-stats-overview > div > *:nth-child(1),
.fi-wi-stats-overview > div > *:nth-child(1) { animation-delay: 0ms; }

.fi-stats-overview > div > *:nth-child(2),
.fi-wi-stats-overview > div > *:nth-child(2) { animation-delay: 80ms; }

.fi-stats-overview > div > *:nth-child(3),
.fi-wi-stats-overview > div > *:nth-child(3) { animation-delay: 160ms; }

.fi-stats-overview > div > *:nth-child(4),
.fi-wi-stats-overview > div > *:nth-child(4) { animation-delay: 240ms; }

/* Big chart + table widgets fade in iets later, na de stats */
.fi-wi-chart,
.fi-wi-table {
    animation: fadeIn 800ms ease-out 300ms both;
}

/* Hover-lift op stat cards */
.fi-wi-stats-overview-stat,
.fi-stats-overview-stat {
    transition: transform 200ms ease-out, box-shadow 200ms ease-out;
}

.fi-wi-stats-overview-stat:hover,
.fi-stats-overview-stat:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.06);
}
