#!/usr/bin/env python3
"""Generate D1 v2.0: REACH Kennisdossier Phoenix Metals"""
from docx import Document
from docx.shared import Pt, Inches, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT

doc = Document()

# Style setup
style = doc.styles['Normal']
font = style.font
font.name = 'Calibri'
font.size = Pt(11)

# Helper functions
def add_heading_styled(text, level=1):
    h = doc.add_heading(text, level=level)
    for run in h.runs:
        run.font.color.rgb = RGBColor(0, 51, 102)
    return h

def add_table(headers, rows):
    table = doc.add_table(rows=1 + len(rows), cols=len(headers))
    table.style = 'Light Grid Accent 1'
    table.alignment = WD_TABLE_ALIGNMENT.CENTER
    for i, h in enumerate(headers):
        cell = table.rows[0].cells[i]
        cell.text = h
        for p in cell.paragraphs:
            for r in p.runs:
                r.bold = True
                r.font.size = Pt(9)
    for ri, row in enumerate(rows):
        for ci, val in enumerate(row):
            cell = table.rows[ri+1].cells[ci]
            cell.text = str(val)
            for p in cell.paragraphs:
                for r in p.runs:
                    r.font.size = Pt(9)
    return table

# Title page
doc.add_paragraph()
doc.add_paragraph()
title = doc.add_paragraph()
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('REACH Kennisdossier\nVergunningen & Regelgeving')
run.bold = True
run.font.size = Pt(28)
run.font.color.rgb = RGBColor(0, 51, 102)

subtitle = doc.add_paragraph()
subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = subtitle.add_run('Phoenix Metals IJmuiden\nPilot Plant voor Vanadiumextractie uit Staalslakken')
run.font.size = Pt(16)
run.font.color.rgb = RGBColor(80, 80, 80)

doc.add_paragraph()
meta = doc.add_paragraph()
meta.alignment = WD_ALIGN_PARAGRAPH.CENTER
meta.add_run('Versie: 2.0\n').bold = True
meta.add_run('Datum: 16 april 2026\n')
meta.add_run('Opdrachtgever: Phoenix Metals IJmuiden\n')
meta.add_run('Adviseur: JvG Consultancy\n')
meta.add_run('Status: Definitief\n')
meta.add_run('Classificatie: Confidential')

doc.add_page_break()

# TOC
add_heading_styled('Inhoudsopgave', 1)
toc_items = [
    '1. Managementsamenvatting',
    '2. Bedrijfsprofiel Phoenix Metals',
    '3. Procesbeschrijving Pilot Plant',
    '4. REACH-Verordening — Toepassingsgebied',
    '5. Chemische Stoffenlijst & REACH-Classificatie',
    '6. Vergunningen & Milieuregelgeving',
    '7. Haalbaarheidsstudie — Conclusies',
    '8. Planning & Mijlpalen',
    '9. Budgetraming',
    '10. Risico\'s & Mitigatiemaatregelen',
    'Bijlage A: Referentiedocumenten',
    'Bijlage B: Begrippenlijst',
]
for item in toc_items:
    p = doc.add_paragraph(item)
    p.paragraph_format.space_after = Pt(2)

doc.add_page_break()

