/* Shared interaction feedback for desktop, touch, and keyboard users. */
@media screen and (prefers-reduced-motion: no-preference) {
    :is(button, .btn-primary, .btn-secondary, .btn-small, .btn-print,
        .dashboard-card, .nav-link, .pagination-link, .auth-tabs a,
        .profile-menu summary) {
        transition: scale 140ms ease, background-color 180ms ease,
            border-color 180ms ease, box-shadow 180ms ease;
    }

    :is(button, .btn-primary, .btn-secondary, .btn-small, .btn-print,
        .dashboard-card, .nav-link, .pagination-link, .auth-tabs a,
        .profile-menu summary):active:not(:disabled):not(.is-disabled) {
        scale: .97;
    }

    .content,
    .auth-card {
        animation: page-open 240ms ease-out;
    }

    details[open] > :not(summary) {
        animation: panel-open 180ms ease-out;
    }

    .profile-chevron { transition: transform 180ms ease; }

    @keyframes page-open {
        from { opacity: 0; translate: 0 8px; }
        to { opacity: 1; translate: 0 0; }
    }

    @keyframes panel-open {
        from { opacity: 0; translate: 0 -5px; }
        to { opacity: 1; translate: 0 0; }
    }

    @keyframes backdrop-open {
        from { opacity: 0; }
        to { opacity: 1; }
    }
}

@media screen and (max-width: 900px) and (prefers-reduced-motion: no-preference) {
    .sidebar {
        transition: transform 220ms ease, visibility 220ms;
    }

    body.mobile-menu-open .sidebar {
        transition: transform 220ms ease, visibility 0s;
    }

    .mobile-menu-backdrop:not([hidden]) {
        animation: backdrop-open 180ms ease-out;
    }
}
