// Modulio puslapis — data-driven. Kiekvienas modulis raktuojamas pagal URL slug
// (/moduliai/<slug>). Vienas komponentas atvaizduoja bet kurį modulį; slug
// nuskaitomas iš kelio vykdymo metu — analogiškai BlogPostPage.

const MODULES = {

  // ──────────────────────────────────────────────────────────────────────
  'crm': {
    slug: 'crm', logo: 'odoo-crm.svg', category: 'Pardavimai', mock: 'crm',
    eyebrow: 'CRM modulis',
    title: 'CRM, kuris kontaktus paverčia sandoriais.',
    lede: 'Pardavimų piltuvas, klientų istorija ir veiklos sekimas vienoje vietoje — viskas, kas iki šiol gulėjo Excel lentelėse ir el. pašto dėžutėse. ERP365 CRM veikia toje pačioje sistemoje kaip pardavimai, sąskaitos ir rinkodara, todėl niekas nepasimeta tarp įrankių.',
    featuresHead: 'Viskas pardavimams vienoje vietoje',
    featuresLede: 'Nuo pirmo užklausos iki laimėto sandorio. CRM modulis apima visą pardavimų ciklą, o duomenys realiu laiku matomi visai komandai.',
    features: [
      { icon: 'user-plus',        t: 'Potencialių klientų valdymas', d: 'Užklausos iš svetainės, el. pašto ar telefonu automatiškai virsta pardavimo galimybėmis — su visa kontakto informacija ir šaltiniu.' },
      { icon: 'layout-dashboard', t: 'Pardavimų piltuvas (Kanban)',  d: 'Matykite visus sandorius pagal stadijas vienoje lentoje. Tempkite korteles tarp etapų, matykite sumas ir prognozę realiu laiku.' },
      { icon: 'calendar-clock',   t: 'Veiklos planavimas',           d: 'Skambučiai, susitikimai ir priminimai prie kiekvieno kliento. Sistema primena, ką ir kada reikia padaryti — niekas nepamirštama.' },
      { icon: 'mail',             t: 'El. laiškų istorija ir šablonai', d: 'Visas susirašinėjimas su klientu saugomas kortelėje. Naudokite šablonus pasikartojantiems laiškams ir siųskite tiesiai iš CRM.' },
      { icon: 'file-text',        t: 'Pasiūlymai vienu paspaudimu',  d: 'Iš pardavimo galimybės sukurkite pasiūlymą be perrašinėjimo — kainos, nuolaidos ir prekės keliauja tiesiai iš sistemos.' },
      { icon: 'bar-chart-3',      t: 'Prognozės ir ataskaitos',      d: 'Tikėtinos pajamos pagal stadiją, komandos rezultatai ir konversijos. Objektyvūs skaičiai vietoj nuojautos.' },
      { icon: 'users',            t: 'Komandos ir teisės',           d: 'Skirtingos pardavimų komandos, savo piltuvai ir prieigos. Vadovas mato bendrą vaizdą, pardavėjas — savo sandorius.' },
      { icon: 'smartphone',       t: 'Mobilioji aplikacija',         d: 'Visas CRM telefone — fiksuokite skambučius, atnaujinkite sandorius ir matykite klientų istoriją būdami pas klientą.' },
    ],
    flowHead: 'Pardavimų piltuvas: nuo užklausos iki sandorio',
    flow: [
      { t: '1 · Naujas',        d: 'Užklausa iš svetainės, el. pašto ar telefonu virsta kortele su kontaktu ir šaltiniu.',     icon: 'inbox',        color: '#0080FF', bg: 'var(--erp-freedom-50)' },
      { t: '2 · Kvalifikacija', d: 'Pardavėjas įvertina poreikį ir biudžetą, suplanuoja skambutį ar susitikimą.',             icon: 'list-checks',  color: '#8B5CF6', bg: '#EDE9FE' },
      { t: '3 · Pasiūlymas',    d: 'Iš galimybės sugeneruojamas pasiūlymas — kainos ir prekės keliauja tiesiai iš sistemos.', icon: 'file-text',    color: '#B8860B', bg: 'var(--erp-yellow-50)' },
      { t: '4 · Laimėta',       d: 'Patvirtintas sandoris virsta užsakymu ir sąskaita — be dvigubo įvedimo.',                 icon: 'circle-check', color: '#16A34A', bg: '#DCFCE7' },
    ],
    casesHead: 'Kam tinka', casesSub: 'Bet kuriai komandai, kuri parduoda.',
    cases: [
      { icon: 'briefcase',  t: 'B2B pardavimai',          d: 'Ilgesni sandoriai su keliais kontaktais ir etapais. Visa istorija ir dokumentai vienoje kortelėje.' },
      { icon: 'headphones', t: 'Paslaugų įmonės',         d: 'Užklausos virsta pasiūlymais, pasiūlymai — projektais ir sąskaitomis, viename sraute.' },
      { icon: 'package',    t: 'Prekyba ir distribucija', d: 'Kainoraščiai pagal klientą, pakartotiniai užsakymai ir greitas pasiūlymų rengimas.' },
      { icon: 'building-2', t: 'Projektinis verslas',     d: 'Nuo kontakto iki pasirašytos sutarties — su prognoze, kuri padeda planuoti komandos krūvį.' },
    ],
    worksHead: 'Veikia kartu su', worksLede: 'CRM nėra atskira sala — laimėtas sandoris tęsiasi tuose pačiuose duomenyse.',
    worksWith: [
      { id: 'sales',        name: 'Pardavimai',          d: 'Sandoris virsta pasiūlymu ir užsakymu be perrašinėjimo.', logo: 'odoo-sales.svg' },
      { id: 'invoicing',    name: 'Sąskaitos',           d: 'Iš užsakymo — sąskaita faktūra vienu paspaudimu.',         logo: 'odoo-invoicing.svg' },
      { id: 'mass_mailing', name: 'El. pašto rinkodara', d: 'Segmentuokite klientus iš CRM ir siųskite kampanijas.',   logo: 'odoo-email-marketing.svg' },
      { id: 'project',      name: 'Projektai',           d: 'Laimėtas sandoris automatiškai virsta projektu komandai.', logo: 'odoo-project.svg' },
    ],
    faqHead: 'Dažni klausimai apie CRM',
    faq: [
      { q: 'Ar CRM reikia atskiros licencijos?', a: 'Ne. CRM yra ERP365 dalis ir veikia visuose planuose su neribotu vartotojų skaičiumi — į pardavimų sistemą galite įtraukti visą komandą be papildomo mokesčio už kiekvieną žmogų.' },
      { q: 'Ar galima perkelti duomenis iš Excel ar kitos CRM sistemos?', a: 'Taip. Turimus kontaktus, įmones ir pardavimo galimybes importuojame iš Excel arba kitos sistemos diegimo metu — pradedate dirbti su jau sukeltais duomenimis.' },
      { q: 'Ar CRM susieja el. paštą?', a: 'Taip. Galite susieti el. pašto dėžutę, kad laiškai iš/į klientą automatiškai prisikabintų prie jo kortelės, o pardavėjas matytų visą susirašinėjimo istoriją vienoje vietoje.' },
      { q: 'Ar yra mobilioji aplikacija?', a: 'Taip. CRM veikia telefone — galite fiksuoti skambučius, atnaujinti sandorius ir peržiūrėti klientų istoriją būdami pas klientą ar kelyje.' },
      { q: 'Kuo CRM skiriasi nuo Pardavimų modulio?', a: 'CRM apima ikipardaviminį etapą — potencialius klientus, pardavimų piltuvą ir veiklas. Pardavimų modulis perima nuo pasiūlymo: užsakymai, kainoraščiai ir sąskaitų generavimas. Abu veikia toje pačioje sistemoje.' },
    ],
    cta: { title: 'Norite pamatyti CRM gyvai?', lede: '30 min. demo. Parodysime, kaip atrodo pardavimų piltuvas su jūsų procesais.' },
    seo: { title: 'CRM sistema · ERP365 — pardavimų valdymas Odoo pagrindu', description: 'ERP365 CRM modulis: pardavimų piltuvas, klientų istorija, veiklos sekimas ir pasiūlymai vienoje sistemoje. Neribotas vartotojų skaičius, lietuviška sąsaja.' },
  },

  // ──────────────────────────────────────────────────────────────────────
  'pardavimai': {
    slug: 'pardavimai', logo: 'odoo-sales.svg', category: 'Pardavimai', mock: 'pardavimai',
    eyebrow: 'Pardavimų modulis',
    title: 'Nuo pasiūlymo iki apmokėtos sąskaitos.',
    lede: 'Pasiūlymų rengimas, užsakymų valdymas ir sąskaitų generavimas iš vienos vietos — su kainoraščiais pagal klientą, nuolaidomis ir produktų variantais. Pardavimai tiesiogiai susiję su CRM, sandėliu ir apskaita, todėl patvirtintas užsakymas pats keliauja per visą grandinę.',
    featuresHead: 'Visas pardavimo ciklas, be perrašinėjimo',
    featuresLede: 'Pasiūlymas, užsakymas, pristatymas ir sąskaita gimsta tuose pačiuose duomenyse. Pardavėjui lieka parduoti, o ne suvedinėti.',
    features: [
      { icon: 'file-text',     t: 'Pasiūlymų rengimas',       d: 'Profesionalūs pasiūlymai su prekėmis, kainomis ir sąlygomis; klientas patvirtina internetu vienu paspaudimu.' },
      { icon: 'tag',           t: 'Kainoraščiai pagal klientą', d: 'Skirtingos kainos segmentams, akcijos ir kiekio nuolaidos — taikomos automatiškai pagal klientą ar laikotarpį.' },
      { icon: 'shopping-cart', t: 'Užsakymų valdymas',        d: 'Patvirtinti užsakymai virsta pristatymais ir sąskaitomis; visa būsena matoma vienoje vietoje.' },
      { icon: 'percent',       t: 'Nuolaidų taisyklės',       d: 'Centralizuotos nuolaidų ir antkainių taisyklės — be klaidų ir „rankinio" skaičiavimo.' },
      { icon: 'layers',        t: 'Produktai ir variantai',   d: 'Prekės su variantais (dydis, spalva), komplektai ir paslaugos viename kataloge.' },
      { icon: 'file-check-2',  t: 'Sąskaitos vienu paspaudimu', d: 'Iš užsakymo generuojama sąskaita faktūra; dalinis ar pilnas sąskaitavimas pagal pristatymą.' },
      { icon: 'repeat',        t: 'Pasikartojantys pardavimai', d: 'Prenumeratos ir periodiniai užsakymai su automatiniu sąskaitų išrašymu.' },
      { icon: 'bar-chart-3',   t: 'Pardavimų ataskaitos',     d: 'Pajamos pagal pardavėją, prekę ar klientą; maržos ir tendencijos realiu laiku.' },
    ],
    flowHead: 'Pardavimo srautas: nuo pasiūlymo iki sąskaitos',
    flow: [
      { t: '1 · Pasiūlymas',    d: 'Iš CRM galimybės ar tiesiogiai sukuriamas pasiūlymas su prekėmis ir kainomis.', icon: 'file-text',    color: '#0080FF', bg: 'var(--erp-freedom-50)' },
      { t: '2 · Patvirtinimas', d: 'Klientas patvirtina internetu arba pardavėjas — pasiūlymas virsta užsakymu.',  icon: 'check-circle', color: '#8B5CF6', bg: '#EDE9FE' },
      { t: '3 · Pristatymas',   d: 'Sandėlis paruošia ir išsiunčia prekes; likučiai atsinaujina automatiškai.',    icon: 'truck',        color: '#B8860B', bg: 'var(--erp-yellow-50)' },
      { t: '4 · Sąskaita',      d: 'Generuojama sąskaita faktūra; apmokėjimas sekamas iki galo.',                  icon: 'receipt',      color: '#16A34A', bg: '#DCFCE7' },
    ],
    casesHead: 'Kam tinka', casesSub: 'Bet kuriam verslui, kuris išrašo užsakymus.',
    cases: [
      { icon: 'package',     t: 'Didmena ir distribucija', d: 'Kainoraščiai pagal klientą, dideli užsakymai ir greitas jų kartojimas.' },
      { icon: 'briefcase',   t: 'B2B prekyba',             d: 'Pasiūlymai, sutartys ir periodinis sąskaitavimas viename sraute.' },
      { icon: 'headphones',  t: 'Paslaugų pardavimas',     d: 'Mišrūs prekių ir paslaugų užsakymai su daliniu sąskaitavimu.' },
      { icon: 'shopping-bag', t: 'E. komercija',           d: 'Internetinės parduotuvės užsakymai jungiasi su tuo pačiu katalogu ir sandėliu.' },
    ],
    worksHead: 'Veikia kartu su', worksLede: 'Užsakymas keliauja per visą grandinę — be dvigubo įvedimo.',
    worksWith: [
      { id: 'crm',       name: 'CRM',       d: 'Pardavimo galimybė virsta pasiūlymu vienu paspaudimu.',   logo: 'odoo-crm.svg' },
      { id: 'inventory', name: 'Sandėlis',  d: 'Patvirtinus užsakymą rezervuojamos ir nurašomos atsargos.', logo: 'odoo-inventory.svg' },
      { id: 'invoicing', name: 'Sąskaitos', d: 'Iš užsakymo — sąskaita faktūra su i.SAF.',                logo: 'odoo-invoicing.svg' },
      { id: 'purchase',  name: 'Pirkimai',  d: 'Trūkstamos prekės užsakomos iš tiekėjų automatiškai.',    logo: 'odoo-purchase.svg' },
    ],
    faqHead: 'Dažni klausimai apie pardavimus',
    faq: [
      { q: 'Ar pasiūlymą klientas gali patvirtinti internetu?', a: 'Taip — siunčiate nuorodą, klientas peržiūri ir patvirtina ar pasirašo internetu; pasiūlymas iškart virsta užsakymu.' },
      { q: 'Ar galima nustatyti skirtingas kainas skirtingiems klientams?', a: 'Taip — kainoraščiai pagal klientą, segmentą, kiekį ar laikotarpį taikomi automatiškai, be rankinio skaičiavimo.' },
      { q: 'Ar pardavimai susiję su sandėliu?', a: 'Taip — patvirtinus užsakymą rezervuojamos atsargos, o pristatymas nurašo likučius realiu laiku.' },
      { q: 'Ar galima išrašyti dalinę sąskaitą?', a: 'Taip — galite sąskaituoti pagal pristatytą kiekį, avansu arba pilnai.' },
      { q: 'Ar sąskaitos atitinka Lietuvos reikalavimus?', a: 'Taip — sąskaitos atitinka LR reikalavimus ir keliauja į VMI i.SAF; galima ir Rivilės integracija.' },
    ],
    cta: { title: 'Norite pamatyti pardavimų srautą?', lede: '30 min. demo. Parodysime, kaip pasiūlymas tampa apmokėta sąskaita.' },
    seo: { title: 'Pardavimų valdymas · ERP365 — pasiūlymai, užsakymai, sąskaitos', description: 'ERP365 pardavimų modulis: pasiūlymai, užsakymai, kainoraščiai pagal klientą ir sąskaitos vienoje sistemoje. Susieta su CRM, sandėliu ir apskaita.' },
  },

  // ──────────────────────────────────────────────────────────────────────
  'sandelis': {
    slug: 'sandelis', logo: 'odoo-inventory.svg', category: 'Tiekimo grandinė', mock: 'sandelis',
    eyebrow: 'Sandėlio modulis',
    title: 'Sandėlis, kuriame likučiai visada teisingi.',
    lede: 'Atsargų valdymas, brūkšninių kodų skenavimas ir kelių sandėlių logistika realiu laiku — be Excel lapų ir inventorizacijos „aklai". Sandėlis veikia kartu su pirkimais, pardavimais ir gamyba, todėl kiekvienas judėjimas atsispindi iškart.',
    featuresHead: 'Atsargos, kurioms galima pasitikėti',
    featuresLede: 'Kiekvienas priėmimas, perkėlimas ir siuntimas fiksuojamas realiu laiku. Likutis ekrane sutampa su likučiu lentynoje.',
    features: [
      { icon: 'boxes',         t: 'Atsargos realiu laiku',   d: 'Kiekvienos prekės likutis, rezervai ir laukiami kiekiai — atnaujinami su kiekvienu judėjimu.' },
      { icon: 'scan-barcode',  t: 'Brūkšniniai kodai ir QR', d: 'Priėmimas, surinkimas ir siuntimas skenuojant — mažiau klaidų, greitesnis darbas.' },
      { icon: 'warehouse',     t: 'Keli sandėliai ir zonos', d: 'Vidiniai perkėlimai, zonos, lokacijos ir keli sandėliai vienoje sistemoje.' },
      { icon: 'clipboard-check', t: 'Inventorizacija',       d: 'Pilna ar dalinė inventorizacija be veiklos stabdymo; nesutapimai matomi iškart.' },
      { icon: 'calendar-clock', t: 'Partijos ir galiojimas', d: 'Partijų (lot) ir serijų sekimas, galiojimo datos, FEFO/FIFO nurašymas.' },
      { icon: 'route',         t: 'Pristatymo maršrutai',    d: 'Sudėtiniai priėmimo ir siuntimo srautai (multi-step) bei kros-dokingas.' },
      { icon: 'refresh-cw',    t: 'Automatinis papildymas',  d: 'Užsakymo taškai ir min./maks. likučiai automatiškai inicijuoja pirkimą ar gamybą.' },
      { icon: 'bar-chart-3',   t: 'Atsargų ataskaitos',      d: 'Apyvartumas, vertė, judėjimo istorija ir prognozės realiu laiku.' },
    ],
    flowHead: 'Sandėlio srautas: nuo priėmimo iki siuntimo',
    flow: [
      { t: '1 · Priėmimas',  d: 'Prekės priimamos skenuojant; likučiai padidėja, susiejama su pirkimu.', icon: 'package-plus', color: '#0080FF', bg: 'var(--erp-freedom-50)' },
      { t: '2 · Saugojimas', d: 'Priskiriamos lokacijos ir zonos; sistema siūlo optimalią vietą.',      icon: 'warehouse',    color: '#8B5CF6', bg: '#EDE9FE' },
      { t: '3 · Surinkimas', d: 'Užsakymui prekės surenkamos pagal sąrašą su skenavimu.',               icon: 'scan-barcode', color: '#B8860B', bg: 'var(--erp-yellow-50)' },
      { t: '4 · Siuntimas',  d: 'Generuojami važtaraščiai ir etiketės; likutis nurašomas automatiškai.', icon: 'truck',       color: '#16A34A', bg: '#DCFCE7' },
    ],
    casesHead: 'Kam tinka', casesSub: 'Visiems, kas laiko ir juda prekes.',
    cases: [
      { icon: 'warehouse',    t: 'Didmena ir sandėliavimas', d: 'Dideli kiekiai, kelios lokacijos ir greitas surinkimas su skenavimu.' },
      { icon: 'factory',      t: 'Gamyba',                   d: 'Žaliavų ir gatavos produkcijos likučiai sinchronizuoti su gamyba.' },
      { icon: 'shopping-bag', t: 'E. komercija ir mažmena',  d: 'Realūs likučiai keliuose kanaluose ir greitas siuntimas.' },
      { icon: 'wrench',       t: 'Atsarginės dalys',         d: 'Partijų, serijų ir garantijų sekimas servisui ir priežiūrai.' },
    ],
    worksHead: 'Veikia kartu su', worksLede: 'Kiekvienas judėjimas atsispindi visoje grandinėje iškart.',
    worksWith: [
      { id: 'purchase',    name: 'Pirkimai',  d: 'Žemas likutis automatiškai inicijuoja pirkimą.',          logo: 'odoo-purchase.svg' },
      { id: 'sales',       name: 'Pardavimai', d: 'Pardavus prekę likutis nurašomas realiu laiku.',         logo: 'odoo-sales.svg' },
      { id: 'mfg',         name: 'Gamyba',    d: 'Žaliavos rezervuojamos, gatava produkcija priimama.',     logo: 'odoo-manufacturing.svg' },
      { id: 'maintenance', name: 'Priežiūra', d: 'Atsarginės dalys nurašomos iš to paties sandėlio.',       logo: 'odoo-maintenance.svg' },
    ],
    faqHead: 'Dažni klausimai apie sandėlį',
    faq: [
      { q: 'Ar reikia specialios įrangos brūkšniniams kodams?', a: 'Užtenka įprasto skenerio ar net telefono kameros — sistema veikia su standartiniais 1D/2D kodais.' },
      { q: 'Ar galima valdyti kelis sandėlius?', a: 'Taip — neribotas sandėlių, zonų ir lokacijų skaičius su vidiniais perkėlimais tarp jų.' },
      { q: 'Ar sekamos partijos ir galiojimo datos?', a: 'Taip — partijų ir serijų sekimas su FEFO/FIFO nurašymu ir įspėjimais apie besibaigiantį galiojimą.' },
      { q: 'Kaip vyksta inventorizacija?', a: 'Galite atlikti pilną ar dalinę inventorizaciją bet kada, skenuojant; nesutapimai koreguojami su pilna istorija.' },
      { q: 'Ar likučiai sinchronizuojami su pardavimais?', a: 'Taip — pardavus prekę likutis nurašomas iškart, o pirkus ar pagaminus — padidėja.' },
    ],
    cta: { title: 'Norite pamatyti sandėlį gyvai?', lede: '30 min. demo. Parodysime, kaip likučiai juda realiu laiku.' },
    seo: { title: 'Sandėlio valdymas · ERP365 — atsargos, brūkšniniai kodai, WMS', description: 'ERP365 sandėlio modulis: atsargos realiu laiku, brūkšninių kodų skenavimas, keli sandėliai, partijos ir inventorizacija. Susieta su pirkimais ir gamyba.' },
  },

  // ──────────────────────────────────────────────────────────────────────
  'gamyba': {
    slug: 'gamyba', logo: 'odoo-manufacturing.svg', category: 'Tiekimo grandinė', mock: 'gamyba',
    eyebrow: 'Gamybos modulis',
    title: 'Gamyba, suplanuota iki paskutinės detalės.',
    lede: 'Medžiagų sąrašai (BOM), gamybos užsakymai ir darbo centrai vienoje sistemoje — su atsargų rezervavimu ir realiu gamybos vaizdu. Gamyba tiesiogiai susieta su sandėliu ir pirkimais, todėl žaliavos visada parūpinamos laiku.',
    featuresHead: 'Nuo BOM iki gatavos produkcijos',
    featuresLede: 'Planuokite gamybą pagal realius pajėgumus ir atsargas. Sistema žino, ko trūksta, dar prieš pradedant.',
    features: [
      { icon: 'list-tree',      t: 'Medžiagų sąrašai (BOM)', d: 'Daugiapakopiai BOM su komponentais, operacijomis ir alternatyvomis.' },
      { icon: 'clipboard-list', t: 'Gamybos užsakymai',      d: 'Užsakymai su reikalingomis žaliavomis, terminais ir aiškiomis būsenomis.' },
      { icon: 'factory',        t: 'Darbo centrai',          d: 'Pajėgumai, našumas ir apkrova kiekvienam darbo centrui.' },
      { icon: 'boxes',          t: 'Atsargų rezervavimas',   d: 'Žaliavos automatiškai rezervuojamos užsakymui; trūkstamos užsakomos.' },
      { icon: 'workflow',       t: 'Maršrutai ir operacijos', d: 'Operacijų seka, laikai ir darbo instrukcijos kiekvienam žingsniui.' },
      { icon: 'clock',          t: 'Gamybos laiko sekimas',  d: 'Realus operacijų laikas vs. planuotas — matote tikrąją savikainą.' },
      { icon: 'layers',         t: 'Pusgaminiai ir subranga', d: 'Tarpiniai produktai ir subrangos darbai viename sraute.' },
      { icon: 'bar-chart-3',    t: 'Gamybos ataskaitos',     d: 'Našumas, atliekos, savikaina ir terminų laikymasis.' },
    ],
    flowHead: 'Gamybos srautas: nuo plano iki produkcijos',
    flow: [
      { t: '1 · Planavimas', d: 'Pagal užsakymą ar prognozę sukuriamas gamybos užsakymas su BOM.',       icon: 'clipboard-list', color: '#0080FF', bg: 'var(--erp-freedom-50)' },
      { t: '2 · Žaliavos',   d: 'Rezervuojamos atsargos; trūkstamos automatiškai užsakomos iš tiekėjų.', icon: 'boxes',          color: '#8B5CF6', bg: '#EDE9FE' },
      { t: '3 · Gamyba',     d: 'Operacijos vykdomos darbo centruose; fiksuojamas laikas ir kiekiai.',   icon: 'factory',        color: '#B8860B', bg: 'var(--erp-yellow-50)' },
      { t: '4 · Užbaigimas', d: 'Gatava produkcija priimama į sandėlį; apskaičiuojama reali savikaina.', icon: 'package-check',  color: '#16A34A', bg: '#DCFCE7' },
    ],
    casesHead: 'Kam tinka', casesSub: 'Įvairaus tipo gamybai.',
    cases: [
      { icon: 'boxes',      t: 'Diskrečioji gamyba',     d: 'Surinkimas iš komponentų pagal BOM ir maršrutus.' },
      { icon: 'clipboard-list', t: 'Užsakomoji gamyba (MTO)', d: 'Gamyba pagal konkretų užsakymą su pilnu atsekamumu.' },
      { icon: 'flask-conical', t: 'Maisto ir procesų gamyba', d: 'Partijos, galiojimas ir receptūros vienoje vietoje.' },
      { icon: 'hammer',     t: 'Baldų ir metalo dirbiniai', d: 'Pusgaminiai, subranga ir individualūs užsakymai.' },
    ],
    worksHead: 'Veikia kartu su', worksLede: 'Gamyba neegzistuoja atskirai — ji maitinasi atsargomis ir pirkimais.',
    worksWith: [
      { id: 'inventory',   name: 'Sandėlis',  d: 'Žaliavų nurašymas ir produkcijos priėmimas realiu laiku.', logo: 'odoo-inventory.svg' },
      { id: 'purchase',    name: 'Pirkimai',  d: 'Trūkstamos žaliavos užsakomos automatiškai.',              logo: 'odoo-purchase.svg' },
      { id: 'sales',       name: 'Pardavimai', d: 'Užsakymas gali tiesiogiai inicijuoti gamybą (MTO).',      logo: 'odoo-sales.svg' },
      { id: 'maintenance', name: 'Priežiūra', d: 'Įrangos priežiūra planuojama nestabdant gamybos.',         logo: 'odoo-maintenance.svg' },
    ],
    faqHead: 'Dažni klausimai apie gamybą',
    faq: [
      { q: 'Ar palaikomi daugiapakopiai BOM?', a: 'Taip — komponentai gali turėti savo BOM (pusgaminiai), o sistema viską išskaido automatiškai.' },
      { q: 'Ar gamyba rezervuoja žaliavas?', a: 'Taip — patvirtinus gamybos užsakymą žaliavos rezervuojamos, o trūkstamos inicijuoja pirkimą.' },
      { q: 'Ar galima sekti gamybos laiką ir savikainą?', a: 'Taip — fiksuojamas realus operacijų laikas ir medžiagų sąnaudos, todėl matote tikrą gaminio savikainą.' },
      { q: 'Ar tinka subrangos darbams?', a: 'Taip — atskiri operacijų žingsniai gali būti perduodami subrangovams ir sekami sistemoje.' },
      { q: 'Ar gamyba susijusi su sandėliu?', a: 'Taip — žaliavų nurašymas ir gatavos produkcijos priėmimas vyksta sandėlyje realiu laiku.' },
    ],
    cta: { title: 'Norite pamatyti gamybą gyvai?', lede: '30 min. demo. Parodysime, kaip planuojami gamybos užsakymai ir žaliavos.' },
    seo: { title: 'Gamybos valdymas · ERP365 — BOM, gamybos užsakymai, MRP', description: 'ERP365 gamybos modulis: medžiagų sąrašai (BOM), gamybos užsakymai, darbo centrai ir atsargų rezervavimas. Susieta su sandėliu ir pirkimais.' },
  },

  // ──────────────────────────────────────────────────────────────────────
  'apskaita': {
    slug: 'apskaita', logo: 'odoo-invoicing.svg', category: 'Finansai', mock: 'apskaita',
    eyebrow: 'Sąskaitų modulis',
    title: 'Sąskaitos ir apskaita be dvigubo darbo.',
    lede: 'Sąskaitų faktūrų išrašymas, mokėjimų sekimas ir VMI i.SAF/i.VAZ integracija vienoje sistemoje. Dokumentai gimsta ten, kur vyksta pardavimas ar pirkimas — be perrašinėjimo, o į Rivilę ar kitą apskaitą keliauja automatiškai.',
    featuresHead: 'Dokumentai, kurie tvarkosi patys',
    featuresLede: 'Sąskaita gimsta iš užsakymo, išsiunčiama klientui ir sekamas jos apmokėjimas — be rankinio darbo ir dvigubo įvedimo.',
    features: [
      { icon: 'file-text',    t: 'Sąskaitų išrašymas',     d: 'Faktūros iš užsakymų ar tiesiogiai; serijos, PVM ir šablonai pagal Lietuvos reikalavimus.' },
      { icon: 'send',         t: 'Automatinis siuntimas',  d: 'Sąskaitos siunčiamos klientui el. paštu su nuoroda apmokėti.' },
      { icon: 'landmark',     t: 'Banko operacijų suvedimas', d: 'Banko išrašai importuojami ir automatiškai sugretinami su sąskaitomis.' },
      { icon: 'shield-check', t: 'VMI i.SAF / i.VAZ',      d: 'Sąskaitos ir važtaraščiai atitinka VMI reikalavimus ir teikiami automatiškai.' },
      { icon: 'refresh-cw',   t: 'Rivilės integracija',    d: 'Dokumentai į Rivilę keliauja per REST API — be dvigubo įvedimo.' },
      { icon: 'clock',        t: 'Mokėjimų sekimas',       d: 'Apmokėjimų būsena realiu laiku ir priminimai apie vėluojančias sąskaitas.' },
      { icon: 'globe',        t: 'Daugiavaliutė',          d: 'Sąskaitos ir mokėjimai keliomis valiutomis su automatiniu kursu.' },
      { icon: 'bar-chart-3',  t: 'Finansų ataskaitos',     d: 'Pajamos, gautinos sumos ir pinigų srautai vienu žvilgsniu.' },
    ],
    flowHead: 'Sąskaitos kelias: nuo dokumento iki apskaitos',
    flow: [
      { t: '1 · Dokumentas',  d: 'Sąskaita gimsta iš pardavimo ar pirkimo užsakymo automatiškai.', icon: 'file-text',    color: '#0080FF', bg: 'var(--erp-freedom-50)' },
      { t: '2 · Siuntimas',   d: 'Klientui išsiunčiama el. paštu su apmokėjimo nuoroda.',           icon: 'send',         color: '#8B5CF6', bg: '#EDE9FE' },
      { t: '3 · Apmokėjimas', d: 'Banko išrašas sugretinamas; būsena atnaujinama automatiškai.',    icon: 'landmark',     color: '#B8860B', bg: 'var(--erp-yellow-50)' },
      { t: '4 · Apskaita',    d: 'Dokumentai keliauja į i.SAF ir Rivilę be perrašinėjimo.',         icon: 'circle-check', color: '#16A34A', bg: '#DCFCE7' },
    ],
    casesHead: 'Kam tinka', casesSub: 'Įmonėms, kurios nori mažiau rankinio darbo.',
    cases: [
      { icon: 'refresh-cw', t: 'Įmonės su Rivile',      d: 'Kasdienis darbas ERP365, apskaita lieka Rivilėje per integraciją.' },
      { icon: 'trending-up', t: 'Augančios MVĮ',        d: 'Visas sąskaitavimas vienoje sistemoje su neribotais vartotojais.' },
      { icon: 'files',      t: 'Daug sąskaitų per mėn.', d: 'Automatinis išrašymas, siuntimas ir mokėjimų sekimas.' },
      { icon: 'globe',      t: 'Tarptautiniai pardavimai', d: 'Daugiavaliutės sąskaitos ir automatinis kursų valdymas.' },
    ],
    worksHead: 'Veikia kartu su', worksLede: 'Sąskaita nėra atskiras dokumentas — ji gimsta iš realios veiklos.',
    worksWith: [
      { id: 'sales',     name: 'Pardavimai', d: 'Iš pardavimo užsakymo — sąskaita vienu paspaudimu.',  logo: 'odoo-sales.svg' },
      { id: 'purchase',  name: 'Pirkimai',   d: 'Tiekėjų sąskaitos sutapatinamos su užsakymais.',       logo: 'odoo-purchase.svg' },
      { id: 'crm',       name: 'CRM',        d: 'Klientų duomenys ir istorija — tie patys.',            logo: 'odoo-crm.svg' },
      { id: 'expenses',  name: 'Išlaidos',   d: 'Darbuotojų išlaidos perkeliamos į apskaitą automatiškai.', logo: 'odoo-expenses.svg' },
    ],
    faqHead: 'Dažni klausimai apie sąskaitas ir apskaitą',
    faq: [
      { q: 'Ar ERP365 pakeičia Rivilę?', a: 'Nebūtinai — galite dirbti ERP365, o dokumentus automatiškai perduoti į Rivilę per REST API; daug klientų būtent taip ir daro.' },
      { q: 'Ar sąskaitos atitinka VMI reikalavimus?', a: 'Taip — i.SAF ir i.VAZ teikiami automatiškai, o sąskaitos atitinka LR reikalavimus.' },
      { q: 'Ar galima suvesti banko operacijas?', a: 'Taip — importuojami banko išrašai ir automatiškai sugretinami su atitinkamomis sąskaitomis.' },
      { q: 'Ar palaikomos kelios valiutos?', a: 'Taip — sąskaitos ir mokėjimai keliomis valiutomis su automatiniu valiutos kursu.' },
      { q: 'Ar sąskaita sukuriama iš užsakymo?', a: 'Taip — iš pardavimo užsakymo sąskaita generuojama vienu paspaudimu, be perrašinėjimo.' },
    ],
    cta: { title: 'Norite pamatyti sąskaitų srautą?', lede: '30 min. demo. Parodysime, kaip dokumentai keliauja į i.SAF ir Rivilę.' },
    seo: { title: 'Sąskaitos ir apskaita · ERP365 — sąskaitų išrašymas, i.SAF, Rivilė', description: 'ERP365 sąskaitų modulis: sąskaitų faktūrų išrašymas, VMI i.SAF/i.VAZ, banko operacijų suvedimas ir Rivilės integracija vienoje sistemoje.' },
  },

  // ──────────────────────────────────────────────────────────────────────
  'projektai': {
    slug: 'projektai', logo: 'odoo-project.svg', category: 'Paslaugos', mock: 'projektai',
    eyebrow: 'Projektų modulis',
    title: 'Projektai, terminai ir laikas vienoje vietoje.',
    lede: 'Užduotys, terminai ir komandos darbo krūvis su Kanban, Gantt ir sąrašo rodiniais. Projektai susieti su darbo laiko apskaita ir sąskaitomis, todėl valandos virsta klientų sąskaitomis be atskirų įrankių.',
    featuresHead: 'Nuo užduoties iki apmokėtos valandos',
    featuresLede: 'Planuokite, vykdykite ir sąskaituokite projektus toje pačioje sistemoje. Laikas ir biudžetas matomi realiu laiku.',
    features: [
      { icon: 'layout-dashboard', t: 'Kanban, sąrašas, Gantt', d: 'Tas pats projektas keliais rodiniais — pasirinkite patogiausią komandai.' },
      { icon: 'git-branch',     t: 'Užduočių priklausomybės', d: 'Etapai ir priklausomybės; pakeitus terminą atsinaujina visa grandinė.' },
      { icon: 'flag',           t: 'Tarpiniai etapai',       d: 'Aiškūs milestone’ai ir terminai su pažangos sekimu.' },
      { icon: 'clock',          t: 'Darbo laiko apskaita',   d: 'Valandos fiksuojamos prie užduočių ir virsta klientų sąskaitomis.' },
      { icon: 'message-square', t: 'Diskusijos užduotyje',   d: 'Komentarai, failai ir sprendimai saugomi prie pačios užduoties.' },
      { icon: 'users',          t: 'Komandos krūvis',        d: 'Matykite, kas ir kiek apkrautas, ir perskirstykite darbus.' },
      { icon: 'copy',           t: 'Projektų šablonai',      d: 'Pasikartojantys projektai kuriami iš šablono per sekundes.' },
      { icon: 'bar-chart-3',    t: 'Projektų ataskaitos',    d: 'Pelningumas, terminų laikymasis ir biudžetas realiu laiku.' },
    ],
    flowHead: 'Projekto srautas: nuo plano iki sąskaitos',
    flow: [
      { t: '1 · Planavimas',  d: 'Sukuriamas projektas su etapais, užduotimis ir terminais.',           icon: 'clipboard-list', color: '#0080FF', bg: 'var(--erp-freedom-50)' },
      { t: '2 · Vykdymas',    d: 'Komanda dirba Kanban ar sąrašu, fiksuoja laiką prie užduočių.',        icon: 'play',           color: '#8B5CF6', bg: '#EDE9FE' },
      { t: '3 · Stebėjimas',  d: 'Pažanga, krūvis ir biudžetas matomi realiu laiku.',                    icon: 'activity',       color: '#B8860B', bg: 'var(--erp-yellow-50)' },
      { t: '4 · Sąskaitavimas', d: 'Sugaišta valandos virsta klientų sąskaitomis vienu paspaudimu.',     icon: 'receipt',        color: '#16A34A', bg: '#DCFCE7' },
    ],
    casesHead: 'Kam tinka', casesSub: 'Komandoms, dirbančioms projektais.',
    cases: [
      { icon: 'headphones', t: 'Paslaugų ir konsultacijų įmonės', d: 'Projektai, valandų apskaita ir sąskaitavimas viename sraute.' },
      { icon: 'code',       t: 'IT ir agentūros',         d: 'Užduotys, sprintai ir klientų ataskaitos.' },
      { icon: 'hard-hat',   t: 'Statyba ir inžinerija',   d: 'Etapai, terminai ir išteklių planavimas.' },
      { icon: 'building-2', t: 'Vidiniai projektai',      d: 'Komandos darbų valdymas be atskiro įrankio.' },
    ],
    worksHead: 'Veikia kartu su', worksLede: 'Projektas susietas su laiku, klientais ir sąskaitomis.',
    worksWith: [
      { id: 'timesheet', name: 'Darbo laikas', d: 'Valandos fiksuojamos prie užduočių ir virsta sąskaitomis.', logo: 'odoo-timesheets.svg' },
      { id: 'invoicing', name: 'Sąskaitos',    d: 'Sugaišta valandos sąskaituojamos klientui.',               logo: 'odoo-invoicing.svg' },
      { id: 'crm',       name: 'CRM',          d: 'Laimėtas sandoris automatiškai virsta projektu.',          logo: 'odoo-crm.svg' },
      { id: 'sales',     name: 'Pardavimai',   d: 'Parduota paslauga atidaro projektą komandai.',             logo: 'odoo-sales.svg' },
    ],
    faqHead: 'Dažni klausimai apie projektus',
    faq: [
      { q: 'Ar galima matyti projektą skirtingais rodiniais?', a: 'Taip — Kanban, sąrašas, Gantt ir kalendorius rodo tuos pačius duomenis skirtingu kampu.' },
      { q: 'Ar laiko apskaita susijusi su sąskaitomis?', a: 'Taip — prie užduočių fiksuotos valandos virsta klientų sąskaitomis vienu paspaudimu.' },
      { q: 'Ar galima sekti projekto pelningumą?', a: 'Taip — matote sąnaudas (valandas, išlaidas) prieš pajamas realiu laiku.' },
      { q: 'Ar yra užduočių priklausomybės ir Gantt?', a: 'Taip — priklausomybės ir Gantt diagrama su automatiniu terminų perskaičiavimu.' },
      { q: 'Ar galima naudoti šablonus?', a: 'Taip — pasikartojantys projektai kuriami iš šablono su visomis užduotimis ir etapais.' },
    ],
    cta: { title: 'Norite pamatyti projektus gyvai?', lede: '30 min. demo. Parodysime, kaip užduotys ir valandos virsta sąskaitomis.' },
    seo: { title: 'Projektų valdymas · ERP365 — užduotys, Gantt, laiko apskaita', description: 'ERP365 projektų modulis: užduotys, Kanban ir Gantt rodiniai, darbo laiko apskaita ir sąskaitavimas vienoje sistemoje. Susieta su CRM ir sąskaitomis.' },
  },

  // ──────────────────────────────────────────────────────────────────────
  'pirkimai': {
    slug: 'pirkimai', logo: 'odoo-purchase.svg', category: 'Tiekimo grandinė', mock: 'pirkimai',
    eyebrow: 'Pirkimų modulis',
    title: 'Pirkimai, kurie patys žino, ko trūksta.',
    lede: 'Tiekėjų užsakymai, kainų palyginimas ir automatinis pirkimas pagal atsargų likutį. Pirkimai susieti su sandėliu ir gamyba, todėl žaliavos ir prekės užsakomos laiku, o tiekėjų sąskaitos sutapatinamos automatiškai.',
    featuresHead: 'Tiekimas, kuris neperka aklai',
    featuresLede: 'Sistema žino, ko ir kiek trūksta, palygina tiekėjų kainas ir suformuoja užsakymą — jums lieka patvirtinti.',
    features: [
      { icon: 'file-text',    t: 'Pirkimo užsakymai (PO)',  d: 'Užsakymai tiekėjams su prekėmis, kainomis ir pristatymo terminais.' },
      { icon: 'users',        t: 'Tiekėjų katalogas',       d: 'Tiekėjai, jų kainos, sąlygos ir įvertinimai vienoje vietoje.' },
      { icon: 'scale',        t: 'Kainų palyginimas',       d: 'RFQ keliems tiekėjams ir automatinis pasiūlymų palyginimas.' },
      { icon: 'refresh-cw',   t: 'Automatinis papildymas',  d: 'Pagal užsakymo tašką ir likutį sistema pati siūlo, ką užsakyti.' },
      { icon: 'send',         t: 'Užklausos (RFQ)',         d: 'Užklausos siunčiamos tiekėjams, o atsakymai virsta užsakymais.' },
      { icon: 'truck',        t: 'Pristatymo sekimas',      d: 'Laukiami pristatymai, terminai ir priėmimas į sandėlį.' },
      { icon: 'file-check-2', t: 'Sąskaitų sutapatinimas',  d: 'Tiekėjo sąskaita sugretinama su užsakymu ir priėmimu (3-way match).' },
      { icon: 'bar-chart-3',  t: 'Pirkimų ataskaitos',      d: 'Išlaidos pagal tiekėją, prekę ar laikotarpį; santaupos ir terminai.' },
    ],
    flowHead: 'Pirkimo srautas: nuo poreikio iki priėmimo',
    flow: [
      { t: '1 · Poreikis',  d: 'Žemas likutis ar gamybos užsakymas inicijuoja pirkimo poreikį.', icon: 'alert-circle', color: '#0080FF', bg: 'var(--erp-freedom-50)' },
      { t: '2 · Užklausa',  d: 'RFQ siunčiama tiekėjams; pasiūlymai palyginami.',                icon: 'send',         color: '#8B5CF6', bg: '#EDE9FE' },
      { t: '3 · Užsakymas', d: 'Patvirtinamas pirkimo užsakymas su terminu ir kaina.',           icon: 'file-text',    color: '#B8860B', bg: 'var(--erp-yellow-50)' },
      { t: '4 · Priėmimas', d: 'Prekės priimamos į sandėlį; sąskaita sutapatinama automatiškai.', icon: 'package-check', color: '#16A34A', bg: '#DCFCE7' },
    ],
    casesHead: 'Kam tinka', casesSub: 'Visiems, kas perka iš tiekėjų.',
    cases: [
      { icon: 'factory',     t: 'Gamyba',                 d: 'Žaliavos užsakomos automatiškai pagal gamybos poreikį.' },
      { icon: 'package',     t: 'Didmena ir prekyba',     d: 'Papildymas pagal likučius ir pardavimų tempą.' },
      { icon: 'hard-hat',    t: 'Statyba ir projektai',   d: 'Pirkimai pagal projektą su biudžeto kontrole.' },
      { icon: 'headphones',  t: 'Paslaugų įmonės',        d: 'Atsargų ir paslaugų pirkimai su patvirtinimų srautu.' },
    ],
    worksHead: 'Veikia kartu su', worksLede: 'Pirkimas prasideda nuo realaus poreikio, o baigiasi sandėlyje.',
    worksWith: [
      { id: 'inventory', name: 'Sandėlis',  d: 'Priėmus prekes likutis padidėja realiu laiku.',     logo: 'odoo-inventory.svg' },
      { id: 'mfg',       name: 'Gamyba',    d: 'Gamybos poreikis automatiškai inicijuoja pirkimą.', logo: 'odoo-manufacturing.svg' },
      { id: 'invoicing', name: 'Sąskaitos', d: 'Tiekėjo sąskaita sutapatinama su užsakymu.',        logo: 'odoo-invoicing.svg' },
      { id: 'sales',     name: 'Pardavimai', d: 'Pardavimų tempas lemia, ką ir kada papildyti.',    logo: 'odoo-sales.svg' },
    ],
    faqHead: 'Dažni klausimai apie pirkimus',
    faq: [
      { q: 'Ar sistema pati siūlo, ką užsakyti?', a: 'Taip — pagal užsakymo taškus ir likučius generuojami pirkimo pasiūlymai automatiškai.' },
      { q: 'Ar galima palyginti kelių tiekėjų kainas?', a: 'Taip — siunčiate RFQ keliems tiekėjams ir sistema palygina jų pasiūlymus.' },
      { q: 'Ar pirkimai susiję su sandėliu?', a: 'Taip — priėmus prekes likutis padidėja, o gamyba ir pardavimai mato realias atsargas.' },
      { q: 'Kas yra sąskaitų sutapatinimas?', a: 'Tiekėjo sąskaita automatiškai sugretinama su užsakymu ir priėmimu (3-way match), kad nemokėtumėte už tai, ko negavote.' },
      { q: 'Ar galima valdyti tiekėjų sąlygas?', a: 'Taip — kiekvienam tiekėjui saugomos kainos, pristatymo terminai ir įvertinimai.' },
    ],
    cta: { title: 'Norite pamatyti pirkimus gyvai?', lede: '30 min. demo. Parodysime, kaip sistema pati siūlo, ką užsakyti.' },
    seo: { title: 'Pirkimų valdymas · ERP365 — tiekėjai, RFQ, automatinis papildymas', description: 'ERP365 pirkimų modulis: pirkimo užsakymai, tiekėjų katalogas, RFQ, kainų palyginimas ir automatinis papildymas pagal likučius. Susieta su sandėliu ir gamyba.' },
  },

};

