Application UI

Authentication

Sign in, register, reset and verify. These declare the shadcn form primitives rather than hand-rolling inputs, so every field gets a label tied to it, an error tied to it, and aria-invalid that actually flips.

Forgot password with sent state

Add as a new component

Register card with password rules

Add as a new component

Sign in card with OAuth

Add as a new component