/* O estado inválido abrange também os elementos laterais do mesmo campo. */
.input-group:has(.is-invalid, .border-error) > .input-group-text,
.input-group:has(.is-invalid, .border-error) > .btn,
.input-group:has(.is-invalid, .border-error) > .bootstrap-select > .dropdown-toggle {
    border-color: var(--b-border-color-danger, #dc3545) !important;
}

/* Mesmo posicionamento das mensagens dos restantes selects do backoffice. */
#ent-edificio-error {
    left: 10px;
    top: 61px;
}

.required-field-indicator { color: var(--bs-danger, #dc3545); margin-inline-start: .2em; }

/* Os controlos nativos desativados mantêm o bloqueio e permitem ver a razão. */
:is(button,input[type="button"],input[type="submit"],input[type="reset"]):disabled,
:is(button,input[type="button"],input[type="submit"],input[type="reset"]):disabled:hover{
    background-color:#f1f3f5!important;border-color:#dfe3e6!important;color:#a3aab1!important;
    opacity:1!important;cursor:not-allowed!important;pointer-events:auto!important;box-shadow:none!important;
}
button:disabled *{color:inherit!important;cursor:inherit!important;pointer-events:none}
