- vite base './' (relative asset refs) so one build serves any mount path
- index.html carries <!--BASE_HREF--> placeholder + ./config.js ref
- BASE_URL reads window.__RUNTIME_CONFIG__.VITE_ZINO_API_URL (placement-
written) with a dev fallback
Required by frontgen 1600 assertBuildOutput + the dev->qa frontend
release model (target writes config.js from its own ZINO_API_URL).