- app/main.py: GET /api/csrf-token → retourne un token frais JSON + cookie
- app/middleware/csrf.py: /api/csrf-token ajouté aux EXCLUDED_PATHS
- app/templates/base.html:
- FlowDeck.refreshCsrfToken() → appelle /api/csrf-token
- FlowDeck.csrfFetch() → wrapper fetch avec auto-refresh sur 403 CSRF
- Si un POST/PUT/DELETE reçoit 403 'CSRF', refresh automatique + retry
- ROADMAP: item CSRF token refresh marqué ✅
- 143 tests passent