- Load GSI script dynamically after config.js sets GOOGLE_CLIENT_ID
so data-client_id is populated before the library auto-initializes
- Fall back to config.js client ID when /auth/config returns empty
- Guard against null fallback-btn element in initGoogleSignIn
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Purchase orders page now shows 20 items per page with page navigation
controls. loadPOs() fetches all pages via cursor pagination instead of
capping at 200. Search filters the full dataset and resets to page 1.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>