/* Shared JTDirect interaction polish for every MVC area.
   Preserve each theme's existing colours; standardize only motion, elevation and focus. */
:root {
    --jtd-interaction-accent: var(--bs-primary, #df496c);
    --jtd-interaction-shadow: 0 12px 30px rgba(20, 32, 52, .11);
    --jtd-interaction-shadow-hover: 0 18px 38px rgba(20, 32, 52, .16);
    --jtd-interaction-transition: 180ms cubic-bezier(.2, .65, .3, 1);
}

:is(.card, .jtd-card, [class*="-card"]) {
    border-radius: var(--jtd-card-radius, 1rem);
    border-color: rgba(148, 163, 184, .24);
    box-shadow: var(--jtd-interaction-shadow);
    background-clip: padding-box;
    transition: transform var(--jtd-interaction-transition),
                box-shadow var(--jtd-interaction-transition),
                border-color var(--jtd-interaction-transition);
}

:is(.btn, button:not(.btn-close):not(.navbar-toggler):not([data-bs-toggle]), input[type="submit"], a[role="button"]) {
    transition: transform var(--jtd-interaction-transition),
                box-shadow var(--jtd-interaction-transition),
                filter var(--jtd-interaction-transition),
                border-color var(--jtd-interaction-transition);
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    :is(.card, .jtd-card, [class*="-card"]):hover {
        transform: translateY(-3px);
        box-shadow: var(--jtd-interaction-shadow-hover);
        border-color: color-mix(in srgb, var(--jtd-interaction-accent) 26%, transparent);
    }

    :is(.btn, button:not(.btn-close):not(.navbar-toggler):not([data-bs-toggle]), input[type="submit"], a[role="button"]):not(:disabled):not([aria-disabled="true"]):hover {
        transform: translateY(-1px);
        filter: brightness(1.035) saturate(1.06);
        box-shadow: 0 8px 18px rgba(20, 32, 52, .15);
    }

    :is(.btn, button:not(.btn-close):not(.navbar-toggler):not([data-bs-toggle]), input[type="submit"], a[role="button"]):active {
        transform: translateY(0);
        filter: brightness(.99);
        box-shadow: 0 3px 8px rgba(20, 32, 52, .11);
    }
}

:is(.btn, button:not(.btn-close):not(.navbar-toggler):not([data-bs-toggle]), input[type="submit"], a[role="button"]):focus-visible,
:is(.card, .jtd-card, [class*="-card"]):focus-visible {
    outline: 3px solid color-mix(in srgb, var(--jtd-interaction-accent) 42%, transparent);
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    :is(.card, .jtd-card, [class*="-card"], .btn, button:not(.btn-close):not(.navbar-toggler):not([data-bs-toggle]), input[type="submit"], a[role="button"]) {
        transition: none !important;
    }
}