# 1. Managementsamenvatting
add_heading_styled('1. Managementsamenvatting', 1)
doc.add_paragraph(
    'Phoenix Metals IJmuiden ontwikkelt een hydrometallurgisch proces voor de extractie van vanadium, '
    'ijzer, calcium en magnesium uit staalslakken van Tata Steel Netherlands. Het proces is succesvol '
    'getest op laboratoriumschaal (4L batch) en pre-pilot schaal (20L batch). De volgende fase betreft '
    'een pilot plant met 3.000L batches, gelegen in de IJmuidense zeehaven (Westerduinweg 3).'
)
doc.add_paragraph(
    'Dit kennisdossier analyseert de REACH-verordening, vergunningskader en milieuregelgeving van toepassing '
    'op de pilot plant. De belangrijkste conclusies zijn:'
)
bullets = [
    'De pilot plant valt buiten de werkingssfeer van de Richtlijn Industriële Emissies (Rie) omdat het betreft "onderzoeks- en ontwikkelingsactiviteiten" (artikel 2 Rie).',
    'REACH-registratie is vereist voor vanadiumverbindingen bij productie ≥1 ton/jaar. De pilot fase (7.200 kg staalslak/jaar) blijft naar verwachting onder deze drempel.',
    'Vergunningen: een omgevingsvergunning milieu (Bal) is noodzakelijk. Het bevoegd gezag is de provincie Noord-Holland.',
    'Bestemmingsplan "Havengebied IJmuiden": de pilot plant past binnen categorie 4.2 (anorganisch-chemische grondstoffen), maar bevestiging door gemeente Velsen is noodzakelijk.',
    'Stralingsbescherming: SARU-ash bevat van nature voorkomende radionucliden. Voor ≤1.000 kg verwerking geldt een vrijstelling (Besluit basisveiligheidsnormen stralingsbescherming, art. 3.17).',
]
for b in bullets:
    doc.add_paragraph(b, style='List Bullet')

# 2. Bedrijfsprofiel
add_heading_styled('2. Bedrijfsprofiel Phoenix Metals', 1)
doc.add_paragraph(
    'Phoenix Metals is een startup die zich richt op het terugwinnen van waardevolle metalen uit '
    'secundaire grondstoffen. Het bedrijf groeit van R&D-fase naar de volgende stap: een pilot plant '
    'voor commerciële validatie.'
)

add_heading_styled('2.1 Bedrijfsgegevens', 2)
add_table(
    ['Parameter', 'Gegeven'],
    [
        ['Bedrijfsnaam', 'Phoenix Metals IJmuiden'],
        ['Locatie', 'Westerduinweg 3, IJmuiden ( Havengebied)'],
        ['Huidige locatie demo', 'Plant One Rotterdam (POR)'],
        ['Directeur', 'Stijn van Zelst'],
        ['HSE Manager', 'Jorick van Gemert (JvG Consultancy)'],
        ['Vergunningadviseur', 'Arcadis (Gijs Jacobs, Peter Dikkeboom)'],
        ['Activiteit', 'Hydrometallurgische extractie van metalen uit staalslakken'],
        ['Grondstof', 'Staalslakken (Tata Steel Netherlands) / SARU-ash'],
        ['Hoofdproduct', 'Vanadium-elektrolyten voor batterijopslag (VRFB)'],
        ['Bijproducten', 'Gips (CaSO₄), ijzeroxide, magnesiumhydroxide, calciumhydroxide'],
        ['Procestype', 'Waterig (geen ammoniak), atmosferisch, max. 80°C'],
    ]
)

add_heading_styled('2.2 Ontwikkelingsfasen', 2)
add_table(
    ['Fase', 'Schaal', 'Status', 'Locatie'],
    [
        ['R&D', '4L batch', 'Voltooid', 'Laboratorium'],
        ['Pre-pilot (Demo)', '20L batch', 'Voltooid', 'Plant One Rotterdam'],
        ['Pilot Plant', '3.000L batch', 'Gepland (H1 2026)', 'IJmuiden (Westerduinweg 3)'],
        ['Commercieel', 'Schaalvergroting', 'Toekomstig', 'TBD'],
    ]
)

doc.add_page_break()

# 3. Procesbeschrijving
add_heading_styled('3. Procesbeschrijving Pilot Plant', 1)
doc.add_paragraph(
    'Het Phoenix Metals proces is een hydrometallurgisch extractieproces dat uitsluitend gebruik maakt '
    'van waterige oplossingen zonder ammoniak. De gemiddelde procestemperatuur is 80°C onder atmosferische '
    'omstandigheden. Hieronder wordt het proces beschreven op basis van het Block Flow Diagram (BFD) en '
    'Process Flow Diagram (PFD) — zie Bronnen 6-8.'
)

