--- phase: 06-signing-flow plan: "03" subsystem: ui tags: [react-pdf, pdfjs, signing, jwt, audit, overlay, animation, next-app-router] # Dependency graph requires: - phase: 06-signing-flow/06-01 provides: verifySigningToken(), logAuditEvent(), signingTokens table, SignatureFieldData schema provides: - /sign/[token] public route with three states (expired/used/pending) - Server component token validation before any UI renders - SigningPageClient: full-scroll react-pdf viewer + pulsing blue field overlays + sticky progress bar - SigningProgressBar: sticky bottom bar with X/Y count + jump-to-next + submit button - GET /api/sign/[token]: token validation data route + audit event logging - GET /api/sign/[token]/pdf: token-authenticated PDF streaming route affects: [06-04, 06-05] # Tech tracking tech-stack: added: [] patterns: - react-pdf used with dynamic import (ssr:false) via SigningPageClientWrapper — prevents SSR crashes from browser-only canvas/worker APIs - PDF coordinate conversion: screenTop = renderedH - (field.y * scaleY) - (field.height * scaleY); origin flip from PDF bottom-left to screen top-left - CSS keyframes injected via