Operations console

Settings

Company profile, service targets and the demo controls. Nothing here talks to a server.

Company profile

These fields are read-only in the prototype. They feed the public site footer, the quote header and the WhatsApp links.

Service targets

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.

Brand tokens

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.

Demo personas

Which record the portal and the technician app act as.

Demo data

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