- libelles de toast generiques passes en i18n (errors.title/generic/unknown,
success.title) dans useFormErrors, useApi et useCategoryForm
- nouveau composable useClientFormErrors : factorise l'etat d'erreurs
(3 useFormErrors scalaires + 3 tableaux par ligne + mapRowError) partage
entre clients/new.vue et [id]/edit.vue
- mapRowError retourne un booleen et ne toaste plus : chaque page garde son
fallback (toast generique en creation, showError en edition)