add_heading_styled('3.1 Processtappen (Demo Plant — Basis voor Pilot)', 2)
steps = [
    ('Stap 1', 'Ash in flow cabinet → 3 kg afwegen → plastic emmer'),
    ('Stap 2', 'Ash overbrengen naar reactor via trechter'),
    ('Stap 3', 'Reactor vullen met water + 50% NaOH tot 18L'),
    ('Stap 4', 'Roeren en verwarmen tot 80°C (logingsreactie)'),
    ('Stap 5', 'Reacto``rinhoud pompen naar 20L filterunit; filtercake wassen met demi-water'),
    ('Stap 6a', 'Filtercake (residu) → plastic emmer, geen verdere verwerking'),
    ('Stap 6b', 'Heet filtraat → tweede reactor, roeren en koelen'),
    ('Stap 8-12', 'Kristallisatiecyclus: koelen → filtreren → herkristallisatie (iteratief)'),
    ('Stap 13-16', 'Zwavelzuurtoevoeging + aluminiumsulfaat → pH-aanpassing → filtratie'),
    ('Stap 17-20', 'Opnieuw zwavelzuur + NaOH → oplossen → koelen → filtratie'),
    ('Stap 21-23', 'Ionenwisseling over ion exchange column; regeneratie met 2,5M H₂SO₄'),
    ('Stap 24-25', 'H₂SO₄-toevoeging → gele oplossing → electroreductie → V(IV) sulfaat'),
    ('Stap 26-28', 'Mengen V(IV) sulfaat met column outflow → verwarmen → filtreren → electroreductie → V3.5+ elektrolyt'),
]
for step, desc in steps:
    p = doc.add_paragraph()
    run = p.add_run(step + ': ')
    run.bold = True
    p.add_run(desc)

add_heading_styled('3.2 Kernreacties', 2)
doc.add_paragraph(
    'Hoofdreactie: loging van vanadium uit staalslak met NaOH bij 80°C.\n'
    'Nevenreacties: reactie ongebluste kalk (CaO) met H₂SO₄ → gips (CaSO₄) + warmte.\n'
    'Zie BFD (Bron 6) en PFD (Bron 7) voor volledig stroomschema.'
)

add_heading_styled('3.3 Massabalans Pilot Plant', 2)
add_table(
    ['Parameter', 'Demo (20L)', 'Pilot (3.000L)', 'Commercieel'],
    [
        ['Batchgrootte staalslak', '3,5 kg', '~100 kg', 'TBD'],
        ['Jaarlijkse verwerking', '~60 kg', '7.200 kg', 'TBD'],
        ['Reactorvolume', '18-20L', '3.000L', 'TBD'],
        ['Procestemperatuur', '80°C', '80°C', '80°C'],
        ['Druk', 'Atmosferisch', 'Atmosferisch', 'Atmosferisch'],
    ]
)

# 4. REACH
add_heading_styled('4. REACH-Verordening — Toepassingsgebied', 1)
doc.add_paragraph(
    'De REACH-verordening (EG 1907/2006) verplicht producenten en importeurs van chemische stoffen '
    'deze te registreren bij het European Chemicals Agency (ECHA) wanneer de productie of import '
    '≥1 ton per jaar bedraagt.'
)

add_heading_styled('4.1 Relevantie voor Phoenix Metals', 2)
doc.add_paragraph(
    'Phoenix Metals produceert vanadium-elektrolyten uit staalslakken. De volgende REACH-aspecten zijn relevant:'
)
items = [
    'Productiedrempel: De pilot plant verwerkt 7.200 kg staalslak/jaar. De vanadiumoutput blijft naar verwachting onder 1 ton/jaar, waardoor REACH-registratie in de pilot fase mogelijk niet verplicht is.',
    'Toekomstige schaalvergroting: Bij commerciële productie (>1 ton/jaar vanadiumverbindingen) is REACH-registratie verplicht.',
    'Downstream gebruiker: Phoenix Metals gebruikt reeds geregistreerde stoffen (H₂SO₄, NaOH) en is downstream gebruiker conform REACH art. 2.',
    'Vanadium REACH Consortium: Lidmaatschap aanbevolen voor toegang tot bestaande toxicologische data en SIEF-participatie.',
]
for i in items:
    doc.add_paragraph(i, style='List Bullet')

