- vite base './' (relative refs; PWA manifest/scope/fallback follow via concat) - index.html carries <!--BASE_HREF--> placeholder + ./config.js ref - BASE_URL reads window.__RUNTIME_CONFIG__.VITE_ZINO_API_URL (placement-written) - router basename derived from <base href>, not hardcoded slug Slug renamed krishna_sales_mobile -> krishna-sales-mobile (frontgen slug pattern forbids underscores). Same treatment as the desktop app.
Mobile PWA port of the desktop console: bottom-sheet modals, card-list record views, bottom tab nav, vite-plugin-pwa (manifest, service worker, icons). API layer, workflow UIDs, and design tokens reused verbatim.