#!/usr/bin/env python3
"""
Generate REACH & PGS 15 Herbeoordeling Kennisdossier for Phoenix Metals
Version: v1.0
Date: 2026-04-19
"""

from docx import Document
from docx.shared import Inches, Pt, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.enum.section import WD_ORIENT
import os

doc = Document()

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

# Configure heading styles
for i in range(1, 5):
    hs = doc.styles[f'Heading {i}']
    hs.font.color.rgb = RGBColor(0, 51, 102)
    hs.font.name = 'Calibri'

doc.styles['Heading 1'].font.size = Pt(18)
doc.styles['Heading 2'].font.size = Pt(14)
doc.styles['Heading 3'].font.size = Pt(12)

# ── Helper functions ──
def add_table(doc, headers, rows, col_widths=None):
    table = doc.add_table(rows=1 + len(rows), cols=len(headers))
    table.style = 'Light Grid Accent 1'
    table.alignment = WD_TABLE_ALIGNMENT.CENTER
    # Header row
    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)
    # Data rows
    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

def add_para(doc, text, bold=False, italic=False, size=11):
    p = doc.add_paragraph()
    run = p.add_run(text)
    run.bold = bold
    run.italic = italic
    run.font.size = Pt(size)
    return p

# ════════════════════════════════════════════════════════
# TITLE PAGE
# ════════════════════════════════════════════════════════
doc.add_paragraph()
doc.add_paragraph()
title = doc.add_paragraph()
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('REACH & PGS 15 Herbeoordeling\nPhoenix Metals B.V.')
run.bold = True
run.font.size = Pt(26)
run.font.color.rgb = RGBColor(0, 51, 102)

subtitle = doc.add_paragraph()
subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = subtitle.add_run('Kennisdossier — Juridische Analyse & Concrete Actielijst')
run.font.size = Pt(14)
run.font.color.rgb = RGBColor(80, 80, 80)

doc.add_paragraph()

meta_data = [
    ('Documentcode', 'PM-REACH-PGS15-HERB-v1.0'),
    ('Versie', '1.0'),
    ('Datum', '19 april 2026'),
    ('Status', 'Definitief'),
    ('Opdrachtgever', 'Phoenix Metals B.V.'),
    ('Auteur', 'Kas — HSEQ Specialist (Director of Operations)'),
    ('Classificatie', 'Vertrouwelijk — Alleen intern gebruik'),
]
add_table(doc, ['Veld', 'Waarde'], meta_data)

doc.add_paragraph()
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run('Gebaseerd op 57+ brondocumenten, PGS 15:2025, REACH-verordening (EG 1907/2006),\nCLP-verordening (EG 1272/2008), en originele VPS-documenten Phoenix Metals.')
run.font.size = Pt(9)
run.italic = True

doc.add_page_break()

# ════════════════════════════════════════════════════════
# TABLE OF CONTENTS
# ════════════════════════════════════════════════════════
doc.add_heading('Inhoudsopgave', level=1)
toc_items = [
    '1. Managementsamenvatting',
    '2. DEEL 1: REACH Analyse',
    '   2A. Rechtspositie Phoenix Metals',
    '   2B. Registratieverplichting',
    '   2C. Uitzonderingen (R&D / PPORD)',
    '   2D. SVHC Analyse',
    '   2E. CLP Verplichtingen',
    '   2F. REACH Concrete Actielijst',
    '3. DEEL 2: PGS 15 Analyse',
    '   3A. Toepasselijkheid',
    '   3B. Scenario Analyse',
    '   3C. Eisen (Bouwkundig, Veiligheid, Organisatorisch)',
    '   3D. Uitzonderingen pilot plant',
    '   3E. PGS 15 Concrete Actielijst',
    '4. Conclusies & Aanbevelingen',
    '5. Bronverwijzingen',
]
for item in toc_items:
    p = doc.add_paragraph(item)
    p.paragraph_format.space_after = Pt(2)

doc.add_page_break()

# ════════════════════════════════════════════════════════
# 1. MANAGEMENTSAMENVATTING
# ════════════════════════════════════════════════════════
doc.add_heading('1. Managementsamenvatting', level=1)

add_para(doc, 
'Phoenix Metals B.V. exploiteert een proeffabriek (pilot plant / demonstrator) op PlantOne Rotterdam voor de hydrometallurgische extractie van vanadium uit SARU ash (reststroom olieraffinage). De schaal is beperkt: ≤60 kg ash verwerkt in batches van 3,5 kg, over een campagne van ≤3 maanden. Een locatie in IJmuiden (Westerduinweg 3) is in ontwikkeling voor opschaling naar 7.200 kg staalslakken/jaar.')

add_para(doc,
'Dit kennisdossier bevat een herbeoordeling van de REACH- en PGS 15-verplichtingen voor zowel de huidige PlantOne-demo als de toekomstige IJmuiden-locatie.', bold=True)

doc.add_heading('Kernbevindingen REACH', level=2)
add_para(doc,
'1. Rechtspositie: Phoenix Metals is een downstream user onder REACH. De SARU ash wordt betrokken van Shell/SARU (reeds geregistreerd). De gebruikte chemicaliën (H₂SO₄, NaOH, aluminiumsulfaat) zijn gekocht van geregistreerde leveranciers (Carl Roth, Merck).\n\n'
'2. Registratieverplichting: Geen. De productie op demoschaal (≤60 kg ash, ≤3 maanden) ligt ver onder de 1 ton/jaar-drempel van REACH artikel 6. Zelfs de IJmuiden-opschaling (7.200 kg/jaar) blijft onder 1 ton voor vanadiumverbindingen.\n\n'
'3. R&D/PPORD-uitzondering: De pilot plant kwalificeert als "product- en procesgeoriënteerd onderzoek" (PPORD) onder REACH artikel 3(23). Een PPORD-melding bij ECHA is mogelijk maar strikt genomen niet vereist zolang de 1 ton/jaar-drempel niet wordt overschreden.\n\n'
'4. SVHC: Natriummetavanaat (in SARU ash) en nikkeloxide zijn SVHC-kandidaatstoffen. Artikel 33-mededelingsplicht is niet van toepassing (ash is geen artikel in de REACH-zin; het is een mengsel/stof).\n\n'
'5. Vanadium Consortium: 19 vanadiumverbindingen zijn reeds geregistreerd via het Vanadium REACH Consortium, waaronder natriummetavanaat (EC 237-272-7) en vanadium oxide sulphate (EC 248-652-7). Toetreding via Letter of Access is de aanbevolen route bij toekomstige commercieel opschaling.\n\n'
'6. CLP: Phoenix Metals moet de ash en het vanadiumsulfaat-eindproduct correct indelen en etiketteren volgens CLP. SDS-verplichtingen gelden als downstream user.', bold=False)

doc.add_heading('Kernbevindingen PGS 15', level=2)
add_para(doc,
'1. Toepasselijkheid: PGS 15:2025 is van toepassing op de opslag van verpakte gevaarlijke stoffen. De H₂SO₄, NaOH (ADR-klasse 8, VG II) en vanadiumoplossingen (ADR-klasse 9) vallen binnen het toepassingsgebied.\n\n'
'2. Ondergrens: 250 kg voor ADR-klasse 8 VG II/III en ADR-klasse 9. Phoenix Metals heeft ca. 300 l (≈400 kg) aan H₂SO₄-oplossingen en 100 l (≈130 kg) NaOH in voorraad — de H₂SO₄ alleen overschrijdt de ondergrens. PGS 15 is VAN TOEPASSING.\n\n'
'3. Veiligheidsniveau: Basisveiligheidsniveau. H₂SO₄ en NaOH zijn onbrandbaar en niet brandonderhoudend (ADR-8 VG II). Geen Wbdbo-eis, geen VBB-installatie vereist.\n\n'
'4. Scheiding: H₂SO₄ en NaOH MOETEN gescheiden opgeslagen worden (zuur + base = onverenigbare combinatie, Bijlage E PGS 15).\n\n'
'5. Opvang: 110% van grootste verpakking of 10% van totale inhoud (wat groter is).\n\n'
'6. Vergunning: Opslag <10.000 kg verpakte gevaarlijke stoffen (geen VG I) is meldingsplichtig, niet vergunningplichtig (Bal art. 3.27).', bold=False)