add_heading_styled('4.2 REACH-Registratieproject — fasering', 2)
doc.add_paragraph('Conform het REACH-registratie projectplan (Bron 12):')
add_table(
    ['Fase', 'Periode', 'Mijlpaal', 'Deliverables'],
    [
        ['1. Voorbereiding', 'Maand 1-2', 'Stoffeninventarisatie gereed', 'Stoffenlijst + CAS-nummers, Consortiumonderzoek'],
        ['2. Data-verzameling', 'Maand 3-6', 'Alle data beschikbaar', 'Dataset per stof, LoA\'s, SIEF-deelname'],
        ['3. Risicobeoordeling', 'Maand 7-10', 'CSR gereed', 'Chemical Safety Report, Blootstellingsscenario\'s'],
        ['4. Dossier indiening', 'Maand 11-12', 'ECHA registratie', 'Registratiedossier, ECHA-nummer'],
        ['5. Implementatie', 'Maand 13-15', 'REACH-compliant', 'SDS\'s, training, labeling'],
    ]
)

doc.add_page_break()

# 5. Chemische stoffenlijst
add_heading_styled('5. Chemische Stoffenlijst & REACH-Classificatie', 1)
doc.add_paragraph(
    'De volgende stoffen zijn relevant voor het Phoenix Metals proces, gebaseerd op de Registration '
    'Chemicals MASTER (Bron 13) en MSDS-documenten (Bronnen 14-16).'
)

add_table(
    ['Stof', 'CAS-nummer', 'Functie', 'CLP-Classificatie', 'REACH-status'],
    [
        ['Zwavelzuur (H₂SO₄) 25-75%', '7664-93-9', 'Reactant/pH-regeling', 'Corrosief (Skin Corr. 1A)', 'Geregistreerd'],
        ['Natriumhydroxide (NaOH) 50%', '1310-73-2', 'Reactant/loging', 'Corrosief (Skin Corr. 1A)', 'Geregistreerd'],
        ['Vanadiumconcentraat', 'NVT (mengsel)', 'Grondstof/output', 'Toxisch, H341 (Verdacht van)', 'Te registreren bij >1 t/j'],
        ['Aluminiumsulfaat', '10043-01-3', 'Hulpstof', 'Irritant (Eye Irrit. 2)', 'Geregistreerd'],
        ['Vanadium(IV) sulfaat', 'NVT', 'Tussenproduct', 'Acuut toxisch, H302', 'Te registreren bij >1 t/j'],
        ['V3.5+ elektrolyt', 'NVT', 'Eindproduct', 'Te bepalen (CSR)', 'Te registreren bij >1 t/j'],
    ]
)

add_heading_styled('5.1 SDS-Beschikbaarheid', 2)
add_table(
    ['Stof', 'SDS Beschikbaar', 'Bron', 'Versie'],
    [
        ['Vanadium concentrate', 'Ja', 'Bron 14', 'Versie 1'],
        ['Zwavelzuur 25-75%', 'Ja', 'Bron 15', 'Versie 1'],
        ['Natriumhydroxide 50%', 'Ja', 'Bron 16', 'Versie 1'],
    ]
)

