/* ========================================================================== */
/* BUTTON DEFAULTS - lock in consistent text rendering, let MudBlazor handle  */
/* hover/active states natively (background-color overlay + ripple)           */
/* ========================================================================== */

.mud-button-root {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.mud-button-root:not(.mud-icon-button):not(.profile-menu-trigger) {
    transition:
        background-color var(--m3-motion-duration-short) var(--m3-motion-easing-effects),
        color var(--m3-motion-duration-short) var(--m3-motion-easing-effects),
        transform var(--m3-motion-duration-medium) var(--m3-motion-easing-spatial);
}

/*
.mud-button-root:not(.mud-icon-button):not(.profile-menu-trigger):not(:disabled):active {
    transform: scale(0.97);
    transition-duration: var(--m3-motion-duration-fast);
}
*/

.mud-icon-button:not(.mud-switch-base) {
    transition:
        background-color var(--m3-motion-duration-short) var(--m3-motion-easing-effects),
        color var(--m3-motion-duration-short) var(--m3-motion-easing-effects),
        transform var(--m3-motion-duration-medium) var(--m3-motion-easing-spatial);
}

.mud-table-row {
    transition: background-color var(--m3-motion-duration-short) var(--m3-motion-easing-effects);
}

/*
.mud-icon-button:not(.mud-switch-base):not(:disabled):active {
    transform: scale(0.92);
    transition-duration: var(--m3-motion-duration-fast);
}
*/

.admin-side-nav .mud-nav-link-icon {
    transform-origin: center;
    transition: transform var(--m3-motion-duration-medium) var(--m3-motion-easing-spatial);
}

.admin-side-nav .mud-nav-link:hover .mud-nav-link-icon {
    transform: scale(1.12);
}

/* ========================================================================== */
/* PAGE ENTRANCE - staggered fade-in for page sections                        */
/* ========================================================================== */

@keyframes page-fade-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* All direct children of the page wrapper */
.page-stagger > * {
    animation: page-fade-in var(--m3-motion-duration-medium) var(--m3-motion-easing-spatial) both;
}

.page-stagger > *:nth-child(1) { animation-delay: 0ms; }
.page-stagger > *:nth-child(2) { animation-delay: 18ms; }
.page-stagger > *:nth-child(3) { animation-delay: 36ms; }
.page-stagger > *:nth-child(4) { animation-delay: 54ms; }
.page-stagger > *:nth-child(5) { animation-delay: 72ms; }
.page-stagger > *:nth-child(n+6) { animation-delay: 90ms; }

/* Admin pages: also stagger deeper MudStack children inside MudContainer */
.page-stagger > .mud-container > .d-flex.flex-column > * {
    animation: page-fade-in var(--m3-motion-duration-medium) var(--m3-motion-easing-spatial) both;
}

.page-stagger > .mud-container > .d-flex.flex-column > *:nth-child(1) { animation-delay: 0ms; }
.page-stagger > .mud-container > .d-flex.flex-column > *:nth-child(2) { animation-delay: 18ms; }
.page-stagger > .mud-container > .d-flex.flex-column > *:nth-child(3) { animation-delay: 36ms; }
.page-stagger > .mud-container > .d-flex.flex-column > *:nth-child(4) { animation-delay: 54ms; }
.page-stagger > .mud-container > .d-flex.flex-column > *:nth-child(5) { animation-delay: 72ms; }
.page-stagger > .mud-container > .d-flex.flex-column > *:nth-child(n+6) { animation-delay: 90ms; }

/* -------------------------------------------------------------------------- */
/* BACK LINK - same nudge, reversed for start-icon (arrow-back)               */
/* -------------------------------------------------------------------------- */

.back-link.mud-button-root {
    overflow: hidden;
    padding-inline: var(--rg-space-3) var(--rg-space-4);
}

.back-link .mud-button-icon-start {
    margin-inline-start: 0;
    transition: transform var(--m3-motion-duration-medium) var(--m3-motion-easing-spatial);
}

.back-link:hover .mud-button-icon-start {
    transform: translateX(-4px);
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }

    .page-stagger > *,
    .page-stagger > .mud-container > .d-flex.flex-column > * {
        animation: none;
    }

    .admin-action-button,
    .back-link .mud-button-icon-start,
    .dashboard-hover-card,
    .global-menu-leading .mud-icon-root,
    .global-menu-trailing .mud-icon-root,
    .admin-side-nav .mud-nav-link-icon,
    .mud-button-root:not(.mud-icon-button):not(.profile-menu-trigger),
    .mud-icon-button:not(.mud-switch-base),
    .profile-menu-panel .mud-menu-item .mud-icon-root,
    .profile-menu-trigger.mud-button-root,
    .profile-menu-trigger .mud-button-root,
    .staff-section-nav .mud-nav-link {
        transition: none;
    }

    .admin-action-button:hover,
    .admin-action-button:active,
    .back-link:hover .mud-button-icon-start,
    .dashboard-hover-card:hover,
    .dashboard-hover-card:active,
    .global-menu-row:hover .global-menu-leading .mud-icon-root,
    .global-menu-row:hover .global-menu-trailing .mud-icon-root,
    .admin-side-nav .mud-nav-link:hover .mud-nav-link-icon,
    .mud-button-root:not(.mud-icon-button):not(.profile-menu-trigger):hover,
    .mud-button-root:not(.mud-icon-button):not(.profile-menu-trigger):active,
    .mud-icon-button:not(.mud-switch-base):hover,
    .mud-icon-button:not(.mud-switch-base):active,
    .profile-menu-panel .mud-menu-item:hover .mud-icon-root,
    .profile-menu-trigger.mud-button-root:hover,
    .profile-menu-trigger.mud-button-root:active,
    .profile-menu-trigger .mud-button-root:hover,
    .profile-menu-trigger .mud-button-root:active,
    .staff-section-nav .mud-nav-link:hover {
        transform: none;
    }
}
