Operations console
Settings
Company profile, service targets and the demo controls. Nothing here talks to a server.
These fields are read-only in the prototype. They feed the public site footer, the quote header and the WhatsApp links.
Absolute targets, never rolling averages.
A rolling target would let a slipping standard redefine itself as normal. These stay fixed so the gap stays visible.
Defined once in globals.css. Components never contain raw hex.
- Navy 900#0B1B33Sidebar, headings, text on orange
- Navy 700#1B3A6BPrimary chart series, secondary surfaces
- Navy 500#2E5AA8Focus rings, links
- Solar 500#F0721EPrimary fill only - never text on white
- Solar 700#B5500FAccent text on white (5.0:1)
- Success#16A34AOn target, resolved, paid
- Warning#B45309Burnt amber, duller than brand orange
- Danger#DC2626Breach, critical, overdue
Contrast rules enforced across the build
Solar 500 on white measures 2.72:1, so it is used as a fill only, never for text, thin icons or 1px borders on a light canvas. Navy 900 on Solar 500 measures 6.35:1 and is the primary button. Where accent text on white is unavoidable, Solar 700 is used at 5.01:1. Warning is a duller burnt amber so it never reads as brand chrome, and passes AA for text at 4.93:1.
Which record the portal and the technician app act as.
Everything lives in this browser only.
- Customers
- 24
- Sites
- 31
- Work orders
- 170
- Contracts
- 17
- Quotes
- 14
- Reports
- 26
- Tickets
- 7
- Leads
- 12
- Invoices
- 42
There is no backend, no database and no authentication. Changes are written to browser local storage and never leave this device. No email or WhatsApp message is ever sent; the contact buttons are plain tel: and wa.me links.
Prototype build