SAAS Lottery - Moto Racing CSS / Canvas Fix V8
===============================================

Exact live problem fixed
------------------------
V7 successfully opened the Moto Racing route, but the page appeared as raw
text with an oversized loading shape. The required CSS files existed and
returned HTTP 200. The frontend loader was checking dynamic files with:

  c.endsWith(".css")

Every dynamic file had a cache query such as:

  index-BSGghs24.css?v=moto-official-v5

Because that URL no longer ended in ".css", the browser created a script
preload instead of a stylesheet link. The Moto layout and canvas dimensions
were therefore never applied.

V8 repair
---------
1. Primary and alternate frontend loaders now ignore the query string when
   identifying CSS:

   c.split("?")[0].endsWith(".css")

2. Moto CSS, shared CSS, ResultItem CSS and ChangLong CSS load as stylesheets.
3. The V7 Moto JavaScript and Pixi manifest repairs remain included.
4. GetGameUrl still returns the exact selected Moto Racing hash route.
5. WinGo, K3, 5D and TrxWinGo remain on the same automatic real-result feeds.
6. No manual result control is added.

Deployment
----------
1. Extract the COMPLETE ZIP into the website document root.
2. Overwrite index.html, assets/, codexhub/, api-live-v4/, draw-live-v4/ and
   saas_lottery/.
3. Preserve all hidden .htaccess files.
4. Purge the hosting/CDN cache and hard-refresh once.
5. Open /real-sync-v8-check.php and confirm "ready": true.
6. View page source and confirm:

   ?v=real-sync-v8-moto-css

Security
--------
If a live Token/JWT was shared, log out and sign in again so the old token is
revoked.
