.form-status {
    margin: 1rem 0;
    padding: 1rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
}

.form-status.error {
    background-color: rgba(220, 53, 69, 0.1);
    color: #dc3545;
    border: 1px solid #dc3545;
}

.form-status.success {
    background-color: rgba(40, 167, 69, 0.1);
    color: #28a745;
    border: 1px solid #28a745;
}

.form-status.loading {
    background-color: rgba(0, 123, 255, 0.1);
    color: #007bff;
    border: 1px solid #007bff;
}

.loading-spinner {
    display: inline-block;
    width: 1rem;
    height: 1rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spin 0.75s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.validation-error {
    color: #dc3545;
    font-size: 0.75rem;
    margin-top: 0.25rem;
}

input.invalid,
textarea.invalid {
    border-color: #dc3545;
    background-color: rgba(220, 53, 69, 0.05);
}

input.invalid:focus,
textarea.invalid:focus {
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}
