- Rewrite the Extract button with explicit inline style so the coral CTA
reads clearly on cream (both enabled and disabled states now unambiguous).
- Rewrite DocTypePicker without the layoutId motion pill: simple bordered
toggles with clear active/inactive contrast, aria-pressed, and a
data-cursor='focus' hook.
- Add real sample assets: coffee_receipt.png and software_invoice.pdf.
- Harden loadSampleAsFile to reject text/html payloads (static hosts serve
index.html for 404s and it would silently poison /extract with an
unsupported_media_type).
Tasks 5-7: eval harness, FastAPI backend, Paper & Ink UI- src/eval/ β precision/recall/F1 harness with type-aware comparators,micro/macro F1, CSV + markdown reports, --model benchmark flag- src/api/ β FastAPI backend with /extract, /schemas, /health,request-ID middleware, typed error envelope, injectable extractor- ui/ β Vite + React + TS + Tailwind + Motion + React Three FiberPaper & Ink editorial UI with 3D paper hero, dark/light mode,confidence inkwell, wax-stamp metrics, kinetic typography- 95 passing tests (up from 54); UI is a separate npm workspace