/* =============================================================
   SHARED FORM VALIDATION STYLES
   Used across all project forms.
   ============================================================= */

/* Input states */
.form-control.input-error,
.form-select.input-error {
    border-color: #ff4d4f !important;
    box-shadow: 0 0 0 3px rgba(255, 77, 79, 0.12) !important;
}

.form-control.input-success,
.form-select.input-success {
    border-color: #52c41a !important;
    box-shadow: 0 0 0 3px rgba(82, 196, 26, 0.12) !important;
}

/* Inline error message */
.val-error-msg {
    display: block;
    color: #ff4d4f;
    font-size: 0.78rem;
    margin-top: 0.3rem;
    min-height: 1rem;
    animation: valFadeIn 0.2s ease;
}

@keyframes valFadeIn {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Password strength bar */
.val-strength-bar {
    display: flex;
    gap: 4px;
    margin-top: 6px;
}

.val-seg {
    flex: 1;
    height: 4px;
    border-radius: 2px;
    background: #e0e0e0;
    transition: background 0.3s;
}

.val-strength-label {
    display: block;
    font-size: 0.75rem;
    margin-top: 4px;
    font-weight: 500;
    transition: color 0.3s;
}
