Maintenance contracts

Recurring service (weekly through annual). auto_invoice flag will queue invoice orders on next_service_at.

Scaffolded, awaiting UI.

Data table maintenance_contracts exists in both D1 and IndexedDB and syncs through /api/sync. To flesh out this screen, mirror the pattern in src/routes/customers/: list page + [id]/ editor using upsert() from $lib/db/mutations.