#!/usr/bin/env python3
"""Genereer T05 MSDS eLearning HTML - min 30KB"""
import os

OUT = "/root/projects/jg/2026-PM-eLearning/deliverables/PM_EL_T05_Product_Hazards___MSDS_eLearning_v1.1.html"

def css():
    return """*{margin:0;padding:0;box-sizing:border-box}
body{font-family:Calibri,Arial,sans-serif;background:#e8f4f8;color:#1F2937;line-height:1.7}
.app{max-width:1000px;margin:0 auto;padding:20px}
.sticky-bar{position:sticky;top:0;z-index:100;background:linear-gradient(135deg,#003366,#1a5276);color:#fff;padding:14px 24px;border-radius:0 0 12px 12px;box-shadow:0 4px 15px rgba(0,0,0,.25);display:flex;justify-content:space-between;align-items:center}
.sticky-bar h2{font-size:16px}
.progress-track{flex:1;max-width:300px;height:8px;background:rgba(255,255,255,.25);border-radius:4px;margin-left:20px}
.progress-fill{height:100%;background:linear-gradient(90deg,#f39c12,#27ae60);border-radius:4px;transition:width .4s}
.card{background:#fff;border-radius:12px;padding:32px;margin:20px 0;box-shadow:0 4px 20px rgba(0,0,0,.08)}
.card h2{color:#003366;border-bottom:3px solid #f39c12;padding-bottom:10px;margin-bottom:18px;font-size:22px}
.card p{margin-bottom:12px;text-align:justify}
.btn{display:inline-block;padding:12px 28px;border:none;border-radius:8px;font-size:16px;cursor:pointer;transition:all .3s;font-weight:600;margin:6px}
.btn-primary{background:linear-gradient(135deg,#003366,#1a5276);color:#fff}
.btn-accent{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff}
.btn-success{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff}
.hidden{display:none}
.welcome{text-align:center;padding:60px 32px}
.welcome h1{font-size:36px;color:#003366;margin-bottom:12px}
.tip-box{background:linear-gradient(135deg,#fef9e7,#fdebd0);border-left:4px solid #f39c12;border-radius:8px;padding:18px;margin:16px 0}
.practice-box{background:linear-gradient(135deg,#eaf2f8,#d4e6f1);border-left:4px solid #1a5276;border-radius:8px;padding:18px;margin:16px 0}
.quiz-opt{display:block;width:100%;text-align:left;padding:14px 20px;margin:8px 0;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-size:15px;transition:all .3s}
.quiz-opt:hover{border-color:#003366;background:#f0f7ff}
.quiz-opt.correct{border-color:#27ae60;background:#e8f8f0;color:#27ae60}
.quiz-opt.wrong{border-color:#e74c3c;background:#fde8e8;color:#e74c3c}
.feedback{padding:14px;border-radius:8px;margin:12px 0;font-weight:600}
.feedback.good{background:#e8f8f0;color:#27ae60;border:1px solid #27ae60}
.feedback.bad{background:#fde8e8;color:#e74c3c;border:1px solid #e74c3c}
.certificate{text-align:center;padding:50px;background:linear-gradient(135deg,#fff,#f0f7ff);border:3px solid #003366;border-radius:16px}
.certificate h1{color:#003366;font-size:30px}
.cert-input{padding:10px;font-size:18px;border:2px solid #003366;border-radius:6px;width:300px;text-align:center}
.nav-btns{display:flex;justify-content:space-between;margin-top:24px;gap:10px}
.collapsible{cursor:pointer;padding:12px 16px;background:#003366;color:#fff;border-radius:8px;margin:12px 0 0;border:none;font-size:15px;width:100%;text-align:left}
.collapsible:hover{background:#1a5276}
.coll-content{max-height:0;overflow:hidden;transition:max-height .4s;background:#f9f9f9;border-radius:0 0 8px 8px}
.coll-content.open{max-height:600px;padding:16px}
.footer{text-align:center;padding:20px;color:#888;font-size:13px}"""

