Variables
- Le clic sur un chip de variable insère désormais au curseur du dernier
champ focus (sujet OU corps), pas seulement dans le corps. On capture
la position via onSelect/onClick/onKeyUp/onBlur et on utilise mousedown
+ preventDefault sur les chips pour que le focus ne quitte pas le champ
ciblé avant l'insertion. Le label sous les chips indique en live
quel champ est ciblé.
- OffsetInput (étape Cadence) : composant string-controlled qui accepte
les états intermédiaires "" et "-" pour ne plus avoir le 0 fantôme
quand on efface pour ressaisir un offset négatif.
Mobile
- Bottom nav (Annuler/Continuer) sticky en bas sur mobile, en flux normal
sur desktop. Safe-area inset respectée.
- Header du wizard : back button compact (icône seule sous sm), compteur
d'étape toujours visible, stepper centré.
- Card padding adaptatif (p-5 sm:p-7 lg:p-9).
- Step 3 — sélecteur d'étape : scroll horizontal sur mobile (au lieu de
wrap), évite l'effet escalier avec 5 étapes.
- Step 3 — body textarea : min-h adaptatif (180px mobile, 260px sm+).
- CadenceTimeline : rail horizontal masqué sous lg ; en mobile, ligne
verticale fine entre les nœuds (cohérent identité ◆) ; bouton retirer
visible en permanence sur mobile (les hover-only ne marchent pas tactile).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>