Bug: invoice detail does not survive refresh. Reproduce: search 42 → open invoice → reload /invoices/42. Expected: same invoice. Actual: HTTP 404. Initial client navigation succeeds; direct route handling needs investigation.
