- en-tête vitré sticky, navigation en pastilles avec état actif,
logo en tuile dégradée, fil d'Ariane projet
- dashboard: hero + tuiles de synthèse (actifs, fermées/déplacements
30 j, cycle moyen), barre de progression par projet, états vides
guidés, raccourci clavier /
- board: sélecteur de milestones + bandeau de progression, colonnes
à défilement indépendant, placeholders de colonnes vides, hint
sur le panneau de notes, toast et drawer animés
- live.js: recharge douce conditionnelle (visible, pas de drawer,
pas de saisie, pas de drag) sinon pastille d'actualisation
- accessibilité: anneau de focus visible, prefers-reduced-motion,
responsive retravaillé; board.js: drapeau de drag partagé avec
live.js + raccourci / vers le filtre
- vendor: HTMX/Alpine/SortableJS servis depuis /static/vendor (M3)
- board.js: jeton CSRF, ordres source/destination envoyés, carte
replacée + toast rouge en cas d'échec (M8), filtres texte/étiquette,
formulaire de création d'issue
- dashboard: 3 onglets Actifs/Inactifs/Archivés, recherche via
data-search échappé au lieu d'une interpolation JS (M9)
- board: cartes liées vers l'issue Gitea, méta CSRF, notes protégées
- nouvelles pages focus.html et error.html
- CSS: fond des badges en color-mix, l'ancien var(--accent)20 était
invalide (M1); styles toolbar/focus/erreur/toast erreur