add_heading_styled('5.2 SARU-ash — Specifieke aspecten', 2)
doc.add_paragraph(
    'De SARU-ash (reststroom uit olieraffinage) bevat natriummetavanadaat, trinatriumorthovanadaat en '
    'nikkeloxide. De ash bevat van nature voorkomende radionucliden (U-238 serie). Conform de Factsheet '
    'Ash 2025 (Bron 31) gelden de volgende kaders:'
)
bullets = [
    'Verwerking ≤1.000 kg: vrijstelling art. 3.17 Besluit basisveiligheidsnormen stralingsbescherming.',
    'Rechtvaardiging (justification): verwerking onder gecontroleerde omstandigheden, radionucliden blijven in vaste fractie.',
    'Afvoer: notificatie vereist wegens activiteitsconcentratie U-238 serie >1 kBq/kg.',
]
for b in bullets:
    doc.add_paragraph(b, style='List Bullet')

# 6. Vergunningen
add_heading_styled('6. Vergunningen & Milieuregelgeving', 1)

add_heading_styled('6.1 Omgevingsvergunning — Milieubelastende Activiteit (Bal)', 2)
doc.add_paragraph(
    'Op basis van het vooroverleg met ODIJ (23 september 2025, Bron 19) en de haalbaarheidsstudie '
    '(Bron 20) zijn de volgende vergunningsaspecten geïdentificeerd:'
)
add_table(
    ['Aspect', 'Beoordeling', 'Vergunningsplicht'],
    [
        ['Rie (Industriële emissies)', 'Pilot plant = onderzoek/ontwikkeling → uitgezonderd', 'Nee (art. 2 Rie)'],
        ['Categorie 2.5 (Basismetaal)', 'Niet van toepassing (niet-industriële schaal)', 'Nee'],
        ['Categorie 4.2 (Basischemie)', 'Niet van toepassing (pilot schaal)', 'Nee'],
        ['Milieubelastende activiteit (Bal)', 'Vergunning vereist voor inrichting', 'Ja — Provincie Noord-Holland'],
        ['Bestemmingsplan', 'Havengebied IJmuiden — categorie 4.2 past', 'Bevestiging gemeente Velsen nodig'],
    ]
)

add_heading_styled('6.2 Bestemmingsplan "Havengebied IJmuiden"', 2)
doc.add_paragraph(
    'De beoogde locatie valt onder het bestemmingsplan "Havengebied IJmuiden" met de bestemmingen '
    '"Waarde — Archeologie" en "Bedrijf — Havengebonden". De pilot plant past binnen categorie 4.2 '
    '(Lijst van Bedrijfsactiviteiten). Er is geen sprake van grondbewerking >60 cm diepte of >500 m². '
    'Conform de haalbaarheidsstudie (Bron 20, §2.1) is bevestiging door gemeente Velsen noodzakelijk '
    'omtrent de "havengebonden" status.'
)

add_heading_styled('6.3 Overige Vergunningsaspecten', 2)
add_table(
    ['Aspect', 'Status', 'Actie vereist'],
    [
        ['Gevaarlijke stoffen opslag', 'Locatie nog niet vastgelegd', 'Locatie bepalen + vergunning'],
        ['Waterlozing', 'Proceswater reiniging voorzien', 'Aanvraag lozingsvergunning'],
        ['Geluid', 'Beperkt (pompen, roerwerken)', 'Geluidsberekening'],
        ['Stikstofdepositie', 'AERIUS-berekening uitgevoerd (Bron: AERIUS)', 'Beoordeling provincie'],
        ['Luchtemissies', 'Procesgasreiniging voorzien', 'Emissieberekening'],
        ['Afvalstoffen', 'Filtercakes, residuen', 'Afvalstoffenvergunning'],
    ]
)

