button:disabled,
input:is([type="submit"], [type="button"], [type="reset"]):disabled,
:is(button, a, [role="button"])[aria-disabled="true"] {
    cursor: not-allowed;
}

.disabled-control-proxy {
    display: inline-grid;
    vertical-align: middle;
    cursor: not-allowed;
    border-radius: 6px;
}

.disabled-control-proxy > :disabled {
    pointer-events: none;
}

.disabled-control-proxy[hidden] {
    display: none;
}

/* Scheme cards keep the full-width action pinned to the bottom of their flex column. */
.disabled-control-proxy:has(> .btp-scheme-add-button) {
    width: 100%;
    min-height: 40px;
    height: 40px;
    flex: 0 0 40px;
    margin-top: auto;
}

:is(button, a, [role="button"])[aria-disabled="true"][data-disabled-reason] {
    pointer-events: auto;
}

.disabled-control-proxy > :disabled[aria-disabled="true"][data-disabled-reason] {
    pointer-events: none;
}

.disabled-control-proxy:focus-visible {
    outline: 3px solid #2563eb;
    outline-offset: 3px;
}

.disabled-control-description {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

:is(button, input, a, [role="button"])[aria-busy="true"],
input[aria-busy="true"]:disabled,
[aria-busy="true"] :is(button, input, a)[aria-disabled="true"],
:is([aria-busy="true"], .is-busy) :is(button, input):disabled {
    cursor: progress;
}