doc.add_page_break()

# ════════════════════════════════════════════════════════
# 2. DEEL 1: REACH ANALYSE
# ════════════════════════════════════════════════════════
doc.add_heading('2. DEEL 1: REACH Analyse', level=1)

# ── 2A. Rechtspositie ──
doc.add_heading('2A. Rechtspositie Phoenix Metals', level=2)

doc.add_heading('2A.1 Feitelijke context', level=3)
add_para(doc,
'Uit de bronbestanden (16_pm_bedrijfsomschrijving, 23_pm_demo_process, 42_pm_fact_sheet_ash, REACH registratie [phoenix metals).docx) volgt het proces:\n\n'
'• Grondstof: SARU ash (Shell Ash Recycling Unit) — reststroom uit olieraffinage (Shell Pernis/Gasification). Samenstelling: mengsel van natriummetavanaat, trinatriumorthovanadate en nikkeloxide. Natuurlijk voorkomende radionucliden (U-238 serie). Droog, fijn poeder.\n\n'
'• Proces: Ash → mengen met NaOH (leaching) → filtratie → kristallisatie → oplossen in H₂SO₄ → ionenwisseling → elektroreductie → vanadium(IV)sulfaat-oplossing (eindproduct).\n\n'
'• Schaal demo: ≤60 kg ash totaal, 3,5 kg per batch, ≤3 maanden campagne (PlantOne Rotterdam).\n\n'
'• Schaal IJmuiden (toekomstig): 7.200 kg staalslakken/jaar, 3.000 L batch (niet SARU ash maar staalslakken van Tata Steel).')

doc.add_heading('2A.2 Juridische analyse: Rechtspositie onder REACH', level=3)
add_para(doc,
'REACH artikel 3 definieert vier rollen:\n\n'
'1. Fabrikant (manufacturer): produceert een stof in de EER.\n'
'2. Importeur (importer): brengt een stof in vanuit buiten de EER.\n'
'3. Downstream user (gebruiker): elke natuurlijke of rechtspersoon gevestigd in de EER, anders dan fabrikant of importeur, die een stof als zodanig of in een mengsel gebruikt in het kader van zijn beroepsactiviteiten (art. 3(13)).\n'
'4. Distributeur: alleen opslag en distributie (art. 3(14)).', bold=False)

add_para(doc,
'Analyse Phoenix Metals:', bold=True)

add_para(doc,
'SARU ash: Phoenix Metals ontvangt de ash van Shell/SARU. Shell is de fabrikant/importeur van deze reststroom. Phoenix Metals verwerkt de ash tot een nieuw product (vanadiumsulfaat-oplossing). Onder REACH wordt het extraheren van componenten uit een mengsel beschouwd als het "produceren" van de geëxtraheerde stof als dit een nieuwe stof oplevert (art. 3(1)). Echter, de kritieke vraag is of Phoenix Metals een nieuwe stof produceert of een bestaande stof scheidt uit een mengsel.\n\n'
'Positie 1 — Downstream User: Als de vanadiumverbindingen reeds in de ash aanwezig zijn (natriummetavanaat is geen nieuwe stof maar een bestanddeel) en het extractieproces deze alleen isoleert en omzet, is Phoenix Metals in de eerste plaats een downstream user van de ash. De ash is een mengsel, en Phoenix Metals gebruikt dit mengsel in zijn beroepsactiviteiten.\n\n'
'Positie 2 — Fabrikant: Als het extractieproces een nieuwe stof oplevert die niet als zodanig in de ash aanwezig was (bijv. vanadium(IV)sulfaat ontstaat door reactie met H₂SO₄), dan "produceert" Phoenix Metals deze stof. Maar ook dan geldt de registratieverplichting pas boven 1 ton/jaar (art. 6).\n\n'
'Conclusie: Phoenix Metals is in de huidige demo-fase primair een DOWNSTREAM USER van de SARU ash (en van de ingekochte chemicaliën H₂SO₄, NaOH, aluminiumsulfaat). De rol als eventuele fabrikant van vanadiumsulfaat is relevant bij toekomstige opschaling boven 1 ton/jaar. In de demo-fase is deze vraag academisch: de hoeveelheden liggen ver onder alle drempels.', bold=True)

doc.add_heading('2A.3 Is ash een "stof" of een "mengsel"?', level=3)
add_para(doc,
'Volgens de Fact sheet Ash 2025 en de Productinformatiekaart P1310 is SARU ash een mengsel van:\n'
'• Natriummetavanaat (NaVO₃)\n'
'• Trinatriumorthovanadate (Na₃VO₄)\n'
'• Nikkeloxide (NiO)\n\n'
'Onder REACH artikel 3(2) is een mengsel "een mengsel of oplossing die uit twee of meer stoffen bestaat." SARU ash is daarmee een MENGSEL, geen stof. Dit is relevant omdat REACH-registratie zich richt op stoffen, niet op mengsels.\n\n'
'Voor de IJmuiden-locatie geldt dat staalslakken eveneens een mengsel zijn (complex mineraal mengsel). De verwachte samenstelling omvat vanadium, ijzer, calcium en magnesiumverbindingen.')

doc.add_heading('2A.4 Is het eindproduct een nieuwe stof?', level=3)
add_para(doc,
'Het eindproduct van het demo-proces is een vanadium(IV)sulfaat-oplossing (VOSO₄ in waterig H₂SO₄). VOSO₄ heeft CAS-nummer 27774-13-6 en EC-nummer 248-652-7.\n\n'
'Cruciaal: Vanadium oxide sulphate (VOSO₄) is REEDS geregistreerd via het Vanadium REACH Consortium (bron: 57_vanadium_consortium.md). Het is dus geen "nieuwe" ongeregistreerde stof.\n\n'
'Bij opschaling (commerciële productie >1 ton/jaar) moet Phoenix Metals zich aansluiten bij de bestaande registratie via het Vanadium Consortium (Letter of Access of full membership). Dit is geen registratieverplichting maar een verplichting om deel te nemen aan de gezamenlijke registratie (OSOR-beginsel: One Substance, One Registration).')

doc.add_page_break()

# ── 2B. Registratieverplichting ──
doc.add_heading('2B. Registratieverplichting', level=2)

doc.add_heading('2B.1 De 1 ton/jaar-drempel', level=3)
add_para(doc,
'REACH artikel 6(1) stelt: "Fabrikanten en importeurs van een stof als zodanig of in één of meer mengsels in hoeveelheden van 1 ton of meer per jaar dienen een registratie in bij het Agentschap [ECHA]."\n\n'
'Berekening Phoenix Metals demo (PlantOne):\n'
'• Ash verwerkt: ≤60 kg totaal over ≤3 maanden\n'
'• Vanadiumgehalte in ash: ca. 15-25% (typisch voor SARU ash)\n'
'• Geschatte vanadiumproductie: ≤15 kg V over de hele campagne\n'
'• Jaarlijks equivalent: << 1 ton\n\n'
'Berekening Phoenix Metals IJmuiden (toekomstig):\n'
'• Staalslakken: 7.200 kg/jaar\n'
'• Vanadiumgehalte: ca. 1-5% in staalslakken\n'
'• Geschatte vanadiumproductie: 72-360 kg/jaar\n'
'• Conclusie: < 1 ton/jaar\n\n'
'Ook de ingekochte chemicaliën (H₂SO₄, NaOH) worden niet geproduceerd of geïmporteerd door Phoenix Metals maar gekocht van geregistreerde leveranciers. De totale hoeveelheid H₂SO₄ is ca. 200 l (verschillende concentraties) en NaOH ca. 100 l — beide ver onder 1 ton.\n\n'
'Conclusie: GEEN registratieverplichting in de huidige demo-fase én in de geplande IJmuiden-opschaling.', bold=True)