# 7. Haalbaarheidsstudie
add_heading_styled('7. Haalbaarheidsstudie — Conclusies', 1)
doc.add_paragraph(
    'De haalbaarheidsstudie "Pilot plant voor materiaalextractie uit staalslakken in de IJmuidense '
    'zeehaven" (Arcadis, 12 december 2025, Bron 20) treedt de volgende conclusies:'
)
conclusions = [
    'Bestemmingsplan: Pilot plant past waarschijnlijk binnen "Bedrijf — Havengebonden", maar zekerheid vereist bevestiging gemeente Velsen. Een buitenplanse omgevingsplanactiviteit (bopa) is mogelijk.',
    'Rie: Niet van toepassing op pilot plant (onderzoeksactiviteiten zijn uitgezonderd).',
    'Vergunning: Omgevingsvergunning milieu (Bal) vereist via uitgebreide procedure bij provincie Noord-Holland. Proceduretijd: 6 maanden (+6 weken verlenging mogelijk).',
    'Gevaarlijke stoffen: Opslaglocatie nog te bepalen. Zwavelzuur en NaOH vereisen brandwerende opslag.',
    'Water: Lozing van proceswater vereist vergunning; reinigingsinstallatie voorzien.',
    'Geluid: Minimale impact verwacht (pompen, roerwerken).',
    'Stikstofdepositie: AERIUS-berekening uitgevoerd; beoordeling door provincie in afwachting.',
    'Algemeen: Het project sluit aan bij landelijke en provinciale doelstellingen op het gebied van duurzaamheid, circulariteit en energietransitie.',
]
for c in conclusions:
    doc.add_paragraph(c, style='List Bullet')

# 8. Planning
add_heading_styled('8. Planning & Mijlpalen', 1)
add_table(
    ['Mijlpaal', 'Doeldatum', 'Status'],
    [
        ['Vooroverleg ODIJ', '23-09-2025', 'Voltooid'],
        ['Haalbaarheidsstudie afgerond', '12-12-2025', 'Voltooid'],
        ['Vergunningsaanvraag indienen', 'Q1 2026', 'In voorbereiding'],
        ['Pilot plant inrichten', 'Januari 2026', 'Gepland'],
        ['Pilot plant operationeel', 'H1 2026', 'Gepland'],
        ['REACH-registratie (indien vereist)', '2027+', 'Toekomstig'],
    ]
)

# 9. Budget
add_heading_styled('9. Budgetraming', 1)
doc.add_paragraph(
    'Budgetraming is indicatief en sluit aan bij de haalbaarheidsstudie en het Business Plan (Bron 4). '
    'Exacte bedragen zijn opgenomen in het Pilot Plant Project Execution Plan (Bron 5).'
)
add_table(
    ['Kostenpost', 'Indicatie', 'Opmerking'],
    [
        ['Vergunningsprocedure (Arcadis)', '€ 25.000 — 50.000', 'Inclusief quick scan + aanvraag'],
        ['REACH-registratie (consortium)', '€ 50.000 — 150.000', 'Afhankelijk van consortiumdeelname + testen'],
        ['Pilot plant investering', 'TBD (Bron 5)', 'Project Execution Plan'],
        ['HSE-inrichting (PBM, BNP, RI&E)', '€ 10.000 — 20.000', 'Inclusief trainingen'],
        ['Stralingsbescherming SARU-ash', '€ 5.000 — 10.000', 'Gammaspectrometrie + notificatie'],
    ]
)

# 10. Risico's
add_heading_styled('10. Risico\'s & Mitigatiemaatregelen', 1)
add_table(
    ['Risico', 'Impact', 'Waarschijnlijkheid', 'Mitigatie'],
    [
        ['Bestemmingsplan strijdig', 'Hoog', 'Laag', 'Bevestiging gemeente Velsen; bopa als back-up'],
        ['REACH-datatekort', 'Middel', 'Middel', 'Consortiumlidmaatschap, read-across methoden'],
        ['Kostenoverschrijding registratie', 'Middel', 'Middel', 'Gefaseerde aanpak, consortiumdeelname'],
        ['Stralingsvergunning SARU-ash', 'Laag', 'Laag', 'Vrijstelling art. 3.17; notificatie afvoer'],
        ['Vertraging vergunningsprocedure', 'Hoog', 'Middel', 'Tijdig indienen, Arcadis begeleiding'],
        ['Gevaarlijke stoffen opslag', 'Middel', 'Middel', 'Locatie bepalen, brandwerende opslag'],
    ]
)

