/* VALIDATION */

/* ensures yes/no buttons gets green formatting */
.was-validated :valid[type="radio"]+label {
    border-color: var(--bs-form-valid-color);
}

/* ensures yes/no buttons get red formatting when incomplete */
.was-validated :invalid[type="radio"]+label {
    border-color: var(--bs-form-invalid-color);
}

.is-invalid>* {
    border-color: var(--bs-form-invalid-color) !important;
}

.is-invalid+.invalid-feedback {
    display: block;
}

.is-valid>* {
    border-color: var(--bs-form-valid-color) !important;
    transition: border-color 1s ease;
}

.is-pending {
    border: 1px solid var(--bs-teal);
    animation: pulseBorder 3s infinite ease-in-out;
}

@keyframes pulseBorder {
    0% {
        border-color: var(--bs-teal);
    }

    50% {
        border-color: #c0e3d3;
    }

    100% {
        border-color: var(--bs-teal);
    }
}

.row-success {
    border-bottom: 1px solid var(--bs-form-valid-color);
    transition: background-color 1s ease;
}