# planner.html (placeholder Mapbox token + light style + loading overlay)
planner_html = """
SprinterXPRESS — Route Planner Ready

Loading Route Planner...
Powered by Mapbox
"""
# manifest.json
manifest_json = """{
"name": "SprinterXPRESS",
"short_name": "SprinterXPRESS",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#000000",
"icons": [
{ "src": "/assets/icon-192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/assets/icon-512.png", "sizes": "512x512", "type": "image/png" }
]
}"""
# _redirects
redirects_content = "/* /index.html 200"
# Write files
with open(os.path.join(base_dir, "index.html"), "w") as f:
f.write(index_html)
with open(os.path.join(base_dir, "planner.html"), "w") as f:
f.write(planner_html)
with open(os.path.join(base_dir, "manifest.json"), "w") as f:
f.write(manifest_json)
with open(os.path.join(base_dir, "_redirects"), "w") as f:
f.write(redirects_content)
# Folders
os.makedirs(os.path.join(base_dir, "assets"), exist_ok=True)
os.makedirs(os.path.join(base_dir, "backups"), exist_ok=True)
# Backup copy
with open(os.path.join(base_dir, "backups", "planner_backup.html"), "w") as f:
f.write(planner_html)
# Create ZIP
zip_path = shutil.make_archive("/mnt/data/sprinterxpress-site", "zip", base_dir)
zip_pathf