const MODULE_ORDER = ['crm', 'pardavimai', 'sandelis', 'gamyba', 'apskaita', 'projektai', 'pirkimai'];
window.MODULES = MODULES;
window.MODULE_ORDER = MODULE_ORDER;

function ModuleMock({ kind }) {
  // Modulio hero vizualas — naudoja bendrus mock komponentus iš Shared.jsx.
  switch (kind) {
    case 'crm':        return <DashboardMock />;
    case 'pardavimai': return <DashboardMockPardavimai />;
    case 'sandelis':   return <DashboardMockAtsargos />;
    case 'gamyba':     return <DashboardMockGamyba />;
    case 'apskaita':   return <DashboardMockApskaita />;
    case 'projektai':  return <DashboardMockProjektai />;
    case 'pirkimai':   return <DashboardMockPirkimai />;
    default:           return <DashboardMock />;
  }
}

function ModuleFAQ({ items }) {
  const [open, setOpen] = React.useState(0);
  return (
    <div className="erp-faq">
      {items.map((it, i) => (
        <div key={i} className={`erp-faq-item ${open === i ? 'is-open' : ''}`}>
          <div className="erp-faq-q" onClick={() => setOpen(open === i ? -1 : i)}>
            <span>{it.q}</span>
            <span className="erp-faq-icon">+</span>
          </div>
          <div className="erp-faq-a">
            <div className="erp-faq-a-inner"><p>{it.a}</p></div>
          </div>
        </div>
      ))}
    </div>
  );
}

