.form-builder.validation-attempted input:invalid,
.form-builder.validation-attempted select:invalid,
.form-builder.validation-attempted textarea:invalid {
    border-color: #dc3545 !important;
    outline: 2px solid #dc3545;
    outline-offset: 2px;
}
.form-builder-submit-status { margin: 1rem 0; }
.form-builder-submit-status[role="alert"] { color: #b02a37; }
.form-builder-overlay {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: grid;
    place-items: center;
    background: rgba(0, 0, 0, .65);
}
.form-builder-overlay[hidden] { display: none; }
.form-builder-overlay-panel {
    background: #fff;
    color: #212529;
    padding: 2rem;
    border-radius: .75rem;
    max-width: 90vw;
    text-align: center;
    box-shadow: 0 .5rem 2rem rgba(0, 0, 0, .3);
}
.form-builder-spinner {
    display: inline-block;
    width: 2.5rem;
    height: 2.5rem;
    border: .25rem solid #dee2e6;
    border-top-color: #0d6efd;
    border-radius: 50%;
    animation: form-builder-spin .8s linear infinite;
}
@keyframes form-builder-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .form-builder-spinner { animation-duration: 2s; }
}
