Lumiere v2.15 - Oryx Appointment Importer

1. Run /lumiere/import/install_schema.php once.
2. Run /lumiere/import/import_oryx_appointments.php repeatedly until it says the backfill is current.
   Each run imports at most 60 historical days by default and stores the next cursor in MySQL.
3. Open /lumiere/dashboard/.

The Oryx side is GET-only. The importer writes normalized appointment copies to local MySQL.
It preserves Oryx status ID/name and raw JSON. Cancelled/no-show/showed metrics are derived only from explicit status-name semantics; raw statuses remain available for verification.
Use ?mode=recent to refresh the latest 30 days after the initial backfill.
