/* VIRTUOSO design tokens. The ONLY place colours are defined (v1.0 spec + v1.1 amendments, 19 Oct 2026).
   Every Virtuoso page links this file (served at /virtuoso/tokens.css) and uses the --v-* names, never raw hex.
   Edit here, rebuild the site, every page follows.

   MEANING (one meaning per colour, every page):
     machine  turquoise   primary control, current selection; BREATHING = the machine is working
     human    gold        a person is needed, or a person made this choice; also "go back and rebuild"
     ok       green       completed, confirmed, passed (always with a tick)
     warn     amber       warning: pending contract, paused, look at this
     back     coral       go back: Rebuild, the repair bench, undo a step (Vince, 19 Oct: "I do like the colour")
     bad      red         failed or blocked (always with a cross)
     greys                neutral, inactive, historical, defaults
     ad-red   LTT red     belongs to the ADS (caption and flag previews), never to a control */
:root{
  /* Surfaces: the style-sheet board AS PAINTED (sampled 19 Oct 16:30, Vince: "perfect"), not its labels or the spec text. */
  --v-bg:#001114;        /* page: near black with a teal cast */
  --v-nav:#02201F;       /* header and footer: one step up from the page */
  --v-panel:#00181B;     /* cards, tables (sampled from the board's cards) */
  --v-panel2:#000C0E;    /* recessed: inputs, wells, video frames */
  --v-line:#2C3F41;      /* slate, borders, inactive */
  --v-text:#F4F7F7;      /* off white, primary text */
  --v-mist:#B7C5C6;      /* supporting text */
  --v-cloud:#7E9192;     /* secondary text, metadata */

  --v-machine:#14DBC8;   /* electric turquoise */
  --v-machine-soft:#2ED5C0;
  --v-on-machine:#04201E;/* text on turquoise */
  --v-human:#E7D2A3;     /* champagne gold */
  --v-human-warm:#C9A76A;
  --v-on-human:#2A2110;
  --v-ok:#4CC26E;        /* completed (v1.1: yellower than v1.0 #27B88A so it never reads as turquoise) */
  --v-on-ok:#06210F;
  --v-warn:#E5B657;      /* muted amber */
  --v-on-warn:#2A1F06;
  --v-coral:#FF8A65;     /* coral: warm orange, "go back" */
  --v-on-coral:#2A1208;
  --v-bad:#EF6464;       /* red: failed or blocked (pinker than coral so the two never read as one) */
  --v-on-bad:#2A0909;
  --v-ad-red:#E8232A;    /* LTT brand red, ad content only */

  /* roles built from the meanings above */
  --v-go:var(--v-machine);         /* forward: Approve, primary action */
  --v-on-go:var(--v-on-machine);
  --v-back:var(--v-coral);         /* back: Rebuild, repair bench (Vince, 19 Oct 16:41: coral) */
  --v-on-back:var(--v-on-coral);

  --v-radius-card:12px; --v-radius-btn:8px; --v-radius-pill:999px;
  --v-font:Inter,system-ui,sans-serif;
}
/* machine working: gentle 2.5 s breathing glow; failures pulse three times then rest */
@keyframes v-breathe{0%,100%{box-shadow:0 0 0 0 rgba(20,219,200,0)}50%{box-shadow:0 0 12px 2px rgba(20,219,200,.45)}}
@keyframes v-fail{0%,100%{box-shadow:0 0 0 0 rgba(239,100,100,0)}50%{box-shadow:0 0 10px 2px rgba(239,100,100,.55)}}
.v-working{animation:v-breathe 2.5s ease-in-out infinite}
.v-failed{animation:v-fail .9s ease-in-out 3}
@media (prefers-reduced-motion:reduce){.v-working,.v-failed{animation:none}}