doc.add_heading('2B.2 Artikel 3, 5 en 6 — Juridisch kader', level=3)
add_table(doc,
    ['REACH Artikel', 'Bepaling', 'Toepassing Phoenix Metals'],
    [
        ['Art. 3(1)', 'Definitie "stof": chemisch element + verbindingen', 'SARU ash = mengsel, geen stof'],
        ['Art. 3(2)', 'Definitie "mengsel": ≥2 stoffen', 'Ash bevat NaVO₃, Na₃VO₄, NiO → mengsel'],
        ['Art. 3(13)', 'Definitie "downstream user"', 'Phoenix Metals verwerkt ash en gebruikt chem. → downstream user'],
        ['Art. 5', 'Geen stof, geen registratie', 'Ash is mengsel → geen registratie ash als zodanig'],
        ['Art. 6(1)', 'Registratie ≥1 ton/jaar', 'Productie << 1 ton → geen registratie'],
        ['Art. 6(3)', 'Gezamenlijke registratie (OSOR)', 'Bij toekomstige opschaling: via Vanadium Consortium'],
    ])

doc.add_heading('2B.3 Reeds geregistreerde stoffen via Vanadium Consortium', level=3)
add_para(doc,
'Het Vanadium REACH Consortium (vanadiumconsortium.com) heeft 19 vanadiumverbindingen geregistreerd. Voor Phoenix Metals zijn de volgende direct relevant:')

add_table(doc,
    ['Stof', 'EC-nummer', 'CAS-nummer', 'Relevantie'],
    [
        ['Sodium metavanadate', '237-272-7', '13718-26-8', 'Bestanddeel van SARU ash — REEDS geregistreerd'],
        ['Vanadium oxide sulphate (VOSO₄)', '248-652-7', '27774-13-6', 'Eindproduct demo — REEDS geregistreerd'],
        ['Divanadium pentaoxide (V₂O₅)', '215-239-8', '1314-62-1', 'Mogelijk relevant bij opschaling'],
        ['Divanadium tris(sulphate)', '237-226-6', '13701-70-7', 'Mogelijk relevant bij opschaling'],
        ['Slags, steelmaking, vanadium', '273-734-4', '60912-34-6', 'Relevant voor IJmuiden (staalslakken)'],
    ])

add_para(doc,
'\nToetreding: Phoenix Metals kan bij toekomstige commerciële opschaling toetreden via:\n'
'1. Full membership van het Vanadium Consortium\n'
'2. Letter of Access (LoA) voor specifieke stofregistratie\n\n'
'Kostenindicatie (uit REACH registratie [phoenix metals).docx): €15.000-€40.000 voor consortiumlidmaatschap; ECHA-registratiekosten €10.000-€30.000; totaal project €120.000-€290.000.')

doc.add_page_break()

# ── 2C. Uitzonderingen ──
doc.add_heading('2C. Uitzonderingen', level=2)

doc.add_heading('2C.1 PPORD-uitzondering (artikel 3(23))', level=3)
add_para(doc,
'REACH artikel 3(23) definieert "product- en procesgeoriënteerd onderzoek en ontwikkeling" (PPORD) als:\n'
'"elke wetenschappelijke ontwikkeling, productontwikkeling of procesontwikkeling, waaronder begrepen het opschalen, het testen van een productieproces en het testen van de toepassing van de stof."\n\n'
'De Phoenix Metals pilot plant voldoet aan alle PPORD-criteria:\n'
'• Het is een demonstrator/proeffabriek, geen commercieel productiemiddel\n'
'• Het doel is procesvalidatie en productkwaliteitbewijs\n'
'• De schaal is beperkt (≤60 kg ash, ≤3 maanden)\n'
'• Er is geen commerciële afzet van het eindproduct\n\n'
'PPORD-melding bij ECHA (artikel 9(2)):\n'
'• Een PPORD-melding is verplicht als de stof in hoeveelheden ≥1 ton/jaar wordt geproduceerd/geïmporteerd voor PPORD-doeleinden\n'
'• Bij <1 ton/jaar is een PPORD-melding NIET vereist\n'
'• Phoenix Metals produceert <<1 ton/jaar → PPORD-melding niet vereist\n\n'
'Advies: Voor de IJmuiden-opschaling (7.200 kg/jaar staalslakken) blijft de vanadiumproductie <1 ton/jaar. Een PPORD-melding is pas noodzakelijk bij productie >1 ton/jaar van een specifieke vanadiumverbinding.', bold=True)

doc.add_heading('2C.2 Vrijgestelde stoffen (artikel 2(7))', level=3)
add_para(doc,
'REACH artikel 2(7)(a) vrijstelt stoffen die voldoen aan de criteria van Bijlage IV (sufficient knowledge) en Bijlage V (registratie niet vereist vanwege onschuldigheid).\n\n'
'De door Phoenix Metals gebruikte stoffen:\n'
'• H₂SO₄: Niet vrijgesteld — volledig geregistreerd door leveranciers\n'
'• NaOH: Niet vrijgesteld — volledig geregistreerd door leveranciers\n'
'• Aluminiumsulfaat: Niet vrijgesteld — geregistreerd door leverancier\n'
'• Calciumoxide: Niet vrijgesteld — geregistreerd door leverancier\n'
'• Vanadiumverbindingen: Niet vrijgesteld\n\n'
'Conclusie: Geen van de door Phoenix Metals gebruikte stoffen valt onder de vrijstelling van artikel 2(7). Echter, omdat Phoenix Metals geen fabrikant/importeur is van deze stoffen, is de vrijstellingsvraag niet aan de orde — de leveranciers hebben reeds geregistreerd.')

doc.add_page_break()

# ── 2D. SVHC Analyse ──
doc.add_heading('2D. SVHC Analyse', level=2)

doc.add_heading('2D.1 SVHC-stoffen in de SARU ash', level=3)
add_para(doc,
'De SARU ash bevat de volgende componenten (bron: Fact sheet Ash 2025, Productinformatiekaart P1310):')

add_table(doc,
    ['Component', 'CAS', 'SVHC-status', 'Kader'],
    [
        ['Natriummetavanaat (NaVO₃)', '13718-26-8', 'Kandidaatlijst sinds 2015\n(art. 57(c) CMR cat. 2 — reprotoxisch)', 'REACH art. 57(c)'],
        ['Trinatriumorthovanadate (Na₃VO₄)', '13718-26-8*', 'Kandidaatlijst (vanadiumverbindingen)', 'REACH art. 57(c)'],
        ['Nikkeloxide (NiO)', '1313-99-1', 'Kandidaatlijst sinds 2009\n(art. 57(a) CMR cat. 1B — kankerverwekkend)', 'REACH art. 57(a)'],
        ['Natuurlijk voorkomende radionucliden', 'U-238 serie', 'Niet SVHC (straling valt onder Bbs)', 'Besluit basisveiligheidsnormen stralingsbescherming'],
    ])

add_para(doc, '\n*Opmerking: Natriummetavanaat en trinatriumorthovanadate worden vaak onder één CAS/EC-nummer geregistreerd als "reaction mass."')

