/* The Pitch — design tokens (docs/M0-CONTRACT.md §4, docs/M1-ARCHITECTURE.md §6).
   ONE palette, extended and never forked. Light surfaces everywhere; the admin
   sidebar is the single dark surface and its tokens live in the portal block.

   Green TEXT on a light surface is always --g-text (#256F16, 6.2:1 on white).
   --g-dark (#2E8C1C) is ~3.9:1 and is permitted ONLY for borders and fills.
   Radii collapse onto the four --r-* values; the mockups' 9/10/11/14/16px drift
   is documented in docs/design-system-extraction.json → brand.conflicts and is
   not re-litigated here. */
:root{
  --g:#4CC42E; --g-hover:#5AD63C; --g-dark:#2E8C1C; --g-text:#256F16; --g-tint:#EDF9E8; --on-g:#052008;
  --k:#0B0E0A; --k-hover:#222A21; --w:#FFFFFF; --bg-page:#F4F7F2; --bg-tint:#F7F9F5;
  --ink:#0B0E0A; --mute:#5B665A; --line:#DDE4DA; --line-strong:#CFD8CC;
  --amber-bg:#FFF4D6; --amber:#7A5200; --red-bg:#FDECEC; --red:#9B2C2C; --blue-bg:#E8F0FB; --blue:#1F4E8C; --purple-bg:#F0EBFA; --purple:#5B3AA0;
  --focus:rgba(76,196,46,.25);
  --r-control:12px; --r-card:18px; --r-hero:20px; --r-pill:999px;
  --font:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  /* ---- M1 portals ---------------------------------------------------------
     Admin's dark sidebar is the ONLY visual signal separating the staff portal
     from the customer portal, so its values are tokens, not literals. Active
     nav is --side-active-ink on --side-active-bg = 7.2:1 — the one place the
     bright green is legal as text. */
  --side-bg:#0B0E0A; --side-ink:#FFFFFF; --side-dim:#B7BFB4; --side-label:#7E877C;
  --side-hover:#1A1F19; --side-active-bg:#1F2A1D; --side-active-ink:#4CC42E; --side-line:#222A21;

  /* Schedule legend. Each event kind is a border-left colour plus a tinted fill
     already defined above; maintenance is deliberately grey and hatched so it
     never reads as revenue. */
  --ev-rent:#4CC42E; --ev-prog:#3B74C4; --ev-pick:#7B5CC8; --ev-hold:#D9A012;
  --ev-maint:#999999; --ev-maint-bg:#EEEEEE; --ev-maint-ink:#555555;

  /* Control surfaces.

     --line and --line-strong are DECORATIVE rules: card edges, table row rules,
     the divider under a card heading. They measure 1.30:1 and 1.46:1 on white,
     which is right for a hairline and wrong for anything WCAG 1.4.11 calls a
     user-interface component.

     --line-control is the boundary of a CONTROL that has no other fill to tell
     it apart from the page: an input, an outline button, an option button, a
     day cell, a slot, a payment rail, a copy field, an attendance checkbox.
     #848E84 measures 3.40:1 on --w and 3.14:1 on --bg-page, so it clears 3:1 on
     both surfaces a control is ever drawn on. Never use it for a decorative
     rule, and never use --line for a control edge.

     --knob-ring is the 1px ring around the toggle knob. The knob is white and
     the track changes colour with the state, so without a ring the knob is
     1.46:1 on the off track and 2.27:1 on the on track — its POSITION is the
     non-colour cue for the switch state, and an invisible knob has no position.
     #3A423A is 7.1:1 on the off track and 4.6:1 on --g. */
  --track-off:#CFD8CC; --knob:#FFFFFF; --knob-shadow:rgba(0,0,0,.25);
  --line-control:#848E84; --knob-ring:#3A423A;
  --bw:1px; --bw-control:1.5px;

  /* Portal layout. Two sidebar widths and two content maxima because the admin
     week grid needs the room and the customer portal reads better narrow. */
  --side-w-app:240px; --side-w-admin:232px;
  --main-max-app:1080px; --main-max-admin:1240px;
  --tab-h:64px;

  /* Minimum comfortable target. Applied to every control on coarse pointers. */
  --tap:44px;
}
