- 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>
Single-page B2B accounting app with PO management (import, edit),
invoice creation with auto due date calculation, EDI preview/submit,
Google SSO, and sign out support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>