doc.add_heading('2D.2 Artikel 33 — Mededelingsplicht', level=3)
add_para(doc,
'REACH artikel 33 verplicht leveranciers van artikelen die SVHC-stoffen bevatten (>0,1% gewicht) om de ontvanger hiervan in te lichten.\n\n'
'Kritische analyse: Is SARU ash een "artikel" onder REACH?\n\n'
'Nee. REACH artikel 3(3) definieert een "artikel" als "een voorwerp dat bij de vervaardiging een specifieke vorm, oppervlak of ontwerp krijgt." SARU ash is een poeder/mengsel, geen voorwerp met specifieke vorm. Artikel 33 is DAAROM NIET VAN TOEPASSING op de ash.\n\n'
'Wat wel van toepassing is:\n'
'• REACH artikel 31: De leverancier (Shell/SARU) moet een SDS verstrekken voor de ash (als gevaarlijk mengsel). Bevestigd: "SDS available" (Fact sheet Ash 2025).\n'
'• REACH artikel 32: Informatieverplichting voor downstream users.\n'
'• Als de ash een afvalstof wordt: Eural-code 060204 (bron: chemicals master).', bold=True)

doc.add_heading('2D.3 SVHC-implicaties voor Phoenix Metals', level=3)
add_para(doc,
'1. Als downstream user: Phoenix Metals hoeft zelf geen SVHC-melding te doen. De verplichting rust op de leverancier (Shell/SARU).\n\n'
'2. In de RI&E: De aanwezigheid van SVHC-stoffen (natriummetavanaat, nikkeloxide) MOET worden meegenomen in de Risico-Inventarisatie & -Evaluatie (Arbobesluit hoofdstuk 4, §2).\n\n'
'3. De Productinformatiekaart P1310 toont H350i (kankerverwekkend bij inademing), H361d (mogelijk schadelijk voor voortplanting), H301 (giftig bij inslikken), H317 (kan allergische huidreactie veroorzaken), H372 (schade aan organen bij langdurige blootstelling), H411 (giftig voor in het water levende organismen). Dit bevestigt CMR-classificatie.\n\n'
'4. Bij afvoer van reststromen: Restanten die SVHC-stoffen bevatten moeten als gevaarlijk afval worden afgevoerd (Eural 060204).')

doc.add_page_break()

# ── 2E. CLP Verplichtingen ──
doc.add_heading('2E. CLP Verplichtingen', level=2)

doc.add_heading('2E.1 Indeling en etikettering van de ash', level=3)
add_para(doc,
'Op basis van de Productinformatiekaart P1310 (SARU ash / vanadium concentrate) en de SDS-gegevens:')

add_table(doc,
    ['Aspect', 'Indeling SARU ash'],
    [
        ['Signaalwoord', 'GEVAAR'],
        ['H350i', 'Kan kanker veroorzaken bij inademing'],
        ['H361d', 'Vermoedelijk schadelijk voor het ongeboren kind'],
        ['H301', 'Giftig bij inslikken'],
        ['H317', 'Kan een allergische huidreactie veroorzaken'],
        ['H372', 'Veroorzaakt schade aan organen bij langdurige of herhaalde blootstelling'],
        ['H332', 'Schadelijk bij inademing'],
        ['H319', 'Veroorzaakt ernstige oogirritatie'],
        ['H411', 'Giftig voor in het water levende organismen, met langdurige gevolgen'],
        ['Pictogrammen', 'GHS08 (gezondheidsgevaar), GHS06 (giftig), GHS07 (uitroepteken), GHS09 (milieu)'],
        ['ADR-klasse', 'Waarschijnlijk 6.1 (giftig), VG III — conform vooroverleg ODIJ'],
    ])

doc.add_heading('2E.2 Indeling van het vanadiumsulfaat-eindproduct', level=3)
add_para(doc,
'Het eindproduct (vanadium(IV)sulfaat-oplossing in H₂SO₄) moet worden ingedeeld op basis van:\n'
'• Gevaarseigenschappen van VOSO₄ (toxisch, milieugevaarlijk)\n'
'• Concentratie H₂SO₄ in de oplossing\n'
'• CLP-verordening bijlage I\n\n'
'Voorgestelde indeling (gebaseerd op SDS-gegevens van vergelijkbare producten):\n'
'• Acuut toxisch cat. 3/4 (H331, H302)\n'
'• Huidirritatie (H315)\n'
'• Ernstige oogschade (H318)\n'
'• Specifieke orgaantoxiciteit bij herhaalde blootstelling (H372)\n'
'• Milieugevaarlijk (H411)\n\n'
'Phoenix Metals moet een eigen SDS opstellen voor het eindproduct als het wordt doorgeleverd aan derden. Voor intern gebruik volstaat de SDS van de grondstoffen.')

doc.add_heading('2E.3 SDS-verplichtingen', level=3)
add_para(doc,
'Als downstream user heeft Phoenix Metals de volgende CLP/SDS-verplichtingen:\n\n'
'1. SDS ontvangen: Van alle leveranciers (Shell voor ash, Carl Roth voor H₂SO₄, Merck voor NaOH). Bevestigd in chemicals master: "MSDS (Hardcopy): Yes" voor alle stoffen.\n\n'
'2. SDS beschikbaar houden: Voor alle werknemers toegankelijk (REACH art. 31, Arbobesluit art. 4.1a).\n\n'
'3. SDS raadplegen: Bij het opstellen van de RI&E (Arbobesluit art. 5).\n\n'
'4. Eigen SDS opstellen: Alleen verplicht als Phoenix Metals een mengsel doorlevert aan derden en de beschikbare SDS van de leverancier niet toereikend is (REACH art. 31(2)). In de demo-fase wordt het eindproduct niet doorgeleverd → geen eigen SDS-verplichting.\n\n'
'5. PCN/UFI-melding: Voor gevaarlijke mengsels op de markt. Niet van toepassing in de demo-fase (geen verkoop).')

doc.add_page_break()

# ── 2F. REACH Concrete Actielijst ──
doc.add_heading('2F. REACH Concrete Actielijst', level=2)

add_table(doc,
    ['Actie', 'Prioriteit', 'Termijn', 'Toelichting'],
    [
        ['SDS-beheer actualiseren', 'HOOG', 'Direct',
         'Zorg dat alle SDS actueel, digitaal beschikbaar en geïntegreerd in RI&E zijn. PCN/UFI-check vanaf 2025 verscherpt.'],
        ['SVHC-register opzetten', 'HOOG', 'Direct',
         'Documenteer aanwezigheid van natriummetavanaat, nikkeloxide. Verwijs naar SDS en H-zinnen.'],
        ['RI&E actualiseren met SVHC/CMR', 'HOOG', 'Direct',
         'CMR-stoffen (H350i, H361d) vereisen specifieke maatregelen (Arbobesluit hfdst 4 §2): vervanging overwegen, blootstelling minimaliseren, werknemersregister bijhouden.'],
        ['Stralingsverantwoording RI&E', 'HOOG', 'Direct',
         'Besluit basisveiligheidsnormen stralingsbescherming: <1000 kg ash is intrinsiek veilig, maar verantwoording in RI&E vereist (art. 2.2, 4.2, 7.6).'],
        ['PPORD-melding overwegen', 'LAAG', 'Niet nodig <1 ton',
         'Pas relevant bij productie >1 ton/jaar. Documenteer dat pilot plant als PPORD kwalificeert.'],
        ['Vanadium Consortium contact', 'MIDDEN', 'Bij opschaling >1 ton',
         'Toetreding via LoA of full membership. Kosten €15k-€40k. Eerste contact leggen in voorbereiding.'],
        ['CLP-indeling eindproduct documenteren', 'MIDDEN', 'Voor IJmuiden',
         'Documenteer de CLP-indeling van het vanadiumsulfaat-eindproduct. Nodig voor transport (ADR) en opslag (PGS 15).'],
        ['REACH-registratie', 'NIET VAN TOEPASSING', 'Niet nodig',
         'Onder 1 ton/jaar: geen registratieplicht. Bij commerciële productie >1 ton: via Vanadium Consortium.'],
        ['Autorisatieaanvraag', 'NIET VAN TOEPASSING', 'Niet nodig',
         'Natriummetavanaat staat op kandidaatlijst maar (nog) niet op bijlage XIV. Geen autorisatieplicht.'],
    ])

