"""Content-Security-Policy nonces (ROADMAP #87, tranche 5b). Chaque réponse HTTP reçoit un nonce frais (``request.state.csp_nonce``) injecté dans ``script-src``. Les routes servant du HTML avec des scripts inline (index, popout, admin, editor-poc, excalidraw, page de partage) l'injectent dans le balisage via :func:`inject_csp_nonce` — mêmes emplacements, aucun script déplacé. Tant que ``'unsafe-inline'`` reste dans la politique (retrait en T5c), l'injection est inerte : elle prépare la bascule sans changer le comportement. """ from __future__ import annotations import re import secrets # Balises