Split public and server secrets
NEXT_PUBLIC_* can be seen in the browser. Service role, Stripe secret, webhook secret, Resend key, and admin token must stay server-only.
- No server secret starts with NEXT_PUBLIC_.
- .env.example contains no real values.
- Vercel Production/Preview are separated.