/*
 * Shared VARIO button interaction standard: inset press, no movement.
 * Loaded after themes and scoped component CSS so local modules cannot restore
 * legacy translate/scale animations. Tabs and aria-pressed selectors keep
 * their own selected-state model.
 */

html body :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    .vario-button-interaction
):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]),
html[data-vario-theme] body :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    .vario-button-interaction
):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]) {
    --vario-button-current-hover-shadow: var(--vario-shadow-button-hover);
    --vario-button-current-pressed-shadow: var(--vario-shadow-button-pressed);
    touch-action: manipulation;
    transition:
        filter var(--vario-motion-button-return-duration) var(--vario-motion-button-easing),
        box-shadow var(--vario-motion-button-return-duration) var(--vario-motion-button-easing) !important;
}

html body :where(
    .btn-primary,
    .vario-list-search-button,
    .vario-list-add-button,
    .vario-module-create-button,
    .vario-auth-submit,
    .vario-button-primary,
    [data-vario-component="VarioCompactAction"][data-vario-action-tone="primary"]
),
html[data-vario-theme] body :where(
    .btn-primary,
    .vario-list-search-button,
    .vario-list-add-button,
    .vario-module-create-button,
    .vario-auth-submit,
    .vario-button-primary,
    [data-vario-component="VarioCompactAction"][data-vario-action-tone="primary"]
) {
    --vario-button-current-hover-shadow: var(--vario-shadow-button-primary-hover);
}

html body :where(
    .btn-danger,
    .btn-outline-danger,
    .vario-button-danger,
    .vario-erp-document-delete-button,
    [data-vario-component="VarioCompactAction"][data-vario-action-tone="danger"]
),
html[data-vario-theme] body :where(
    .btn-danger,
    .btn-outline-danger,
    .vario-button-danger,
    .vario-erp-document-delete-button,
    [data-vario-component="VarioCompactAction"][data-vario-action-tone="danger"]
) {
    --vario-button-current-hover-shadow: var(--vario-shadow-button-danger-hover);
}

html body :where(.btn-success, .btn-outline-success, .vario-button-success),
html[data-vario-theme] body :where(.btn-success, .btn-outline-success, .vario-button-success) {
    --vario-button-current-hover-shadow: var(--vario-shadow-button-success-hover);
}

html body :where(.btn-warning, .btn-outline-warning, .vario-button-warning),
html[data-vario-theme] body :where(.btn-warning, .btn-outline-warning, .vario-button-warning) {
    --vario-button-current-hover-shadow: var(--vario-shadow-button-warning-hover);
}

@media (hover: hover) {
    html body :where(
        button,
        input[type="button"],
        input[type="submit"],
        input[type="reset"],
        .btn,
        .vario-button-interaction
    ):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]):hover,
    html[data-vario-theme] body :where(
        button,
        input[type="button"],
        input[type="submit"],
        input[type="reset"],
        .btn,
        .vario-button-interaction
    ):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]):hover {
        filter: var(--vario-filter-button-hover) !important;
        box-shadow: var(--vario-button-current-hover-shadow) !important;
    }

    html body :where(
        button,
        input[type="button"],
        input[type="submit"],
        input[type="reset"],
        .btn,
        .vario-button-interaction
    ):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]):active:hover,
    html[data-vario-theme] body :where(
        button,
        input[type="button"],
        input[type="submit"],
        input[type="reset"],
        .btn,
        .vario-button-interaction
    ):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]):active:hover {
        filter: var(--vario-filter-button-pressed) !important;
        box-shadow: var(--vario-button-current-pressed-shadow) !important;
        transition-duration: var(--vario-motion-button-press-duration) !important;
        transition-timing-function: var(--vario-motion-button-easing) !important;
    }
}

@media (hover: none), (pointer: coarse) {
    html body :where(
        button,
        input[type="button"],
        input[type="submit"],
        input[type="reset"],
        .btn,
        .vario-button-interaction
    ):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]):active,
    html[data-vario-theme] body :where(
        button,
        input[type="button"],
        input[type="submit"],
        input[type="reset"],
        .btn,
        .vario-button-interaction
    ):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"]):active {
        filter: var(--vario-filter-button-pressed) !important;
        box-shadow: var(--vario-button-current-pressed-shadow) !important;
        transition-duration: var(--vario-motion-button-press-duration) !important;
        transition-timing-function: var(--vario-motion-button-easing) !important;
    }
}

html body :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    .vario-button-interaction
):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"])[data-vario-pressed="true"],
html[data-vario-theme] body :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    .vario-button-interaction
):not(:disabled):not(.disabled):not([aria-disabled="true"]):not([aria-pressed]):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):not(.vario-button-interaction-none):not([data-vario-button-interaction="none"])[data-vario-pressed="true"] {
    filter: var(--vario-filter-button-pressed) !important;
    box-shadow: var(--vario-button-current-pressed-shadow) !important;
    transition-duration: var(--vario-motion-button-press-duration) !important;
    transition-timing-function: var(--vario-motion-button-easing) !important;
}

html body :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    .vario-button-interaction
):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):focus-visible,
html[data-vario-theme] body :where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .btn,
    .vario-button-interaction
):not(:where([role="tab"], [role="tablist"] *, [class*="tabs"] button, [class*="tablist"] button, button[class*="-tab"], .nav-tabs *)):focus-visible {
    outline: 2px solid var(--vario-color-focus-ring) !important;
    outline-offset: 2px !important;
}

html body :where(button, input[type="button"], input[type="submit"], input[type="reset"], .btn):is(:disabled, .disabled, [aria-disabled="true"]),
html[data-vario-theme] body :where(button, input[type="button"], input[type="submit"], input[type="reset"], .btn):is(:disabled, .disabled, [aria-disabled="true"]) {
    filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
    html[data-vario-theme] {
        --vario-motion-button-press-duration: 0.01ms;
        --vario-motion-button-return-duration: 0.01ms;
    }

    html body :where(button, input[type="button"], input[type="submit"], input[type="reset"], .btn, .vario-button-interaction),
    html[data-vario-theme] body :where(button, input[type="button"], input[type="submit"], input[type="reset"], .btn, .vario-button-interaction) {
        transition-duration: 0.01ms !important;
    }
}