function ModulePage() {
  const url = window.__erp_url;

  const slug = (window.location.pathname.replace(/\/+$/, '').split('/').pop() || '').replace(/\.html$/, '');
  const key = MODULES[slug] ? slug : MODULE_ORDER[0];
  const m = MODULES[key];

  React.useEffect(() => { if (window.lucide) window.lucide.createIcons(); });

  return (
    <>
      {/* === HERO === */}
      <section className="erp-pagehead erp-mod-hero">
        <img src="/assets/orbit-pattern.svg" className="erp-pagehead-orbit" alt="" />
        <div className="erp-container">
          <div className="erp-pagehead-inner">
            <div className="erp-breadcrumb">
              <a href={url('home')}>Pradžia</a>
              <span>/</span>
              <a href={url('funkcionalumas')}>Funkcionalumas</a>
              <span>/</span>
              <span>{m.category}</span>
            </div>
            <div className="erp-eyebrow erp-mod-eyebrow-logo">
              <img src={`/assets/${m.logo}`} alt="" />
              {m.eyebrow}
            </div>
            <h1>{m.title}</h1>
            <p>{m.lede}</p>
            <div className="erp-mod-hero-cta">
              <a href="/kontaktai" onClick={(e) => { e.preventDefault(); window.__erp_book_demo && window.__erp_book_demo(); }} className="erp-btn erp-btn-primary erp-btn-lg">Išbandyti ERP365 →</a>
              <a href={url('kainos')} className="erp-btn erp-btn-ghost-dark erp-btn-lg">Peržiūrėti kainas</a>
            </div>
          </div>
        </div>
        <div className="erp-container">
          <div className="erp-mod-hero-mock">
            <ModuleMock kind={m.mock} />
          </div>
        </div>
      </section>

      {/* === FEATURES === */}
      <section className="erp-section">
        <div className="erp-container">
          <div className="erp-section-head">
            <h2 className="erp-section-title">{m.featuresHead}</h2>
            <p className="erp-section-lede">{m.featuresLede}</p>
          </div>
          <div className="erp-mod-grid">
            {m.features.map((f, i) => (
              <div key={f.t} className="erp-mod-card">
                <div className="erp-feature-icon"><i data-lucide={f.icon}></i></div>
                <h3>{f.t}</h3>
                <p>{f.d}</p>
              </div>
            ))}
          </div>
        </div>
      </section>

      {/* === FLOW === */}
      <section className="erp-section erp-section-gray">
        <div className="erp-container">
          <div className="erp-section-head erp-section-head-center">
            <h2 className="erp-section-title" style={{marginLeft: 'auto', marginRight: 'auto'}}>{m.flowHead}</h2>
          </div>
          <div className="erp-mod-flow">
            {m.flow.map((s, i) => (
              <React.Fragment key={s.t}>
                <div className="erp-mod-flow-step">
                  <div className="erp-mod-flow-icon" style={{background: s.bg, color: s.color}}>
                    <i data-lucide={s.icon}></i>
                  </div>
                  <div className="erp-mod-flow-t">{s.t}</div>
                  <div className="erp-mod-flow-d">{s.d}</div>
                </div>
                {i < m.flow.length - 1 && (
                  <div className="erp-mod-flow-arrow">
                    <svg width="36" height="20" viewBox="0 0 36 20" fill="none"><path d="M0 10 L30 10 M24 4 L30 10 L24 16" stroke="#0080FF" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/></svg>
                  </div>
                )}
              </React.Fragment>
            ))}
          </div>
        </div>
      </section>

      {/* === USE CASES === */}
      <section className="erp-section">
        <div className="erp-container">
          <div className="erp-section-head">
            <h2 className="erp-section-title">{m.casesSub}</h2>
          </div>
          <div className="erp-mod-cases">
            {m.cases.map(c => (
              <div key={c.t} className="erp-mod-case">
                <div className="erp-mod-case-ic"><i data-lucide={c.icon}></i></div>
                <div className="erp-mod-case-t">{c.t}</div>
                <div className="erp-mod-case-d">{c.d}</div>
              </div>
            ))}
          </div>
        </div>
      </section>

      {/* === WORKS WITH === */}
      <section className="erp-section erp-section-gray">
        <div className="erp-container">
          <div className="erp-section-head">
            <h2 className="erp-section-title">{m.worksHead}</h2>
            <p className="erp-section-lede">{m.worksLede}</p>
          </div>
          <div className="erp-mod-works">
            {m.worksWith.map(w => (
              <a key={w.id} href={window.__erp_module_href(w.id)} className="erp-mod-work">
                <img src={`/assets/${w.logo}`} className="erp-mod-work-logo" alt="" />
                <span>
                  <span className="erp-mod-work-t">{w.name}</span>
                  <span className="erp-mod-work-d">{w.d}</span>
                </span>
              </a>
            ))}
          </div>
        </div>
      </section>

      {/* === FAQ === */}
      <section className="erp-section">
        <div className="erp-container">
          <div className="erp-section-head erp-section-head-center">
            <h2 className="erp-section-title" style={{marginLeft: 'auto', marginRight: 'auto'}}>{m.faqHead}</h2>
          </div>
          <ModuleFAQ items={m.faq} />
        </div>
      </section>

      <CTASection
        title={m.cta.title}
        lede={m.cta.lede}
        primary="Išbandyti ERP365 →"
        secondary="Peržiūrėti kainas"
      />
    </>
  );
}