def generate_html():
    html = f"""<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>PM_EL_T05_Product_Hazards___MSDS_eLearning_v1.1</title>
<style>{css()}</style>
</head>
<body>
<div class="app">
<div class="sticky-bar" id="topbar">
<h2 id="topTitle">Welkom</h2>
<div class="progress-track"><div class="progress-fill" id="progBar" style="width:0%"></div></div>
</div>

<div id="welcome" class="card">
<div class="welcome">
<h1>Productgevaren en SDS eLearning</h1>
<p style="font-size:18px;color:#1a5276;margin:12px 0">Phoenix Metals B.V. | V₂O₅/H₂SO₄/NaOH/Al₂(SO₄)₃</p>
<p style="font-size:14px;color:#666;margin:8px 0">PlantOne IJmuiden & Rotterdam | MD Stijn van Zelst</p>
<p style="font-size:13px;color:#999;margin:16px 0">Seveso III Inrichting | Versie 1.1 | April 2026</p>
<button class="btn btn-primary" onclick="go(0)">Start Training →</button>
</div>
</div>

<div id="mod1" class="card hidden">
<h2>Module 1: Inleiding tot Productgevaren en SDS</h2>
<p>Phoenix Metals B.V. verwerkt staalslakken en produceert vanadiumpentoxide (V₂O₅) als hoofdproduct. Daarnaast worden zwavelzuur (H₂SO₄), natriumhydroxide (NaOH) en aluminiumsulfaat (Al₂(SO₄)₃) gebruikt in het productieproces. Elk van deze stoffen brengt specifieke gevaren met zich mee die medewerkers moeten kennen om veilig te kunnen werken. De Safety Data Sheet (SDS), in Nederland ook wel Veiligheidsinformatieblad (VIB) genoemd, is het primaire document dat alle relevante informatie over een gevaarlijke stof samenbrengt in een gestandaardiseerd formaat.</p>
<p>Volgens de Europese REACH-verordening (EG 1907/2006) en de CLP-verordening (EG 1272/2008) moet voor elke gevaarlijke stof een SDS beschikbaar zijn. Deze SDS volgt een strikt formaat van 16 secties die internationaal zijn afgesproken binnen het Global Harmonized System (GHS). Het begrijpen van deze structuur is essentieel voor elke medewerker die met gevaarlijke stoffen werkt, van de operator op de werkvloer tot de emergency response teamleden. Zonder kennis van de SDS bent u blind voor de gevaren die om u heen aanwezig zijn.</p>
<p>Op PlantOne in IJmuiden en Rotterdam werken medewerkers dagelijks met deze stoffen. De vanadiumlijn, waar V₂O₅ wordt gewonnen uit staalslakken via een leaching-proces met zwavelzuur, vormt het hart van de installatie. De combinatie van hoge temperaturen, corrosieve chemicaliën en giftige stoffen maakt een grondige kennis van productgevaren niet optioneel maar levensnoodzakelijk. De Seveso III-classificatie van de inrichting onderstreept het belang van een robuust veiligheidsmanagement systeem.</p>
<p>Deze eLearning module bouwt systematisch op: we beginnen met de structuur van de SDS, behandelen GHS-pictogrammen en H/P-zinnen, en duiken vervolgens diep in de specifieke gevarensprofielen van elke stof die bij Phoenix Metals wordt gebruikt. Na afloop begrijpt u niet alleen wat de gevaren zijn, maar ook hoe u de SDS als hulpmiddel kunt inzetten om risico's te beheersen in uw dagelijkse werkzaamheden.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>De SDS bestaat uit exact 16 secties die wereldwijd gestandaardiseerd zijn via het GHS. Deze structuur is vastgelegd in Annex II van de REACH-verordening en wordt in de hele EER (Europese Economische Ruimte) gehanteerd. Het systeem garandeert dat elke medewerker, ongeacht locatie, de informatie op dezelfde plek vindt.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Bij Phoenix Metals liggen de SDS-documenten van V₂O₅, H₂SO₄, NaOH en Al₂(SO₄)₃ fysiek beschikbaar bij elke afdeling én digitaal in het documentbeheersysteem. Bij een nieuw product of wijziging in samenstelling ontvangt u altijd een geüpdatete SDS via uw teamleider. MD Stijn van Zelst eist dat elke medewerker weet waar de SDS-documenten te vinden zijn.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Hoeveel secties bevat een gestandaardiseerde SDS volgens het GHS?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,1,0,2)">12 secties</button>
<button class="quiz-opt" onclick="checkMod(this,1,1,2)">14 secties</button>
<button class="quiz-opt" onclick="checkMod(this,1,2,2)">16 secties</button>
<button class="quiz-opt" onclick="checkMod(this,1,3,2)">18 secties</button>
<div id="fb_mod1" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(0)">← Vorige</button>
<button class="btn btn-accent" onclick="go(2)">Volgende →</button>
</div>
</div>

<div id="mod2" class="card hidden">
<h2>Module 2: De 16 Secties van een SDS — Diepgaande Analyse</h2>
<p>Een Safety Data Sheet bestaat uit 16 secties die in een logische volgorde zijn gerangschikt: van identificatie (sectie 1) naar overige informatie (sectie 16). De eerste vier secties vormen de kern voor eerste hulp en acute respons: identificatie van de stof, gevarenidentificatie, samenstelling en eerste-hulpmaatregelen. Deze secties moeten binnen seconden raadpleegbaar zijn bij een incident — digitaal en fysiek beschikbaar bij elke werkplek.</p>
<p>Sectie 2 (Gevaarsidentificatie) is arguably de belangrijkste sectie voor de medewerker. Hier vindt u de GHS-pictogrammen, de signaalwoorden (Gevaar of Waarschuwing), de H-zinnen (hazard statements) die het gevaar beschrijven, en de P-zinnen (precautionary statements) die preventieve maatregelen aangeven. Voor V₂O₅ ziet u hier bijvoorbeeld het pictogram voor giftigheid (doodshoofd) en het pictogram voor gezondheidsgevaar (man met sterretje op borst).</p>
<p>Secties 5 tot en met 8 zijn operationeel kritiek: brandbestrijding (5), maatregelen bij accidenteel vrijkomen (6), hantering en opslag (7), en persoonlijke bescherming (8). Voor een Seveso III-inrichting als Phoenix Metals is sectie 6 extra relevant — het beschrijft de procedure bij lekkages, morsen of ongecontroleerd vrijkomen, inclusief de te gebruiken sorptiemiddelen en de evacuatie-afstanden voor de omgeving.</p>
<p>Sectie 8 (Controle van de blootstelling/persoonlijke bescherming) bevat de grenswaarden voor blootstelling: de Arbowet grenswaarden (TGG-8u en TGG-15min) en Biological Limit Values. Voor V₂O₅ stof geldt een TGG-8u van 0,05 mg/m³ — een extreem lage waarde die het belang van adequate afzuiging en ademhalingsbescherming bij de vanadiumlijn onderstreept. Bij overschrijding moet direct worden opgeschaald naar ademluchtapparatuur.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>Sectie 3 bevat het CAS-nummer van elke stof — een uniek identificatienummer toegekend door de Chemical Abstracts Service. V₂O₅ heeft CAS-nummer 1314-62-1, H₂SO₄ heeft 7664-93-9, NaOH heeft 1310-73-2 en Al₂(SO₄)₃ heeft 10043-01-3. Met dit nummer kunt u altijd exact identificeren om welke stof het gaat, wereldwijd.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Alle 16 secties per stof zijn digitaal ontsloten op beide locaties. De SDS van V₂O₅ wordt jaarlijks herzien en bij wijziging van het productieproces direct geüpdatet. Controleer altijd de datum in sectie 16 — een SDS ouder dan 3 jaar moet worden herzien volgens REACH.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Welke SDS-sectie bevat de grenswaarden voor blootstelling (TGG-waarden)?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,2,0,2)">Sectie 2 — Gevaarsidentificatie</button>
<button class="quiz-opt" onclick="checkMod(this,2,1,2)">Sectie 6 — Accidenteel vrijkomen</button>
<button class="quiz-opt" onclick="checkMod(this,2,2,2)">Sectie 8 — Controle blootstelling</button>
<button class="quiz-opt" onclick="checkMod(this,2,3,2)">Sectie 11 — Toxicologische informatie</button>
<div id="fb_mod2" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(1)">← Vorige</button>
<button class="btn btn-accent" onclick="go(3)">Volgende →</button>
</div>
</div>

<div id="mod3" class="card hidden">
<h2>Module 3: GHS-Pictogrammen — Visuele Taal van Gevaar</h2>
<p>Het Global Harmonized System (GHS) gebruikt negen standaard pictogrammen — in de vorm van een witte ruit met rode rand — om gevaren visueel weer te geven. Deze pictogrammen vervangen de oude EU-gevaarssymbolen (oranje vierkanten) sinds de invoering van CLP in 2009. Elk pictogram vertegenwoordigt een specifieke gevarencategorie en is ontworpen om direct herkenbaar te zijn, ongeacht taal of nationaliteit van de medewerker.</p>
<p>Voor de stoffen bij Phoenix Metals zijn met name relevant: GHS05 (Corrosie) — toont vloeistoffen die metaal en huid aantasten, van toepassing op H₂SO₄ en NaOH; GHS06 (Dodelijk/giftig) — het doodshoofd-symbool, van toepassing op V₂O₅ bij inhalatie; GHS07 (Uitroepteken) — voor huidirritatie en oogirritatie, van toepassing op Al₂(SO₄)₃; en GHS08 (Gezondheidsgevaar) — het symbool met het beschadigde lichaam, van toepassing op V₂O₅ wegens carcinogene en reproductietoxische eigenschappen.</p>
<p>Elke GHS-pictogram wordt altijd gecombineerd met een signaalwoord: 'Gevaar' (Danger) voor ernstige gevaren of 'Waarschuwing' (Warning) voor minder ernstige gevaren. V₂O₅ draagt het signaalwoord 'Gevaar' vanwege de acute toxiciteit bij inhalatie en de carcinogene classificatie. Al₂(SO₄)₃ draagt 'Waarschuwing' voor huid- en oogirritatie. Het signaalwoord geeft direct de ernst van het gevaar aan.</p>
<p>De pictogrammen zijn niet slechts decoratief — ze vormen de basis van het etiket op elke verpakking. Volgens CLP moet elk etiket bevatten: de productnaam, de identiteit van de stof, de GHS-pictogrammen, het signaalwoord, de H-zinnen, de P-zinnen, en de contactgegevens van de leverancier. Het niet-opvolgen van de waarschuwingen op een etiket kan leiden tot ernstige gezondheidsschade of zelfs overlijden. Neem elk etiket serieus.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>De overgang van oude EU-symboolen (oranje vierkanten) naar GHS-pictogrammen (witte ruiten met rode rand) duurde in de EU van 2009 tot 2015. Sinds 1 juni 2017 zijn uitsluitend GHS-pictogrammen toegestaan op etiketten en verpakkingen in de Europese Unie.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Op beide Phoenix Metals locaties (IJmuiden en Rotterdam) hangen posters met alle 9 GHS-pictogrammen in de kleedkamers en bij de ingangen van productieafdelingen. Bij twijfel: raadpleeg altijd de SDS sectie 2 voor de exacte betekenis van de pictogrammen die van toepassing zijn.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Welk GHS-pictogram toont het doodshoofd en wat betekent het?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,3,0,1)">GHS05 — Corrosieve stoffen</button>
<button class="quiz-opt" onclick="checkMod(this,3,1,1)">GHS06 — Acuut giftig (dodelijk)</button>
<button class="quiz-opt" onclick="checkMod(this,3,2,1)">GHS08 — Gezondheidsgevaar op lange termijn</button>
<button class="quiz-opt" onclick="checkMod(this,3,3,1)">GHS09 — Milieugevaar</button>
<div id="fb_mod3" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(2)">← Vorige</button>
<button class="btn btn-accent" onclick="go(4)">Volgende →</button>
</div>
</div>

<div id="mod4" class="card hidden">
<h2>Module 4: H-zinnen en P-zinnen — Het Gevarensalphabet</h2>
<p>H-zinnen (Hazard Statements) en P-zinnen (Precautionary Statements) vormen de tekstuele aanvulling op de GHS-pictogrammen. H-zinnen beschrijven de aard en ernst van het gevaar in een gestandaardiseerde code. P-zinnen geven de te nemen voorzorgsmaatregelen aan. Beide systemen gebruiken unieke codes die internationaal herkenbaar zijn en per taalzone een vaste vertaling hebben.</p>
<p>H-zinnen zijn ingedeeld in drie categorieën: H2xx voor fysieke gevaren (bijv. H290 'Kan corrosief zijn voor metalen'), H3xx voor gezondheidsgevaren (bijv. H331 'Giftig bij inademing', H350 'Kan kanker veroorzaken'), en H4xx voor milieugevaren (bijv. H410 'Zeer giftig voor in het water levende organismen'). Elke H-zin heeft een vaste tekst die niet mag worden aangepast — in Nederland wordt de officiële Nederlandse vertaling gebruikt op etiketten en SDS.</p>
<p>Voor V₂O₅ gelden onder andere: H332 (Schadelijk bij inademing), H335 (Kan irritatie van de luchtwegen veroorzaken), H360Df (Kan de vruchtbaarheid schaden en kan het ongeboren kind schaden), en H372 (Veroorzaakt schade aan organen bij langdurige of herhaalde blootstelling). Deze H-zinnen tonen dat V₂O₅ een multi-hazard stof is met zowel acute als chronische effecten die tot in detail moeten worden begrepen.</p>
<P-zinnen zijn verdeeld in vijf categorieën: P1xx (Algemene voorzorgsmaatregelen), P2xx (Preventie), P3xx (Reactie), P4xx (Opslag), en P5xx (Verwijdering). P260 ('Stof/rook/gas/mist/damp niet inademen') is essentieel bij V₂O₅. P305+P351+P338 ('BIJ CONTACT MET DE OGEN: voorzichtig afspoelen met water') is de standaardreactie bij oogcontact met elke corrosieve stof. Deze gecombineerde P-zinnen vormen een actieprotocol.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>H360Df is een van de meest alarmerende H-zinnen. De 'D' staat voor 'schade aan het ongeboren kind' (Developmental toxicity) en de 'f' staat voor 'vruchtbaarheid' (fertility). Stoffen met deze classificatie vereisen strikte blootstellingscontrole en medische surveillance van werknemers.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Op de vanadiumlijn hangen veiligheidskaarten met kritieke H/P-zinnen voor V₂O₅. Medewerkers die zwanger zijn of willen worden moeten direct hun teamleider informeren wegens de H360Df classificatie. Phoenix Metals hanteert een zero-exposure beleid voor deze groep medewerkers.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Wat betekent H-zin H331?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,4,0,1)">Schadelijk bij inademing</button>
<button class="quiz-opt" onclick="checkMod(this,4,1,1)">Giftig bij inademing</button>
<button class="quiz-opt" onclick="checkMod(this,4,2,1)">Kan kanker veroorzaken</button>
<button class="quiz-opt" onclick="checkMod(this,4,3,1)">Veroorzaakt ernstige brandwonden</button>
<div id="fb_mod4" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(3)">← Vorige</button>
<button class="btn btn-accent" onclick="go(5)">Volgende →</button>
</div>
</div>

<div id="mod5" class="card hidden">
<h2>Module 5: V₂O₅ — Vanadiumpentoxide Gevarensprofiel</h2>
<p>Vanadiumpentoxide (V₂O₅) is het belangrijkste product van Phoenix Metals B.V., gewonnen uit staalslakken via leaching met zwavelzuur, gevolgd door precipitatie en calcinatie. V₂O₅ is een geel-oranje poeder of kristallijne vaste stof met een smeltpunt van 690°C. Het CAS-nummer is 1314-62-1 en het UN-nummer voor transport is 2862 (klasse 6.1).</p>
<p>De primaire blootstellingsroute bij Phoenix Metals is inhalatie van V₂O₅-stof of -damp. Bij de calcinatie-oven en bij laden/lossen van V₂O₅-poeder ontstaat het hoogste risico op stofblootstelling. V₂O₅ wordt door het lichaam opgenomen via de longen en omgezet in vanadyl- en vanadaat-ionen, die zich verspreiden naar nieren, lever en botten. De biologische halfwaardetijd is circa 20-40 uur voor de eliminatie via urine.</p>
<p>Acute blootstelling aan V₂O₅-stof (boven 0,1 mg/m³) veroorzaakt irritatie van de luchtwegen, hoesten, benauwdheid en een karakteristieke groene verkleuring van de tong ('green tongue'). Bij zwaardere blootstelling kunnen bronchitis, longontsteking en longoedeem optreden. De IARC (International Agency for Research on Cancer) classificeert V₂O₅ als mogelijk carcinogeen voor de mens (Groep 2B), gebaseerd op dierstudies die longtumoren aantoonden bij ratten en muizen.</p>
<p>Chronische blootstelling leidt tot schade aan het zenuwstelsel, nieren en lever. Symptomen zijn onder andere vermoeidheid, hoofdpijn, duizeligheid, tintelingen in handen en voeten, en verhoogde bloeddruk. De TGG-8u (Time Weighted Average over 8 uur) voor V₂O₅-respirabel stof is 0,05 mg/m³ — een van de laagste grenswaarden in de industrie. Dit betekent dat bij Phoenix Metals continue monitoring van de luchtkwaliteit bij de vanadiumlijn noodzakelijk is.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>De 'green tongue' (groene tong) is een uniek symptoom van vanadiumblootstelling dat al in de 19e eeuw werd beschreven bij arbeiders in vanadiumfabrieken. Het ontstaat doordat vanadiumionen reageren met slijmvlies in de mondholte. Het verdwijnt meestal binnen 2-3 dagen na beëindiging van de blootstelling.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Op de vanadiumlijn op PlantOne IJmuiden worden dagelijks stofmetingen uitgevoerd met persoonlijke stofmonitors. De resultaten worden wekelijks besproken in de toolbox-meeting. Als de 0,05 mg/m³ grens wordt benaderd, wordt direct overgeschakeld op ademluchtapparatuur.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Wat is de TGG-8u grenswaarde voor V₂O₅-respirabel stof?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,5,0,2)">0,5 mg/m³</button>
<button class="quiz-opt" onclick="checkMod(this,5,1,2)">0,1 mg/m³</button>
<button class="quiz-opt" onclick="checkMod(this,5,2,2)">0,05 mg/m³</button>
<button class="quiz-opt" onclick="checkMod(this,5,3,2)">1,0 mg/m³</button>
<div id="fb_mod5" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(4)">← Vorige</button>
<button class="btn btn-accent" onclick="go(6)">Volgende →</button>
</div>
</div>

<div id="mod6" class="card hidden">
<h2>Module 6: H₂SO₄ — Zwavelzuur Gevarensprofiel</h2>
<p>Zwavelzuur (H₂SO₄) is een van de meest gebruikte industriële chemicaliën ter wereld en speelt een cruciale rol bij Phoenix Metals als leaching-agent voor het oplossen van vanadium uit staalslakken. Het CAS-nummer is 7664-93-9. H₂SO₄ is een kleurloze tot lichtgele, olieachtige vloeistof met een kookpunt van 337°C (voor geconcentreerd zuur). Het is sterk corrosief en hygroscopisch — het trekt vocht aan uit de lucht en uit organisch materiaal.</p>
<p>Het primaire gevaar van H₂SO₄ is de extreme corrosiviteit. Bij contact met huidweefsel veroorzaakt het direct ernstige chemische brandwonden door middel van een dubbel mechanisme: enerzijds een exotherme reactie die hitte genereert (thermische schade), anderzijds dehydratie van weefsel (chemische schade door ont trekking van water). Geconcentreerd H₂SO₄ (> 96%) kan organisch materiaal volledig verkolen — dit is de zogenaamde 'verkoolde-suiker' demonstratie die de destructieve kracht van het zuur illustreert.</p>
<p>Bij Phoenix Metals wordt H₂SO₄ gebruikt in concentraties variërend van 10% (verdund, in het leaching-proces) tot 96-98% (geconcentreerd, voor opslag en dosering). Het verdunnen van H₂SO₄ is een kritieke operatie die ALWAYS volgens de regel 'zuur bij water, niet water bij zuur' moet plaatsvinden. Het toevoegen van water aan geconcentreerd zuur veroorzaakt een explosieve reactie door de enorme hoeveelheid hitte die vrijkomt — het mengsel kan spatten en koken.</p>
<p>Inhalatie van H₂SO₄-dampen of aerosols veroorzaakt ernstige irritatie van de luchtwegen, hoesten, benauwdheid en bij hoge concentraties longoedeem. De TGG-15min voor H₂SO₄-mist is 3 mg/m³, de TGG-8u is 1 mg/m³ (als H₂SO₄ aerosol/mist). Bij het leaching-proces op de vanadiumlijn kan H₂SO₄-mist ontstaan — lokale afzuiging en gasdetectie zijn hier verplicht. Bij alarm: direct veiligheidssluiten sluiten en ruimte evacueren.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>De regel 'zuur bij water, niet water bij zuur' is een van de fundamenteelste veiligheidsregels in de chemie. Wanneer water aan geconcentreerd zuur wordt toegevoegd, ontstaat er een exotherme reactie die het mengsel kan laten koken en spatten met corrosive druppels. Deze regel geldt voor alle zuren maar is met name kritiek voor zwavelzuur.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Bij de leaching-afdeling op PlantOne IJmuiden is een automatische doseringssysteem geïnstalleerd dat H₂SO₄ doseert via een gesloten leidingsysteem. Handmatig mengen is verboden zonder specifieke werkvergunning en aanwezigheid van een tweede medewerker (buddy-systeem). Alle medewerkers in deze afdeling dragen zuurbestendige persoonlijke beschermingsmiddelen.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Welke volgorde moet je aanhouden bij het verdunnen van geconcentreerd zwavelzuur?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,6,0,1)">Water bij zuur toevoegen</button>
<button class="quiz-opt" onclick="checkMod(this,6,1,1)">Zuul bij water toevoegen</button>
<button class="quiz-opt" onclick="checkMod(this,6,2,1)">Maakt niet uit</button>
<button class="quiz-opt" onclick="checkMod(this,6,3,1)">Eerst beide componenten koelen</button>
<div id="fb_mod6" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(5)">← Vorige</button>
<button class="btn btn-accent" onclick="go(7)">Volgende →</button>
</div>
</div>

<div id="mod7" class="card hidden">
<h2>Module 7: NaOH — Natriumhydroxide Gevarensprofiel</h2>
<p>Natriumhydroxide (NaOH), ook wel bijtende soda of caustische soda genoemd, wordt bij Phoenix Metals gebruikt voor pH-regulatie en neutralisatie in het proceswater. Het CAS-nummer is 1310-73-2. NaOH is beschikbaar als vaste korrels (perlen), vlokken of oplossing (caustische soda liquor). Het is een sterke base die zeer corrosief is voor huid, ogen en metaal. Dit vergelijkbaar met de corrosiviteit van zwavelzuur, maar met een ander oorzaak.</p>
<p>NaOH veroorzaakt corrosie door saponificatie van huidvetten — het ontvet letterlijk de huid door de lipiden af te breken. Dit proces kan onopgemerkt doorgaan voordat het huidweefsel begint op te lossen, in tegenstelling tot de directe branderige sensatie van zuur. Deze vertraagde werking maakt NaOH bijzonder gevaarlijk omdat slachtoffers zich veilig kunnen voelen terwijl de schade blijft doorgaan.</p>
<p>Bij Phoenix Metals wordt NaOH gebruikt in concentraties van 10% tot 50% voor neutralisatie van zure processen. De opslag van NaOH-concentraat bevindt zich in staaltanks van 1000L met corrosiebestendige binnenbekleding. Het handhaven van de juiste concentratie is cruciaal voor het proces maar ook voor veiligheid, omdat hogere concentraties directer corrosie veroorzaken.</p>
<p>Persoonlijke bescherming bij NaOH is essentieel: zuurbestendige handschoenen zijn niet voldoende — er zijn specifieke "base-bestendige" handschoenen (niet leder) nodig. Beschermende kleding van PVC of neopreen is verplicht. Oogbescherming met gesloten zijkanten is een must bij werken met NaOH, zelfs bij lagere concentraties. Bij contact met de huid onmiddellijk spoelen met minimaal 15 minuten.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>NaOH veroorzaakt chemische brandwonden die soms pas na uren merkbaar worden, doordat het door de huidweefsels heen werkt en de onderliggende lagen aantast. Dit in tegenstelling tot zuren die direct een zure laag vormen die de verdere penetratie stopt. Het is daarom belangrijk om NaOH-contact altijd serieus te nemen, zelfs als er geen directe pijn is.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Op de neutralisatie-unit bij PlantOne Rotterdam wordt NaOH doseringsmechanisme heeft dubbele wandbeveiliging en lekdetectie. Bij tankniveau-overschrijding of drukverhoging wordt automatisch het alarm geactiveerd. Medewerkers in deze afdeling zijn getraind in de specifieke gevaren van basen en hebben direct toegang tot emergency douches.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Wat is het primaire corrosiemechanisme van NaOH?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,7,0,1)">Dehydratie (wateronttrekking)</button>
<button class="quiz-opt" onclick="checkMod(this,7,1,1)">Saponificatie (vetontvetting)</button>
<button class="quiz-opt" onclick="checkMod(this,7,2,1)">Oxidatie</button>
<button class="quiz-opt" onclick="checkMod(this,7,3,1">Zure reactie</button>
<div id="fb_mod7" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(6)">← Vorige</button>
<button class="btn btn-accent" onclick="go(8)">Volgende →</button>
</div>
</div>

<div id="mod8" class="card hidden">
<h2>Module 8: Al₂(SO₄)₃ — Aluminiumsulfaat Gevarensprofiel</h2>
<p>Aluminiumsulfaat (Al₂(SO₄)₃) wordt bij Phoenix Metals gebruikt als flocculans in de waterzuivering en als buffer. Het CAS-nummer is 10043-01-3. Het is wit tot lichtgrijze kristallijne vaste stof die veel voorkomt in natuurlijke mineralen. In industriële contexten wordt het vaak geleverd als decahydraat (Al₂(SO₄)₃·10H₂O). Hoewel minder direct gevaarlijk dan V₂O₅ of H₂SO₄, vereist Al₂(SO₄)₃ respectieve behandeling.</p>
<p>De belangrijkste gevaren van Al₂(SO₄)₃ zijn irritatie van huid en ogen, longproblemen bij inhalatie van poeder, en milieu-impact. Het kan bij contact met water heet worden en lichtzure vloeistof vormen. Bij lagere concentraties wordt het als relatief veilig beschouwd, maar bij hogere concentraties of bij samenstelling met andere chemicaliën kunnen de gevaren toenemen.</p>
<p>Bij Phoenix Metals wordt Al₂(SO₄)₃ voornamelijk gebruikt in de waterzuiveringseenheid voor het coaguleren van verontreinigende stoffen. Het wordt gedoseerd via een gesloten systeme met pompcontrole om direct contact te minimaliseren. De doseringspunten zijn beveiligd met veiligheidskleppen en lekdetectie.</p>
<p>Persoonlijke bescherming bij Al₂(SO₄)₄ is minder strikt dan bij andere stoffen maar nog steeds essentieel: veiligheidsbril met zijbescherming, standaard werkhandschoenen, en beschermende kleding. Bij het laden van bulkzakken zijn stofdichthandschoenen en ademhalingsbescherming vereist. Oogcontact moet onmiddellijk worden gespoeld met minimaal 15 minuten.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>Aluminiumsulfaat is een van de meest gebruikte chemicaliën in waterzuivering wereldwijd. Het werkt door de neutralisering van negatief geladen deeltjes die tot stabilisatie (coagulatie) leiden. Dit principe wordt al sinds het begin van de 20e eeuw toegepast in waterbehandeling.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>De waterzuiveringseenheid bij PlantOne Rotterdam heeft een geautomatiseerd doseringssysteem dat Al₂(SO₄)₃ automatisch aanpast aan de waterkwaliteitsmetingen. Bij storingen in het system wordt de bevoegd persoon direct gewaarschuwd via het alarmcentrale. Alle medewerkers in deze afdeling zijn getraind in het omgaan met deze verontreinigingsreductie chemicaliën.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Welke GHS-pictogrammen zijn van toepassing op Al₂(SO₄)₃?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,8,0,1)">Alleen GHS07</button>
<button class="quiz-opt" onclick="checkMod(this,8,1,1)">GHS07 en GHS09</button>
<button class="quiz-opt" onclick="checkMod(this,8,2,1)">Geen pictogrammen</button>
<button class="quiz-opt" onclick="checkMod(this,8,3,1)">GHS02 en GHS03</button>
<div id="fb_mod8" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(7)">← Vorige</button>
<button class="btn btn-accent" onclick="go(9)">Volgende →</button>
</div>
</div>

<div id="mod9" class="card hidden">
<h2>Module 9: Gemengde Blootstelling — Synergistische Effecten</h2>
<p>Bij Phoenix Metals werken medewerkers vaak niet met één enkele stof, maar met meerdere chemicaliën tegelijk. Vanadiumextractie vereist samenwerking tussen H₂SO₄, NaOH en V₂O₅, wat synergetische gevaren kan creëren. Synergie is wanneer de gecombineerde effecten van stoffen groter zijn dan de som van de individuele effecten. Deze interacties zijn moeilijk voorspelbaar maar zeer gevaarlijk.</p>
<p>Een cruciaal voorbeeld is de combinatie van zuur en base: een lekkage van H₂SO₄ gevolgd door onmiddellijke neutralisatie met NaOH kan heet water vormen (neutraalwarmterespons) en grote hoeveelheden warmte vrijmaken. Dit kan leiden tot een explosief reactie, speciaal bij grotere volumes. Het veiligheidsprotocol vereist altijd afzonderlijke containers voor zuur en base, zelfs bij nabijheid.</p>
<p>De blootstelling aan multiple chemicaliën kan ook tot cumulatieve effecten leiden. V₂O₅ en H₂SO₄ beide kunnen de luchtwegen irriteren; gecombineerde blootstelling verhoogt het risico op ernstige luchtwegbeschadiging. Het is daarom essentieel dat medewerkers de specifieke gevaren van elke individuele stof kennen EN de mogelijke interacties tussen stoffen begrijpen.</p>
<p>Seveso III-regelgeving vereist specifieke risicoanalyses van combinaties van gevaarlijke stoffen bij Phoenix Metals. De MARPOT (Maatregelen voor Accidents en Processen) analyseert deze interacties. Medewerkers moeten op de hoogte zijn van de specifieke waarschuwingen bij meerdere stoffen blootstellingen, vooral tijdens operationele onregelmatigheden of noodgevallen.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>De wet van additiviteit stelt dat bij vergelijkbare mechanismen van toxiciteit, de totale blootstelling de som is van individuele componenten. Bij verschillende mechanismen (zoals neutraalwarmterespons) kunnen de effecten exponentieel groter worden. Dit is waarom veiligheidsprotocollen altijd conservatief zijn bij meerdere stoffen blootstelling.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Op de centrale werkplek bij de vanadiumlijn is een speciale "gemengde stoffen" veiligheidskaart opgehangen die alle mogelijke interacties tussen H₂SO₄, NaOH, V₂O₅ en Al₂(SO₄)₃ uitlegt. Bij elke onregelmatigheid wordt de betreffende werkinstructie gevolgd die rekening houdt met eventuele synergetische effecten.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Wat is het gevaarlijkste aspect van meerdere chemicaliënblootstelling?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,9,0,1)">Luidruchtigheid</button>
<button class="quiz-opt" onclick="checkMod(this,9,1,1)">Synergetische effecten</button>
<button class="quiz-opt" onclick="checkMod(this,9,2,1)">Opbergruimte</button>
<button class="quiz-opt" onclick="checkMod(this,9,3,1)">Verwarmingskosten</button>
<div id="fb_mod9" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(8)">← Vorige</button>
<button class="btn btn-accent" onclick="go(10)">Volgende →</button>
</div>
</div>

<div id="mod10" class="card hidden">
<h2>Module 10: SDS Raadpleging — Praktische Toepassing</h2>
<p>De SDS is geen academisch document maar een levensreddend werkinstrument. Bij Phoenix Metals is de SDS digitaliseerd toegankelijk via een centraal systeem, maar fysieke kopiën moeten altijd bij handen zijn bij de werkplek. De eerste 5 minuten van een noodsituatie zijn beslissend voor de uitkomst. Kennis van de SDS locatie en structuur kan het verschil maken tussen een klein incident en een ramp.</p>
<p>Sectie 4 (Eerste hulp) is uw eerste levensreddende informatie. Bij V₂O₅ blootstelling: schone lucht bij rust, medische hulp, monitoren van ademhaling. Bij H₂SO₄ contact: onmiddellijk 15 minuten spoelen met water, verwijderen van gecontamineerde kleding, medische hulp. Bij NaOH contact: vergelijkbaar, maar let op de exotherme reactie met water. Deze specifieke informatie moet direct beschikbaar zijn.</p>
<p>Sectie 6 (Accidenteel vrijkomen) geeft gedetailleerde procedures voor de verschillende stoffen. Voor H₂O₅-vrijkomen: opname met specifiek sorptiemiddel (bijv. natte zand of absorptieklei), ventilatie, persoonlijke bescherming. Voor H₂SO₄: neutralisatie met mild base (zuiverde soda), maar nooit direct met geconcentreerde NaOH. Voor NaOH: dilutie met water, maar controle van de temperatuur. Deze procedure's moeten worden geoefend.</p>
<p>BIJ ECHTE NODOODGEVALLEN: onmiddellijk het alarmcentrale bellen via telefoonnummer [nummer]. Geef locatie, type stof, geschatte hoeveelheid en huidige omstandigheden. Gebruik altijd het juiste PBM — voor V₂O₅ ademlucht, voor H₂SO₄ en NaOH volledige bescherming. Evacueer niet-essentiële personeel uit de getroffen zone en wacht op instructies van het crisismanagementteam.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>Een kleine lekkage kan binnen 30 seconden uitgroeien tot een major incident zonder snelle SDS-gesteunde reactie. Bij Phoenix Metals wordt de "3-second rule" toegepast: elke medewerker moet binnen 3 seconden de juiste SDS kunnen openen via de digitale app of het fysieke document bij de werkplek. Regelmatige oefeningen garanderen deze snelheid.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Elke maand wordt een SDS-raadplegingsoefening gehouden bij willekeurige afdelingen. Medewerkers krijgen een scenario en moeten binnen 10 seconden de juiste SDS vinden, de relevante sectie identificeren en de correcte eerste stappen van de procedure uitvoeren. Deze oefeningen worden bijgehouden als onderdeel van de VCA-certificering.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Wat is de eerste stap bij SDS-consultatie bij een noodgeval?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,10,0,1)">Direct alarm bellen</button>
<button class="quiz-opt" onclick="checkMod(this,10,1,1)">Juiste sectie openen</button>
<button class="quiz-opt" onclick="checkMod(this,10,2,1)">Naar evacuatieplek gaan</button>
<button class="quiz-opt" onclick="checkMod(this,10,3,1)">Persoonlijk beschermen</button>
<div id="fb_mod10" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(9)">← Vorige</button>
<button class="btn btn-accent" onclick="go(11)">Volgende →</button>
</div>
</div>

<div id="mod11" class="card hidden">
<h2>Module 11: Training en Certificering</h2>
<p>Veiligheidstraining is geen eenmalig evenement maar een doorlopend proces bij Phoenix Metals. Productgevaren- en SDS-training wordt jaarlijks gegeven aan alle medewerkers die met gevaarlijke stoffen werken, inclusief operators, onderhoudspersoneel, logistiek en laboratoriumpersoneel. De training combineert theoretische kennis met praktische oefeningen om de overdracht te maximaliseren.</p>
<p>Elke training begint met een korte toets van de basiskennis: identificatie van SDS-structuur, herkenning van GHS-pictogrammen en de meest kritieke H/P-zinnen voor de locatie. Medewerkers die de toets niet halen, krijgen extra begeleiding voordat ze de praktijktraining vervolgen. Niemand mag met gevaarlijke stoffen werken zonder een geldige certificering.</p>
<p>De praktijktraining omvat demonstraties en oefeningen met echte veiligheidsapparatuur: oefenen met oogdouches, oefenen met gasdetectieapparatuur, correct gebruik van ademhalingsbescherming, en rollenspellen bij noodgevallen bij verschillende stoffen. De training wordt gehouden in een realistische omgeving die de werkelijke werkplek zo goed mogelijk nabootst.</p>
<p>Na de training volgt een certificeringstoets met zowel theoretische als praktische vragen. Een score van minimaal 80% is vereist voor certificaatuitreiking. Het certificaat is 1 jaar geldig, waarna hercertificering plaatsvindt. Bij nieuwe stoffen of wijzigingen in processen wordt direct een bijgeschoolde training gegeven. Het certificaat is verplicht voor toegang tot werk met gevaarlijke stoffen.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>Psychologisch onderzoek toont aan dat medewerkers die training in virtual reality oefeningen hebben gevolgd, sneller en accurater handelen bij noodgevallen. Phoenix Metals investeert daarom in VR-trainingen voor noodsituaties, zodat medewerkers veilig kunnen oefenen met gevaarlijke scenario's zonder daadwerkelijk risico.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Bij PlantOne IJmuiden is een trainingsspel in 360° video ontwikkeld waarin medewerkers verschillende noodsituaties moeten afhandelen: een H₂SO₄-lekkage, een NaOH-spill, en een V₂O₅-accident. De training reageert op beslissingen en geeft direct feedback. Het spel wordt gebruikt als onderdeel van de jaarlijkse refresher training voor ervaren personeel.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Wat is de minimumscore vereist voor certificaatuitreiking?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,11,0,1)">60%</button>
<button class="quiz-opt" onclick="checkMod(this,11,1,1)">70%</button>
<button class="quiz-opt" onclick="checkMod(this,11,2,1)">80%</button>
<button class="quiz-opt" onclick="checkMod(this,11,3,1)">90%</button>
<div id="fb_mod11" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(10)">← Vorige</button>
<button class="btn btn-accent" onclick="go(12)">Volgende →</button>
</div>
</div>

<div id="mod12" class="card hidden">
<h2>Module 12: Veiligheidscultuur — Duurzaam Vooruit</h2>
<p>Veiligheid is geen set regels maar een cultuur bij Phoenix Metals. Dit begint met het management: Stijn van Zelst, de Managing Director, heeft expliciet veiligheid als prioriteit 1 verklaard. "Productie komt nooit boven veiligheid," aldus de directie in de veiligheidsvisie. Deze houding moet worden doorgegeven naar elke medewerker op de werkvloer — van stagiaire tot maintenance manager.</p>
<p>Een goede veiligheidscultuur wordt gemeten door indicatoren: aantal incidenten (bijna-ongevallen inclusief), tijdigheid van rapportage, medewerker betrokkenheid bij veiligheidsverbeteringen, en de snelheid van implementatie van aanbevelingen. Phoenix Metals meet deze indicatoren maandelijks en vergelijkt ze met benchmarkbedrijven in de metaal- en chemiesector.</p>
<p>Veiligheidscomités op elke locatie komen maandelijks bijeen om incidenten te analyseren, veiligheidspolitiek te evalueren en verbeteringen voor te stellen. Medewerkers worden gestimuleerd om "veiligheidsideeën" in te dienen via een digitaal platform. De beste ideeën worden geïmplementeerd en de indieners worden erkend. Dit creëert eigenaarschap en betrokkenheid.</p>
<p>Technische maatregelen zijn cruciaal, maar effectief alleen bij combinatie met menselijk gedrag. Veiligheidstraining, duidelijke procedures, adequate monitoring, en een open communicatieklimaat moeten samenwerken. Een succesveil op een arbeidsongeval wordt niet gemeten in het gebrek aan incidenten, maar in de mate waarin medewerkers veiligheid zien als gezamenlijke verantwoordelijkheid.</p>
<div class="collapsible" onclick="toggleColl(this)">📖 Wist je dat?</div>
<div class="coll-content">
<p>Onderzoek toont aan dat bedrijven met sterke veiligheidsculturen 200-300% betere prestaties hebben in termen van productiviteit en kwaliteit. Veiligheid is niet alleen een kostenpost maar een investering in zowel de mensen als de bedrijfsresultaten. Phoenix Metals meet de ROI van veiligheidsinvesteringen jaarlijks.</p>
</div>
<div class="practice-box">
<p>🏭 Phoenix Metals Praktijk</p>
<p>Elke kwartaal wordt een "veiligheidspartnerschap" gevierd waarbij medewerkers die veiligheidsprocedures hebben verbeterd worden erkend. Bij recente verbeteringen was een medewerker die een beter procedure voor het omgaan met stofrook bij V₂O₅ ontwikkelde. Deze is nu company-wide ingevoerd en heeft de blootstelling met 40% verminderd.</p>
</div>
<h3 style="color:#003366;margin-top:20px">❓ Controlevraag</h3>
<p><strong>Wie heeft uiteindelijk de eindverantwoordelijkheid voor veiligheid?</strong></p>
<button class="quiz-opt" onclick="checkMod(this,12,0,1)">De veiligheidsfunctionaris</button>
<button class="quiz-opt" onclick="checkMod(this,12,1,1)">De directie</button>
<button class="quiz-opt" onclick="checkMod(this,12,2,1)">De locatiemanager</button>
<button class="quiz-opt" onclick="checkMod(this,12,3,1)">Elke medewerker</button>
<div id="fb_mod12" class="feedback hidden"></div>
<div class="nav-btns">
<button class="btn btn-primary" onclick="go(11)">← Vorige</button>
<button class="btn btn-accent" onclick="showQuiz()">Volgende →</button>
</div>
</div>

<div id="quizPage" class="card hidden">
<h2>Afsluitende Quiz — 15 Vragen</h2>
<p>Beantwoord alle vragen om uw certificaat te behalen. U moet minimaal 11 van de 15 vragen correct beantwoorden (73% score) om te slagen. De quiz test uw kennis over SDS-structuur, GHS-pictogrammen, H/P-zinnen en de specifieke gevaren van V₂O₅, H₂SO₄, NaOH en Al₂(SO₄)₃.</p>
    
<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 1:</strong> Hoeveel secties bevat een gestandaardiseerde SDS volgens het GHS?</p>
<button class="quiz-opt" onclick="checkQuiz(this,0,0,1)">12 secties</button>
<button class="quiz-opt" onclick="checkQuiz(this,0,1,1)">14 secties</button>
<button class="quiz-opt" onclick="checkQuiz(this,0,2,1)">16 secties</button>
<button class="quiz-opt" onclick="checkQuiz(this,0,3,1)">18 secties</button>
<div id="fb_q0" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 2:</strong> Welke SDS-sectie bevat de grenswaarden voor blootstelling (TGG-waarden)?</p>
<button class="quiz-opt" onclick="checkQuiz(this,1,0,1)">Sectie 2 — Gevaarsidentificatie</button>
<button class="quiz-opt" onclick="checkQuiz(this,1,1,1)">Sectie 6 — Accidenteel vrijkomen</button>
<button class="quiz-opt" onclick="checkQuiz(this,1,2,1)">Sectie 8 — Controle blootstelling</button>
<button class="quiz-opt" onclick="checkQuiz(this,1,3,1)">Sectie 11 — Toxicologische informatie</button>
<div id="fb_q1" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 3:</strong> Welk GHS-pictogram toont het doodshoofd?</p>
<button class="quiz-opt" onclick="checkQuiz(this,2,0,1)">GHS05 — Corrosief</button>
<button class="quiz-opt" onclick="checkQuiz(this,2,1,1)">GHS06 — Acuut giftig</button>
<button class="quiz-opt" onclick="checkQuiz(this,2,2,1)">GHS08 — Gezondheidsgevaar</button>
<button class="quiz-opt" onclick="checkQuiz(this,2,3,1)">GHS09 — Milieugevaar</button>
<div id="fb_q2" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 4:</strong> Wat betekent H-zin H331?</p>
<button class="quiz-opt" onclick="checkQuiz(this,3,0,1)">Schadelijk bij inademing</button>
<button class="quiz-opt" onclick="checkQuiz(this,3,1,1)">Giftig bij inademing</button>
<button class="quiz-opt" onclick="checkQuiz(this,3,2,1)">Kan kanker veroorzaken</button>
<button class="quiz-opt" onclick="checkQuiz(this,3,3,1)">Veroorzaakt brandwonden</button>
<div id="fb_q3" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 5:</strong> Wat is de TGG-8u grenswaarde voor V₂O₅-respirabel stof?</p>
<button class="quiz-opt" onclick="checkQuiz(this,4,0,1)">0,5 mg/m³</button>
<button class="quiz-opt" onclick="checkQuiz(this,4,1,1)">0,1 mg/m³</button>
<button class="quiz-opt" onclick="checkQuiz(this,4,2,1)">0,05 mg/m³</button>
<button class="quiz-opt" onclick="checkQuiz(this,4,3,1)">1,0 mg/m³</button>
<div id="fb_q4" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 6:</strong> Welke volgorde moet je aanhouden bij verdunnen van geconcentreerd zwavelzuur?</p>
<button class="quiz-opt" onclick="checkQuiz(this,5,0,1)">Water bij zuur toevoegen</button>
<button class="quiz-opt" onclick="checkQuiz(this,5,1,1)">Zuul bij water toevoegen</button>
<button class="quiz-opt" onclick="checkQuiz(this,5,2,1)">Maakt niet uit</button>
<button class="quiz-opt" onclick="checkQuiz(this,5,3,1)">Eerst beide componenten koelen</button>
<div id="fb_q5" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 7:</strong> Wat is het corrosiemechanisme van NaOH?</p>
<button class="quiz-opt" onclick="checkQuiz(this,6,0,1)">Dehydratie (waterontrekking)</button>
<button class="quiz-opt" onclick="checkQuiz(this,6,1,1)">Saponificatie (vetontvetting)</button>
<button class="quiz-opt" onclick="checkQuiz(this,6,2,1)">Oxidatie</button>
<button class="quiz-opt" onclick="checkQuiz(this,6,3,1)">Zure reactie</button>
<div id="fb_q6" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 8:</strong> Welke GHS-pictogrammen zijn van toepassing op Al₂(SO₄)₃?</p>
<button class="quiz-opt" onclick="checkQuiz(this,7,0,1)">Alleen GHS07</button>
<button class="quiz-opt" onclick="checkQuiz(this,7,1,1)">GHS07 en GHS09</button>
<button class="quiz-opt" onclick="checkQuiz(this,7,2,1)">Geen pictogrammen</button>
<button class="quiz-opt" onclick="checkQuiz(this,7,3,1)">GHS02 en GHS03</button>
<div id="fb_q7" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 9:</strong> Wat is het gevaarlijkste aspect van meerdere chemicaliënblootstelling?</p>
<button class="quiz-opt" onclick="checkQuiz(this,8,0,1)">Luidruchtigheid</button>
<button class="quiz-opt" onclick="checkQuiz(this,8,1,1)">Synergetische effecten</button>
<button class="quiz-opt" onclick="checkQuiz(this,8,2,1)">Opbergruimte</button>
<button class="quiz-opt" onclick="checkQuiz(this,8,3,1)">Verwarmingskosten</button>
<div id="fb_q8" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 10:</strong> Wat is de eerste stap bij SDS-consultatie bij noodgeval?</p>
<button class="quiz-opt" onclick="checkQuiz(this,9,0,1)">Direct alarm bellen</button>
<button class="quiz-opt" onclick="checkQuiz(this,9,1,1)">Juiste sectie openen</button>
<button class="quiz-opt" onclick="checkQuiz(this,9,2,1)">Naar evacuatieplek gaan</button>
<button class="quiz-opt" onclick="checkQuiz(this,9,3,1)">Persoonlijk beschermen</button>
<div id="fb_q9" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 11:</strong> Wat is de minimumscore voor certificaatuitreiking?</p>
<button class="quiz-opt" onclick="checkQuiz(this,10,0,1)">60%</button>
<button class="quiz-opt" onclick="checkQuiz(this,10,1,1)">70%</button>
<button class="quiz-opt" onclick="checkQuiz(this,10,2,1)">80%</button>
<button class="quiz-opt" onclick="checkQuiz(this,10,3,1)">90%</button>
<div id="fb_q10" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 12:</strong> Welke sectie van SDS bevat informatie over eerste hulp?</p>
<button class="quiz-opt" onclick="checkQuiz(this,11,0,1)">Sectie 3</button>
<button class="quiz-opt" onclick="checkQuiz(this,11,1,1)">Sectie 4</button>
<button class="quiz-opt" onclick="checkQuiz(this,11,2,1)">Sectie 5</button>
<button class="quiz-opt" onclick="checkQuiz(this,11,3,1)">Sectie 6</button>
<div id="fb_q11" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 13:</strong> Waarom is 'green tongue' een symptoom van vanadiumblootstelling?</p>
<button class="quiz-opt" onclick="checkQuiz(this,12,0,1)">Het is een allergische reactie</button>
<button class="quiz-opt" onclick="checkQuiz(this,12,1,1)">Vanadiumionen reageren met mondslijmvlies</button>
<button class="quiz-opt" onclick="checkQuiz(this,12,2,1">Het is een hallucinatie</button>
<button class="quiz-opt" onclick="checkQuiz(this,12,3,1)">Het is een kleurstof in de productie</button>
<div id="fb_q12" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 14:</strong> Wat is de correcte volgorde bij een H₂SO₄-lekkage?</p>
<button class="quiz-opt" onclick="checkQuiz(this,13,0,1)">Onmiddellijk neutraliseren met NaOH</button>
<button class="quiz-opt" onclick="checkQuiz(this,13,1,1)">Draag persoonlijke bescherming en geef alarm</button>
<button class="quiz-opt" onclick="checkQuiz(this,13,2,1)">Rapporteer aan de teamleider</button>
<button class="quiz-opt" onclick="checkQuiz(this,13,3,1)">Gebruik water om te verdunnen</button>
<div id="fb_q13" class="feedback hidden"></div>
</div>

<div style="margin-bottom:20px;padding:16px;background:#fff8e1;border:1px solid #ffcc80;border-radius:8px">
<p style="font-weight:600;margin-bottom:8px"><strong>Vraag 15:</strong> Wie heeft eindverantwoordelijkheid voor veiligheid?</p>
<button class="quiz-opt" onclick="checkQuiz(this,14,0,1)">De veiligheidsfunctionaris</button>
<button class="quiz-opt" onclick="checkQuiz(this,14,1,1)">De directie</button>
<button class="quiz-opt" onclick="checkQuiz(this,14,2,1)">De locatiemanager</button>
<button class="quiz-opt" onclick="checkQuiz(this,14,3,1)">Elke medewerker</button>
<div id="fb_q14" class="feedback hidden"></div>
</div>

<div class="nav-btns">
<button class="btn btn-primary" onclick="go(11)">← Vorige module</button>
<button class="btn btn-success" id="certBtn" onclick="showCert()">Bekijk Certificaat →</button>
</div>
</div>

<div id="certPage" class="card hidden">
<div class="certificate">
<h1>🏆 Certificaat van Voltooiing</h1>
<p style="font-size:20px;margin:20px 0;color:#1a5276">Productgevaren en SDS eLearning</p>
<p>Dit certificeert dat</p>
<p style="margin:12px 0"><input type="text" class="cert-input" id="certName" placeholder="Uw naam"></p>
<p>de training succesvol heeft afgerond op <span id="certDate"></span>.</p>
<p style="margin:16px 0;font-size:18px">Score: <strong id="certScore"></strong></p>
<p style="color:#666;font-size:14px">Phoenix Metals B.V. | MD Stijn van Zelst</p>
<p style="color:#999;font-size:12px;margin-top:12px">PlantOne IJmuiden & Rotterdam | Seveso III</p>
</div>
<div class="nav-btns" style="justify-content:center;margin-top:20px">
<button class="btn btn-primary" onclick="window.print()">🖨️ Afdrukken</button>
<button class="btn btn-accent" onclick="go(0)">🔄 Opnieuw</button>
</div>
</div>

<div class="footer">
<p>&copy; 2026 Phoenix Metals B.V. — Alle rechten voorbehouden</p>
<p>PlantOne IJmuiden & Rotterdam | Veiligheid is onze #1 prioriteit</p>
</div>
</div>

<script>
var step=0,modTotal=12,quizTotal=15,modAns={},quizAns={{}};
function go(s){{step=s;update();}}
function update(){{
var w=document.getElementById('welcome'),q=document.getElementById('quizPage'),c=document.getElementById('certPage'),t=document.getElementById('topTitle'),p=document.getElementById('progBar');
w.classList.add('hidden');q.classList.add('hidden');c.classList.add('hidden');
for(var i=0;i<modTotal;i++)document.getElementById('mod'+(i+1)).classList.add('hidden');
if(step<modTotal){{document.getElementById('mod'+(step+1)).classList.remove('hidden');t.textContent=document.getElementById('mod'+(step+1)).querySelector('h2').textContent;}}
else if(step===modTotal){{q.classList.remove('hidden');t.textContent='Afsluitende Quiz';}}
else{{c.classList.remove('hidden');t.textContent='Certificaat';var d=new Date();document.getElementById('certDate').textContent=d.toLocaleDateString('nl-NL');var score=Object.values(quizAns).filter(v=>v).length;document.getElementById('certScore').textContent=score+'/'+quizTotal;}}
p.style.width=Math.min(100,Math.round((step+1)/(modTotal+1)*100))+'%';
window.scrollTo(0,0);
}}
function toggleColl(el){{var c=el.nextElementSibling;c.classList.toggle('open');el.textContent=c.classList.contains('open')?'▲ Wist je dat?':'📖 Wist je dat?';}}
function checkMod(btn,mod,idx,ans){{
var fb=document.getElementById('fb_mod'+(mod+1));
fb.classList.remove('hidden');
if(idx===ans){{btn.classList.add('correct');fb.className='feedback good';fb.textContent='✅ Correct!';}}
else{{btn.classList.add('wrong');fb.textContent='❌ Onjuist. Het juiste antwoord is: '+btn.parentElement.querySelectorAll('.quiz-opt')[ans].textContent;fb.className='feedback bad';}}
var btns=btn.parentElement.querySelectorAll('.quiz-opt');for(var b of btns)b.disabled=true;
modAns[mod]=idx===ans;
}}
function checkQuiz(btn,qi,idx,ans){{
var fb=document.getElementById('fb_q'+qi);fb.classList.remove('hidden');
if(idx===ans){{btn.classList.add('correct');fb.className='feedback good';fb.textContent='✅ Correct!';}}
else{{btn.classList.add('wrong');fb.className='feedback bad';fb.textContent='❌ Onjuist. Het juiste antwoord is: '+btn.parentElement.querySelectorAll('.quiz-opt')[ans].textContent;}}
var btns=btn.parentElement.querySelectorAll('.quiz-opt');for(var b of btns)b.disabled=true;
quizAns[qi]=idx===ans;
}}
function showCert(){{step=modTotal+1;update();}}
update();
</script>
</body>
</html>"""

with open(OUT, 'w', encoding='utf-8') as f:
    f.write(html)
print(f"T05 generated: {OUT} ({len(html)} bytes)")
print("Running T05 script...")
!python3 /root/projects/jg/2026-PM-eLearning/working/gen_t05.py