/*
 * Button affordances (ARCH-37 / UX-DR18 / Story 8.2)
 * Shared hover + press feedback for portal action buttons.
 * Tokens reuse DHCS / Mud palette values; do not flatten danger-button reds.
 *
 * SC 1.4.11: filled primary hover uses a light outline + elevation delta vs
 * resting navy (darker-only bg shifts are <3:1 against #17315A). Icon hover
 * uses a gray that is ≥3:1 against white resting surfaces.
 */

:root {
    --button-hover-bg: var(--dhcs-color-primary-hover, #0f2140);
    --button-active-bg: var(--dhcs-color-primary-dark, #0a1a2e);
    --button-hover-outline: #ffffff;
    --button-hover-elevation: 0 0 0 2px var(--button-hover-outline), 0 2px 6px rgba(10, 26, 46, 0.45);
    --button-icon-hover-bg: #7a8794;
    --button-icon-active-bg: #6b7885;
    --button-press-transition: background-color 120ms ease-out, transform 80ms ease-out, box-shadow 120ms ease-out;
}

/* Lib.UI / Mud filled primary — visible hover vs resting --primary (#17315A) */
.dhcs-button-wrapper .mud-button-root.dhcs-button-filled.dhcs-button-primary:hover:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.mud-button-filled.mud-button-filled-primary:hover:not(:disabled):not(.dhcs-button-danger),
.mud-button-filled.mud-button-filled-primary:hover:not(:disabled):not(.dhcs-button-danger),
.mud-button-filled.mud-button-filled-primary.mud-primary-hover:hover:not(:disabled):not(.dhcs-button-danger) {
    background-color: var(--button-hover-bg) !important;
    box-shadow: var(--button-hover-elevation) !important;
    transition: var(--button-press-transition);
}

.dhcs-button-wrapper .mud-button-root.dhcs-button-filled.dhcs-button-primary:active:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.mud-button-filled.mud-button-filled-primary:active:not(:disabled):not(.dhcs-button-danger),
.mud-button-filled.mud-button-filled-primary:active:not(:disabled):not(.dhcs-button-danger),
.mud-button-filled.mud-button-filled-primary.mud-primary-hover:active:not(:disabled):not(.dhcs-button-danger) {
    background-color: var(--button-active-bg) !important;
    box-shadow: 0 0 0 2px var(--button-hover-outline), 0 1px 2px rgba(10, 26, 46, 0.5) !important;
    transform: scale(0.98);
    transition: var(--button-press-transition);
}

/* Outlined / secondary / tertiary Lib.UI buttons — light fill + outline elevation */
.dhcs-button-wrapper .mud-button-root.dhcs-button-outlined:hover:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.dhcs-button-text:hover:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.dhcs-button-secondary:hover:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.dhcs-button-tertiary:hover:not(:disabled):not(.dhcs-button-danger) {
    background-color: var(--dhcs-color-bg-hover, #d9e0e7) !important;
    box-shadow: 0 0 0 2px var(--dhcs-color-primary, #17315A) !important;
    transition: var(--button-press-transition);
}

.dhcs-button-wrapper .mud-button-root.dhcs-button-outlined:active:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.dhcs-button-text:active:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.dhcs-button-secondary:active:not(:disabled):not(.dhcs-button-danger),
.dhcs-button-wrapper .mud-button-root.dhcs-button-tertiary:active:not(:disabled):not(.dhcs-button-danger) {
    background-color: var(--dhcs-color-bg-grey-hover, #e5e2e1) !important;
    box-shadow: 0 0 0 2px var(--dhcs-color-primary, #17315A) !important;
    transform: scale(0.98);
    transition: var(--button-press-transition);
}

/* Icon action buttons (CredentialValueRow copy, etc.) */
.mud-icon-button.cvr-copy:hover:not(:disabled),
button.cvr-copy:hover:not(:disabled),
.cvr-copy.mud-button-root:hover:not(:disabled) {
    background-color: var(--button-icon-hover-bg) !important;
    color: #ffffff !important;
    transition: var(--button-press-transition);
}

.mud-icon-button.cvr-copy:active:not(:disabled),
button.cvr-copy:active:not(:disabled),
.cvr-copy.mud-button-root:active:not(:disabled) {
    background-color: var(--button-icon-active-bg) !important;
    color: #ffffff !important;
    transform: scale(0.96);
    transition: var(--button-press-transition);
}

/* Generic MudIconButton used as portal actions (when not danger) */
.mud-icon-button:hover:not(:disabled):not(.dhcs-button-danger) {
    background-color: var(--button-icon-hover-bg);
    color: #ffffff;
    transition: var(--button-press-transition);
}

.mud-icon-button:active:not(:disabled):not(.dhcs-button-danger) {
    background-color: var(--button-icon-active-bg);
    color: #ffffff;
    transform: scale(0.96);
    transition: var(--button-press-transition);
}

/*
 * Danger / destructive buttons keep dialog-scoped red hover.
 * ARCH-37 only adds a light press scale — never navy primary tokens.
 */
.dhcs-button-wrapper .mud-button-root.dhcs-button-danger:active:not(:disabled),
.mud-button-root.dhcs-button-danger:active:not(:disabled) {
    transform: scale(0.98);
    transition: var(--button-press-transition);
}