doc.add_page_break()

# ════════════════════════════════════════════════════════
# 3. DEEL 2: PGS 15 ANALYSE
# ════════════════════════════════════════════════════════
doc.add_heading('3. DEEL 2: PGS 15 Analyse', level=1)

# ── 3A. Toepasselijkheid ──
doc.add_heading('3A. Toepasselijkheid', level=2)

doc.add_heading('3A.1 Is PGS 15 van toepassing op een pilot plant?', level=3)
add_para(doc,
'PGS 15:2025 (versie 1.0, januari 2025) is van toepassing op "de opslag en tijdelijke opslag van verpakte gevaarlijke stoffen" (H1.2). De richtlijn kent geen uitzondering voor pilot plants, R&D-faciliteiten of proeffabrieken. De toepasselijkheid wordt bepaald door:\n\n'
'1. De aard van de stoffen (ADR-klasse)\n'
'2. De hoeveelheid (ondergrenzen)\n'
'3. De vorm van opslag (verpakt)\n\n'
'De activiteit (productie, R&D, pilot) is niet relevant — PGS 15 gaat uitsluitend over OPSLAG. Zolang Phoenix Metals verpakte gevaarlijke stoffen opslaat, is PGS 15 van toepassing onafhankelijk van het productiedoel.', bold=True)

doc.add_heading('3A.2 Ondergrenzen — Hoeveelheden Phoenix Metals', level=3)
add_para(doc, 'Chemicals Master (26_pm_chemicals_master, v2.1.0, 29-11-2024):')

add_table(doc,
    ['Stof', 'ADR-klasse', 'VG', 'Hoeveelheid', 'Ondergrens PGS 15', 'PGS 15 van toepassing?'],
    [
        ['NaOH 50%', '8', 'II', '4×25L = 100L (≈130 kg)', '250 kg', 'Nee (130 < 250 kg)'],
        ['H₂SO₄ 75%', '8', 'II', '3×10L = 30L (≈45 kg)', '250 kg', 'Nee (45 < 250 kg)'],
        ['H₂SO₄ 50%', '8', 'II', '7×10L = 70L (≈105 kg)', '250 kg', 'Nee (105 < 250 kg)'],
        ['H₂SO₄ 25%', '8', 'II', '4×25L = 100L (≈125 kg)', '250 kg', 'Nee (125 < 250 kg)'],
        ['Aluminiumsulfaat', 'N/A', 'N/A', '2×2,5 kg = 5 kg', '250 kg', 'Nee'],
        ['Calciumoxide', 'N/A', 'N/A', '2×5 kg = 10 kg', '250 kg', 'Nee'],
        ['TOTAAL H₂SO₄', '8', 'II', '≈275 kg', '250 kg', 'JA (>250 kg)'],
        ['TOTAAL ADR-klasse 8', '8', 'II', '≈405 kg', '250 kg', 'JA'],
    ])

add_para(doc,
'\nConclusie: De totale hoeveelheid ADR-klasse 8 stoffen (H₂SO₄ + NaOH ≈405 kg) overschrijdt de ondergrens van 250 kg. PGS 15 is VAN TOEPASSING op de opslag.\n\n'
'Daarnaast geldt: als de totale hoeveelheid verpakte gevaarlijke stoffen >1.000 kg bedraagt, is PGS 15 ALTIJD van toepassing (Bal art. 3.27). Phoenix Metals zit hier dicht bij aan (inclusief verpakkingen, chemicaliën, ash-residuen).', bold=True)

doc.add_heading('3A.3 Vergunningspositie', level=3)
add_para(doc,
'Uit het vooroverleg (23-09-2025) met de Omgevingsdienst IJmond (ODIJ) en de haalbaarheidsstudie (Arcadis, 12-12-2025):\n\n'
'• Opslag van gevaarlijke stoffen in verpakking (Bal art. 3.27):\n'
'  — <1.000 kg totaal: geen melding vereist\n'
'  — 1.000-10.000 kg (geen VG I): meldingsplichtig\n'
'  — >10.000 kg: vergunningplichtig\n\n'
'• Phoenix Metals IJmuiden: verwacht <10.000 kg → meldingsplichtig, niet vergunningplichtig\n'
'• Phoenix Metals PlantOne: de opslag is onderdeel van de huur van de pilot-ruimte; PlantOne heeft algemene HSE-voorschriften (HS-P-00A) waaraan moet worden voldaan\n\n'
'• BRZO/Seveso: Niet van toepassing. De hoeveelheid vanadiumoxide (V₂O₅) blijft ver onder de lagedrempelwaarde van 50 ton (haalbaarheidsstudie Arcadis).', bold=True)

doc.add_page_break()

# ── 3B. Scenario Analyse ──
doc.add_heading('3B. Scenario Analyse', level=2)

doc.add_heading('3B.1 Opslagclassificatie', level=3)
add_table(doc,
    ['Stof', 'UN-nummer', 'ADR-klasse', 'VG', 'Brandbaar?', 'Opslagklasse'],
    [
        ['H₂SO₄ 25-75%', 'UN 1830/1832', '8', 'II', 'Onbrandbaar', 'ADR 8 zuur'],
        ['NaOH 50%', 'UN 1824', '8', 'II', 'Onbrandbaar', 'ADR 8 base'],
        ['Vanadiumoplossing', 'UN 3082', '9', '—', 'Onbrandbaar', 'ADR 9'],
        ['SARU ash', 'UN 3077 (mogelijk)', '9', 'III', 'Onbrandbaar', 'ADR 9'],
    ])

doc.add_heading('3B.2 Veiligheidsniveau', level=3)
add_para(doc,
'Uit PGS 15:2025, Tabel 6 (M3):\n\n'
'• ADR-klasse 8, VG II, onbrandbaar/niet brandonderhoudend → Basisveiligheidsniveau\n'
'• ADR-klasse 9, onbrandbaar → Basisveiligheidsniveau\n\n'
'Geen aanvullend veiligheidsniveau (A, B, C) vereist voor onbrandbare bijtende stoffen.\n\n'
'Dit betekent concreet:\n'
'• Geen Wbdbo-eis (geen brandwerende scheiding vereist)\n'
'• Geen VBB-installatie (brandblussysteem) vereist\n'
'• Geen branddetectie-installatie vereist\n'
'• Wel: alle basismaatregelen uit PGS 15 H7.2 + H7.3', bold=True)

doc.add_heading('3B.3 Onverenigbare combinaties — SCHEIDINGSVERPLICHTING', level=3)
add_para(doc,
'PGS 15 Bijlage E (normatief) stelt dat zuren en basen binnen ADR-klasse 8 gescheiden opgeslagen MOETEN worden.\n\n'
'Voor Phoenix Metals:', bold=True)

add_table(doc,
    ['Combinatie', 'Risico', 'Vereiste actie'],
    [
        ['H₂SO₄ + NaOH', 'Exotherme reactie, spatten, hitte', 'GESCHEIDEN opslaan (vakindeling of vakscheiding)'],
        ['H₂SO₄ + vanadiumoplossing', 'Geen verhoogd risico', 'Geen scheiding vereist'],
        ['NaOH + aluminiumsulfaat', 'Reactie mogelijk', 'Beoordelen op basis van SDS'],
        ['NaOH + calciumoxide', 'Geen direct risico', 'Geen scheiding vereist'],
    ])

