Next.js App Router requires components using useSearchParams() to be
wrapped in a Suspense boundary for static generation. Split login and
signup pages into server component wrappers with Suspense and client
form components.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>