diff --git a/css/ms1-doc.css b/css/ms1-doc.css
index cb097c6..4deb0e7 100644
--- a/css/ms1-doc.css
+++ b/css/ms1-doc.css
@@ -191,6 +191,45 @@ body.ms1-doc-open {
font-weight: 600;
}
+/* Bloc pédagogique par bouton / contrôle */
+.ms1-doc-bouton {
+ margin: 16px 0;
+ padding: 12px 14px;
+ border: 1px solid #e9ecef;
+ border-radius: 6px;
+ background: #fafbfc;
+}
+
+.ms1-doc-bouton h3,
+.ms1-doc-bouton h4 {
+ margin: 0 0 10px;
+ font-size: 0.92rem;
+ font-weight: 600;
+ color: #2f5fd0;
+}
+
+.ms1-doc-bouton dl {
+ margin: 0;
+}
+
+.ms1-doc-bouton dt {
+ font-size: 0.8rem;
+ font-weight: 600;
+ color: #495057;
+ margin-top: 8px;
+}
+
+.ms1-doc-bouton dt:first-child {
+ margin-top: 0;
+}
+
+.ms1-doc-bouton dd {
+ margin: 2px 0 0;
+ font-size: 0.88rem;
+ line-height: 1.5;
+ color: #212529;
+}
+
/* Pied — navigation */
.ms1-doc-footer {
padding: 10px 14px 12px;
diff --git a/sql/MSIN-doc-bib_assignment-complet.sql b/sql/MSIN-doc-bib_assignment-complet.sql
new file mode 100644
index 0000000..8cf0630
--- /dev/null
+++ b/sql/MSIN-doc-bib_assignment-complet.sql
@@ -0,0 +1,300 @@
+-- =============================================================================
+-- MSIN — Documentation complète : Assignation de dossard (module bib_assignment)
+-- =============================================================================
+-- Structure pédagogique :
+-- Page 1 — C'est quoi l'assignation de dossard ?
+-- Page 2 — C'est quoi une séquence de dossard ? (+ tableau)
+-- Page 3 — Boutons assignation groupée (un bloc « C'est quoi / Quand / Comment » par bouton)
+-- Page 4 — Assignation automatique (concept + chaque bouton)
+-- Page 5 — Épreuve solo
+-- Page 6 — Épreuve en équipe
+--
+-- Gabarit HTML pour chaque bouton (section.ms1-doc-bouton) :
+--
C'est quoi ? Quand l'utiliser ? Comment ? À noter
+--
+-- Prérequis : tables doc_mod, doc_page, doc_anchor (MSIN-doc-module.sql).
+-- Exécuter sur la BD client (inscription).
+-- =============================================================================
+
+DELETE FROM `doc_page` WHERE `doc_mod_clef` = 'bib_assignment';
+DELETE FROM `doc_anchor` WHERE `doc_mod_clef` = 'bib_assignment';
+DELETE FROM `doc_mod` WHERE `doc_mod_clef` = 'bib_assignment';
+
+INSERT INTO `doc_mod` (`doc_mod_clef`, `doc_mod_prg`, `doc_mod_titre`, `doc_mod_actif`, `doc_mod_tri`, `doc_mod_creation`)
+VALUES ('bib_assignment', 'compte.php', 'Assignation de dossard', 1, 10, NOW());
+
+INSERT INTO `doc_anchor` (`doc_anchor_clef`, `doc_mod_clef`, `doc_prg`, `doc_actif`, `doc_creation`)
+VALUES ('bib_v4_assign_doc', 'bib_assignment', 'compte.php', 1, NOW());
+
+-- -----------------------------------------------------------------------------
+-- FR
+-- -----------------------------------------------------------------------------
+
+INSERT INTO `doc_page` (`doc_mod_clef`, `doc_page_clef`, `doc_langue`, `doc_titre`, `doc_sous_titre`, `doc_html`, `doc_prg`, `doc_tri`, `doc_actif`, `doc_creation`) VALUES
+('bib_assignment', 'bib_doc_overview', 'fr', 'C''est quoi l''assignation de dossard ?', 'Le rôle de ce panneau',
+'
+L''assignation de dossard, c''est attribuer un numéro de dossard à chaque participant inscrit sur une épreuve — le numéro qu''il portera le jour de l''événement.
+Pourquoi ce panneau existe
+Sur chaque épreuve, les inscriptions arrivent au fil du temps. Ce bloc permet au promoteur de :
+
+- définir quels numéros sont disponibles (les séquences) ;
+- attribuer les numéros en lot aux inscrits qui n''ont pas encore un dossard ;
+- ou faire en sorte qu''un numéro soit donné automatiquement à chaque nouvelle inscription.
+
+Ordre logique (pas l''ordre des boutons sur l''écran)
+
+- Comprendre ce qu''est une séquence de dossard (page 2).
+- Créer vos séquences dans le tableau (+ Ajouter, Début, Fin, OK).
+- Optionnel : activer l''assignation automatique (page 4).
+- Pour les inscrits déjà sans numéro : Assigner par séquence → Simuler → GO (page 3).
+
+Deux types d''aide sur l''écran
+
+- ? court à côté du titre — rappel en une phrase.
+- ? guide (ce document) — explications complètes, page par page.
+- Chaque bouton a aussi son propre ? pour l''aide immédiate.
+
+',
+'compte.php', 10, 1, NOW()),
+
+('bib_assignment', 'bib_doc_sequences', 'fr', 'C''est quoi une séquence de dossard ?', 'Concept puis le tableau',
+'
+Une séquence de dossard, c''est quoi ?
+Une séquence est une plage de numéros consécutifs réservée à une épreuve.
+Exemple : séquence 1 à 500 → les dossards 1, 2, 3 … jusqu''à 500 peuvent être assignés. Quand le 250 est pris, le système passe au suivant libre dans la plage.
+Vous pouvez avoir plusieurs séquences sur la même épreuve (ex. 1–500 pour le public, 1000–1100 pour les bénévoles).
+La case à cocher à gauche de chaque ligne
+
+- C''est quoi ?
- Elle sélectionne cette séquence pour une opération (batch ou auto).
+- Quand l''utiliser ?
- Avant Assigner par séquence ou avant Accepter l''assignation automatique.
+- Comment ?
- Cochez une ou plusieurs lignes. L''ordre des lignes peut influencer l''ordre de priorité des plages.
+
+Le tableau — chaque colonne
+
+Icône œil
+- C''est quoi ?
- Grille visuelle : numéros libres et occupés dans cette séquence.
+- Quand ?
- Vérifier l''état d''une plage ou corriger un numéro manuellement.
+
+
+Début / Fin
+- C''est quoi ?
- Premier et dernier numéro de la plage.
+- Comment ?
- Modifiez les valeurs puis cliquez OK sur la ligne pour enregistrer.
+
+
+OK (coche verte)
+- C''est quoi ?
- Enregistre la séquence (nouvelle ligne ou modification Début/Fin).
+- À noter
- Obligatoire après + Ajouter ou après changer les bornes.
+
+
+Suppr.
+- C''est quoi ?
- Retire la séquence de la configuration.
+- À noter
- Prudence si des dossards de cette plage sont déjà assignés.
+
+
+Dernier / Utilisé / Dispo
+- C''est quoi ?
- Dernier = dernier numéro attribué ; Utilisé = combien pris ; Dispo = combien restent.
+
+
++ Ajouter
+- C''est quoi ?
- Ajoute une nouvelle ligne de séquence vide.
+- Comment ?
- + Ajouter → remplir Début et Fin → OK sur la ligne.
+
+',
+'compte.php', 20, 1, NOW()),
+
+('bib_assignment', 'bib_doc_batch', 'fr', 'Boutons : assignation groupée', 'Assigner par séquence, Simuler, GO…',
+'
+Ces boutons servent à assigner des dossards en une seule opération à tous les participants qui n''ont pas encore un numéro. Chaque bouton ci-dessous suit le même gabarit d''explication.
+
+
+Bouton « Assigner par séquence »
+
+- C''est quoi ?
+- Ouvre le mode batch : panneau avec ordre d''assignation, Simuler et GO.
+- Quand l''utiliser ?
+- Quand des participants sont inscrits mais sans dossard, et que vous voulez les traiter tous d''un coup.
+- Comment ?
+- Cliquez le bouton → cochez des séquences dans le tableau → choisissez l''ordre → Simuler → GO.
+- À noter
+- Cliqué une deuxième fois, le libellé devient Annuler : ferme le panneau batch sans assigner.
+
+
+
+
+Liste « Ordre d''assignation »
+
+- C''est quoi ?
+- Indique dans quel ordre trier les participants avant de leur donner un numéro.
+- Quand l''utiliser ?
+- Toujours en mode batch, avant Simuler ou GO.
+- Comment ?
+- Choisissez dans la liste : nom de famille, prénom, date d''inscription, nom d''équipe (épreuve équipe), etc.
+- À noter
+- Sur une épreuve solo, l''option « nom d''équipe » n''apparaît pas.
+
+
+
+
+Bouton « Simuler »
+
+- C''est quoi ?
+- Affiche qui recevrait quel dossard si vous lanciez l''assignation.
+- Quand l''utiliser ?
+- Toujours avant GO — pour vérifier sans risque.
+- Comment ?
+- Séquences cochées + ordre choisi → cliquez Simuler → lisez le résumé (disponibles / à assigner / manquants).
+- À noter
+- Aucune modification en base de données : c''est une prévisualisation.
+
+
+
+
+Bouton « GO »
+
+- C''est quoi ?
+- Exécute l''assignation batch pour de vrai.
+- Quand l''utiliser ?
+- Quand la simulation vous convient.
+- Comment ?
+- Après Simuler (recommandé) → GO. Les participants sans dossard reçoivent un numéro.
+- À noter
+- Action réelle : les numéros sont enregistrés. Pas de retour automatique — Réinitialiser si besoin.
+
+
+
+
+Bouton « Réinitialiser » (rouge)
+
+- C''est quoi ?
+- Retire les dossards déjà assignés sur l''épreuve.
+- Quand l''utiliser ?
+- Recommencer une assignation, corriger une erreur de stratégie — avec prudence.
+- À noter
+- Visible seulement s''il existe déjà au moins un dossard sur l''épreuve. Vérifiez l''impact avant de confirmer.
+
+
+',
+'compte.php', 30, 1, NOW()),
+
+('bib_assignment', 'bib_doc_auto', 'fr', 'Assignation automatique', 'Concept et chaque bouton',
+'
+L''assignation automatique, c''est quoi ?
+Dès qu''un nouveau participant s''inscrit, le système lui attribue tout seul le prochain dossard libre dans les séquences que vous avez cochées — sans repasser par Simuler / GO.
+
+
+Bouton « Assignation automatique » / « Auto — configurer »
+
+- C''est quoi ?
+- Gris = inactive. Vert « Auto — configurer » = déjà active, vous modifiez les séquences utilisées.
+- Quand ?
+- Pendant la période d''inscription, si vous voulez des numéros immédiats à l''inscription.
+- Comment ?
+- Cliquez → cochez les séquences → Accepter.
+
+
+
+
+Badge « Auto actif »
+
+- C''est quoi ?
+- Indicateur vert : l''auto tourne pour cette épreuve.
+
+
+
+
+Bouton « Accepter »
+
+- C''est quoi ?
+- Enregistre la configuration auto (quelles séquences sont utilisées).
+- À noter
+- Les séquences doivent être cochées avant Accepter.
+
+
+
+
+Bouton « Annuler » (auto)
+
+- C''est quoi ?
+- Ferme le mode édition auto sans sauver les changements de coches.
+
+
+
+
+Bouton « Désactiver l''auto »
+
+- C''est quoi ?
+- Stoppe l''assignation automatique.
+- À noter
+- Les séquences restent ; les dossards déjà donnés ne sont pas effacés.
+
+
+',
+'compte.php', 40, 1, NOW()),
+
+('bib_assignment', 'bib_doc_solo', 'fr', 'Épreuve individuelle (solo)', 'C''est quoi et impact sur les boutons',
+'
+C''est quoi une épreuve solo ?
+Chaque participant court (ou participe) seul : un inscrit = une personne = un dossard.
+Impact sur les boutons
+
+- Ordre d''assignation : nom, prénom, date d''inscription, date de naissance — pas de tri par nom d''équipe.
+- Pas de choix « Dossards individuels » / « 1 équipe = 1 dossard » (réservé aux épreuves équipe).
+- Grille (œil) : une ligne par participant.
+
+',
+'compte.php', 50, 1, NOW()),
+
+('bib_assignment', 'bib_doc_equipe', 'fr', 'Épreuve en équipe', 'Méthode d''assignation',
+'
+C''est quoi une épreuve en équipe ?
+Les participants s''inscrivent en équipe. Le nombre de dossards à assigner dépend de la méthode choisie à gauche.
+
+
+« Dossards individuels »
+
+- C''est quoi ?
+- Chaque membre a son propre numéro, comme en solo.
+- Quand ?
+- Chaque coureur doit avoir un dossard distinct sur la ligne de départ.
+- À noter
+- L''ordre « Nom d''équipe » est disponible dans le batch.
+
+
+
+
+« 1 équipe = 1 dossard »
+
+- C''est quoi ?
+- Tous les membres d''une équipe partagent le même numéro.
+- Quand ?
+- Le numéro identifie l''équipe, pas chaque personne.
+- À noter
+- Le batch assigne par équipe. Choix verrouillé après le premier dossard assigné.
+
+
+',
+'compte.php', 60, 1, NOW());
+
+-- -----------------------------------------------------------------------------
+-- EN (same pedagogical structure)
+-- -----------------------------------------------------------------------------
+
+INSERT INTO `doc_page` (`doc_mod_clef`, `doc_page_clef`, `doc_langue`, `doc_titre`, `doc_sous_titre`, `doc_html`, `doc_prg`, `doc_tri`, `doc_actif`, `doc_creation`) VALUES
+('bib_assignment', 'bib_doc_overview', 'en', 'What is bib assignment?', 'Purpose of this panel',
+'Bib assignment means giving each registered participant a bib number for race day.
This panel lets you define available numbers (sequences), assign in batch, or assign automatically on registration.
',
+'compte.php', 10, 1, NOW()),
+('bib_assignment', 'bib_doc_sequences', 'en', 'What is a bib sequence?', 'Concept then the table',
+'A sequence is a range of consecutive numbers (e.g. 1–500). Multiple sequences can exist per race.
Use + Add, set Start/End, click OK. Check rows for batch or auto.
',
+'compte.php', 20, 1, NOW()),
+('bib_assignment', 'bib_doc_batch', 'en', 'Buttons: batch assignment', 'Assign by sequence, Simulate, GO…',
+'Each button explained with: What is it? When? How? Notes.
Assign by sequence
- What is it?
- Opens batch mode.
- How?
- Check sequences → order → Simulate → GO.
Simulate
- What is it?
- Preview without saving.
GO
- What is it?
- Runs assignment for real.
',
+'compte.php', 30, 1, NOW()),
+('bib_assignment', 'bib_doc_auto', 'en', 'Automatic assignment', 'Concept and buttons',
+'Auto assigns a bib on each new registration from checked sequences.
',
+'compte.php', 40, 1, NOW()),
+('bib_assignment', 'bib_doc_solo', 'en', 'Individual race', 'Solo impact on buttons',
+'One participant = one bib. No team sort order.
',
+'compte.php', 50, 1, NOW()),
+('bib_assignment', 'bib_doc_equipe', 'en', 'Team race', 'Assignment method',
+'Individual bibs vs 1 team = 1 bib. Choose before first assignment.
',
+'compte.php', 60, 1, NOW());