add_para(doc,
'\nDe scheiding van H₂SO₄ en NaOH kan worden gerealiseerd door:\n'
'1. Aparte vakken binnen dezelfde opslagvoorziening (vakscheiding)\n'
'2. Een fysieke afscheiding (muurtje, lekbak, afstand)\n'
'3. Aparte opslagvoorzieningen (indien ruimte beschikbaar)')

doc.add_heading('3B.4 Maximale hoeveelheden', level=3)
add_para(doc,
'Bij basisveiligheidsniveau gelden de volgende grenzen:\n\n'
'• Tabel 7 (M3): >2.500 kg ADR-klasse 8/9 → veiligheidsniveau van toepassing\n'
'  Phoenix Metals: ≈405 kg → ruim onder de grens\n\n'
'• Maximum oppervlak opslagvoorziening: 1.000 m² (<20.000 kg zonder VBB)\n'
'  Phoenix Metals: naar schatting <10 m² → geen beperking\n\n'
'• Verdieping: Geen beperking voor onbrandbare ADR-8 VG II/III en ADR-9\n\n'
'• Tijdelijke opslag: Max 10.000 kg per brandcompartiment. H₂SO₄ VG II en NaOH VG II zijn toegestaan in tijdelijke opslag.')

doc.add_page_break()

# ── 3C. Eisen ──
doc.add_heading('3C. Eisen — Bouwkundig, Veiligheid, Organisatorisch', level=2)

doc.add_heading('3C.1 Bouwkundige eisen', level=3)
add_table(doc,
    ['Eis', 'PGS 15 referentie', 'Toepassing Phoenix Metals'],
    [
        ['Wbdbo (brandwerendheid)', 'M21', 'NIET vereist — onbrandbare ADR-8 VG II, dedicated opslag'],
        ['Opvangcapaciteit', 'M30', '110% grootste verpakking of 10% totaal (wat meer is). Grootste jerrycan = 25 l → minimaal 27,5 l opvang. Totaal ≈405 kg → 10% = 40,5 kg → minimaal 41 l opvang.'],
        ['Geen verbinding riool', 'M29', 'Geen openingen in vloer met directe verbinding naar riolering of oppervlaktewater'],
        ['Constructiebestendigheid', 'M30', 'Opvangvoorziening bestand tegen bijtende stof (geen ongecoat staal bij H₂SO₄)'],
        ['Dakconstructie', 'M27', 'Niet-brandgevaarlijk materiaal (NEN 6063)'],
        ['Aanrijdbeveiliging', 'M40', 'Stellingen beschermd tegen aanrijding als gemotoriseerd transport gebruikt wordt'],
        ['Ventilatie', 'M30, M35', 'Adequate ventilatie; bijtend zuur produceert dampen bij hogere concentraties'],
        ['Vrije ruimte', 'M21', '2 m tot andere activiteiten, duidelijk gemarkeerd op vloer'],
    ])

doc.add_heading('3C.2 Veiligheidsvoorzieningen', level=3)
add_table(doc,
    ['Eis', 'PGS 15 referentie', 'Toepassing Phoenix Metals'],
    [
        ['Brandblusmiddelen', 'M95', 'Minimaal twee 6 kg poederblussers of equivalent'],
        ['Ontstekingsbronnen', 'M68, M134', 'Rook- en vuurverbod; pictogram NEN-EN-ISO 7010'],
        ['PBM\'s', 'M85, M88', 'Zuurbestendige handschoenen, veiligheidsbril/face shield, beschermende kleding'],
        ['Neutralisatiemiddelen', 'M119', 'Soda (Na₂CO₃) voor H₂SO₄; citroenzuur/azijnzuur voor NaOH'],
        ['Absorptiemateriaal', 'M119', 'Zuur/base-bestendig absorptiemateriaal (vermiculite, chemische absorbent pads)'],
        ['Lekkage-instructie', 'M120', 'Procedure bij lekkage, zichtbaar aanwezig, actueel'],
        ['Noodplan', 'M115', 'Intern noodplan bij bepaalde hoeveelheden'],
    ])

doc.add_heading('3C.3 Organisatorische eisen', level=3)
add_table(doc,
    ['Eis', 'PGS 15 referentie', 'Toepassing Phoenix Metals'],
    [
        ['Stoffenlijst', 'M116', 'Actueel overzicht van alle opgeslagen gevaarlijke stoffen'],
        ['VIB/SDS beschikbaar', 'M137', 'Voor alle stoffen, toegankelijk voor werknemers'],
        ['Plattegrond', 'M116', 'Actuele plattegrond met ligging stoffen en voorzieningen'],
        ['Calamiteiteninstructie', 'M121', 'Zichtbaar bij toegang, met contactgegevens instanties'],
        ['Deskundigheid', 'M85', 'Personen deskundig en bekend met gevaren; periodieke training'],
        ['Toegangsbeperking', 'M36', 'Alleen bevoegd en deskundig personeel'],
        ['Inspectie verpakkingen', 'M45', 'Controle op beschadigingen, corrosie, lekkage bij ontvangst en opslag'],
        ['Signalering', 'M135-136', 'ADR-etiket 8 (corrosief) aan buitenzijde opslag; rook-/vuurverbod bord'],
        ['Documentatie', 'M36', 'Alle keuringen, inspecties, onderhoud gedocumenteerd'],
    ])

doc.add_page_break()

# ── 3D. Uitzonderingen pilot plant ──
doc.add_heading('3D. Uitzonderingen pilot plant', level=2)

doc.add_heading('3D.1 PGS 15 kent geen algemene R&D-uitzondering', level=3)
add_para(doc,
'PGS 15:2025 bevat geen specifieke uitzondering voor pilot plants, R&D-laboratoria of proeffabrieken. De toepasselijkheid wordt uitsluitend bepaald door stofeigenschappen en hoeveelheden.\n\n'
'Er zijn echter verlichtingen die relevant zijn:')

add_table(doc,
    ['Verlichting', 'Voorwaarde', 'Toepassing Phoenix Metals'],
    [
        ['Ondergrens 250 kg (ADR 8/9)', 'Totale hoeveelheid <250 kg per klasse', 'Deels: ≈405 kg > 250 kg → PGS 15 van toepassing'],
        ['Werkvoorraad (M14)', 'Max 1 aangebroken + 1 nieuwe per stof', 'Toepasbaar voor chem. direct naast installatie'],
        ['Basisveiligheidsniveau', 'Onbrandbare ADR-8/9, dedicated opslag', 'JA — minimale eisen, geen VBB/Wbdbo'],
        ['Geen Wbdbo', 'Onbrandbaar, <10 ton, dedicated', 'JA — grote verlichting'],
        ['LQ/EQ-verdubbeling ondergrens', 'Stoffen in LQ/EQ transportverpakking', 'Niet van toepassing — jerrycans zijn standaard ADR'],
    ])

doc.add_heading('3D.2 Relatie met het Besluit activiteiten leefomgeving (Bal)', level=3)
add_para(doc,
'PGS 15 wordt via het Bal (art. 3.27 en 4.1012) als "direct werkende regel" aangemerkt voor omgevingsveiligheid. Dit betekent:\n\n'
'• Bij een milieubelastende activiteit (MBA) met opslag van gevaarlijke stoffen moet automatisch aan PGS 15 worden voldaan\n'
'• Bij Phoenix Metals PlantOne: de opslag valt onder de algemene HSE-voorschriften van PlantOne, die deels overlappen met PGS 15\n'
'• Bij Phoenix Metals IJmuiden: de opslag valt onder Bal art. 3.27 (opslag van gevaarlijke stoffen in verpakking). ODIJ heeft bevestigd dat meldingsplicht (niet vergunningplicht) geldt bij <10.000 kg\n\n'
'Het Besluit activiteiten leefomgeving (Bal) artikel 3.27:\n'
'• Ondergrens voor meldingsplicht: 1.000 kg gevaarlijke stoffen in verpakking (geen VG I)\n'
'• Phoenix Metals PlantOne: naar schatting <1.000 kg → mogelijk geen meldingsplicht (maar PGS 15 blijft van toepassing vanuit Arbowet)\n'
'• Phoenix Metals IJmuiden: nader te bepalen na definitieve massabalans', bold=True)

