Introduces field-specific validation messages so toasts name the exact field and rule that failed instead of a catch-all "tous les champs sont requis".