/* Animate groups, never individual rows. Motion never delays data loading. */
@keyframes admin-content-enter {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}
@keyframes admin-panel-enter {
    from { transform: translateX(100%); }
    to { transform: translateX(0); }
}
@keyframes admin-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@keyframes admin-skeleton { to { background-position: -200% 0; } }

.catalog-results, .vin-results__table-wrap, .vin-results__cards,
.sales-table-wrap, .sales-cards, .sales-metrics, .part-quick-view__body,
.sales-custom-dates, .sale-return {
    animation: admin-content-enter 200ms ease-out both;
}
.sale-details, .catalog-filter-drawer {
    animation: admin-panel-enter 240ms cubic-bezier(.22,.8,.35,1) both;
}
.sale-details-backdrop, .catalog-filter-drawer__backdrop {
    animation: admin-backdrop-enter 220ms ease-out both;
}
.sales-loading { display: grid; gap: .65rem; padding: 1rem 0; }
.sales-loading > span {
    display: block; height: 54px; border-radius: 10px;
    background: linear-gradient(90deg, #edf1f6 25%, #f8fafc 50%, #edf1f6 75%);
    background-size: 200% 100%; animation: admin-skeleton 1.25s linear infinite;
}
.catalog-workspace__results, .vin-results, .sales-results { min-height: 370px; }

@media (prefers-reduced-motion: reduce) {
    .catalog-results, .vin-results__table-wrap, .vin-results__cards,
    .sales-table-wrap, .sales-cards, .sales-metrics, .part-quick-view__body,
    .sales-custom-dates, .sale-return,
    .sale-details, .catalog-filter-drawer,
    .sale-details-backdrop, .catalog-filter-drawer__backdrop,
    .sales-loading > span, .admin-frame .catalog-workspace__skeleton-row,
    .admin-frame .vin-results__loading span, .vin-detail--loading div {
        animation: none;
    }
}
