Add a /api catch-all that returns 404 JSON for unmatched API routes.
In the SPA fallback, only serve index.html for navigation requests
(no file extension) — requests for non-existent static files now
get a real 404 instead of index.html with 200.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>