// ── /moduliai — visų modulių katalogas (kortelės pagal kategorijas) ──
function ModulesIndexPage() {
  const url = window.__erp_url;
  const catalog = window.__ERP_MODULE_CATALOG;
  const pages = window.__ERP_MODULE_PAGES;

  React.useEffect(() => { if (window.lucide) window.lucide.createIcons(); });

  return (
    <>
      <section className="erp-pagehead erp-mod-hero">
        <img src="/assets/orbit-pattern.svg" className="erp-pagehead-orbit" alt="" />
        <div className="erp-container">
          <div className="erp-pagehead-inner">
            <div className="erp-breadcrumb">
              <a href={url('home')}>Pradžia</a>
              <span>/</span>
              <span>Moduliai</span>
            </div>
            <h1>Visi ERP365 moduliai vienoje sistemoje.</h1>
            <p>20+ integruotų modulių pagal verslo sritį. Populiariausi turi atskirą puslapį su detaliu aprašymu — likę veikia toje pačioje sistemoje ir aprašyti funkcionalumo puslapyje. Pradėkite nuo svarbiausių ir lengvai plėskite.</p>
            <div className="erp-mod-hero-cta">
              <a href="/kontaktai" onClick={(e) => { e.preventDefault(); window.__erp_book_demo && window.__erp_book_demo(); }} className="erp-btn erp-btn-primary erp-btn-lg">Išbandyti ERP365 →</a>
              <a href={url('funkcionalumas')} className="erp-btn erp-btn-ghost-dark erp-btn-lg">Peržiūrėti funkcionalumą</a>
            </div>
          </div>
        </div>
      </section>

      <section className="erp-section">
        <div className="erp-container">
          {catalog.map(group => (
            <div key={group.catId} className="erp-modindex-group">
              <div className="erp-modindex-cat">{group.cat}</div>
              <div className="erp-mod-works">
                {group.items.map(it => {
                  const hasPage = !!pages[it.id];
                  return (
                    <a key={it.id} href={window.__erp_module_href(it.id)} className="erp-mod-work">
                      <img src={`/assets/${it.logo}`} className="erp-mod-work-logo" alt="" />
                      <span>
                        <span className="erp-mod-work-t">{it.name}</span>
                        <span className="erp-mod-work-d">{it.desc}</span>
                        {hasPage && <span className="erp-mod-work-more">Plačiau →</span>}
                      </span>
                    </a>
                  );
                })}
              </div>
            </div>
          ))}
        </div>
      </section>

      <CTASection
        title="Nežinote, nuo ko pradėti?"
        lede="30 min. demo. Padėsime išsirinkti modulius pagal jūsų verslo procesus."
        primary="Išbandyti ERP365 →"
        secondary="Peržiūrėti kainas"
      />
    </>
  );
}

window.ModulePage = ModulePage;
window.ModulesIndexPage = ModulesIndexPage;
