# PROJECT_MAP.md — IPSM Lapin PWA V2 [TECH_STACK] - HTML5 autonome, CSS intégré, JavaScript natif. - PWA local-first : manifest.json + sw.js. - Stockage : localStorage versionné `ipsm_lapin_v2_scenario`. - Aucun CDN, aucune API externe, aucune télémétrie. - Rapport : fiche projet HTML imprimable via navigateur, sans export PDF automatique. [SYSTEM_FLOW] 1. L’utilisateur choisit FR / AR / EN. 2. Le système applique `lang` et `dir` au document entier. 3. L’utilisateur renseigne profil, reproduction, engraissement et économie. 4. Le dashboard calcule localement les KPI. 5. L’utilisateur ajuste la ration par ingrédients. 6. Les contraintes nutritionnelles restent masquées jusqu’à demande. 7. L’utilisateur active l’infrastructure seulement si nécessaire. 8. Le scénario complet est sauvegardé localement. 9. La fiche projet est générée dans la langue active. [ARCHITECTURE] - `I18N` : dictionnaire pour textes dynamiques JS, alertes et rapport. - Attributs `data-fr`, `data-ar`, `data-en` : traduction DOM statique et options select. - `setLang(lang)` : met à jour html.lang, html.dir, titre navigateur, DOM, rations, infrastructure, rapport actif. - `renderRation()` : ingrédients traduits dynamiquement. - `renderInfra()` : équipements traduits dynamiquement. - `calculate()` : calculs économiques locaux + alertes traduites. - `renderReport()` : fiche projet trilingue dans la langue active. - `saveScenario()` / `loadScenario()` : sauvegarde et chargement local. [DATA_MODEL] - `ingredients[]` : nom trilingue, prix, protéine, fibre, rôle, disponibilité. - `rations.repro`, `rations.engraissement` : ingrédients, pourcentage, prix utilisateur. - `infraState[]` : équipement trilingue, quantité, coût référence, coût utilisateur, subvention, durée, inclusion. - `last` : résultats calculés annuels et KPI. - `inputs` : paramètres utilisateur et économiques. [I18N] - Langues : FR, AR, EN. - RTL : appliqué via `document.documentElement.dir`. - Corrections V2 : - options select traduites ; - alertes traduites ; - messages sauvegarde/chargement traduits ; - fiche projet traduite ; - titre navigateur traduit ; - lignes dynamiques ration/infrastructure régénérées dans la langue active. [REPORT_MODEL] - Fiche projet prévisionnelle. - Sections : identité scénario, résultats annuels, alimentation, infrastructure, checklist. - Génération dans la langue active. - Impression via navigateur uniquement. [VERIFIABLE_GOALS] - VG1 : options `Mode projet`, `Niveau utilisateur`, `Infrastructure` traduites. - VG2 : document HTML passe en RTL complet en arabe. - VG3 : alertes calculées traduites. - VG4 : fiche projet générée en FR / AR / EN. - VG5 : ingrédients et équipements dynamiques traduits après changement de langue. - VG6 : aucune dépendance réseau. - VG7 : aucune génération PDF automatique. - VG8 : syntaxe JS validée. [ORPHANS & PENDING] - Commercialisation : remplacer prix et coefficients prototypes par référentiel Inoiatech validé terrain. - Relecture métier AR/EN par spécialiste cunicole avant publication internationale.