diff --git a/CHANGELOG.md b/CHANGELOG.md
index 16972d3..4af0113 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,18 @@
+## 0.42.0 — 2026-10-28 — Lot UX complet (#57 à #68)
+
+- **#57 Jetons** : échelle fermée documentée (typo xs/sm/base/lg/xl, rayons sm/md/base/full, ombres, espacements) ; rayons pilule passés au jeton `--radius-full`.
+- **#58 Boutons** : système primary uni (fini les dégradés), secondary, danger, icon 36px, états unifiés ; `.btn-save` et `.proj-primary` alignés sur le primary.
+- **#59 Icônes** : emoji d'interface retirés des gabarits (cartes, tableaux, états vides, boutons, titres) ; épingler en SVG trait, recherche en SVG ; favicons et contenu utilisateur (titres/labels Gitea) inchangés.
+- **#60 Accessibilité** : jeton `--accent-text` distinct (`#14b8a6` sombre, `#0f766e` clair, 5,47:1 sur blanc) pour tous les textes d'accent ; focus visible unifié.
+- **#61 Typographie** : pile système assumée (Inter déclarée mais jamais chargée, pas de CDN tiers pour une app auto-hébergée) ; hiérarchie H1/H2 via `.page-title`.
+- **#62 Pages** : Aujourd'hui et Focus reprennent l'en-tête `.page-head` / `.page-title` commun ; titre Aujourd'hui ramené à l'échelle xl.
+- **#63 Navigation** : recherche en double supprimée de l'en-tête (palette Ctrl+K + recherche sidebar restent).
+- **#64 Mobile** : cibles 44px sous 640px, en-tête et KPI compacts.
+- **#65 États** : `.empty-state` / `.focus-empty` unifiés, classe `.skeleton` (pulsation, respect de `prefers-reduced-motion`).
+- **#66 Formulaires** : classes `.field-error` / `.field-error-msg` (bordure rouge + message, jamais la couleur seule).
+- **#67 Cartes** : titre clampé à 2 lignes, code discret, labels/chips en texte thème sur fond teinté `color-mix` (contraste garanti quelle que soit la couleur Gitea).
+- **#68 Thème clair** : connexion et wallboard suivent le thème mémorisé (init avant rendu, comme `_header`) et ne restent plus sombres par défaut ; variantes claires ajoutées.
+
## 0.41.0 — 2026-10-28 — Identité Kanbante : sidebar charbon, accent vert, icônes ligne, bouton thème en Administration (#54, #55)
- **Sidebar (#54)** : fond charbon draco (`rgba(26, 28, 26, 0.96)`) à la place du bleu-noir `rgba(13, 16, 24)` oublié par le re-thème 0.39.0 — la barre latérale a désormais la même teinte que le reste du site, en sombre comme en clair (clair déjà blanc).
diff --git a/app/config.py b/app/config.py
index cbadc00..fbada76 100644
--- a/app/config.py
+++ b/app/config.py
@@ -177,7 +177,7 @@ from urllib.parse import urlparse
BASE_DIR = Path(__file__).resolve().parent.parent
-APP_VERSION = "0.41.0"
+APP_VERSION = "0.42.0"
def _env_bool(name: str, default: bool) -> bool:
diff --git a/app/templates/_card.html b/app/templates/_card.html
index 46c8e87..af02bdc 100644
--- a/app/templates/_card.html
+++ b/app/templates/_card.html
@@ -13,14 +13,14 @@
{% if issue.labels %}
{% for label in issue.labels %}
-
+
{{ label.name }}
{% endfor %}
{% endif %}
{% if issue._code %}
-
⑂{% if issue._code.branches %} 🌿 {{ issue._code.branches }}{% endif %}{% if issue._code.commits %} · {{ issue._code.commits }} commit{{ 's' if issue._code.commits > 1 }}{% endif %}{% if issue._code.pr %} · PR #{{ issue._code.pr.number }} {{ issue._code.pr.label }}{% endif %}
+
⑂{% if issue._code.branches %} {{ issue._code.branches }}{% endif %}{% if issue._code.commits %} · {{ issue._code.commits }} commit{{ 's' if issue._code.commits > 1 }}{% endif %}{% if issue._code.pr %} · PR #{{ issue._code.pr.number }} {{ issue._code.pr.label }}{% endif %}
{% endif %}
{% if issue.assignee %}
@@ -30,8 +30,8 @@
{% set age = ages.get(issue.number) %}
{% if age and age.days >= aging_days %}
⏳ {{ age.days }} j
+ title="Dans cette colonne depuis le {{ age.since[:10] }}">{{ age.days }} j
{% endif %}
-
+
Espace : {{ workspace.name }} (change d'espace par le sélecteur en haut pour régler un autre board). Les colonnes sont propres à chaque espace : nom, couleur, ordre et mapping étiquette ↔ colonne. La clé d'une colonne ne change jamais (les cartes y sont rattachées) ; le nom affiché, lui, est libre.
Une idée, un bogue, une pensée — capturés en deux secondes, ils deviennent une issue dans le bon backlog.
@@ -41,7 +41,7 @@
- ⚠️ Aucun dépôt de ce nom dans Gitea — vérifie l'orthographe, la capture échouera sinon.
+ Aucun dépôt de ce nom dans Gitea — vérifie l'orthographe, la capture échouera sinon.Astuce : tape un début, Tab complète segment par segment (pr → Projets/ → kan → kanbante), ↑↓ + Entrée choisissent dans la liste.
diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html
index 566dcfa..46d023b 100644
--- a/app/templates/dashboard.html
+++ b/app/templates/dashboard.html
@@ -55,7 +55,7 @@
- 🗄️ Gérer
+ Gérer