Fetches active Temporary Flight Restrictions from the FAA website,
filters by configured state (LOCATION_STATE env var), and displays
a red warning banner at the top of the dashboard when TFRs are present.
Data is cached for 30 minutes and degrades gracefully if the FAA is unreachable.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
NEXT_PUBLIC_API_URL was only set at runtime via k8s ConfigMap, but Next.js
inlines NEXT_PUBLIC_* vars at build time. The fallback localhost:8080 URL was
baked into the JS bundle, causing all browser requests to fail. Changed default
to relative /api/v1 which routes correctly through the Ingress. Also updates
Dockerfile ENV syntax and k8s frontend port to 8080.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>