:where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    a[class*="button"],
    a.action-btn,
    a.notification-filter,
    a.overview-layout-tab,
    a.logout-link,
    [role="button"]
):not(:disabled):not([aria-disabled="true"]) {
    transition:
        filter 140ms ease,
        box-shadow 140ms ease,
        transform 140ms ease;
}

:where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    a[class*="button"],
    a.action-btn,
    a.notification-filter,
    a.overview-layout-tab,
    a.logout-link,
    [role="button"]
):not(:disabled):not([aria-disabled="true"]):hover {
    filter: brightness(0.97) saturate(1.08);
    box-shadow:
        0 0 0 2px rgba(37, 99, 235, 0.28),
        0 5px 12px rgba(15, 23, 42, 0.16);
    transform: translateY(-1px);
}

:where(
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    a[class*="button"],
    a.action-btn,
    a.notification-filter,
    a.overview-layout-tab,
    a.logout-link,
    [role="button"]
):not(:disabled):not([aria-disabled="true"]):focus-visible {
    box-shadow:
        0 0 0 3px rgba(37, 99, 235, 0.34),
        0 5px 12px rgba(15, 23, 42, 0.16);
    outline: none;
}

button.ctm-confirm-reply-button {
    transition:
        filter 140ms ease,
        box-shadow 140ms ease,
        transform 140ms ease;
}

button.ctm-confirm-reply-button:hover {
    filter: brightness(0.97) saturate(1.08);
    box-shadow:
        0 0 0 2px rgba(37, 99, 235, 0.28),
        0 5px 12px rgba(15, 23, 42, 0.16);
    transform: translateY(-1px);
}

button.ctm-confirm-reply-button:disabled {
    cursor: not-allowed;
}

@media (prefers-reduced-motion: reduce) {
    :where(
        button,
        input[type="button"],
        input[type="submit"],
        input[type="reset"],
        a[class*="button"],
        a.action-btn,
        a.notification-filter,
        a.overview-layout-tab,
        a.logout-link,
        [role="button"],
        button.ctm-confirm-reply-button
    ) {
        transition: none;
    }
}
