Move SPA fallback from main.ts catch-all (didn't work - NestJS 404 handler runs first) to HttpExceptionFilter. Now non-API GET 404s serve index.html so client-side routing works for /dashboard/* etc. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>