/* Shared action hierarchy. Legacy btn-* classes remain intact for event hooks. */
:where(.button-theme button, .button-theme input, .button-theme a) {
    --button-bg: #fff;
    --button-text: #263b4b;
    --button-border: #b8c2cb;
    --button-hover: #eaf0f5;
    --button-hover-border: #8a9ba8;
    --button-icon: brightness(0) opacity(.8);
}
/* Commit work or advance a workflow. */
.button-theme :is(.button-primary, .btn-save, .btn-continue, .auth-entry-submit, .auth-submit, .approveuser, .btn-large, [name="Save"], [name="Calculate"], [name="Generate"], [id="btnEmail"], input[type="submit"]) {
    --button-bg: #263b4b;
    --button-text: #fff;
    --button-border: #263b4b;
    --button-hover: #344f63;
    --button-hover-border: #344f63;
    --button-icon: brightness(0) invert(1);
}
/* Navigation, alternate actions, and cancellation keep a neutral treatment. */
.button-theme :is(.btn-previous, .cancel, .videotutorial, [name="Add"], [name="View"], [name="ShowReport"], [name="CloseReport"], [id="btnChange"], input[value="Cancel"], input[type="reset"]) {
    --button-bg: #fff;
    --button-text: #263b4b;
    --button-border: #b8c2cb;
    --button-hover: #eaf0f5;
    --button-hover-border: #8a9ba8;
    --button-icon: brightness(0) opacity(.8);
}
/* Destructive actions are visible without competing with the primary action. */
.button-theme :is(.button-danger, .btn-danger, .deleteuser, .deleteuser_q, .denieduser, .RemoveSection, .confirm, [name="Clear"], [id="btnClear"], input[value="Clear Screen"]) {
    --button-bg: #fff;
    --button-text: #982a2a;
    --button-border: #d9aaaa;
    --button-hover: #fff0f0;
    --button-hover-border: #b74343;
    --button-icon: brightness(0) opacity(.8);
}
/* The tutorial historically carried btn-danger; it is a secondary action. */
.button-theme .btn.videotutorial {
    --button-text: #263b4b;
    --button-border: #b8c2cb;
    --button-hover: #eaf0f5;
    --button-hover-border: #8a9ba8;
}
/* Explicit legacy variants give these rules priority over old page overrides. */
body.button-theme :is(.btn.btn-warning, .btn.btn-danger, .btn.btn-help-big, .btn, .btn-large, button:not(.close):not(.ui-dialog-titlebar-close), input[type="submit"], input[type="button"], input[type="reset"]) {
    box-sizing: border-box;
    min-height: 36px;
    padding: 8px 14px !important;
    border: 1px solid var(--button-border) !important;
    border-radius: 6px !important;
    background: var(--button-bg) !important;
    color: var(--button-text) !important;
    font-family: inherit;
    font-size: 13px !important;
    font-weight: 600;
    line-height: 18px !important;
    text-transform: none;
    text-shadow: none !important;
    box-shadow: none !important;
    filter: none;
    text-decoration: none;
}
body.button-theme :is(.btn.btn-warning, .btn.btn-danger, .btn.btn-help-big, .btn, .btn-large, button:not(.close):not(.ui-dialog-titlebar-close), input[type="submit"], input[type="button"], input[type="reset"]):is(:hover, :active):not(:disabled):not(.disabled):not([aria-disabled="true"]) {
    background: var(--button-hover) !important;
    border-color: var(--button-hover-border) !important;
}
body.button-theme :is(.btn, .btn-large, button, input[type="submit"], input[type="button"], input[type="reset"]):focus-visible {
    outline: 3px solid #286b9a !important;
    outline-offset: 3px;
}
body.button-theme :is(.btn, .btn-large, button, input[type="submit"], input[type="button"], input[type="reset"]):is(:disabled, .disabled, [aria-disabled="true"]),
body.button-theme fieldset:disabled :is(button, input[type="submit"], input[type="button"], input[type="reset"]) {
    background: #edf0f2 !important;
    color: #687581 !important;
    border-color: #d7dde2 !important;
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none !important;
}
body.button-theme :is(.btn, .btn-large) > :is(i, .glyphicon) { filter: var(--button-icon); }
body.button-theme .btn.btn-help-big { width: auto !important; height: auto !important; text-indent: 0; }
body.button-theme .btn.btn-navbar .icon-bar { background: #263b4b; box-shadow: none; }
body.button-theme .btn.btn-small { min-height: 32px; padding: 6px 10px !important; }
body.button-theme .ui-dialog-buttonpane .ui-button-text { padding: 0; }
/* Keep generated dialog actions aligned with the Help button beside them. */
body.button-theme .ui-dialog .ui-dialog-buttonpane { padding: 12px; }
body.button-theme .ui-dialog-buttonpane .ui-dialog-buttonset { margin: 0; }
body.button-theme .ui-dialog-buttonpane button { margin: 0 0 0 8px; vertical-align: middle; }
body.button-theme .ui-dialog-buttonpane .btn-group { margin: 0; }
