{
  "projectName": "mobile-navigation-improvements",
  "branchName": "ralph/unified-mobile-md",
  "description": "Extinderea navigării mobile cu Dashboard split, Settings Hub, MobileDrawerMenu și butoane context-aware",
  "cssRules": {
    "documentation": [
      "docs/ONBOARDING_CSS.md",
      "docs/DESIGN_TOKENS.md",
      "docs/CSS_PATTERNS.md",
      "docs/MOBILE_PATTERNS.md"
    ],
    "goldenRules": [
      "Folosește DOAR design tokens - NICIODATĂ valori hardcodate",
      "Verifică CSS_PATTERNS.md înainte de a scrie CSS nou",
      "Testează în AMBELE teme (light + dark mode)",
      "NICIODATĂ :deep() în componente (PrimeVue → vendor/)",
      "NICIODATĂ duplicate CSS (write once, use everywhere)",
      "Mobile: toate paginile folosesc MobileTopBar + MobileBottomNav",
      "Mobile: filtrele se pun în BottomSheet, NU inline",
      "Mobile: selecția afișează acțiuni în footer, NU în header"
    ],
    "mobileLayoutTokens": {
      "topBarHeight": "56px",
      "bottomNavHeight": "56px",
      "fabSize": "56px",
      "fabBottomOffset": "72px",
      "touchTargetMin": "48px"
    }
  },
  "userStories": [
    {
      "id": "US-201",
      "title": "MobileBottomNav activ pe Dashboard",
      "description": "Ca utilizator mobil vreau să văd footer navigation și pe Dashboard pentru navigare ușoară",
      "priority": 1,
      "acceptanceCriteria": [
        "DashboardView.vue include MobileBottomNav component",
        "Link-ul 'Rapoarte' din nav este activ/highlighted pe Dashboard",
        "MobileTopBar adăugat cu title 'Dashboard'",
        "Verify in browser: navigarea funcționează din Dashboard",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 1"
    },
    {
      "id": "US-202",
      "title": "MobileDrawerMenu Material Design cu Profil",
      "description": "Ca utilizator mobil vreau meniul hamburger să aibă design Material cu secțiune profil",
      "priority": 2,
      "acceptanceCriteria": [
        "Componentă src/shared/components/mobile/MobileDrawerMenu.vue creată",
        "Secțiuni: Header cu logo, Navigare principală, Profil utilizator (nume + logout)",
        "Link-uri navigare: Dashboard, Bonuri, Facturi, Balanță, Trezorerie, Setări",
        "Active state pe link-ul curent (bazat pe route)",
        "Animație slide-in de la stânga",
        "Close pe tap outside sau pe link click",
        "Dark mode support",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 2"
    },
    {
      "id": "US-208",
      "title": "Actualizare Router cu noile rute",
      "description": "Ca developer vreau router-ul configurat pentru noile pagini",
      "priority": 3,
      "acceptanceCriteria": [
        "Rută /reports/maturity-analysis → MaturityAnalysisView (lazy loaded)",
        "Rută /reports/detailed-invoices → DetailedInvoicesView (lazy loaded)",
        "Rută /settings → SettingsHubView (lazy loaded)",
        "Redirect /data-entry/ocr-metrics accesibil din Settings Hub",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 3"
    },
    {
      "id": "US-206",
      "title": "Creare Pagină Hub Setări",
      "description": "Ca utilizator vreau o pagină centrală cu toate opțiunile de setări",
      "priority": 4,
      "acceptanceCriteria": [
        "View nou: src/modules/reports/views/SettingsHubView.vue",
        "Route: /settings",
        "Carduri pentru: OCR Setări, Cache Stats, Loguri Server, Telegram (dacă admin)",
        "MobileTopBar cu title 'Setări'",
        "MobileBottomNav cu Setări activ",
        "Click pe card navighează la pagina respectivă",
        "Design responsive (grid 2x2 pe mobil, 4 columns pe desktop)",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 4"
    },
    {
      "id": "US-204",
      "title": "Creare Pagină Analiză Scadențe",
      "description": "Ca utilizator vreau o pagină dedicată pentru analiza scadențelor clienți/furnizori",
      "priority": 5,
      "acceptanceCriteria": [
        "View nou: src/modules/reports/views/MaturityAnalysisView.vue",
        "Route: /reports/maturity-analysis",
        "Conține componenta MaturityAndDetailsCard (partea de analiză scadențe)",
        "MobileTopBar cu title 'Analiză Scadențe' și buton ← Înapoi la Dashboard",
        "MobileBottomNav activ",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 5"
    },
    {
      "id": "US-205",
      "title": "Creare Pagină Facturi Detaliate",
      "description": "Ca utilizator vreau o pagină dedicată pentru tabelul facturilor detaliate",
      "priority": 6,
      "acceptanceCriteria": [
        "View nou: src/modules/reports/views/DetailedInvoicesView.vue",
        "Route: /reports/detailed-invoices",
        "Conține componenta/partea de tabel detaliat din MaturityAndDetailsCard",
        "MobileTopBar cu title 'Facturi Detaliate' și buton ← Înapoi",
        "MobileBottomNav activ",
        "Filtre în BottomSheet pe mobil",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 6"
    },
    {
      "id": "US-203",
      "title": "Dashboard KPIs Only View",
      "description": "Ca utilizator mobil vreau Dashboard-ul principal să arate doar KPI cards pentru acces rapid",
      "priority": 7,
      "acceptanceCriteria": [
        "DashboardView.vue pe mobil afișează DOAR: SwipeableCards cu KPIs",
        "Adăugare 2 carduri quick-link: 'Analiză Scadențe →' și 'Facturi Detaliate →'",
        "Click pe quick-link navighează la pagina dedicată",
        "Desktop rămâne neschimbat (toate secțiunile)",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 7"
    },
    {
      "id": "US-212",
      "title": "Quick Links în Dashboard Mobile",
      "description": "Ca utilizator vreau carduri clickabile în Dashboard pentru a ajunge la Scadențe și Facturi",
      "priority": 8,
      "acceptanceCriteria": [
        "După SwipeableCards, 2 carduri: 'Analiză Scadențe' și 'Facturi Detaliate'",
        "Design: icon + titlu + săgeată dreaptă (→)",
        "Click navighează la pagina respectivă",
        "Doar pe mobil (desktop are totul în aceeași pagină)",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 8"
    },
    {
      "id": "US-207",
      "title": "Actualizare MobileBottomNav cu link Setări",
      "description": "Ca utilizator vreau butonul Setări din footer să ducă la Hub Setări",
      "priority": 9,
      "acceptanceCriteria": [
        "MobileBottomNav: link Setări → /settings (nu /data-entry/ocr-metrics)",
        "Icon: pi-cog",
        "Active state când pe /settings sau /settings/* sau pagini admin",
        "Actualizare în toate paginile care folosesc MobileBottomNav",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 9"
    },
    {
      "id": "US-213",
      "title": "Actualizare Hamburger Menu în toate paginile",
      "description": "Ca utilizator vreau hamburger menu-ul să funcționeze uniform în toată aplicația",
      "priority": 10,
      "acceptanceCriteria": [
        "Toate paginile cu MobileTopBar: click pe ☰ deschide MobileDrawerMenu",
        "MobileDrawerMenu înlocuiește vechiul Sidebar pe mobil",
        "Desktop păstrează navigarea existentă",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 10"
    },
    {
      "id": "US-210",
      "title": "Creare MobileActionBar Component",
      "description": "Ca developer vreau componentă reutilizabilă pentru butoane de acțiune pe mobil",
      "priority": 11,
      "acceptanceCriteria": [
        "Componentă src/shared/components/mobile/MobileActionBar.vue creată",
        "Props: actions (array of {label, icon, severity, handler, disabled})",
        "Layout: butoane full-width sau side-by-side (2 butoane)",
        "Position: fixed bottom, above MobileBottomNav",
        "Animație: slide-up la mount",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 11"
    },
    {
      "id": "US-209",
      "title": "Butoane Context-Aware în Editare Bon",
      "description": "Ca utilizator vreau butoanele din editare bon să se schimbe în funcție de starea bonului",
      "priority": 12,
      "acceptanceCriteria": [
        "ReceiptCreateUnifiedView detectează starea bonului (draft/pending/approved/rejected)",
        "Draft: Salvează | Submit pentru Aprobare | Șterge",
        "Pending: Salvează | Aprobă | Respinge (dacă are permisiuni)",
        "Approved: doar vizualizare (butoane disabled sau ascunse)",
        "Rejected: Salvează (re-edit) | Re-submit",
        "Butoane în MobileActionBar fix jos pe mobil",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 12"
    },
    {
      "id": "US-211",
      "title": "Integrare MobileActionBar în ReceiptCreateUnifiedView",
      "description": "Ca utilizator vreau butoanele de acțiune pentru bon să fie în action bar pe mobil",
      "priority": 13,
      "acceptanceCriteria": [
        "ReceiptCreateUnifiedView folosește MobileActionBar pe mobil",
        "Desktop păstrează butoanele în form",
        "Buton Înapoi în MobileTopBar (deja există din US-105)",
        "Action bar dispare când se deschide BottomSheet sau alte overlay-uri",
        "npm run build passes"
      ],
      "passes": true,
      "notes": "Completed in iteration 13"
    },
    {
      "id": "US-214",
      "title": "Actualizare Documentație MOBILE_PATTERNS.md",
      "description": "Ca developer viitor vreau documentația actualizată cu noile componente și pattern-uri",
      "priority": 14,
      "acceptanceCriteria": [
        "Secțiune nouă: MobileDrawerMenu (usage, props)",
        "Secțiune nouă: MobileActionBar (usage, props)",
        "Secțiune actualizată: Navigation patterns (footer → settings hub)",
        "Diagrame ASCII actualizate cu noile rute",
        "npm run build passes (doar pentru validare că nu s-a stricat nimic)"
      ],
      "passes": false,
      "notes": ""
    }
  ]
}
