.form-dynamic {
    width: 100%;
}

.form-field {
    position: relative;
}

.form-field.is-hidden {
    display: none;
}

.form-field .form-label {
    font-weight: 600;
}

.form-field .form-text {
    display: block;
}

.form-field.has-error .form-control,
.form-field.has-error .form-select,
.form-field.has-error .form-check-input {
    border-color: #dc3545;
}

.form-field .invalid-feedback {
    display: none;
    color: #dc3545;
    font-size: 0.875rem;
}

.form-field.has-error .invalid-feedback {
    display: block;
}

.form-check-stack .form-check {
    margin-bottom: 0.25rem;
}

.form-check-stack .form-check:last-child {
    margin-bottom: 0;
}

.form-actions {
    display: flex;
    justify-content: flex-start;
    gap: 0.75rem;
}

.form-feedback {
    display: none;
    font-size: 1rem;
    font-weight: 500;
    margin-top: 0;
}

.form-feedback.is-visible {
    display: block;
}

.form-feedback.form-feedback--success {
    color: #166534;
}

.form-feedback.form-feedback--error {
    color: #b91c1c;
}

@keyframes form-spinner-rotate {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.form-spinner-icon {
    animation: form-spinner-rotate 0.9s linear infinite;
}