doc.add_page_break()

# Bijlage A
add_heading_styled('Bijlage A: Referentiedocumenten', 1)
refs = [
    'Phoenix Metals bedrijfsomschrijving (phoenix metals.docx)',
    'PhoenixMetals voorbereiding (PhoenixMetals voorbereiding.xlsx)',
    'Draft PvA opstart Phoenix (Draft PvA opstart Phoenix (1).docx)',
    'Haalbaarheidsstudie Phoenix (Haalbaarheidsstudie Phoenix.pdf)',
    'Pilot Plant Project Execution Plan Index (Pilot_Plant_Project_Execution_Plan_Index.docx)',
    'Block Flow Diagram (1. Block Flow Diagram.pdf)',
    'Process Flow Diagram (2. PFD.pdf)',
    'Plant Layout (3. Plant Layout.pdf)',
    'Demo Process VR (Demo Process VR (1).docx)',
    'REACH registratie projectplan (REACH registratie [phoenix metals).docx)',
    'Registration Chemicals MASTER v2.1.0 (beveiligd.xlsx)',
    'MSDS Vanadium concentrate Versie 1',
    'MSDS Sulfuric acid 25-75% Versie 1',
    'MSDS Sodium hydroxide 50% Versie 1',
    'Verslag vooroverleg 23-09-2025 (ODIJ)',
    'Rapport haalbaarheidsstudie V04',
    'Uitgangspuntendocument Phoenix Metals IJmuiden',
    'Phoenix Metals HSE Policy V1',
    'Phoenix Metals BNP-V1',
    'PBM beleid PS-201-NL V1.0',
    'Fact sheet Ash 2025',
    'PE-202-01 V1 Management of Change',
    'PE-240-01 V1 Aanvraag gevaarlijke stoffen',
]
for i, ref in enumerate(refs, 1):
    doc.add_paragraph(f'[{i}] {ref}')

# Bijlage B
add_heading_styled('Bijlage B: Begrippenlijst', 1)
glossary = [
    ('BAL', 'Besluit activiteiten leefomgeving'),
    ('BFD', 'Block Flow Diagram'),
    ('BNP', 'Bedrijfsnoodplan'),
    ('BTB', 'Beste Beschikbare Technieken'),
    ('CLP', 'Classification, Labelling and Packaging (EG 1272/2008)'),
    ('CSR', 'Chemical Safety Report'),
    ('ECHA', 'European Chemicals Agency'),
    ('H₂SO₄', 'Zwavelzuur'),
    ('LoA', 'Letter of Access'),
    ('MoC', 'Management of Change'),
    ('NaOH', 'Natriumhydroxide'),
    ('PBM', 'Persoonlijk Beschermingsmiddel'),
    ('PFD', 'Process Flow Diagram'),
    ('POR', 'Plant One Rotterdam'),
    ('REACH', 'Registration, Evaluation, Authorisation and Restriction of Chemicals (EG 1907/2006)'),
    ('RI&E', 'Risico-Inventarisatie en -Evaluatie'),
    ('Rie', 'Richtlijn Industriële Emissies (2010/75/EU)'),
    ('SARU', 'Sodium Ash Residue Unit'),
    ('SDS', 'Safety Data Sheet (Veiligheidsinformatieblad)'),
    ('SIEF', 'Substance Information Exchange Forum'),
    ('VRFB', 'Vanadium Redox Flow Battery'),
]
add_table(['Afkorting', 'Betekenis'], glossary)

# Footer
doc.add_paragraph()
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run('JvG Consultancy — REACH Kennisdossier v2.0 — Phoenix Metals IJmuiden')
run.font.size = Pt(8)
run.font.color.rgb = RGBColor(128, 128, 128)

# Save
doc.save('/root/projects/jg/2026-reach-phoenix-metals/deliverables/docx/REACH_Kennisdossier_Phoenix_Metals_D1_v2.0.docx')
print('D1 v2.0 generated successfully')
