{
  "auth": {
    "title": "Bon retour",
    "subtitle": "Connectez-vous à votre espace de travail",
    "username_placeholder": "Identifiant ou email",
    "username_hint": "ex : alladoum.kone",
    "password_placeholder": "Mot de passe",
    "show_password": "Afficher",
    "hide_password": "Masquer",
    "submit": "Se connecter",
    "loading": "Connexion en cours…",
    "error_generic": "Identifiants incorrects. Veuillez réessayer.",
    "error_not_superuser": "Ce compte n'a pas les droits d'administration. Utilisez l'espace agent.",
    "forgot_password": "Mot de passe oublié ?",
    "session_revoked_title": "Session révoquée",
    "session_revoked_body": "Votre session a été révoquée par un administrateur. Veuillez vous reconnecter.",
    "session_expired_title": "Session expirée",
    "session_expired_body": "Votre session a expiré. Veuillez vous reconnecter.",
    "badge": "Plateforme de recouvrement",
    "heroTitle": "Piloter le recouvrement, autrement.",
    "heroSubtitle": "Gérez vos dossiers, débiteurs, clients et trésorerie depuis un espace centralisé, collaboratif et sécurisé.",
    "stat1Value": "98 %",
    "stat1Label": "Disponibilité",
    "stat2Value": "< 2 s",
    "stat2Label": "Temps de réponse",
    "stat3Value": "256-bit",
    "stat3Label": "Chiffrement",
    "footerNote": "ACX Collections — Accès réservé aux agents et administrateurs autorisés."
  },
  "dashboard": {
    "title": "Tableau de bord",
    "subtitle": "Vue d’ensemble — indicateurs, tendances et répartition.",
    "range": "Période",
    "kpi": {
      "cases": "Dossiers",
      "debtors": "Débiteurs",
      "customers": "Clients",
      "payments": "Paiements",
      "total": "Dossiers total",
      "open": "Ouverts",
      "inProgress": "En cours",
      "overdue": "En retard",
      "recoveryRate": "Taux recouvrement",
      "sub": {
        "allStatuses": "Tous statuts",
        "toProcess": "À traiter",
        "inProcessing": "En traitement",
        "overdue": "Date dépassée",
        "active": "Actifs",
        "referenced": "Référencés"
      }
    },
    "widgets": {
      "trends": "Tendance des dossiers",
      "pipeline": "Pipeline (statuts)",
      "portfolio": "Portefeuilles",
      "channel": "Canaux de communication",
      "productivity": "Productivité équipe",
      "alerts": "Alertes & activités"
    },
    "labels": {
      "open": "Ouvert",
      "inProgress": "En cours",
      "onHold": "En attente",
      "closed": "Clôturé",
      "opened": "Ouverts",
      "closedChart": "Clôturés",
      "amount": "Montant (M)"
    },
    "cta": {
      "filter": "Filtrer"
    },
    "hints": {
      "vsPrevious": "vs période précédente",
      "trendsSub": "Ouvertures vs clôtures + montant (M)",
      "pipelineSub": "Répartition par statut",
      "portfolioSub": "Dossiers par portefeuille",
      "channelSub": "Répartition des interactions",
      "productivitySub": "Qualité & exécution",
      "alertsSub": "Événements récents",
      "today": "Aujourd’hui"
    },
    "activity": {
      "case_created": "Nouveau dossier créé",
      "case_created_desc": "ACX/TD/202512/0041 • Assigné à @pelba",
      "promise": "Promesse de paiement",
      "promise_desc": "Rappel planifié • 48h",
      "document": "Document ajouté",
      "document_desc": "Contrat • Dossier #128"
    },
    "greeting": {
      "morning": "Bonjour",
      "afternoon": "Bon après-midi",
      "evening": "Bonsoir"
    },
    "header": {
      "subtitle": "Tableau de bord — recouvrement & activité",
      "refresh": "Actualiser",
      "viewCases": "Dossiers"
    },
    "shortcuts": {
      "cases": "Dossiers",
      "customers": "Clients",
      "portfolios": "Portefeuilles",
      "treasury": "Trésorerie"
    },
    "charts": {
      "trends": {
        "title": "Évolution des dossiers",
        "subtitle": "Ouverts vs clôturés par mois",
        "opened": "Ouverts",
        "closed": "Clôturés"
      },
      "status": {
        "title": "Répartition statuts",
        "subtitle": "Dossiers par statut",
        "total": "{total} dossiers"
      },
      "gauge": {
        "title": "Performance",
        "subtitle": "Taux de recouvrement",
        "goal": "objectif 70 %",
        "portfolio": "Portefeuille (XAF)",
        "recovered": "Récupéré (XAF)"
      },
      "priority": {
        "title": "Priorités actives",
        "subtitle": "Dossiers non clôturés",
        "cases": "Dossiers"
      },
      "recent": {
        "title": "Dossiers récents",
        "subtitle": "Les 7 derniers",
        "viewAll": "Tout voir",
        "empty": "Aucun dossier pour le moment"
      }
    },
    "table": {
      "reference": "Référence",
      "debtor": "Débiteur",
      "portfolio": "Portefeuille",
      "balance": "Solde dû",
      "status": "Statut",
      "priority": "Priorité",
      "dueDate": "Échéance"
    },
    "status": {
      "open": "Ouvert",
      "in_progress": "En cours",
      "on_hold": "En attente",
      "closed": "Clôturé"
    },
    "priority": {
      "low": "Faible",
      "medium": "Moyen",
      "high": "Élevé",
      "urgent": "Urgent"
    },
    "empty": {
      "cases": "Aucun dossier pour le moment",
      "data": "Aucune donnée"
    },
    "currency": {
      "all": "Toutes devises",
      "mixed": "mixte"
    }
  },
  "tenants": {
    "title": "Tenants",
    "subtitle": "Gérer les organisations (création, suspension, plan).",
    "list_title": "Liste des tenants",
    "loading": "Chargement...",
    "empty": "Aucun tenant pour le moment.",
    "create": "Créer un tenant",
    "edit": "Modifier",
    "delete": "Supprimer",
    "confirm_delete": "Confirmer la suppression du tenant ?",
    "create_title": "Nouveau tenant",
    "edit_title": "Modifier le tenant",
    "close": "Fermer",
    "cancel": "Annuler",
    "save": "Enregistrer",
    "saving": "Enregistrement...",
    "status": {
      "active": "Actif",
      "suspended": "Suspendu"
    },
    "cols": {
      "name": "Nom",
      "country": "Pays",
      "status": "Statut",
      "plan": "Plan",
      "actions": "Actions"
    },
    "fields": {
      "name": "Nom du tenant",
      "status": "Statut",
      "plan": "Plan",
      "country": "Pays",
      "city": "Ville",
      "postal_code": "Code postal",
      "address1": "Adresse (ligne 1)",
      "address2": "Adresse (ligne 2)",
      "phone": "Téléphone",
      "email": "Email",
      "website": "Site web",
      "timezone": "Fuseau horaire",
      "currency": "Devise"
    },
    "actions": {
      "edit": "Modifier",
      "delete": "Supprimer"
    }
  },
  "users": {
    "title": "Utilisateurs",
    "subtitle": "Gérer les utilisateurs de la plateforme (plateforme & tenants).",
    "create": "Créer",
    "edit": "Modifier",
    "delete": "Supprimer",
    "close": "Fermer",
    "save": "Enregistrer",
    "saving": "Enregistrement...",
    "loading": "Chargement...",
    "search": "Rechercher (username, email...)",
    "empty": "Aucun utilisateur.",
    "count": "{count} utilisateur(s)",
    "confirm_delete": "Confirmer la suppression ?",
    "hint": "Créer un compte et définir ses privilèges.",
    "cols": {
      "username": "Username",
      "email": "Email",
      "role": "Rôle",
      "status": "Statut",
      "actions": "Actions"
    },
    "roles": {
      "super_admin": "Super Admin",
      "admin": "Admin",
      "user": "Utilisateur"
    },
    "status": {
      "active": "Actif",
      "disabled": "Désactivé"
    },
    "fields": {
      "username": "Username",
      "email": "Email",
      "first_name": "Prénom",
      "last_name": "Nom",
      "password": "Mot de passe",
      "password_optional": "Mot de passe (laisser vide pour ne pas changer)",
      "is_active": "Actif",
      "is_staff": "Admin",
      "is_superuser": "Super Admin"
    },
    "create_title": "Créer un utilisateur",
    "create_subtitle": "Renseigne les informations et le mot de passe.",
    "edit_title": "Modifier l'utilisateur",
    "edit_subtitle": "Tu peux aussi changer ses privilèges.",
    "errors": {
      "required": "Veuillez renseigner username et email.",
      "password_required": "Le mot de passe est obligatoire à la création."
    }
  },
  "membership": {
    "manage": "Gérer les tenants",
    "title": "Tenants de {username}",
    "subtitle": "Associer cet utilisateur à un ou plusieurs tenants et définir ses rôles.",
    "loading": "Chargement...",
    "saving": "Sauvegarde...",
    "close": "Fermer",
    "add": "Ajouter un tenant",
    "select_tenant": "Sélectionner un tenant",
    "add_btn": "Ajouter",
    "errors": {
      "select_tenant": "Veuillez sélectionner un tenant."
    },
    "roles": "Rôles",
    "flags": "Options",
    "is_owner": "Propriétaire du tenant",
    "owner_hint": "Le propriétaire peut être considéré comme l’admin principal du tenant.",
    "current": "Associations actuelles",
    "empty": "Aucune association tenant pour cet utilisateur.",
    "membership_status": "Statut",
    "owner": "Owner",
    "not_owner": "Non-owner",
    "status": {
      "active": "Actif",
      "invited": "Invité",
      "suspended": "Suspendu"
    },
    "save": "Enregistrer",
    "delete": "Supprimer",
    "confirm_delete": "Supprimer cette association ?",
    "save_hint": "Après changement des rôles/statut, clique sur l’icône crayon pour enregistrer."
  },
  "security": {
    "title": "Sécurité & rôles",
    "subtitle": "RBAC, audit et sessions actives.",
    "tab_access": "Accès & rôles",
    "tab_audit": "Audit",
    "tab_sessions": "Sessions",
    "create": "Ajouter un accès",
    "edit": "Modifier",
    "delete": "Supprimer",
    "save": "Enregistrer",
    "cancel": "Annuler",
    "actions": "Actions",
    "loading": "Chargement…",
    "roles_title": "Rôles disponibles",
    "memberships_title": "Accès (memberships)",
    "tenant": "Tenant",
    "user": "Utilisateur",
    "roles": "Rôles",
    "status": "Statut",
    "owner": "Owner",
    "active": "Actif",
    "invited": "Invité",
    "suspended": "Suspendu",
    "empty_memberships": "Aucun résultat.",
    "modal_help": "Définissez l’accès d’un utilisateur à un tenant (rôles + statut).",
    "refresh": "Rafraîchir",
    "filters": {
      "all_tenants": "Tous les tenants",
      "all_status": "Tous les statuts",
      "search_placeholder": "Rechercher (tenant, user, email)…"
    },
    "audit": {
      "title": "Audit log",
      "subtitle": "Traçabilité des actions d’administration (qui a fait quoi, quand).",
      "search_placeholder": "Rechercher (acteur, action, cible)…",
      "actor": "Acteur",
      "action": "Action",
      "target": "Cible",
      "tenant": "Tenant",
      "time": "Date",
      "empty": "Aucune activité."
    },
    "sessions": {
      "title": "Sessions actives",
      "subtitle": "Visualisez et révoquez des sessions (déconnexion forcée).",
      "device": "Appareil",
      "ip": "IP",
      "last_seen": "Dernière activité",
      "revoke": "Révoquer",
      "revoke_all": "Révoquer toutes les sessions",
      "empty": "Aucune session active."
    },
    "confirm_delete_membership": "Supprimer cet accès ?",
    "confirm_revoke_session": "Révoquer cette session ?",
    "confirm_revoke_all": "Révoquer toutes les sessions de la plateforme ?",
    "errors": {
      "generic": "Erreur",
      "required_tenant_user": "Tenant et utilisateur obligatoires."
    }
  },
  "admin": {
    "documents": {
      "title": "Documents",
      "subtitle": "Vue globale des documents déposés sur la plateforme.",
      "kpi_total": "Documents total",
      "kpi_tenants": "Tenants concernés",
      "loading": "Chargement…",
      "by_tenant_title": "Par tenant",
      "by_tenant_col_name": "Tenant",
      "by_tenant_col_count": "Documents",
      "recent_title": "Documents récents",
      "recent_col_title": "Titre",
      "recent_col_type": "Type",
      "recent_col_case": "Dossier",
      "recent_col_tenant": "Tenant",
      "recent_col_by": "Déposé par",
      "recent_col_date": "Date",
      "recent_empty": "Aucun document pour le moment.",
      "templates_title": "Modèles de recouvrement",
      "templates_subtitle": "Documents types à usage des agents pour les procédures de recouvrement.",
      "download": "Télécharger",
      "coming_soon": "Bientôt",
      "doc_type": {
        "contract": "Contrat",
        "invoice": "Facture",
        "letter": "Courrier",
        "id": "Pièce d'identité",
        "other": "Autre"
      },
      "add_template": "Nouveau modèle",
      "modal_create_title": "Créer un modèle",
      "modal_edit_title": "Modifier le modèle",
      "field_title": "Titre",
      "field_description": "Description",
      "field_category": "Catégorie",
      "field_file": "Fichier",
      "field_file_hint": "PDF, Word, Excel, Image…",
      "field_file_replace": "Nouveau fichier (optionnel — laissez vide pour conserver l'actuel)",
      "no_templates": "Aucun modèle de document. Créez-en un pour commencer.",
      "confirm_delete_title": "Supprimer ce modèle ?",
      "confirm_delete_body": "Cette action est irréversible. Le fichier sera définitivement supprimé.",
      "tpl_col_title": "Titre",
      "tpl_col_category": "Catégorie",
      "tpl_col_file": "Fichier",
      "tpl_col_by": "Créé par",
      "tpl_col_updated": "Modifié le",
      "categories": {
        "amiable": "Amiable",
        "juridique": "Juridique",
        "accord": "Accord",
        "paiement": "Paiement",
        "autre": "Autre"
      }
    },
    "menu": {
      "dashboard": "Tableau de bord",
      "tenants": "Tenants",
      "users": "Utilisateurs",
      "security": "Sécurité & Rôles",
      "documents": "Documents",
      "communications": "Communications",
      "reporting": "Reporting",
      "integrations": "Intégrations",
      "settings": "Paramètres"
    },
    "reporting": {
      "title": "Reporting plateforme",
      "subtitle": "Vue globale des activités de recouvrement sur tous les tenants.",
      "kpi_tenants": "Tenants",
      "kpi_active": "actifs",
      "kpi_suspended": "suspendus",
      "top_tenants": "Top tenants par volume de dossiers"
    },
    "settings": {
      "title": "Paramètres",
      "subtitle": "Gérez votre profil et la configuration globale de la plateforme.",
      "loading": "Chargement…",
      "save": "Enregistrer",
      "saving": "Enregistrement…",
      "profile_title": "Mon profil",
      "profile_first_name": "Prénom",
      "profile_last_name": "Nom",
      "profile_email": "Adresse email",
      "profile_username": "Identifiant",
      "profile_username_taken": "Ce nom d'utilisateur est déjà utilisé par un autre compte.",
      "profile_saved": "Profil mis à jour.",
      "pwd_title": "Changer le mot de passe",
      "pwd_new": "Nouveau mot de passe",
      "pwd_confirm": "Confirmer le mot de passe",
      "pwd_mismatch": "Les mots de passe ne correspondent pas.",
      "pwd_saved": "Mot de passe mis à jour.",
      "pwd_change_btn": "Changer le mot de passe",
      "platform_title": "Paramètres de la plateforme",
      "platform_name": "Nom de la plateforme",
      "platform_support_email": "Email de support",
      "platform_currency": "Devise par défaut",
      "platform_language": "Langue par défaut",
      "platform_timezone": "Fuseau horaire",
      "platform_saved": "Paramètres enregistrés.",
      "security_title": "Politique de sécurité",
      "sec_jwt_access": "Durée du token d'accès",
      "sec_jwt_refresh": "Durée du token de rafraîchissement",
      "sec_pwd_min": "Longueur minimale du mot de passe",
      "sec_sessions": "Gestion des sessions",
      "sec_sessions_hint": "Voir l'onglet Sécurité",
      "sec_manage_hint": "Pour révoquer des sessions actives ou configurer les rôles, rendez-vous dans la section Sécurité."
    },
    "integrations": {
      "title": "Intégrations",
      "subtitle": "Configurez les canaux de communication et les accès API de la plateforme.",
      "loading": "Chargement…",
      "configured": "Configuré",
      "not_configured": "Non configuré",
      "active": "Actif",
      "inactive": "Inactif",
      "revoked": "Révoqué",
      "save": "Enregistrer",
      "saving": "Enregistrement…",
      "saved": "Configuration enregistrée.",
      "sending": "Envoi…",
      "email_title": "Email SMTP",
      "email_host": "Serveur",
      "email_port": "Port",
      "email_user": "Utilisateur",
      "email_tls": "Sécurité",
      "email_test_placeholder": "Adresse de destination pour le test",
      "email_test_btn": "Envoyer un test",
      "sms_title": "SMS Provider",
      "sms_provider": "Fournisseur",
      "sms_sender_id": "Identifiant expéditeur",
      "sms_api_key": "Clé API",
      "sms_api_secret": "Secret API",
      "sms_active": "Activer le canal SMS",
      "sms_provider_twilio": "Twilio",
      "sms_provider_orange": "Orange API",
      "sms_provider_mtn": "MTN API",
      "sms_provider_aws": "AWS SNS",
      "sms_provider_other": "Autre",
      "apikeys_title": "Clés API",
      "apikeys_active_count": "clés actives",
      "apikeys_select_tenant": "Sélectionner un tenant…",
      "apikeys_label_placeholder": "Label (ex : Intégration CRM)",
      "apikeys_generate": "Générer",
      "apikeys_new_warning": "Copiez cette clé maintenant — elle ne sera plus affichée.",
      "apikeys_dismiss": "J'ai copié la clé",
      "apikeys_empty": "Aucune clé API pour le moment.",
      "apikeys_col_tenant": "Tenant",
      "apikeys_col_label": "Label",
      "apikeys_col_prefix": "Préfixe",
      "apikeys_col_status": "Statut",
      "apikeys_col_created": "Créé le",
      "apikeys_revoke": "Révoquer cette clé"
    },
    "communications": {
      "title": "Communications",
      "subtitle": "Messages directs avec les tenants.",
      "loading": "Chargement…",
      "no_tenants": "Aucune conversation pour le moment.",
      "no_messages_yet": "Pas encore de message. Commencez la conversation.",
      "you": "Vous",
      "placeholder": "Votre message… (Entrée pour envoyer)",
      "send_hint": "Entrée pour envoyer · Maj+Entrée pour saut de ligne.",
      "thread_title": "Conversation avec le tenant",
      "attach": "Joindre un fichier",
      "file_attached": "Fichier joint",
      "download": "Télécharger",
      "delete_msg": "Supprimer le message",
      "confirm_delete": "Supprimer ce message ?"
    },
    "license": {
      "tab": "Licence",
      "no_license": "Aucune licence configurée.",
      "no_license_hint": "Créez une licence pour contrôler l acces de ce tenant.",
      "status_active": "Active",
      "status_expired": "Expirée",
      "status_inactive": "Désactivée",
      "days_left": "{n} jour(s) restant(s)",
      "plan_annual": "Annuel",
      "plan_lifetime": "À vie",
      "starts_at": "Début",
      "expires_at": "Expiration",
      "form_title_create": "Créer une licence",
      "form_title_edit": "Modifier la licence",
      "plan_label": "Formule",
      "notes_label": "Notes internes",
      "save": "Enregistrer",
      "saving": "Enregistrement…",
      "saved": "Licence enregistrée.",
      "delete": "Supprimer la licence",
      "confirm_delete": "Supprimer la licence de ce tenant ?",
      "deleted": "Licence supprimée."
    },
    "export": {
      "title": "Export des données",
      "subtitle": "Téléchargez toutes les données du tenant au format CSV (archive ZIP).",
      "btn": "Télécharger l export",
      "exporting": "Préparation…",
      "success": "Export téléchargé.",
      "error": "Erreur lors de l export."
    }
  },
  "common": {
    "admin_area": "ACX • Admin",
    "logout": "Déconnexion",
    "close": "Fermer",
    "cancel": "Annuler",
    "save": "Enregistrer",
    "create": "Créer",
    "enabled": "Activé",
    "disabled": "Désactivé",
    "search": "Rechercher",
    "edit": "Modifier",
    "delete": "Supprimer",
    "loading": "Chargement…",
    "actions": "Actions",
    "saving": "Enregistrement…",
    "back": "Retour"
  },
  "tenant": {
    "topbar": {
      "workspace": "Espace tenant",
      "search_placeholder": "Rechercher…"
    },
    "sidebar": {
      "workspace_label": "Espace de travail",
      "app_name": "ACX Collections",
      "tip_label": "Astuce",
      "tip_body": "Consultez Rapports pour suivre la performance."
    },
    "membership_status": {
      "invited": "Invité",
      "active": "Actif",
      "suspended": "Suspendu"
    },
    "roles": {
      "role_1": "Personnel entreprise",
      "role_2": "Personnel ACREMAC",
      "role_3": "Administrateur entreprise",
      "role_4": "Administrateur",
      "role_5": "Responsable Pays"
    },
    "menu": {
      "dashboard": "Tableau de bord",
      "portfolio": "Portefeuille",
      "customers": "Clients",
      "creditors": "Créanciers",
      "debtors": "Débiteurs",
      "cases": "Dossiers",
      "promises": "Promesses",
      "tasks": "Tâches",
      "payments": "Paiements",
      "communications": "Communications",
      "documents": "Documents",
      "reports": "Rapports",
      "settings": "Paramètres",
      "team": "Équipe",
      "treasury": "Trésorerie",
      "support": "Support",
      "mail_inbox": "Demandes clients"
    },
    "team": {
      "title": "Équipe",
      "subtitle": "Gérez les utilisateurs du tenant : profil, activation, rôles, et retrait du workspace.",
      "create_button": "+ Créer un utilisateur",
      "table_title": "Utilisateurs",
      "total": "Total : {count}",
      "loading": "Chargement…",
      "empty": "Aucun utilisateur.",
      "dash": "—",
      "cols": {
        "user": "Utilisateur",
        "email": "Email",
        "phone": "Téléphone",
        "department": "Département",
        "status": "Statut",
        "roles": "Rôles",
        "actions": "Actions"
      },
      "actions": {
        "edit": "Éditer",
        "roles": "Rôles",
        "countries": "Pays",
        "activate": "Activer",
        "deactivate": "Désactiver",
        "remove": "Retirer"
      },
      "owner_badge": "owner",
      "membership_status_tooltip": "Statut du membership (tenant)",
      "tooltips": {
        "owner_blocked": "Owner : action bloquée"
      },
      "fields": {
        "username": "Username",
        "email": "Email",
        "first_name": "Prénom",
        "last_name": "Nom",
        "telephone": "Téléphone",
        "departement": "Département",
        "password_optional": "Mot de passe (optionnel)",
        "password_reset": "Nouveau mot de passe (vide = inchangé)"
      },
      "roles_block_title": "Rôles",
      "membership_block_title": "Statut du membership",
      "owner_membership_hint": "Owner : le statut du membership ne peut pas être changé.",
      "modals": {
        "create_title": "Créer un utilisateur",
        "create_subtitle": "Créer un compte et l’associer au tenant.",
        "edit_title": "Modifier l’utilisateur",
        "roles_title": "Rôles & statut",
        "roles_subtitle": "Gérer les rôles / statut du membership pour @{username}",
        "countries_title": "Pays assignés",
        "countries_subtitle": "Gérer les pays de @{username}"
      },
      "busy": {
        "creating": "Création…",
        "saving": "Enregistrement…"
      },
      "confirm_remove": "Retirer \"{username}\" du tenant ?\\n\\nCela supprime uniquement son membership (l'utilisateur reste en base).",
      "errors": {
        "load": "Erreur lors du chargement.",
        "create": "Erreur lors de la création.",
        "update": "Erreur lors de la mise à jour.",
        "toggle": "Erreur lors de l'activation/désactivation.",
        "membership_update": "Erreur lors de la mise à jour des rôles/statut.",
        "remove": "Erreur lors du retrait.",
        "remove_owner": "Impossible de retirer le propriétaire (owner) du tenant.",
        "required_username_email": "Username et email sont obligatoires.",
        "email_required": "Email est obligatoire."
      },
      "roles": {
        "5": "Responsable Pays"
      }
    }
  },
  "portfolios": {
    "title": "Portefeuilles",
    "subtitle": "Gérez les portefeuilles de dossiers.",
    "new": "Nouveau portefeuille",
    "search_placeholder": "Rechercher un portefeuille…",
    "name": "Nom",
    "description": "Description",
    "status": "Statut",
    "created": "Créé le",
    "empty": "Aucun portefeuille.",
    "active": "Actif",
    "inactive": "Inactif",
    "is_active": "Actif",
    "confirm_delete": "Supprimer ce portefeuille ?",
    "name_required": "Le nom est obligatoire.",
    "fields": {
      "code": "Code",
      "category": "Catégorie",
      "priority": "Priorité",
      "default_currency": "Devise par défaut",
      "owner": "Responsable",
      "internal_notes": "Notes internes",
      "archived": "Archivé"
    },
    "priority": {
      "low": "Faible",
      "medium": "Moyenne",
      "high": "Élevée"
    },
    "kpi": {
      "total": "Portefeuilles",
      "active": "Actifs",
      "high_priority": "Haute priorité",
      "total_cases": "Dossiers total"
    },
    "header_subtitle": "Gérez et suivez vos portefeuilles de dossiers",
    "actions": {
      "open": "Ouvrir",
      "archive": "Archiver",
      "restore": "Restaurer"
    },
    "filters": {
      "all": "Tous",
      "active": "Actifs",
      "inactive": "Inactifs",
      "all_priorities": "Toutes priorités",
      "reset": "Réinitialiser",
      "filters_btn": "Filtres",
      "all_currencies": "Toutes devises",
      "all_owners": "Tous responsables",
      "label_priority": "Priorité",
      "label_currency": "Devise",
      "label_owner": "Responsable",
      "search_btn": "Rechercher"
    },
    "no_results": "Aucun résultat",
    "empty_create": "Aucun portefeuille — créez-en un pour commencer",
    "table": {
      "portfolio_col": "Portefeuille",
      "status_col": "Statut",
      "priority": "Priorité",
      "code": "Code",
      "cases": "Dossiers",
      "balance_col": "Solde",
      "owner_col": "Responsable",
      "created_col": "Créé le",
      "open": "Ouverts",
      "overdue": "En retard"
    },
    "modals": {
      "create_title": "Créer un portefeuille",
      "edit_title": "Modifier le portefeuille",
      "subtitle": "Informations du portefeuille (code, priorité, devise, responsable…)."
    },
    "modal": {
      "create_title": "Nouveau portefeuille",
      "edit_title": "Modifier le portefeuille",
      "subtitle": "Renseignez les informations du portefeuille",
      "name_label": "Nom",
      "code_label": "Code",
      "priority_label": "Priorité",
      "currency_label": "Devise",
      "owner_label": "Responsable",
      "category_label": "Catégorie",
      "description_label": "Description",
      "notes_label": "Notes internes",
      "notes_hint": "visibles agents seulement",
      "active_label": "Portefeuille actif",
      "active_hint": "Un portefeuille inactif reste visible mais ne reçoit plus de nouveaux dossiers",
      "none": "Aucun",
      "cancel": "Annuler",
      "saving": "Enregistrement…",
      "save": "Enregistrer"
    },
    "detail": {
      "breadcrumb": "Portefeuilles",
      "loading": "Chargement…",
      "active": "Actif",
      "inactive": "Inactif",
      "owner_prefix": "Resp.",
      "status": {
        "open": "Ouvert",
        "in_progress": "En cours",
        "on_hold": "En attente",
        "closed": "Clôturé"
      },
      "priority": {
        "low": "Faible",
        "medium": "Moyen",
        "high": "Élevée",
        "urgent": "Urgent"
      },
      "kpi": {
        "total": "Dossiers",
        "active": "En cours",
        "urgent": "Urgents",
        "unassigned": "Non assignés"
      },
      "analytics": {
        "recovery_gauge": "Taux de recouvrement global",
        "recovered_label": "recouvré",
        "total_due": "Montant total dû",
        "recovered": "Recouvré",
        "balance": "Solde restant",
        "status_breakdown": "Répartition par statut",
        "agent_perf": "Performance par agent",
        "no_agents": "Aucun agent assigné",
        "case_count": "{count} dossier",
        "case_count_plural": "{count} dossiers",
        "alert_critical": "Taux de recouvrement critique : {pct}% — action urgente requise",
        "alert_warning": "Taux de recouvrement à améliorer : {pct}%",
        "alert_ok": "Bonne performance : {pct}% de taux de recouvrement",
        "alert_unassigned_one": "{count} dossier sans responsable assigné",
        "alert_unassigned_many": "{count} dossiers sans responsable assigné",
        "alert_urgent_one": "{count} dossier urgent à traiter en priorité",
        "alert_urgent_many": "{count} dossiers urgents à traiter en priorité",
        "alert_on_hold": "{count} dossiers en attente — à relancer",
        "status_open": "Ouverts",
        "status_in_progress": "En cours",
        "status_on_hold": "En attente",
        "status_closed": "Clôturés"
      },
      "table": {
        "search_placeholder": "Rechercher un dossier…",
        "all_statuses": "Tous statuts",
        "all_agents": "Tous agents",
        "unassigned": "Non assigné",
        "sort_pct_asc": "Tri : % croissant (moins recouvrés d'abord)",
        "sort_pct_desc": "Tri : % décroissant (mieux recouvrés)",
        "sort_amount_desc": "Tri : montant dû (plus élevé)",
        "sort_date": "Tri : date d'ouverture",
        "col_case": "Dossier / Débiteur",
        "col_status": "Statut",
        "col_priority": "Priorité",
        "col_owner": "Responsable",
        "col_due": "Montant dû",
        "col_collected": "Recouvré",
        "col_recovery": "Recouvrement",
        "col_due_date": "Échéance",
        "case_count": "{count} dossier",
        "case_count_plural": "{count} dossiers",
        "unassigned_cell": "Non assigné",
        "overdue_badge": "retard",
        "empty": "Aucun dossier dans ce portefeuille",
        "open_case": "Ouvrir le dossier"
      }
    },
    "tooltips": {
      "refresh": "Rafraîchir",
      "reset": "Réinitialiser"
    }
  },
  "clientPortal": {
    "common": {
      "loading": "Chargement…",
      "error": "Erreur",
      "logout": "Se déconnecter",
      "sessionExpired": "Session expirée. Veuillez vous reconnecter.",
      "refresh": "Rafraîchir",
      "subtitle": "Espace Client",
      "comingSoon": "Bientôt disponible",
      "back": "Retour"
    },
    "menu": {
      "title": "Navigation",
      "dashboard": "Dashboard",
      "cases": "Dossiers",
      "messages": "Messages",
      "support": "Support"
    },
    "sidebar": {
      "helpTitle": "Besoin d'aide ?",
      "helpBody": "Consultez notre FAQ ou ouvrez un ticket support.",
      "helpHint": "Support disponible"
    },
    "dashboard": {
      "title": "Tableau de bord",
      "subtitle": "Bienvenue sur votre Portail Client.",
      "customer": "Client",
      "role": "Rôle",
      "status": "Statut",
      "goToCases": "Accéder aux dossiers",
      "noAccessTitle": "Accès non autorisé",
      "noAccessBody": "Votre compte n’a pas accès au Portail Client. Contactez votre administrateur ou le support.",
      "backToLogin": "Retour à la connexion",
      "quickTitle": "Actions rapides",
      "quickSubtitle": "Accédez rapidement à vos modules",
      "cardCasesTitle": "Mes dossiers",
      "cardCasesBody": "Consulter vos dossiers, filtrer et ajouter des notes.",
      "cardMessagesTitle": "Messages",
      "cardMessagesBody": "Centre de communication.",
      "comingSoon": "Bientôt",
      "kpis": {
        "totalCases": "Dossiers",
        "totalCasesHint": "Total",
        "openCases": "Ouverts",
        "openCasesHint": "En traitement",
        "overdueCases": "Impayés",
        "overdueCasesHint": "À prioriser",
        "recovered": "Recouvrés",
        "recoveredHint": "Ce mois",
        "recoveryRate": "Taux",
        "recoveryRateHint": "Recouvrement"
      },
      "charts": {
        "amount": "Montant",
        "collected": "Collecté",
        "target": "Objectif",
        "gap": "Écart",
        "agingTitle": "Aging des créances",
        "agingSubtitle": "Répartition par tranches (jours)",
        "trendTitle": "Tendance recouvrement",
        "trendSubtitle": "Collecté vs objectif (mensuel)",
        "gaugeTitle": "Performance",
        "gaugeSubtitle": "Taux de recouvrement",
        "gaugeFoot": "Objectif : 70%+",
        "statusTitle": "Répartition des statuts",
        "statusSubtitle": "Ouverts / en cours / en attente / clôturés",
        "stackTitle": "Priorités par statut",
        "stackSubtitle": "Répartition des dossiers par priorité",
        "treemapTitle": "Top débiteurs",
        "treemapSubtitle": "Poids relatif (visuel)",
        "priority": {
          "low": "Faible",
          "medium": "Moyenne",
          "high": "Élevée",
          "urgent": "Urgent"
        },
        "status": {
          "open": "Ouvert",
          "in_progress": "En cours",
          "on_hold": "En attente",
          "closed": "Clôturé"
        }
      }
    },
    "cases": {
      "title": "Mes dossiers",
      "empty": "Aucun dossier trouvé.",
      "actions": {
        "new": "Nouveau dossier"
      },
      "filters": {
        "all": "Tous les statuts",
        "statusLabel": "Statut",
        "searchPlaceholder": "Rechercher (référence, titre, débiteur)…",
        "search": "Rechercher"
      },
      "status": {
        "open": "Ouvert",
        "in_progress": "En cours",
        "on_hold": "En attente",
        "closed": "Clôturé"
      },
      "priority": {
        "low": "Faible",
        "medium": "Moyenne",
        "high": "Élevée",
        "urgent": "Urgent"
      },
      "table": {
        "reference": "Référence",
        "title": "Titre",
        "status": "Statut",
        "balance": "Solde"
      }
    },
    "caseDetail": {
      "title": "Détail du dossier",
      "reference": "Référence",
      "titleLabel": "Titre",
      "status": "Statut",
      "priority": "Priorité",
      "dueDate": "Échéance",
      "balance": "Solde",
      "notes": "Commentaires",
      "addNotePlaceholder": "Ajouter un commentaire…",
      "addNote": "Envoyer",
      "noNotes": "Aucun commentaire.",
      "editTitle": "Modifier le dossier",
      "save": "Sauvegarder",
      "customerAssignedTo": "Responsable client",
      "tenantAssignedTo": "Responsable agent",
      "unassigned": "Non assigné"
    },
    "documents": {
      "title": "Documents",
      "empty": "Aucun document.",
      "confirmDelete": "Supprimer ce document ?",
      "fields": {
        "title": "Titre",
        "type": "Type",
        "file": "Choisir un fichier"
      },
      "actions": {
        "upload": "Uploader",
        "open": "Ouvrir",
        "replace": "Remplacer",
        "delete": "Supprimer"
      },
      "types": {
        "contract": "Contrat",
        "invoice": "Facture",
        "letter": "Courrier",
        "id": "Pièce d'identité",
        "other": "Autre"
      },
      "edit": {
        "title": "Modifier le document",
        "subtitle": "Mettez à jour les informations du document.",
        "newFile": "Nouveau fichier (optionnel)",
        "chooseFile": "Choisir un fichier",
        "hint": "Laissez vide pour conserver le fichier actuel.",
        "cancel": "Annuler",
        "save": "Sauvegarder"
      }
    },
    "notes": {
      "placeholder": "Ajouter un commentaire…",
      "confirmDelete": "Supprimer ce commentaire ?",
      "actions": {
        "send": "Envoyer"
      },
      "edit": {
        "title": "Modifier le commentaire",
        "subtitle": "Mettez à jour votre message.",
        "cancel": "Annuler",
        "save": "Sauvegarder"
      }
    },
    "messages": {
      "title": "Messages",
      "empty": "Aucun message pour le moment.",
      "thread": {
        "title": "Conversation",
        "placeholder": "Écrire un message…",
        "attach": "Joindre des fichiers",
        "send": "Envoyer",
        "edit": "Modifier",
        "delete": "Supprimer",
        "confirmDelete": "Supprimer ce message ?"
      },
      "subtitle": "Vos fils de discussion par dossier",
      "search": "Rechercher un dossier ou message…",
      "openCase": "Voir",
      "emptyHint": "Vous n’avez aucun message. Initiez une conversation depuis un dossier.",
      "actions": {
        "new": "Nouveau message",
        "search": "Rechercher",
        "goToCases": "Mes dossiers"
      },
      "filters": {
        "all": "Tous",
        "unread": "Non lus",
        "actionRequired": "Action requise"
      },
      "badges": {
        "unread": "Non lu",
        "actionRequired": "Action requise"
      },
      "new": {
        "title": "Nouveau message",
        "subtitle": "Sélectionnez le dossier auquel rattacher votre message.",
        "searchCases": "Rechercher un dossier…",
        "noCases": "Aucun dossier trouvé.",
        "cancel": "Annuler"
      }
    },
    "support": {
      "title": "Support",
      "subtitle": "Ouvrez un ticket et suivez la résolution.",
      "actions": {
        "newTicket": "Nouveau ticket"
      },
      "kpis": {
        "totalLabel": "Tickets",
        "totalHint": "Total",
        "openLabel": "Ouverts",
        "openHint": "En attente d’action",
        "inProgressLabel": "En cours",
        "inProgressHint": "Pris en charge"
      },
      "contact": {
        "title": "Contact",
        "emailLabel": "Email",
        "phoneLabel": "Téléphone"
      },
      "security": {
        "title": "Rappel sécurité",
        "body": "Ne partagez jamais de mot de passe ni de données sensibles. Joignez uniquement des documents lisibles (PDF, images, Office, TXT/CSV)."
      },
      "faq": {
        "title": "FAQ rapide",
        "access": {
          "q": "Je n’arrive pas à accéder au portail. Que faire ?",
          "a": "Ouvrez un ticket dans la catégorie « Accès / Compte » et indiquez votre identifiant et le message d’erreur."
        },
        "docs": {
          "q": "L’upload de document échoue.",
          "a": "Vérifiez le type et la taille du fichier (max 10MB/fichier). Privilégiez les PDF ou les images."
        },
        "cases": {
          "q": "Je ne vois pas mes dossiers.",
          "a": "Assurez-vous que votre accès est actif. Sinon, ouvrez un ticket en indiquant le nom de votre client."
        },
        "session": {
          "q": "Session expirée / déconnexions répétées.",
          "a": "Reconnectez-vous. Si le problème persiste, ouvrez un ticket avec l’heure exacte et votre navigateur."
        }
      },
      "myTickets": "Mes tickets",
      "filters": {
        "searchPlaceholder": "Rechercher par ID ou objet…",
        "allStatuses": "Tous les statuts",
        "search": "Rechercher"
      },
      "status": {
        "open": "Ouvert",
        "in_progress": "En cours",
        "waiting_customer": "En attente client",
        "resolved": "Résolu",
        "closed": "Fermé"
      },
      "priority": {
        "normal": "Normal",
        "urgent": "Urgent"
      },
      "category": {
        "access": "Accès / Compte",
        "cases": "Dossiers",
        "documents": "Documents",
        "payments": "Paiements",
        "other": "Autre"
      },
      "table": {
        "id": "ID",
        "subject": "Objet",
        "status": "Statut",
        "priority": "Priorité",
        "updated": "MAJ"
      },
      "empty": "Aucun ticket trouvé.",
      "new": {
        "title": "Nouveau ticket support",
        "subtitle": "Décrivez votre problème et joignez les documents utiles.",
        "fields": {
          "subject": "Objet",
          "subjectPlaceholder": "Ex : Impossible d’uploader un document",
          "caseId": "ID dossier lié (optionnel)",
          "category": "Catégorie",
          "priority": "Priorité",
          "message": "Message",
          "messagePlaceholder": "Décrivez le problème, les étapes, et le résultat attendu…"
        },
        "actions": {
          "attach": "Joindre des fichiers",
          "submit": "Soumettre le ticket"
        }
      },
      "ticket": {
        "title": "Ticket",
        "linkedCase": "Dossier lié",
        "close": "Fermer le ticket",
        "reopen": "Réouvrir le ticket",
        "replyTitle": "Répondre",
        "replyPlaceholder": "Écrire votre réponse…",
        "attach": "Joindre des fichiers",
        "send": "Envoyer",
        "noMessages": "Aucun message pour le moment.",
        "sideCustomer": "Client",
        "sideTenant": "Tenant",
        "sidePlatform": "ACX"
      }
    }
  },
  "clientPortalAuth": {
    "badge": "Portail Client Sécurisé",
    "title": "Bon retour",
    "subtitle": "Connectez-vous pour accéder à vos dossiers",
    "usernameLabel": "Identifiant ou email",
    "usernamePlaceholder": "ex : alladoum.kone ou alladoum@entreprise.com",
    "passwordLabel": "Mot de passe",
    "showPassword": "Afficher",
    "hidePassword": "Masquer",
    "signIn": "Se connecter",
    "signingIn": "Connexion en cours…",
    "forgot_password": "Mot de passe oublié ?",
    "credentialsRequired": "Veuillez renseigner vos identifiants.",
    "loginFailed": "Identifiants incorrects. Veuillez réessayer.",
    "heroTitle": "Pilotez votre recouvrement en toute clarté.",
    "heroSubtitle": "Un espace dédié pour suivre vos dossiers, mesurer l’avancement et rester en contact avec votre gestionnaire.",
    "feature1Title": "Vos dossiers en un coup d’œil",
    "feature1Body": "Consultez l’état, le solde et l’historique de chacun de vos dossiers à tout moment.",
    "feature2Title": "Échanges directs",
    "feature2Body": "Commentez, posez vos questions et suivez les réponses de votre gestionnaire en temps réel.",
    "feature3Title": "Support dédié",
    "feature3Body": "Ouvrez un ticket et obtenez une réponse rapide de notre équipe.",
    "note": "Accès réservé aux clients partenaires. Pour obtenir vos identifiants, contactez votre gestionnaire de compte.",
    "footerHint": "ACX Collections · Portail Client"
  },
  "collections": {
    "cases": {
      "title": "Recouvrement",
      "subtitle": "Suivi des dossiers, relances, promesses et paiements.",
      "tableTitle": "Dossiers",
      "empty": "Aucun dossier trouvé."
    },
    "caseDetail": {
      "title": "Détail dossier",
      "subtitle": "Timeline, actions et suivi du recouvrement.",
      "quickActions": "Actions rapides"
    },
    "kpis": {
      "totalCases": "Total dossiers",
      "overdue": "En retard",
      "lastSync": "Dernière mise à jour",
      "totalDue": "Total dû",
      "totalPaid": "Total payé",
      "balance": "Solde",
      "nextAction": "Prochaine action"
    },
    "filters": {
      "search": "Rechercher (référence, note...)",
      "statusAll": "Tous les statuts",
      "priorityAll": "Toutes les priorités",
      "overdue": "En retard"
    },
    "fields": {
      "nextAction": "Prochaine action",
      "balance": "Solde",
      "date": "Date",
      "status": "Statut",
      "method": "Méthode",
      "reference": "Référence"
    },
    "actions": {
      "newCase": "Nouveau dossier",
      "editCase": "Modifier",
      "call": "Appel",
      "sms": "SMS",
      "email": "Email",
      "promise": "Promesse",
      "payment": "Paiement"
    },
    "badges": {
      "overdue": "En retard"
    },
    "status": {
      "new": "Nouveau",
      "in_review": "Qualification",
      "preventive": "Préventif",
      "amicable": "Amiable",
      "pre_legal": "Pré-juridique",
      "legal": "Judiciaire",
      "disputed": "Litige",
      "settled": "Soldé",
      "closed": "Clos",
      "write_off": "Irrécouvrable"
    },
    "priority": {
      "low": "Faible",
      "medium": "Moyenne",
      "high": "Élevée"
    },
    "timeline": {
      "title": "Timeline",
      "empty": "Aucune action enregistrée."
    },
    "promises": {
      "defaultNote": "Promesse créée depuis l’interface.",
      "title": "Promesses",
      "empty": "Aucune promesse."
    },
    "payments": {
      "title": "Paiements",
      "empty": "Aucun paiement."
    },
    "actionType": {
      "call": "Appel",
      "sms": "SMS",
      "email": "Email",
      "visit": "Visite",
      "letter": "Courrier",
      "negotiation": "Négociation",
      "notice": "Mise en demeure",
      "lawyer": "Transfert avocat",
      "other": "Autre"
    },
    "quickActions": {
      "call": "Appel rapide",
      "sms": "SMS rapide",
      "email": "Email rapide"
    }
  },
  "treasury": {
    "title": "Trésorerie",
    "subtitle": "Suivi des entrées/sorties, transferts internes et sorties manuelles.",
    "tabs": {
      "journal": "Journal",
      "accounts": "Comptes",
      "remittances": "Reversements"
    },
    "actions": {
      "transfer": "Transfert",
      "newOutflow": "Nouvelle sortie",
      "refresh": "Rafraîchir",
      "loading": "Chargement...",
      "newAccount": "Nouveau compte",
      "resetFilters": "Réinitialiser",
      "cancel": "Annuler",
      "create": "Créer",
      "confirmTransfer": "Valider le transfert",
      "confirmOutflow": "Enregistrer la sortie",
      "close": "Fermer",
      "outflow": "Sortie",
      "setDefault": "Mettre défaut",
      "submit": "Valider"
    },
    "errors": {
      "load": "Erreur lors du chargement.",
      "accountNameRequired": "Le nom du compte est requis.",
      "createAccount": "Création impossible.",
      "updateAccount": "Mise à jour impossible.",
      "transferFromRequired": "Choisissez le compte source.",
      "transferToRequired": "Choisissez le compte destination.",
      "transferDifferentAccounts": "Le compte destination doit être différent du compte source.",
      "amountPositive": "Le montant doit être supérieur à 0.",
      "transferCurrencyMismatch": "Le transfert entre deux comptes de devises différentes n'est pas supporté.",
      "transferCreate": "Transfert impossible.",
      "accountRequired": "Le compte est requis.",
      "outflowCreate": "Création de la sortie impossible.",
      "generic": "Une erreur est survenue.",
      "selectAccounts": "Veuillez sélectionner les deux comptes.",
      "selectAccount": "Veuillez sélectionner un compte.",
      "amountInvalid": "Veuillez saisir un montant valide.",
      "updateFailed": "Mise à jour impossible."
    },
    "messages": {
      "accountCreated": "Compte créé.",
      "accountUpdated": "Compte mis à jour.",
      "transferCreated": "Transfert enregistré.",
      "outflowCreated": "Sortie enregistrée.",
      "loading": "Chargement…",
      "defaultUpdated": "Compte par défaut mis à jour.",
      "outflowDone": "Sortie enregistrée.",
      "transferDone": "Transfert enregistré."
    },
    "hints": {
      "needTwoAccounts": "Créez au moins deux comptes pour effectuer un transfert.",
      "needAccount": "Créez au moins un compte de trésorerie.",
      "debounced": "Les filtres sont appliqués automatiquement (léger délai)."
    },
    "kpis": {
      "currency": "Devise : {currency}",
      "net": "Solde net",
      "in": "Entrées",
      "out": "Sorties",
      "noData": "Aucune donnée.",
      "count": "{count} mouvements",
      "flux": "Flux · {currency} · {count} op."
    },
    "filters": {
      "search": "Recherche",
      "creditor": "Client",
      "debtor": "Débiteur",
      "direction": "Direction",
      "account": "Compte",
      "dateFrom": "Du",
      "dateTo": "Au",
      "all": "Tous",
      "case": "Dossier"
    },
    "placeholders": {
      "search": "Référence, libellé, dossier…",
      "creditor": "Nom du client…",
      "debtor": "Nom du débiteur…",
      "chooseAccount": "Choisir un compte",
      "reference": "Référence (optionnel)",
      "case": "Référence du dossier (ex: ACX/TD/...)"
    },
    "direction": {
      "all": "Toutes",
      "in": "Entrées",
      "out": "Sorties"
    },
    "account": {
      "all": "Tous",
      "default": "Défaut",
      "typeLabel": "Type : {type}"
    },
    "table": {
      "date": "Date",
      "direction": "Direction",
      "account": "Compte",
      "amount": "Montant",
      "creditor": "Client",
      "debtor": "Débiteur",
      "case": "Dossier",
      "label": "Libellé",
      "source": "Source",
      "reference": "Référence",
      "status": "Statut",
      "type": "Type"
    },
    "source": {
      "payment": "Paiement",
      "remittance": "Reversement client",
      "manual": "Manuel",
      "transfer": "Transfert interne",
      "other": "Autre"
    },
    "status": {
      "pending": "En attente",
      "confirmed": "Confirmé",
      "cancelled": "Annulé"
    },
    "tips": {
      "directCustomer": "Astuce : un paiement direct chez le client n’apparaît pas dans le journal de trésorerie (car l’argent ne transite pas par ACX), mais il impacte toujours le solde du dossier.",
      "journal": "Astuce : un paiement direct chez le client n’apparaît pas ici (car pas de trésorerie ACX), mais il impacte toujours le solde du dossier."
    },
    "accounts": {
      "title": "Comptes de trésorerie",
      "type": "Type",
      "currency": "Devise",
      "toggleDefaultHint": "Basculer compte par défaut",
      "makeDefault": "Mettre défaut",
      "totalAccounts": "Nombre de comptes",
      "default": "Défaut",
      "noAccounts": "Aucun compte. Créez un compte pour journaliser les mouvements.",
      "card": {
        "type": "Type",
        "currency": "Devise",
        "createdAt": "Créé le"
      },
      "setDefault": "Mettre défaut",
      "unsetDefault": "Défaut ✓",
      "balance": "Solde",
      "hint": "Astuce : le compte par défaut est utilisé automatiquement si aucun compte n’est sélectionné lors de l’enregistrement d’un mouvement.",
      "totalIn": "Total entrées",
      "totalOut": "Total sorties",
      "createHint": "Créer un compte →"
    },
    "empty": {
      "accounts": "Aucun compte. Créez un compte pour journaliser les encaissements ACX.",
      "movements": "Aucun mouvement."
    },
    "modals": {
      "account": {
        "title": "Nouveau compte",
        "subtitle": "Banque / caisse / mobile money (par tenant)."
      },
      "transfer": {
        "title": "Transfert interne",
        "subtitle": "Déplacer de l’argent d’un compte vers un autre (génère 2 mouvements)."
      },
      "outflow": {
        "title": "Nouvelle sortie",
        "subtitle": "Enregistrer une sortie manuelle (décaissement)."
      },
      "newAccount": {
        "subtitle": "Banque / caisse / mobile money (par tenant).",
        "title": "Nouveau compte"
      }
    },
    "fields": {
      "name": "Nom",
      "type": "Type",
      "currency": "Devise",
      "makeDefault": "Mettre par défaut",
      "fromAccount": "Compte source",
      "toAccount": "Compte destination",
      "amount": "Montant",
      "date": "Date",
      "reference": "Référence",
      "notes": "Notes",
      "account": "Compte",
      "label": "Libellé",
      "default": "Mettre par défaut"
    },
    "accountType": {
      "bank": "Banque",
      "cash": "Caisse",
      "mobile_money": "Mobile money",
      "other": "Autre"
    },
    "defaults": {
      "manualOutLabel": "Sortie manuelle",
      "defaultAccount": "défaut",
      "outflowLabel": "Décaissement (manuel)",
      "transferLabel": "Transfert interne"
    },
    "remittances": {
      "filters": {
        "status": "Statut",
        "search": "Recherche"
      },
      "placeholders": {
        "search": "Client, référence, note…",
        "customerSearch": "Rechercher un client…",
        "reference": "Référence bancaire / chèque / virement…"
      },
      "table": {
        "id": "ID",
        "customer": "Client",
        "account": "Compte",
        "total": "Total",
        "status": "Statut",
        "createdAt": "Créé le",
        "paidAt": "Payé le",
        "reference": "Référence",
        "actions": "Actions"
      },
      "actions": {
        "new": "Nouveau reversement",
        "view": "Voir",
        "addPayments": "Ajouter des paiements",
        "markPaid": "Marquer payé",
        "loading": "Chargement…",
        "validate": "Valider la remise",
        "validating": "Validation…",
        "confirmPaid": "Confirmer le paiement",
        "addEligible": "Ajouter des paiements éligibles",
        "cancel": "Annuler",
        "creating": "Création…"
      },
      "status": {
        "all": "Tous",
        "draft": "Brouillon",
        "validated": "Validé",
        "paid": "Payé",
        "cancelled": "Annulé"
      },
      "empty": "Aucun reversement.",
      "hints": "Créez un brouillon, ajoutez des paiements éligibles, puis marquez payé pour générer la sortie (OUT) en trésorerie.",
      "errors": {
        "customerRequired": "Veuillez sélectionner un client.",
        "accountRequired": "Veuillez sélectionner un compte."
      },
      "messages": {
        "created": "Brouillon de reversement créé.",
        "paymentAdded": "Paiement ajouté au reversement.",
        "markedPaid": "Reversement marqué comme payé."
      },
      "draft": {
        "title": "Nouveau reversement (brouillon)",
        "subtitle": "Sélectionnez le client (créancier) et le compte à débiter.",
        "customer": "Client",
        "account": "Compte",
        "currency": "Devise",
        "create": "Créer le reversement",
        "noCustomers": "Aucun client trouvé.",
        "selected": "Sélectionné :",
        "balance": "Solde : {amount}",
        "lastMovement": "Dernier mouvement : {date}"
      },
      "details": {
        "title": "Reversement #{id}",
        "subtitle": "Client : {customer}",
        "total": "Total",
        "createdAt": "Créé le",
        "paidAt": "Payé le",
        "referenceHint": "Référence optionnelle lors du marquage payé (réf. virement, numéro de chèque, etc.).",
        "noLines": "Aucun paiement dans ce reversement pour le moment.",
        "lines": {
          "payment": "Paiement",
          "case": "Dossier",
          "debtor": "Débiteur",
          "amount": "Montant"
        }
      },
      "payments": {
        "title": "Ajouter des paiements éligibles",
        "subtitle": "Seuls les paiements non encore reversés sont affichés.",
        "search": "Recherche",
        "searchPlaceholder": "Réf. paiement, réf. dossier, débiteur…",
        "override": "Partiel",
        "empty": "Aucun paiement éligible.",
        "hint": "Astuce : vous pouvez renseigner un montant partiel avant d'ajouter un paiement.",
        "table": {
          "date": "Date",
          "payment": "Paiement",
          "case": "Dossier",
          "debtor": "Débiteur",
          "amount": "Montant",
          "actions": "Actions",
          "add": "Ajouter"
        },
        "added": "Ajouté ✓"
      },
      "title": "Reversements",
      "subtitle": "Préparez et suivez les reversements au client (créancier).",
      "columns": {
        "customer": "Client",
        "total": "Total",
        "status": "Statut",
        "reference": "Référence",
        "paidAt": "Payé le",
        "actions": "Actions"
      },
      "view": "Voir",
      "pay": "Payer",
      "paid": "Remise payée",
      "addPaymentsSection": "Ajouter des paiements",
      "markAsPaidSection": "Marquer comme payé",
      "includedPayments": "Paiements inclus ({count})",
      "noEligible": "Aucun paiement éligible trouvé.",
      "noFound": "Aucun mouvement trouvé"
    },
    "pagination": {
      "loading": "Chargement…",
      "empty": "Aucun résultat",
      "range": "{from}–{to} sur {total}"
    }
  },
  "debtors": {
    "title": "Débiteurs",
    "subtitle": "Créer, modifier et supprimer les débiteurs.",
    "new": "Nouveau débiteur",
    "search_placeholder": "Recherche (nom…)",
    "type_all": "Tous les types",
    "country_all": "Tous les pays",
    "reset": "Réinitialiser",
    "list_title": "Liste",
    "loading": "Chargement…",
    "empty": "Aucun débiteur trouvé.",
    "cols": {
      "name": "Nom",
      "type": "Type",
      "phone": "Téléphone",
      "email": "Email",
      "city": "Ville",
      "country": "Pays",
      "actions": "Actions"
    },
    "type": {
      "individual": "Particulier",
      "company": "Entreprise"
    },
    "modal": {
      "create_title": "Nouveau débiteur",
      "edit_title": "Modifier débiteur",
      "subtitle": "Renseignez les informations puis validez.",
      "close": "Fermer",
      "cancel": "Annuler",
      "create": "Créer",
      "creating": "Création…",
      "save": "Sauvegarder",
      "saving": "Sauvegarde…"
    },
    "fields": {
      "full_name": "Nom complet *",
      "phone": "Téléphone",
      "address": "Adresse",
      "city": "Ville",
      "national_id": "National ID (optionnel)",
      "tax_id": "Tax ID (optionnel)"
    },
    "actions": {
      "edit": "Modifier",
      "delete": "Supprimer",
      "deleting": "Supp…"
    },
    "errors": {
      "name_required": "Le nom du débiteur est obligatoire.",
      "create_failed": "Création impossible.",
      "update_failed": "Modification impossible.",
      "delete_failed": "Suppression impossible.",
      "load_failed": "Erreur de chargement.",
      "metadata_invalid": "Metadata JSON invalide."
    },
    "confirm_delete": "Supprimer le débiteur \"{name}\" ?"
  },
  "creditors": {
    "title": "Créanciers",
    "subtitle": "Entités réellement dues par les débiteurs. Peut être différent du client (ex. assureur-crédit).",
    "new": "Nouveau créancier",
    "search_placeholder": "Rechercher par nom, code, email…",
    "loading": "Chargement…",
    "empty": "Aucun créancier enregistré.",
    "refresh": "Actualiser",
    "count": "{count} créancier(s)",
    "type": {
      "company": "Entreprise",
      "individual": "Particulier"
    },
    "status": {
      "active": "Actif",
      "inactive": "Inactif"
    },
    "kpi": {
      "total": "Total",
      "active": "Actifs",
      "inactive": "Inactifs"
    },
    "filter": {
      "all_status": "Tous les statuts"
    },
    "cols": {
      "name": "Créancier",
      "type": "Type",
      "contact": "Contact",
      "location": "Localisation",
      "status": "Statut"
    },
    "fields": {
      "name": "Nom",
      "code": "Code",
      "type": "Type",
      "email": "Email",
      "phone": "Téléphone",
      "country": "Pays",
      "city": "Ville",
      "address": "Adresse",
      "tax_id": "NIF / RCCM",
      "notes": "Notes",
      "notes_placeholder": "Informations complémentaires…",
      "is_active": "Actif"
    },
    "actions": {
      "edit": "Modifier",
      "delete": "Supprimer"
    },
    "modal": {
      "create_title": "Nouveau créancier",
      "edit_title": "Modifier le créancier",
      "subtitle": "L'entité réellement due par le débiteur.",
      "save": "Mettre à jour",
      "create_label": "Créer le créancier",
      "cancel": "Annuler",
      "saving": "Enregistrement…"
    },
    "delete": {
      "title": "Supprimer le créancier",
      "confirm": "Cette action est irréversible. Voulez-vous continuer ?",
      "confirm_btn": "Supprimer",
      "cancel": "Annuler",
      "deleting": "Suppression…"
    },
    "errors": {
      "load_failed": "Erreur lors du chargement des créanciers.",
      "name_required": "Le nom du créancier est obligatoire.",
      "save_failed": "Erreur lors de l'enregistrement.",
      "delete_failed": "Impossible de supprimer ce créancier."
    },
    "flash": {
      "created": "Créancier créé avec succès.",
      "updated": "Créancier mis à jour.",
      "deleted": "Créancier supprimé."
    }
  },
  "customers": {
    "title": "Clients",
    "subtitle": "Entreprises et organismes qui confient des dossiers de recouvrement au tenant.",
    "new": "Nouveau",
    "search_placeholder": "Rechercher par nom, email, téléphone, pays, code…",
    "loading": "Chargement…",
    "empty": "Aucun client.",
    "status": {
      "active": "Actif",
      "suspended": "Suspendu"
    },
    "portal": {
      "enabled": "Portail : Activé",
      "disabled": "Portail : Désactivé",
      "access_title": "Accès Portail Client",
      "active": "Portail actif",
      "inactive": "Portail inactif"
    },
    "kpi": {
      "total": "Total"
    },
    "card": {
      "edit": "Modifier",
      "users": "Utilisateurs",
      "activate_portal": "Activer le portail",
      "manage_portal": "Gérer les accès portail"
    },
    "member_status": {
      "active": "Actif",
      "invited": "Invité",
      "suspended": "Suspendu"
    },
    "confirm": {
      "delete_customer": "Supprimer le client « {name} » ? Cette action est irréversible.",
      "suspend_customer": "Suspendre le client « {name} » ? Il ne pourra plus accéder au portail.",
      "activate_customer": "Réactiver le client « {name} » ?",
      "force_delete_customer": "⚠️ Ce client possède {count} dossier(s) lié(s). La suppression forcée supprimera également TOUS les dossiers associés. Cette action est IRRÉVERSIBLE. Confirmer la suppression de « {name} » et de tous ses dossiers ?",
      "force_delete_customer_generic": "⚠️ Ce client possède des dossiers liés qui seront aussi supprimés. Cette action est IRRÉVERSIBLE. Confirmer la suppression forcée de « {name} » ?",
      "revoke_member": "Révoquer l'accès de « {name} » ?",
      "reset_password": "Réinitialiser le mot de passe de « {name} » ?"
    },
    "flash": {
      "created": "Client créé.",
      "updated": "Client mis à jour.",
      "deleted": "Client supprimé.",
      "suspended": "Client suspendu.",
      "activated": "Client réactivé.",
      "portal_activated": "Portail client activé.",
      "member_revoked": "Accès révoqué.",
      "member_updated": "Utilisateur mis à jour."
    },
    "fields": {
      "code": "Code",
      "email": "Email",
      "phone": "Téléphone",
      "country": "Pays",
      "city": "Ville",
      "address": "Adresse",
      "status": "Statut",
      "name": "Nom",
      "name_required": "Nom *",
      "created_at": "Créé le",
      "department": "Département",
      "metadata": "Métadonnées (JSON)",
      "dept": "Département / Poste"
    },
    "actions": {
      "edit": "Modifier",
      "delete": "Supprimer",
      "portal": "Portail",
      "portal_title": "Créer / Mettre à jour accès portail",
      "users": "Utilisateurs",
      "users_title": "Utilisateurs du client",
      "activate": "Activer",
      "suspend": "Suspendre",
      "status": "Statut",
      "status_title": "Activer / Suspendre",
      "password": "Mot de passe",
      "password_title": "Générer un nouveau mot de passe et envoyer par email",
      "remove": "Retirer",
      "close": "Fermer"
    },
    "errors": {
      "load": "Erreur de chargement.",
      "name_required": "Le nom du client est obligatoire.",
      "metadata_invalid": "Metadata JSON invalide.",
      "save_failed": "Erreur enregistrement.",
      "delete_failed": "Erreur suppression.",
      "update_failed": "Erreur mise à jour.",
      "email_required": "Email requis pour créer l'accès portail.",
      "portal_failed": "Échec création accès portail.",
      "member_email_required": "Email requis.",
      "member_update_failed": "Échec mise à jour utilisateur.",
      "member_delete_failed": "Échec suppression.",
      "pwd_reset_failed": "Échec réinitialisation mot de passe.",
      "pwd_reset_msg": "Mot de passe réinitialisé. Email envoyé.",
      "users_load_failed": "Erreur chargement utilisateurs."
    },
    "modal": {
      "create_title": "Nouveau client",
      "edit_title": "Modifier le client",
      "subtitle": "Saisissez toutes les informations du client.",
      "close": "Fermer",
      "cancel": "Annuler",
      "save": "Mettre à jour",
      "create": "Créer",
      "saving": "Enregistrement…",
      "metadata_hint": "Optionnel. Collez un JSON valide.",
      "subtitle_create": "Renseignez les informations du créancier.",
      "subtitle_edit": "Mettez à jour les informations.",
      "create_label": "Créer le client"
    },
    "portal_modal": {
      "title": "Accès Portail Client",
      "subtitle": "Créer le premier accès pour ce client.",
      "subtitle_for": "Créer / mettre à jour l'accès portail pour : {name}",
      "email_label": "Email *",
      "email_placeholder": "ex: contact@client.com",
      "username_optional": "optionnel",
      "first_name_label": "Prénom",
      "last_name_label": "Nom",
      "department_label": "Département",
      "hint": "Un email sera envoyé au contact principal avec l'URL de connexion et un mot de passe temporaire (si le compte est nouveau).",
      "create_btn": "Créer l'accès",
      "activate_btn": "Activer le portail",
      "activating": "Activation…",
      "cancel": "Annuler",
      "creating": "Création…",
      "success": "Portail activé avec succès !",
      "success_created": "Portail activé. Utilisateur créé avec succès.",
      "success_existing": "Portail activé. Utilisateur existant associé.",
      "activate_title": "Activer le portail client",
      "activate_subtitle": "Créer l'utilisateur principal pour {name}",
      "hint_activate": "Cette action crée un compte utilisateur pour le client et lui donne accès au portail de suivi de ses dossiers.",
      "phone": "Téléphone",
      "dept": "Département / Poste",
      "temp_pwd": "Mot de passe temporaire",
      "close": "Fermer"
    },
    "users_modal": {
      "title": "Utilisateurs du client",
      "customer_label": "Client",
      "temp_pwd_label": "Mot de passe temporaire",
      "copy": "Copier",
      "loading": "Chargement…",
      "empty": "Aucun utilisateur.",
      "close": "Fermer",
      "subtitle": "Gestion des accès au portail client",
      "pwd_reset": "Mot de passe réinitialisé",
      "refresh": "Rafraîchir",
      "empty_portal": "Aucun utilisateur — activez d'abord le portail",
      "count": "{count} utilisateur",
      "count_plural": "{count} utilisateurs",
      "cols": {
        "user": "Utilisateur",
        "contact": "Contact",
        "dept": "Département",
        "role": "Rôle",
        "status": "Statut",
        "actions": "Actions"
      },
      "edit": "Modifier",
      "suspend": "Suspendre",
      "activate_btn": "Activer",
      "mdp": "MDP"
    },
    "member_modal": {
      "title": "Modifier utilisateur du client",
      "cancel": "Annuler",
      "save": "Enregistrer",
      "saving": "Enregistrement…",
      "first_name_label": "Prénom",
      "last_name_label": "Nom",
      "department_label": "Département",
      "active_label": "Compte actif",
      "role_label": "Rôle",
      "status_label": "Statut",
      "primary_contact_label": "Contact principal",
      "yes": "Oui",
      "no": "Non",
      "tip": "Astuce : vous pouvez modifier les infos user + le rôle/statut dans un seul enregistrement.",
      "edit_title": "Modifier l'accès utilisateur",
      "telephone_label": "Téléphone",
      "role": {
        "owner": "Propriétaire",
        "manager": "Manager",
        "viewer": "Lecteur"
      }
    },
    "confirm_delete": "Supprimer \"{name}\" ?",
    "confirm_delete_member": "Supprimer cet utilisateur du client ?",
    "role_badge": {
      "owner": "Propriétaire",
      "manager": "Manager",
      "viewer": "Lecteur"
    },
    "client_users": {
      "title": "Utilisateurs du client",
      "subtitle": "Gérez les accès au portail (rôles, statut, contact principal).",
      "back": "Retour",
      "add": "Ajouter",
      "search_placeholder": "Rechercher par nom, rôle, statut…",
      "loading": "Chargement…",
      "empty": "Aucun utilisateur trouvé.",
      "primary_badge": "Contact principal",
      "added_on": "Ajouté le",
      "status": {
        "active": "Actif",
        "suspended": "Suspendu"
      },
      "actions": {
        "suspend": "Suspendre",
        "activate": "Activer",
        "edit": "Modifier",
        "delete": "Supprimer"
      },
      "flash": {
        "added": "Utilisateur ajouté.",
        "updated": "Membre mis à jour.",
        "activated": "Compte activé.",
        "suspended": "Compte suspendu.",
        "deleted": "Accès supprimé."
      },
      "confirm_delete": "Supprimer l'accès de \"{name}\" ?",
      "role": {
        "owner": "Propriétaire",
        "manager": "Manager",
        "viewer": "Lecteur"
      },
      "modal": {
        "create_title": "Ajouter un utilisateur",
        "edit_title": "Modifier l'utilisateur",
        "subtitle_create": "Définissez l'email, le rôle et les informations du membre.",
        "subtitle_edit": "Mettez à jour le rôle et le statut de contact.",
        "email_label": "Email",
        "email_required": "Email obligatoire.",
        "role_label": "Rôle",
        "primary_label": "Contact principal",
        "first_name_label": "Prénom",
        "last_name_label": "Nom",
        "phone_label": "Téléphone",
        "dept_label": "Département",
        "role_owner": "Propriétaire",
        "role_manager": "Manager",
        "role_viewer": "Lecteur",
        "yes": "Oui",
        "no": "Non",
        "cancel": "Annuler",
        "saving": "Enregistrement…",
        "add": "Ajouter",
        "update": "Mettre à jour"
      }
    }
  },
  "selectTenant": {
    "title": "Sélection du tenant",
    "subtitle": "Sélectionnez le tenant dans lequel vous souhaitez travailler."
  },
  "communications": {
    "title": "Messagerie",
    "subtitle": "Échanges client ↔ agent par dossier",
    "unread_badge": "{count} non lu",
    "unread_badge_plural": "{count} non lus",
    "search_placeholder": "Rechercher dossier, client, message…",
    "unread_only": "Non lus seulement",
    "count": "{count} conversation",
    "count_plural": "{count} conversations",
    "empty": "Aucune conversation — les échanges apparaissent ici dès qu'un client envoie un message",
    "attachment": "Pièce jointe",
    "customer_badge": "Client",
    "kpi": {
      "conversations": "Conversations",
      "unread": "Non lus",
      "customers": "Clients",
      "cases": "Dossiers"
    },
    "error_load": "Erreur de chargement.",
    "new_conversation": "Nouvelle conversation",
    "picker": {
      "title": "Démarrer une conversation",
      "subtitle": "Sélectionnez un dossier pour initier un échange client.",
      "search_placeholder": "Rechercher un dossier…",
      "empty": "Aucun dossier trouvé.",
      "cancel": "Annuler",
      "loading": "Chargement…"
    },
    "thread": {
      "title": "Conversation",
      "back": "Messagerie",
      "case_link": "Dossier",
      "filter_all": "Tous",
      "filter_client": "Client",
      "filter_internal": "Interne",
      "new_msg_label": "Nouveau message :",
      "visible_client": "Visible client",
      "internal_only": "Interne (agents seulement)",
      "placeholder_shared": "Répondre au client…",
      "placeholder_internal": "Message interne (non visible par le client)…",
      "placeholder": "Écrire un message…",
      "attach": "Joindre des fichiers",
      "send": "Envoyer",
      "edit": "Modifier",
      "delete": "Supprimer",
      "confirmDelete": "Supprimer ce message ?",
      "empty": "Aucun message — commencez la conversation !",
      "loading": "Chargement…",
      "save": "Sauvegarder",
      "cancel": "Annuler",
      "recording": "Enregistrement…",
      "stop_recording": "Terminer",
      "editing_label": "Modification du message",
      "join_call": "Rejoindre",
      "call_audio": "Appel audio",
      "call_video": "Appel vidéo",
      "attach_file": "Joindre un fichier",
      "voice_msg": "Message vocal",
      "stop_record": "Arrêter l'enregistrement",
      "agent_badge": "Agent",
      "internal_badge": "Interne",
      "typing_one": "écrit…",
      "typing_many": "écrivent…",
      "no_messages": "Aucun message — commencez la conversation !"
    }
  },
  "support": {
    "title": "Support plateforme",
    "subtitle": "Échangez directement avec l'équipe ACREMAC.",
    "loading": "Chargement…",
    "no_messages": "Aucun message pour le moment. Envoyez votre premier message à l'équipe ACREMAC pour obtenir de l'aide.",
    "placeholder": "Votre message… (Entrée pour envoyer)",
    "send_hint": "Entrée pour envoyer · Maj+Entrée pour saut de ligne.",
    "you": "Vous",
    "acremac": "ACREMAC",
    "attach": "Joindre un fichier",
    "file_attached": "Fichier joint",
    "download": "Télécharger",
    "delete_msg": "Supprimer le message",
    "confirm_delete": "Supprimer ce message ?"
  },
  "cases": {
    "title": "Dossiers",
    "subtitle": "Suivi des dossiers de recouvrement.",
    "new": "Nouveau dossier",
    "search_placeholder": "Référence, débiteur, client…",
    "empty": "Aucun dossier trouvé.",
    "loading": "Chargement…",
    "count": "{count} dossier(s)",
    "status": {
      "all": "Tous les statuts",
      "open": "Ouvert",
      "in_progress": "En cours",
      "on_hold": "En attente",
      "closed": "Clôturé"
    },
    "priority": {
      "all": "Toutes les priorités",
      "low": "Faible",
      "medium": "Moyen",
      "high": "Élevé",
      "urgent": "Urgent"
    },
    "kpi": {
      "total": "Total",
      "open": "Ouverts",
      "in_progress": "En cours",
      "on_hold": "En attente",
      "overdue": "En retard",
      "closed": "Clôturés"
    },
    "cols": {
      "reference": "Référence",
      "debtor": "Débiteur",
      "customer": "Client",
      "creditor": "Créancier",
      "via": "via",
      "status": "Statut",
      "priority": "Priorité",
      "due_date": "Échéance",
      "balance": "Solde",
      "assigned": "Assigné",
      "actions": "Actions"
    },
    "filter": {
      "overdue_only": "En retard seulement"
    },
    "detail": {
      "back": "Retour",
      "save": "Sauvegarder",
      "saving": "Sauvegarde…",
      "delete": "Supprimer",
      "modified": "Modifié",
      "saved": "Sauvegardé",
      "not_found": "Dossier introuvable.",
      "case_fallback": "Dossier",
      "debtor_label": "Débiteur",
      "reopen": "Réouvrir",
      "close_case": "Clôturer",
      "unassigned": "Non assigné",
      "assign_to_me": "Assigner à moi",
      "assigning": "Assignation…",
      "tab_overview": "Détails",
      "tab_notes": "Notes",
      "tab_documents": "Documents",
      "tab_collections": "Recouvrement",
      "edit_section": "Modifier le dossier",
      "field_title": "Titre",
      "field_status": "Statut",
      "field_priority": "Priorité",
      "field_currency": "Devise",
      "currency_search": "Filtrer les devises…",
      "field_due_date": "Échéance",
      "field_original_amount": "Montant initial",
      "field_balance": "Solde dû",
      "field_assigned_to": "Assigné à",
      "kpi_balance": "Solde dû",
      "kpi_original": "Montant initial",
      "kpi_due_date": "Échéance",
      "kpi_assigned": "Assigné à",
      "not_assigned": "Non assigné",
      "debtor_section": "Débiteur",
      "debtor_name": "Nom",
      "debtor_phone": "Téléphone",
      "action_call": "Appel",
      "action_outlook": "Preuve Outlook",
      "action_promise": "Promesse",
      "action_payment": "Paiement",
      "action_contentious": "Contentieux",
      "action_refresh": "Rafraîchir",
      "col_total_due": "Total dû",
      "col_paid": "Total payé",
      "col_remaining": "Solde restant",
      "col_next_action": "Prochaine action",
      "col_loading": "Chargement…",
      "col_empty": "Aucune donnée recouvrement.",
      "col_timeline_title": "Timeline recouvrement",
      "col_events": "{count} événement",
      "col_events_plural": "{count} événements",
      "col_no_activity": "Aucune activité.",
      "field_portfolio": "Portefeuille"
    }
  },
  "session": {
    "warning_title": "Session sur le point d'expirer",
    "warning_body": "Votre session expire dans {time}. Cliquez sur « Rester connecté » pour continuer.",
    "expired_title": "Session expirée",
    "expired_body": "Votre session a expiré. Cliquez ci-dessous pour vous reconnecter.",
    "stay": "Rester connecté",
    "extending": "Renouvellement…",
    "logout": "Se déconnecter",
    "reconnect": "Se reconnecter"
  },
  "payments": {
    "title": "Paiements",
    "subtitle": "Suivi des encaissements.",
    "empty": "Aucun paiement.",
    "loading": "Chargement…"
  },
  "promises": {
    "title": "Promesses",
    "subtitle": "Promesses de paiement des débiteurs.",
    "empty": "Aucune promesse.",
    "loading": "Chargement…"
  },
  "tasks": {
    "title": "Tâches",
    "subtitle": "Suivi des tâches et actions planifiées.",
    "empty": "Aucune tâche.",
    "loading": "Chargement…"
  },
  "documents": {
    "title": "Documents",
    "subtitle": "Documents liés aux dossiers.",
    "empty": "Aucun document.",
    "loading": "Chargement…"
  },
  "reports": {
    "title": "Rapports",
    "subtitle": "Analyses et statistiques de recouvrement.",
    "loading": "Chargement des données…",
    "no_data": "Aucune donnée disponible.",
    "kpi_total_cases": "Dossiers",
    "kpi_total_amount": "Montant total",
    "kpi_recovered": "Recouvré",
    "kpi_recovery_rate": "Taux de recouvrement",
    "kpi_overdue": "en retard",
    "chart_by_status": "Dossiers par statut",
    "chart_monthly": "Évolution mensuelle des paiements",
    "chart_actions": "Actions de recouvrement",
    "chart_methods": "Méthodes de paiement",
    "chart_promises": "Promesses de paiement",
    "promises_pending": "En attente",
    "promises_kept": "Tenues",
    "promises_broken": "Rompues",
    "promises_cancelled": "Annulées",
    "amount_label": "Montant",
    "status_new": "Nouveau",
    "status_in_review": "En examen",
    "status_preventive": "Préventif",
    "status_amicable": "Amiable",
    "status_pre_legal": "Pré-juridique",
    "status_legal": "Juridique",
    "status_disputed": "Contesté",
    "status_settled": "Réglé",
    "status_closed": "Clôturé",
    "status_write_off": "Passé en perte",
    "action_call": "Appel",
    "action_sms": "SMS",
    "action_email": "Email",
    "action_visit": "Visite",
    "action_letter": "Courrier",
    "action_negotiation": "Négociation",
    "action_notice": "Mise en demeure",
    "action_lawyer": "Avocat",
    "action_other": "Autre",
    "method_cash": "Espèces",
    "method_bank_transfer": "Virement",
    "method_mobile_money": "Mobile Money",
    "method_cheque": "Chèque",
    "method_card": "Carte",
    "method_other": "Autre"
  },
  "settings": {
    "title": "Paramètres",
    "subtitle": "Configuration du mail entrant",
    "breadcrumb_workspace": "Espace de travail",
    "nav_group_geography": "Géographie",
    "nav_group_mail": "Mail entrant",
    "tab_countries": "Pays opérationnels",
    "tab_countries_desc": "Périmètre géographique",
    "tab_sources": "Sources mail",
    "tab_sources_desc": "Clients et domaines",
    "tab_imap": "Configuration IMAP",
    "tab_imap_desc": "Serveur de réception",
    "add_source": "Ajouter une source",
    "sources_title": "Sources mail autorisées",
    "sources_desc": "Définissez les domaines ou adresses email dont les mails seront interceptés et affichés dans Demandes clients.",
    "domain_type_title": "Domaine complet",
    "domain_type_desc": "Ex : acremac.com — intercepte tous les mails envoyés depuis ce domaine.",
    "email_type_title": "Email précis",
    "email_type_desc": "Ex : john@acremac.com — uniquement cet expéditeur.",
    "no_sources": "Aucune source configurée",
    "no_sources_desc": "Ajoutez les domaines ou emails de vos clients pour démarrer l'interception automatique.",
    "add_first_source": "Ajouter la première source",
    "col_client": "Client",
    "col_address_domain": "Adresse / Domaine",
    "col_type": "Type",
    "col_status": "Statut",
    "unnamed": "Sans nom",
    "badge_domain": "Domaine",
    "badge_email": "Email",
    "sources_count": "{n} source{s} configurée{s}",
    "source_active": "Source active",
    "edit_source": "Modifier la source",
    "new_source": "Nouvelle source mail",
    "source_modal_subtitle": "Domaine ou adresse email à intercepter",
    "label_client_name": "Nom du client",
    "label_address_domain": "Adresse ou domaine",
    "hint_address_domain": "Domaine (acremac.com) → intercepte tous les mails du domaine. Adresse complète → expéditeur précis uniquement.",
    "label_notes": "Notes internes",
    "placeholder_notes": "Commentaires optionnels…",
    "add_source_btn": "Ajouter la source",
    "update_source_btn": "Mettre à jour",
    "saving_source": "Enregistrement…",
    "confirm_delete": "Supprimer",
    "cron_service_label": "Service de réception mail",
    "cron_health_healthy": "Actif",
    "cron_health_delayed": "En retard",
    "cron_health_stale": "Inactif",
    "cron_health_error": "Erreur IMAP",
    "cron_health_inactive": "Arrêté",
    "cron_health_unconfigured": "Non configuré",
    "cron_no_run": "Aucun passage",
    "cron_interval": "Toutes les {n} min",
    "cron_poll_now": "Relever maintenant",
    "cron_polling": "En cours…",
    "cron_stop": "Arrêter",
    "cron_start": "Démarrer",
    "cron_info": "Ce service est partagé entre tous les tenants. Toute modification de votre configuration (nouvelles sources, identifiants IMAP) est prise en compte automatiquement au prochain passage, sans redémarrage. Le bouton Arrêter / Démarrer contrôle uniquement votre réception.",
    "imap_title": "Configuration IMAP",
    "imap_desc": "Connectez votre boîte mail pour intercepter les emails de vos clients.",
    "imap_credentials": "Identifiants de connexion",
    "label_imap_host": "Serveur IMAP",
    "label_port": "Port",
    "label_mailbox": "Dossier IMAP",
    "label_email": "Adresse email",
    "label_password": "Mot de passe",
    "label_password_existing": "Mot de passe (vide = conserver)",
    "label_ssl": "Utiliser SSL/TLS",
    "label_ssl_hint": "(recommandé — port 993)",
    "imap_saved": "Configuration enregistrée. Changements actifs au prochain passage automatique.",
    "imap_test": "Tester la connexion",
    "imap_testing": "Test en cours…",
    "imap_guide_title": "Guide de configuration",
    "imap_step1_title": "Créez une boîte dédiée",
    "imap_step1_desc": "Ex : recouvrement@votreentreprise.com — vos clients enverront leurs demandes à cette adresse.",
    "imap_step2_title": "Activez l'accès IMAP",
    "imap_step2_desc": "Dans les paramètres de votre messagerie (Gmail, Outlook, etc.), activez l'accès IMAP.",
    "imap_step3_title": "Renseignez les identifiants",
    "imap_step3_desc": "Hôte, port, adresse et mot de passe. Testez la connexion avant d'enregistrer.",
    "imap_step4_title": "Ajoutez vos sources",
    "imap_step4_desc": "Dans Sources mail, ajoutez les domaines ou emails de vos clients à intercepter.",
    "imap_security_title": "Sécurité",
    "imap_security_desc": "Utilisez un mot de passe d'application dédié (pas votre mot de passe principal). Gmail et Outlook proposent cette option dans les paramètres de sécurité.",
    "countries_title": "Pays opérationnels",
    "countries_desc": "Configurez les pays dans lesquels vous opérez et désignez un responsable pour chacun. Chaque action d'un agent dans ce pays notifiera automatiquement son responsable.",
    "add_country": "Ajouter un pays",
    "geo_perimeter_title": "Périmètre géographique",
    "geo_perimeter_desc": "Définissez les pays couverts par votre activité de recouvrement.",
    "country_manager_title": "Responsable pays",
    "country_manager_desc": "Désignez un responsable par pays. Il sera notifié de chaque action d'un agent.",
    "auto_track_title": "Suivi automatique",
    "auto_track_desc": "Chaque action posée sur un dossier notifie le responsable pays et le propriétaire.",
    "no_countries": "Aucun pays configuré",
    "no_countries_desc": "Ajoutez les pays dans lesquels vous opérez pour activer le suivi géographique et les notifications.",
    "add_first_country": "Ajouter le premier pays",
    "col_country": "Pays",
    "col_manager": "Responsable",
    "not_assigned": "Non désigné",
    "manager_badge": "Responsable",
    "countries_count": "{n} pays configuré{s} — {m} avec responsable",
    "modal_add_country_title": "Ajouter un pays",
    "modal_add_country_subtitle": "Sélectionnez le pays que vous souhaitez couvrir",
    "search_country": "Rechercher un pays…",
    "no_countries_available": "Aucun pays disponible",
    "adding": "Ajout…",
    "modal_manager_subtitle": "Désigner le responsable de ce pays",
    "label_country_manager": "Responsable pays",
    "no_manager_option": "— Aucun responsable —",
    "owner_label": "(Propriétaire)",
    "manager_hint": "Ce responsable recevra une notification email à chaque action d'un agent sur un dossier de ce pays.",
    "active": "Actif",
    "inactive": "Inactif",
    "coming_soon": "Bientôt disponible.",
    "mail_title": "Paramètres",
    "mail_subtitle": "Mail entrant et sources autorisées"
  },
  "profile_dropdown": {
    "title": "Mon profil",
    "first_name": "Prénom",
    "last_name": "Nom",
    "email": "Email",
    "username": "Identifiant",
    "save": "Enregistrer",
    "saving": "Enregistrement…",
    "profile_saved": "Profil mis à jour.",
    "pwd_title": "Changer le mot de passe",
    "pwd_new": "Nouveau mot de passe",
    "pwd_confirm": "Confirmer",
    "pwd_mismatch": "Les mots de passe ne correspondent pas.",
    "pwd_saved": "Mot de passe mis à jour.",
    "pwd_change_btn": "Changer",
    "click_to_edit": "Cliquer pour modifier"
  },
  "mail_inbox": {
    "title": "Demandes clients",
    "subtitle": "Mails interceptés depuis vos clients",
    "title_assignee": "Mes tâches mail",
    "subtitle_assignee": "Mails qui me sont assignés",
    "breadcrumb_workspace": "Espace de travail",
    "refresh": "Actualiser",
    "new_mail": "Nouveau(x) message(s)",
    "loading": "Chargement…",
    "empty": "Aucun mail trouvé",
    "empty_hint": "Configurez vos sources mail dans Paramètres pour commencer l'interception.",
    "empty_hint_filtered": "Modifiez vos filtres pour voir plus de résultats.",
    "filter_all": "Tous",
    "filter_pending": "En attente",
    "filter_dispatched": "Dispatchés",
    "filter_processed": "Traités",
    "filter_rejected": "Rejetés",
    "search_placeholder": "Rechercher…",
    "col_sender": "Expéditeur",
    "col_subject": "Objet",
    "col_status": "Statut",
    "col_date": "Date",
    "no_subject": "(Sans objet)",
    "no_body": "(Corps vide)",
    "pj_count": "{count} pj",
    "from_label": "De",
    "sender_label": "Expéditeur",
    "client_label": "Client",
    "assigned_to_label": "Assigné à",
    "attachments_title": "Pièces jointes ({count})",
    "body_title": "Corps du message",
    "view_raw": "Voir texte brut",
    "view_html": "Voir HTML",
    "download_hint": "Télécharger",
    "dispatch_btn": "Dispatcher",
    "self_dispatch_btn": "Je prends en charge",
    "redispatch_btn": "Re-dispatcher",
    "reject_btn": "Rejeter",
    "restore_btn": "Remettre en attente",
    "processed_btn": "Marquer traité",
    "dispatch_history_title": "Historique dispatch",
    "dispatch_history_verb": "a dispatché à",
    "dispatch_title": "Dispatcher le mail",
    "dispatch_confirm": "Dispatcher",
    "dispatching": "Dispatch en cours…",
    "dispatch_cancel": "Annuler",
    "assignee_label": "Assigner à",
    "assignee_placeholder": "Sélectionner…",
    "group_managers": "Responsables pays",
    "group_members": "Membres de l'équipe",
    "country_label": "Pays concerné",
    "country_none": "— Non précisé —",
    "dispatch_note_label": "Note de dispatch",
    "dispatch_note_placeholder": "Instructions pour le responsable…",
    "no_managers": "Aucun membre d'équipe trouvé dans ce tenant.",
    "country_manager_auto": "Responsable désigné",
    "country_no_manager": "Aucun responsable pour ce pays — sélectionnez un membre manuellement.",
    "assignee_override": "Choisir un autre membre",
    "assignee_cancel_override": "Utiliser le responsable désigné",
    "assignee_auto_hint": "Ce responsable recevra la demande et la redirigera selon son équipe.",
    "person_required_hint": "Ce pays n'a pas de responsable désigné.",
    "error_select": "Veuillez sélectionner un pays ou un responsable.",
    "error_generic": "Une erreur est survenue.",
    "stats_total": "Total",
    "stats_pending": "En attente",
    "stats_dispatched": "Dispatchés",
    "stats_processed": "Traités",
    "stats_rejected": "Rejetés",
    "status_pending": "En attente",
    "status_dispatched": "Dispatché",
    "status_processed": "Traité",
    "status_rejected": "Rejeté",
    "pagination": "{count} résultat(s) — page {page} / {total}",
    "accept_btn": "Accepter le dossier",
    "reassign_btn": "Réaffecter",
    "accept_history_verb": "a accepté le dossier",
    "pending_acceptance": "En attente d'acceptation",
    "currently_assigned": "Actuellement assigné à",
    "reassign_title": "Réaffecter le dossier",
    "reassign_to_label": "Réaffecter à",
    "reassign_confirm": "Réaffecter",
    "reassigning": "Réaffectation…",
    "reassign_note_placeholder": "Motif de la réaffectation…",
    "error_select_member": "Veuillez sélectionner un membre."
  },
  "country_selector": {
    "all_countries": "Tous les pays"
  },
  "subscription_gate": {
    "title": "Abonnement expiré",
    "subtitle": "Votre accès à la plateforme a été suspendu.",
    "plan": "Formule",
    "plan_annual": "Annuel",
    "plan_lifetime": "À vie",
    "expired_on": "Expiré le",
    "message": "Votre abonnement est arrivé à échéance. Veuillez contacter votre administrateur pour renouveler votre accès.",
    "contact_hint": "Contactez votre administrateur ou notre équipe support pour renouveler.",
    "retry": "Réessayer",
    "logout": "Se déconnecter",
    "logging_out": "Déconnexion…"
  }
}