/* Shared Bootstrap validation state, including custom auth controls.
 * The theme supplies the danger token. !important keeps focus borders from
 * hiding an error; removing is-invalid restores the original theme styles.
 */
input.is-invalid,
select.is-invalid,
textarea.is-invalid,
select.is-invalid + .select2-container .select2-selection {
    border-color: var(--bs-form-invalid-border-color, var(--bs-danger)) !important;
}

/* Reuse Bootstrap's invalid-focus ring for custom controls as well. */
input.is-invalid:focus,
select.is-invalid:focus,
textarea.is-invalid:focus,
select.is-invalid + .select2-container--focus .select2-selection {
    box-shadow: 0 0 0 var(--bs-focus-ring-width, .25rem)
        rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity, .25)) !important;
}
