diff --git a/templates/backoffice/help/index.html.twig b/templates/backoffice/help/index.html.twig
new file mode 100644
index 0000000..3ea8626
--- /dev/null
+++ b/templates/backoffice/help/index.html.twig
@@ -0,0 +1,10 @@
+
{{ 'Getting started'|trans({}, 'instructions') }}
+
{{ 'Each season groups one play round with all its quizzes and candidates. The season code is the link candidates use to start a quiz — this link only works when there is an active quiz.'|trans({}, 'instructions') }}
+
{{ 'How it works'|trans({}, 'instructions') }}
+
+
{{ 'Create a season and add candidates'|trans({}, 'instructions') }}
+
{{ 'Add a quiz via XLSX or the question bank'|trans({}, 'instructions') }}
+
{{ 'Finalize and activate the quiz'|trans({}, 'instructions') }}
+
{{ 'Let candidates take the quiz (own device or shared laptop)'|trans({}, 'instructions') }}
+
{{ 'View results and start the elimination'|trans({}, 'instructions') }}
+
diff --git a/templates/backoffice/help/prepare_elimination.html.twig b/templates/backoffice/help/prepare_elimination.html.twig
new file mode 100644
index 0000000..4ba28af
--- /dev/null
+++ b/templates/backoffice/help/prepare_elimination.html.twig
@@ -0,0 +1,3 @@
+
{{ 'Create an empty quiz and add questions from the question bank. Useful if you reuse questions or have prepared them in the bank in advance.'|trans({}, 'instructions') }}
+
{{ 'After creating, open the quiz, add questions via the Overview tab and finalize the quiz before activating it.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/quiz_answer_mapping.html.twig b/templates/backoffice/help/quiz_answer_mapping.html.twig
new file mode 100644
index 0000000..1e3631f
--- /dev/null
+++ b/templates/backoffice/help/quiz_answer_mapping.html.twig
@@ -0,0 +1,3 @@
+
{{ 'Fill in answers'|trans({}, 'instructions') }}
+
{{ 'Use this overview to manually assign answers — for example in case of technical problems or if someone took the quiz on paper.'|trans({}, 'instructions') }}
+
{{ 'Navigate between questions using the Previous and Next buttons. Tick the given answer per candidate and save.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/quiz_candidates.html.twig b/templates/backoffice/help/quiz_candidates.html.twig
new file mode 100644
index 0000000..8148957
--- /dev/null
+++ b/templates/backoffice/help/quiz_candidates.html.twig
@@ -0,0 +1,6 @@
+
{{ 'Let candidates take the quiz'|trans({}, 'instructions') }}
+
{{ 'Candidates can take the quiz in two ways:'|trans({}, 'instructions') }}
+
{{ 'Option 1 — own device: Share the season code. Each candidate visits the site on their phone, enters their own name and starts the quiz.'|trans({}, 'instructions') }}
+
{{ 'Option 2 — shared laptop: Open the name entry page in advance on a laptop. Each candidate types their name and starts. After finishing, the next candidate can do the same.'|trans({}, 'instructions') }}
+
{{ 'Status'|trans({}, 'instructions') }}
+
{{ 'Deactivate a candidate if they should not take this quiz, for example after being eliminated earlier. Deactivation is per quiz and does not affect other quizzes.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/quiz_overview.html.twig b/templates/backoffice/help/quiz_overview.html.twig
new file mode 100644
index 0000000..99ade7c
--- /dev/null
+++ b/templates/backoffice/help/quiz_overview.html.twig
@@ -0,0 +1,5 @@
+
{{ 'Questions with a red marker in the list have an error. Fix these before finalizing.'|trans({}, 'instructions') }}
+
{{ 'Finalize'|trans }} — {{ 'Finalize locks the quiz for editing and makes it ready for candidates. You can then activate it.'|trans({}, 'instructions') }}
+
{{ 'Make active'|trans }} — {{ 'Activate makes the quiz available to candidates. Only one quiz can be active at a time — only activate the next quiz when everyone has completed the current one.'|trans({}, 'instructions') }}
+
{{ 'Clear Quiz...'|trans }} — {{ 'Clear quiz removes all given answers and undoes finalization, so you can edit and run the quiz again.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/quiz_question_bank_form.html.twig b/templates/backoffice/help/quiz_question_bank_form.html.twig
new file mode 100644
index 0000000..7458414
--- /dev/null
+++ b/templates/backoffice/help/quiz_question_bank_form.html.twig
@@ -0,0 +1,4 @@
+
{{ 'Add question'|trans({}, 'instructions') }}
+
{{ 'Enter the question and add at least two answer options. Mark exactly one answer as correct.'|trans({}, 'instructions') }}
+
{{ 'Use labels to organise questions in the question bank, for example by episode or theme.'|trans({}, 'instructions') }}
+
{{ 'Mark a question as reusable if it may appear in multiple quizzes — otherwise a question can only be linked to one quiz.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/quiz_result.html.twig b/templates/backoffice/help/quiz_result.html.twig
new file mode 100644
index 0000000..4432d00
--- /dev/null
+++ b/templates/backoffice/help/quiz_result.html.twig
@@ -0,0 +1,5 @@
+
{{ 'Results'|trans({}, 'instructions') }}
+
{{ 'The table shows the final result per candidate sorted by score. Red rows are the candidates with the lowest score who are at risk of elimination.'|trans({}, 'instructions') }}
+
{{ 'Corrections'|trans }} — {{ 'Corrections are added for bonus points or joker deductions (half points are possible).'|trans({}, 'instructions') }}
+
{{ 'Penalty'|trans }} — {{ 'Penalty is a time penalty in seconds and is taken into account when scores are tied.'|trans({}, 'instructions') }}
+
{{ 'Via Prepare elimination you set the screen colours manually and start the elimination sequence.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/season_add.html.twig b/templates/backoffice/help/season_add.html.twig
new file mode 100644
index 0000000..4b3ebb7
--- /dev/null
+++ b/templates/backoffice/help/season_add.html.twig
@@ -0,0 +1,3 @@
+
{{ 'New season'|trans({}, 'instructions') }}
+
{{ 'A season groups all quizzes and candidates for one play round. Give the season a recognisable name — the season code is generated automatically.'|trans({}, 'instructions') }}
+
{{ 'After creating, add candidates and quizzes from the season page.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/season_add_candidates.html.twig b/templates/backoffice/help/season_add_candidates.html.twig
new file mode 100644
index 0000000..591be40
--- /dev/null
+++ b/templates/backoffice/help/season_add_candidates.html.twig
@@ -0,0 +1,3 @@
+
{{ 'Add candidates'|trans({}, 'instructions') }}
+
{{ 'Enter one name per line. These are the players participating in this season.'|trans({}, 'instructions') }}
+
{{ 'You can always add more candidates later via the Candidates tab. Use the same spelling of names you use in the game.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/season_candidates.html.twig b/templates/backoffice/help/season_candidates.html.twig
new file mode 100644
index 0000000..9041f65
--- /dev/null
+++ b/templates/backoffice/help/season_candidates.html.twig
@@ -0,0 +1,3 @@
+
{{ 'Candidates'|trans({}, 'instructions') }}
+
{{ 'These are the players of this season. Add all participants before starting the first quiz — candidates are automatically linked to new quizzes.'|trans({}, 'instructions') }}
+
{{ 'Names are entered freely; use the same spelling you use in the game.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/season_question_bank.html.twig b/templates/backoffice/help/season_question_bank.html.twig
new file mode 100644
index 0000000..99a29b4
--- /dev/null
+++ b/templates/backoffice/help/season_question_bank.html.twig
@@ -0,0 +1,3 @@
+
{{ 'Question bank'|trans({}, 'instructions') }}
+
{{ "The question bank is a library of questions that can be linked to multiple quizzes. Mark a question as reusable if it may appear in multiple quizzes (e.g. 'Who is de Mol?')."|trans({}, 'instructions') }}
+
{{ 'After editing a bank question, quizzes that already contain it are not updated automatically — use the sync button next to a quiz to push the latest version.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/season_settings.html.twig b/templates/backoffice/help/season_settings.html.twig
new file mode 100644
index 0000000..56dbaa0
--- /dev/null
+++ b/templates/backoffice/help/season_settings.html.twig
@@ -0,0 +1,3 @@
+
{{ 'Season settings'|trans({}, 'instructions') }}
+
{{ 'Adjust the name and other settings for this season here.'|trans({}, 'instructions') }}
+
{{ 'The season code is fixed after creation and determines the URL candidates use to log in.'|trans({}, 'instructions') }}
diff --git a/templates/backoffice/help/season_tests.html.twig b/templates/backoffice/help/season_tests.html.twig
new file mode 100644
index 0000000..8f0404d
--- /dev/null
+++ b/templates/backoffice/help/season_tests.html.twig
@@ -0,0 +1,11 @@
+
{{ 'Add a quiz from an XLSX file or create a blank one and fill it via the question bank. Then open the quiz to review and finalize it.'|trans({}, 'instructions') }}
+
{{ 'A quiz must be finalized before it can be activated. Only one quiz can be active at a time — this is the quiz candidates can currently take.'|trans({}, 'instructions') }}
+
{{ 'Order of operations'|trans({}, 'instructions') }}
+
+
{{ 'Create the quiz (XLSX or blank)'|trans({}, 'instructions') }}
+
{{ 'Review questions and finalize the quiz'|trans({}, 'instructions') }}
+
{{ 'Activate the quiz'|trans({}, 'instructions') }}
+
{{ 'Let candidates take the quiz'|trans({}, 'instructions') }}
+
{{ 'View results and prepare the elimination'|trans({}, 'instructions') }}
{% endblock %}
diff --git a/translations/instructions+intl-icu.nl.xliff b/translations/instructions+intl-icu.nl.xliff
new file mode 100644
index 0000000..017d8ee
--- /dev/null
+++ b/translations/instructions+intl-icu.nl.xliff
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+
+
+ Getting started
+ Aan de slag
+
+
+ Each season groups one play round with all its quizzes and candidates. The season code is the link candidates use to start a quiz — this link only works when there is an active quiz.
+ Elk seizoen groepeert één speelronde met alle bijbehorende testen en kandidaten. De seizoenscode is de link die kandidaten gebruiken om een test te starten — deze link is alleen actief als er een actieve test is.
+
+
+ How it works
+ Globale werkwijze
+
+
+ Create a season and add candidates
+ Seizoen aanmaken en kandidaten toevoegen
+
+
+ Add a quiz via XLSX or the question bank
+ Test aanmaken via XLSX of de vragenbank
+
+
+ Finalize and activate the quiz
+ Test afronden en activeren
+
+
+ Let candidates take the quiz (own device or shared laptop)
+ Kandidaten laten deelnemen (eigen apparaat of gedeelde laptop)
+
+
+ View results and start the elimination
+ Resultaten bekijken en eliminatie starten
+
+
+
+
+ New season
+ Nieuw seizoen
+
+
+ A season groups all quizzes and candidates for one play round. Give the season a recognisable name — the season code is generated automatically.
+ Een seizoen groepeert alle testen en kandidaten voor één speelronde. Geef het seizoen een herkenbare naam — de seizoenscode wordt automatisch gegenereerd.
+
+
+ After creating, add candidates and quizzes from the season page.
+ Na het aanmaken voeg je kandidaten toe en maak je testen aan via de seizoenpagina.
+
+
+
+
+ Add candidates
+ Kandidaten toevoegen
+
+
+ Enter one name per line. These are the players participating in this season.
+ Voer één naam per regel in. Dit zijn de spelers die deelnemen aan dit seizoen.
+
+
+ You can always add more candidates later via the Candidates tab. Use the same spelling of names you use in the game.
+ Je kunt later altijd nog kandidaten toevoegen via het tabblad Kandidaten. Gebruik dezelfde schrijfwijze van namen die je in het spel gebruikt.
+
+
+
+
+ Managing quizzes
+ Testen beheren
+
+
+ Add a quiz from an XLSX file or create a blank one and fill it via the question bank. Then open the quiz to review and finalize it.
+ Voeg een test toe vanuit een XLSX-bestand of maak een lege test aan en vul deze via de vragenbank. Open daarna de test om hem te bekijken en af te ronden.
+
+
+ A quiz must be finalized before it can be activated. Only one quiz can be active at a time — this is the quiz candidates can currently take.
+ Een test moet eerst afgerond zijn voordat je hem kunt activeren. Slechts één test kan tegelijk actief zijn — dit is de test die kandidaten op dat moment kunnen invullen.
+
+
+ Order of operations
+ Volgorde van werken
+
+
+ Create the quiz (XLSX or blank)
+ Test aanmaken (XLSX of leeg)
+
+
+ Review questions and finalize the quiz
+ Vragen controleren en test afronden
+
+
+ Activate the quiz
+ Test activeren
+
+
+ Let candidates take the quiz
+ Kandidaten laten deelnemen
+
+
+ View results and prepare the elimination
+ Resultaten bekijken en eliminatie voorbereiden
+
+
+
+
+ Candidates
+ Kandidaten
+
+
+ These are the players of this season. Add all participants before starting the first quiz — candidates are automatically linked to new quizzes.
+ Dit zijn de spelers van dit seizoen. Voeg alle deelnemers toe voordat je de eerste test start — kandidaten worden automatisch aan nieuwe testen gekoppeld.
+
+
+ Names are entered freely; use the same spelling you use in the game.
+ Namen zijn vrij in te voeren; gebruik dezelfde schrijfwijze die je in het spel gebruikt.
+
+
+
+
+ Season settings
+ Seizoensinstellingen
+
+
+ Adjust the name and other settings for this season here.
+ Pas hier de naam en overige instellingen van dit seizoen aan.
+
+
+ The season code is fixed after creation and determines the URL candidates use to log in.
+ De seizoenscode staat vast na aanmaken en bepaalt de URL die kandidaten gebruiken om in te loggen.
+
+
+
+
+ Question bank
+ Vragenbank
+
+
+ The question bank is a library of questions that can be linked to multiple quizzes. Mark a question as reusable if it may appear in multiple quizzes (e.g. 'Who is de Mol?').
+ De vragenbank is een bibliotheek met vragen die aan meerdere testen kunnen worden gekoppeld. Markeer een vraag als herbruikbaar als deze in meerdere testen mag voorkomen (bijv. "Wie is de Mol?").
+
+
+ After editing a bank question, quizzes that already contain it are not updated automatically — use the sync button next to a quiz to push the latest version.
+ Na het bewerken van een bankenvraag worden testen die de vraag al bevatten niet automatisch bijgewerkt — gebruik de synchronisatieknop (↻) naast een test om de meest recente versie door te zetten.
+
+
+
+
+ Upload quiz via XLSX
+ Test uploaden via XLSX
+
+
+ Upload an XLSX file with the questions for this quiz. After uploading you can review, check and finalize the quiz.
+ Upload een XLSX-bestand met de vragen voor deze test. Na het uploaden kun je de vragen bekijken, controleren en de test afronden.
+
+
+ Expected format
+ Verwacht formaat
+
+
+ First column: question text
+ Eerste kolom: de vraagtekst
+
+
+ Next columns: answer options
+ Volgende kolommen: de antwoordopties
+
+
+ Mark the correct answer in the spreadsheet
+ Markeer het juiste antwoord via de spreadsheet
+
+
+
+
+ Create blank quiz
+ Lege test aanmaken
+
+
+ Create an empty quiz and add questions from the question bank. Useful if you reuse questions or have prepared them in the bank in advance.
+ Maak een lege test aan en voeg vragen toe vanuit de vragenbank. Handig als je vragen hergebruikt of ze van tevoren in de bank hebt klaargezet.
+
+
+ After creating, open the quiz, add questions via the Overview tab and finalize the quiz before activating it.
+ Na het aanmaken open je de test, voeg je vragen toe via het tabblad Overzicht en ronde je de test af voordat je hem activeert.
+
+
+
+
+ Add question
+ Vraag toevoegen
+
+
+ Enter the question and add at least two answer options. Mark exactly one answer as correct.
+ Voer de vraag in en voeg minimaal twee antwoordopties toe. Markeer precies één antwoord als correct.
+
+
+ Use labels to organise questions in the question bank, for example by episode or theme.
+ Gebruik labels om vragen te organiseren in de vragenbank, bijvoorbeeld per aflevering of thema.
+
+
+ Mark a question as reusable if it may appear in multiple quizzes — otherwise a question can only be linked to one quiz.
+ Markeer een vraag als herbruikbaar als deze in meerdere testen mag voorkomen — anders kan een vraag maar aan één test worden gekoppeld.
+
+
+
+
+ Overview & finalize
+ Overzicht & afronden
+
+
+ Questions with a red marker in the list have an error. Fix these before finalizing.
+ Vragen met een rode markering in de lijst hiernaast bevatten een fout. Herstel deze vóór het afronden.
+
+
+ Finalize locks the quiz for editing and makes it ready for candidates. You can then activate it.
+ Afronden vergrendelt de test voor bewerking en maakt hem klaar voor kandidaten. Daarna kun je hem activeren.
+
+
+ Activate makes the quiz available to candidates. Only one quiz can be active at a time — only activate the next quiz when everyone has completed the current one.
+ Activeren stelt de test beschikbaar aan kandidaten. Er kan maar één test tegelijk actief zijn — activeer de volgende test pas als iedereen de huidige heeft afgerond.
+
+
+ Clear quiz removes all given answers and undoes finalization, so you can edit and run the quiz again.
+ Test wissen verwijdert alle gegeven antwoorden en heft het afronden op, zodat je de test opnieuw kunt bewerken en uitvoeren.
+
+
+
+
+ Let candidates take the quiz
+ Kandidaten laten deelnemen
+
+
+ Candidates can take the quiz in two ways:
+ Kandidaten kunnen de test op twee manieren invullen:
+
+
+ Option 1 — own device: Share the season code. Each candidate visits the site on their phone, enters their own name and starts the quiz.
+ Optie 1 — eigen apparaat: Deel de seizoenscode. Elke kandidaat bezoekt de site op zijn of haar telefoon, voert de eigen naam in en start de test.
+
+
+ Option 2 — shared laptop: Open the name entry page in advance on a laptop. Each candidate types their name and starts. After finishing, the next candidate can do the same.
+ Optie 2 — gedeelde laptop: Open de naamsinvoerpagina van tevoren op een laptop. Elke kandidaat typt zijn of haar naam en start. Na afloop kan de volgende kandidaat hetzelfde doen.
+
+
+ Status
+ Status
+
+
+ Deactivate a candidate if they should not take this quiz, for example after being eliminated earlier. Deactivation is per quiz and does not affect other quizzes.
+ Deactiveer een kandidaat als deze de test niet hoeft te maken, bijvoorbeeld na eerder uitgeschakeld zijn. Deactivering is per test en heeft geen invloed op andere testen.
+
+
+
+
+ Fill in answers
+ Antwoorden invullen
+
+
+ Use this overview to manually assign answers — for example in case of technical problems or if someone took the quiz on paper.
+ Gebruik dit overzicht om handmatig antwoorden toe te wijzen — bijvoorbeeld bij technische problemen of als iemand de test op papier heeft ingevuld.
+
+
+ Navigate between questions using the Previous and Next buttons. Tick the given answer per candidate and save.
+ Navigeer met de knoppen Vorige en Volgende tussen vragen. Vink per kandidaat het gegeven antwoord aan en sla op.
+
+
+
+
+ Results
+ Resultaten
+
+
+ The table shows the final result per candidate sorted by score. Red rows are the candidates with the lowest score who are at risk of elimination.
+ De tabel toont het eindresultaat per kandidaat gesorteerd op score. Rode rijen zijn de kandidaten met de laagste score die risico lopen op eliminatie.
+
+
+ Corrections are added for bonus points or joker deductions (half points are possible).
+ Correcties voeg je toe voor bonuspunten of jokeraftrek (halve punten zijn mogelijk).
+
+
+ Penalty is a time penalty in seconds and is taken into account when scores are tied.
+ Straf is tijdstraf in seconden en wordt meegewogen bij gelijke score.
+
+
+ Via Prepare elimination you set the screen colours manually and start the elimination sequence.
+ Via Eliminatie voorbereiden stel je de schermkleuren handmatig in en start je de eliminatiereeks.
+
+
+
+
+ Prepare elimination
+ Eliminatie voorbereiden
+
+
+ Choose a colour for each candidate: green means safe, red means eliminated.
+ Kies voor elke kandidaat een kleur: groen betekent veilig, rood betekent geëlimineerd.
+
+
+ Use Save and start to play the elimination immediately, or save first and start later via the Results tab.
+ Gebruik Opslaan en starten om de eliminatie direct af te spelen, of sla eerst op en start later via het tabblad Resultaten.
+
+
+
+
+
diff --git a/translations/messages+intl-icu.nl.xliff b/translations/messages+intl-icu.nl.xliff
index 90b8cb2..da4b9ea 100644
--- a/translations/messages+intl-icu.nl.xliff
+++ b/translations/messages+intl-icu.nl.xliff
@@ -179,7 +179,7 @@
Deactivate the quiz before undoing the finalization
- Deactiveer de test voordat je de finalisatie ongedaan maakt
+ Deactiveer de test voordat je het afronden ongedaan maaktDelete
@@ -231,11 +231,11 @@
Finalize
- Finaliseren
+ AfrondenFinalized
- Definitief
+ AfgerondGreen
@@ -471,7 +471,7 @@
Quiz cleared and no longer finalized
- Test leeggemaakt en niet langer gefinaliseerd
+ Test leeggemaakt en niet langer afgerondQuiz completed
@@ -483,11 +483,11 @@
Quiz finalized
- Test gefinaliseerd
+ Test afgerondQuiz is no longer finalized
- Test is niet langer gefinaliseerd
+ Test is niet langer afgerondQuiz name
@@ -583,11 +583,11 @@
The question was not synced to finalized quiz(zes): %quizzes%. Use the Sync button to update them.
- De vraag is niet gesynchroniseerd naar gefinaliseerde quiz(zes): %quizzes%. Gebruik de Synchroniseren-knop om ze bij te werken.
+ De vraag is niet gesynchroniseerd naar afgeronde quiz(zes): %quizzes%. Gebruik de Synchroniseren-knop om ze bij te werken.The quiz cannot be finalized while it has errors
- De test kan niet gefinaliseerd worden zolang er fouten zijn
+ De test kan niet afgerond worden zolang er fouten zijnThe quiz has already been filled in and can no longer be altered
@@ -595,7 +595,7 @@
The quiz must be finalized before it can be activated
- De test moet gefinaliseerd zijn voordat deze geactiveerd kan worden
+ De test moet afgerond zijn voordat deze geactiveerd kan wordenThere are no answers for this question
@@ -635,7 +635,15 @@
Undo finalization
- Finalisatie ongedaan maken
+ Afronden ongedaan maken
+
+
+ Locks the quiz so it can no longer be edited and makes it ready for candidates to take.
+ Vergrendelt de test zodat deze niet meer bewerkt kan worden en maakt deze klaar voor deelnemers.
+
+
+ Re-opens the quiz for editing. Candidates will no longer be able to take the quiz until it is finalized again.
+ Heropent de test voor bewerking. Deelnemers kunnen de test niet meer afnemen totdat deze opnieuw is afgerond.Used in