doc.add_heading('3D.3 Kleinschaligheid en risicobenadering', level=3)
add_para(doc,
'PGS 15:2025 hanteert een risicobenadering (H3). De relevante scenario\'s voor Phoenix Metals zijn:\n\n'
'• S1: Verpakking wordt aangereden → stof komt vrij (impact)\n'
'• S2: Verpakking valt en faalt (impact)\n'
'• S5: Veroudering/degradatie verpakking (degradatie)\n'
'• S11: Vrijkomen gevaarlijke stof (lekkage)\n'
'• S12: Verspreiding damp/vloeistof\n\n'
'Brandscenario\'s (S8-S15) zijn NIET relevant voor onbrandbare bijtende stoffen in dedicated opslag.\n\n'
'De risicobenadering rechtvaardigt het basisveiligheidsniveau: de kans op brand is nihil, het primaire risico is lekkage en blootstelling aan bijtende vloeistoffen.')

doc.add_page_break()

# ── 3E. PGS 15 Concrete Actielijst ──
doc.add_heading('3E. PGS 15 Concrete Actielijst', level=2)

add_para(doc, 'Prioritering: HOOG = direct, MIDDEN = binnen 1 maand, LAAG = bij verhuizing IJmuiden', bold=True)

add_table(doc,
    ['Nr.', 'Actie', 'Prioriteit', 'PGS 15 referentie', 'Toelichting'],
    [
        ['1', 'Scheiding H₂SO₄ en NaOH realiseren', 'HOOG', 'Bijlage E, H7.3.3',
         'Zuren en basen GESCHEIDEN opslaan. Vakscheiding via lekbak of afstand.'],
        ['2', 'Opvangvoorziening plaatsen', 'HOOG', 'M30',
         '110% grootste verpakking of 10% totaal. Materiaal bestand tegen H₂SO₄ en NaOH.'],
        ['3', 'Neutralisatiemiddelen beschikbaar', 'HOOG', 'M119',
         'Soda (Na₂CO₃) voor zuur; citroenzuur voor base. Plus absorptiemateriaal.'],
        ['4', 'Brandblussers plaatsen', 'HOOG', 'M95',
         'Minimaal 2× 6 kg poederblusser in nabijheid opslag.'],
        ['5', 'Calamiteiteninstructie ophangen', 'HOOG', 'M121',
         'Zichtbaar bij toegang, inclusief contactgegevens.'],
        ['6', 'Lekkage-instructie opstellen', 'HOOG', 'M120',
         'Procedure bij lekkage H₂SO₄ en NaOH. Actueel houden.'],
        ['7', 'ADR-etikettering aanbrengen', 'HOOG', 'M135-136',
         'ADR-etiket 8 (corrosief) aan buitenzijde opslag ≥20×20 cm.'],
        ['8', 'Rook-/vuurverbod bord', 'HOOG', 'M134',
         'Pictogram NEN-EN-ISO 7010 + NEN 3011.'],
        ['9', 'Stoffenlijst actualiseren', 'MIDDEN', 'M116',
         'Actueel overzicht inclusief SDS-referenties.'],
        ['10', 'Plattegrond opslaglocatie', 'MIDDEN', 'M116',
         'Actuele plattegrond voor brandweer. Hardcopy beschikbaar.'],
        ['11', 'Inspectieregime opzetten', 'MIDDEN', 'M45',
         'Wekelijkse visuele controle verpakkingen op corrosie/lekkage.'],
        ['12', 'Training personeel', 'MIDDEN', 'M85, H7.4.3',
         'Alle personen die werken met gevaarlijke stoffen: periodieke instructie.'],
        ['13', 'Toegangsbeperking regelen', 'MIDDEN', 'M36',
         'Opslagruimte alleen toegankelijk voor bevoegd personeel.'],
        ['14', 'Melding Bal art. 3.27 overwegen', 'LAAG', 'Bal art. 3.27',
         'Voor IJmuiden: melding bij >1.000 kg opslag. PlantOne: via plant-beheer.'],
        ['15', '2 m vrije ruimte markeren', 'LAAG', 'M134',
         'Vloermarkering rond opslag. Geen brandbare materialen binnen 2 m.'],
    ])

doc.add_page_break()

# ════════════════════════════════════════════════════════
# 4. CONCLUSIES & AANBEVELINGEN
# ════════════════════════════════════════════════════════
doc.add_heading('4. Conclusies & Aanbevelingen', level=1)

doc.add_heading('4.1 Conclusies', level=2)

add_para(doc, 'REACH:', bold=True)
add_para(doc,
'1. Phoenix Metals is downstream user; geen registratieplicht in de huidige demo-fase.\n'
'2. De 1 ton/jaar-drempel wordt niet overschreden (≤60 kg ash, ≈15 kg V) en zal ook bij IJmuiden-opschaling (7.200 kg/jaar staalslakken, ≈72-360 kg V) niet worden overschreden.\n'
'3. PPORD-melding niet vereist (<1 ton/jaar), maar de pilot plant kwalificeert.\n'
'4. SVHC-stoffen aanwezig (natriummetavanaat, nikkeloxide) → RI&E-verplichting.\n'
'5. 19 vanadiumverbindingen reeds geregistreerd via Vanadium Consortium.\n'
'6. CLP-indeling en etikettering verplicht voor alle stoffen; SDS-beheer essentieel.')

add_para(doc, 'PGS 15:', bold=True)
add_para(doc,
'1. PGS 15 is VAN TOEPASSING (≈405 kg ADR-klasse 8 > ondergrens 250 kg).\n'
'2. Basisveiligheidsniveau volstaat (onbrandbare bijtende stoffen, dedicated opslag).\n'
'3. Kritieke eis: scheiding H₂SO₄ en NaOH (onverenigbare combinatie).\n'
'4. Opvangcapaciteit, neutralisatiemiddelen en lekkage-instructie zijn de belangrijkste acties.\n'
'5. Geen Wbdbo-eis, geen VBB-installatie, geen branddetectie vereist.\n'
'6. Vergunningpositie: meldingsplichtig (niet vergunningplichtig) bij <10.000 kg.')

doc.add_heading('4.2 Aanbevelingen', level=2)

add_para(doc, 'Korte termijn (direct):', bold=True)
add_para(doc,
'1. Implementeer de 15 acties uit de PGS 15-actielijst (§3E), in het bijzonder de scheiding H₂SO₄/NaOH en de opvangvoorziening.\n'
'2. Actualiseer de RI&E met SVHC/CMR-stoffen (natriummetavanaat H350i, nikkeloxide) en stralingsverantwoording.\n'
'3. Zorg dat alle SDS actueel en digitaal beschikbaar zijn.')

add_para(doc, 'Middellange termijn (IJmuiden-voorbereiding):', bold=True)
add_para(doc,
'4. Leg contact met het Vanadium REACH Consortium voor toekomstige toetreding (LoA).\n'
'5. Stel een CLP-indeling op voor het vanadiumsulfaat-eindproduct.\n'
'6. Werk de massabalans uit voor IJmuiden en toets de 1 ton/jaar-drempel per afzonderlijke stof.\n'
'7. Dien de melding Bal art. 3.27 in bij aanvang IJmuiden (indien >1.000 kg opslag).\n'
'8. Bevestig bestemmingsplan-conformiteit met gemeente Velsen (havengebonden bedrijf).')

add_para(doc, 'Lange termijn (commerciële opschaling):', bold=True)
add_para(doc,
'9. REACH-registratie via Vanadium Consortium bij productie >1 ton/jaar.\n'
'10. Full membership consortium bij commerciële afzet van vanadium-elektrolyten.\n'
'11. ECHA REACH-IT account aanmaken als voorbereiding.\n'
'12. Budget reserveren: €120.000-€290.000 voor volledig REACH-registratietraject.')

doc.add_page_break()

# ════════════════════════════════════════════════════════
# 5. BRONVERWIJZINGEN
# ════════════════════════════════════════════════════════
doc.add_heading('5. Bronverwijzingen', level=1)

doc.add_heading('5.1 REACH-bronbestanden', level=2)
sources_reach = [
    ['01_reach_basis.md', 'REACH basisinformatie, kader, autoriteiten'],
    ['02_registration_nl.md', 'ECHA Richtsnoer voor registratie v4.0 (aug 2021)'],
    ['03_substance_id_nl.md', 'Richtsnoer identificatie en naamgeving stoffen v3.0 (dec 2023)'],
    ['04_svhc_en.md', 'Guidance Annex XV SVHC dossier v2.1 (okt 2018)'],
    ['14_autorisatie.md', 'How to apply for authorisation (ECHA, feb 2021)'],
    ['15_clp_basisgids.md', 'Basisgids CLP (EG 1272/2008)'],
    ['16_pm_bedrijfsomschrijving.md', 'Phoenix Metals brief HSE Manager (Jorick van Gemert)'],
    ['23_pm_demo_process.md', 'Process description demo plant — 26 processtappen'],
    ['26_pm_chemicals_master.md', 'Registration Chemicals MASTER v2.1.0 (29-11-2024)'],
    ['27_msds_vanadium.md', 'MSDS Vanadium concentrate (SARU)'],
    ['28_msds_zwavelzuur.md', 'SDS Sulfuric acid 75% (RCI Labscan)'],
    ['29_msds_naoh.md', 'SDS NaOH 50% (Merck/Millipore v6.9, jul 2024)'],
    ['42_pm_fact_sheet_ash.md', 'Factsheet SARU ash v1.0 (28-11-2024)'],
    ['44_pm_legal_compliance.md', 'Legal compliance governance (Wintershall)'],
    ['47_pm_brzo_overzicht.md', 'Relatie BRZO elementen en VBS'],
    ['57_vanadium_consortium.md', 'Vanadium REACH Consortium — data sharing & substances'],
]
add_table(doc, ['Bestand', 'Inhoud'], sources_reach)

doc.add_heading('5.2 PGS 15-bronbestanden', level=2)
sources_pgs15 = [
    ['01_pgs15_2025_voorschriften.md', 'PGS 15:2025 volledige voorschriftenextractie (16 apr 2026)'],
    ['PGS_15_2025_versie_1.0_januari_2025.pdf', 'PGS 15:2025 originele publicatie (238 pag)'],
    ['02_haalbaarheidsstudie.md', 'Haalbaarheidsstudie Phoenix Metals IJmuiden'],
    ['04_vooroverleg.md', 'Verslag vooroverleg ODIJ (23-09-2025)'],
    ['05_uitgangspunten.md', 'Uitgangspunten vergunningtraject'],
    ['06_vergunning_todo.md', 'Vergunning to-do overzicht'],
    ['40_v1_d1_kennisdossier.md', 'V1 Kennisdossier (eerdere versie)'],
    ['46_v2_audit_checklist.md', 'V2 Audit checklist'],
]
add_table(doc, ['Bestand', 'Inhoud'], sources_pgs15)

doc.add_heading('5.3 Originele VPS-documenten', level=2)
sources_vps = [
    ['phoenix metals.docx', 'Motivatiebrief HSE Manager'],
    ['REACH/REACH registratie [phoenix metals).docx', 'Projectaanpak REACH-registratie (10 fasen, budget, risico\'s)'],
    ['Vergunning/Rapport haalbaarheidsstudie V04.docx', 'Arcadis haalbaarheidsstudie (12-12-2025)'],
    ['Vergunning/2025-09-23, verslag vooroverleg.docx', 'Vooroverleg ODIJ — vergunning, RIE, Seveso, stikstof'],
    ['Vergunning/Vergunning to do.docx', 'Openstaande vergunningspunten'],
    ['Info Ash/Fact sheet Ash 2025.docx', 'Factsheet SARU ash — samenstelling, straling, wetgeving'],
    ['Info Ash/P1310-SARU-as-ProductInformatieKaart 2024.pdf', 'Werkvloerinstructiekaart — H-zinnen, PBM\'s'],
    ['Info Ash/HSE voorschriften Pilots.pdf', 'PlantOne HSE-voorschriften (HS-P-00A)'],
    ['compliance/Register Relevante Milieu Wet- en Regelgeving.pdf', 'Wet- en regelgevingregister (HSE-02-L010.00)'],
    ['Gevaarlijke stoffen/Kankerverwekkende, mutagene en reprotoxische stoffen (AI-06).pdf', 'DRV Arboinformatieblad CMR'],
    ['algemene omschrijving process/Demo Process VR (1).docx', 'Procesbeschrijving demo plant'],
]
add_table(doc, ['Bestand', 'Inhoud'], sources_vps)

doc.add_heading('5.4 Wettelijke referenties', level=2)
add_table(doc,
    ['Referentie', 'Beschrijving'],
    [
        ['REACH — Verordening (EG) 1907/2006', 'Art. 3 (begrippen), Art. 5 (geen stof geen registratie), Art. 6 (registratieverplichting), Art. 9 (PPORD), Art. 31 (SDS), Art. 32 (informatie DU), Art. 33 (SVHC in artikelen), Art. 57 (SVHC-criteria)'],
        ['CLP — Verordening (EG) 1272/2008', 'Indeling, etikettering, verpakking. Annex I (indelingscriteria), Annex VIII (PCN/UFI)'],
        ['PGS 15:2025 versie 1.0', 'H1.2 (toepassingsbereik), H3 (risicobenadering), H7 (maatregelen), Bijlage E (scheiding)'],
        ['Besluit activiteiten leefomgeving (Bal)', 'Art. 3.27 (opslag gevaarlijke stoffen), Art. 4.1012 (PGS 15 toepassing)'],
        ['Arbeidsomstandighedenwet / Arbobesluit', 'Art. 5 (RI&E), Hfdst 4 §2 (CMR-stoffen)'],
        ['Besluit basisveiligheidsnormen stralingsbescherming', 'Art. 2.2, 3.2, 3.17, 3.20, 4.2, 7.1, 7.6, 10.2'],
        ['ADR 2025', 'Classificatie H₂SO₄ (UN 1830/1831/1832), NaOH (UN 1824), VOSO₄-oplossing (UN 3082)'],
    ])

# ── Footer info ──
doc.add_paragraph()
p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run('— EINDE DOCUMENT —\n\nPhoenix Metals REACH & PGS 15 Herbeoordeling v1.0\nGegenereerd op 19 april 2026 door Kas (HSEQ Specialist)')
run.font.size = Pt(9)
run.italic = True

# ── Save ──
output_path = '/root/projects/jg/2026-reach-phoenix-metals/deliverables/docx/REACH_PGS15_Herbeoordeling_Phoenix_Metals_v1.0.docx'
doc.save(output_path)
print(f'Document saved: {output_path}')
