/* THE OPERATOR'S OS — token sheet (W1-T1.1 of the execution runbook)
   Ratified palette 2026-07-28. Single source; properties adopt as their face is touched.
   Runbook: docs/design/OPERATORS-OS-EXECUTION-RUNBOOK-2026-07-28.md

   Rules the numbers encode:
   - One family per property. Buttons fill with INK, never MARK (white-on-MARK fails AA
     on four families). LIFT stops measure ~3.9–6:1 on the gunmetal card — the UI/large-text
     bar — so LIFT is for accents and large text on dark ONLY; body text on dark uses the
     dark ink ramp, never a family color.
   - Green/coral/cyan carry no separate LIFT: their MARK passes the dark large-text bar
     natively (computed 07-28: green 4.28, coral 5.06, cyan 6.05 on #262633 — see
     docs/design/OS-TOKENS-CONTRAST-TABLE-2026-07-28.md).
   - Type: system stack for body/UI (Apple devices render the system face because the OS
     supplies it). Display = self-hosted Inter/Inter Display (OFL). Mono = OFL only.
     NEVER ship Apple system faces as webfont files — license forbids webfont use.
   - Banned everywhere: retired amber (gate-no-amber hex set), cream/warm-paper grounds, flat-black darks. */

:root {
  /* families — MARK (brand) · INK (on light: text, fills, links) · LIFT (on dark: accents) */
  --blue-mark:   #3B6FE0;  --blue-ink:   #3069D9;  --blue-lift:   #4F7CEF;  /* Precision · yoursyntax */
  --green-mark:  #2F9B6D;  --green-ink:  #007F54;  --green-lift:  #2F9B6D;  /* Evidence · grepthat, gogrepthat */
  --indigo-mark: #5B4FCF;  --indigo-ink: #5B4FCF;  --indigo-lift: #806EF3;  /* Platform · manymoats, synergymade, scfpassport, moatid */
  --rose-mark:   #E63980;  --rose-ink:   #D21F70;  --rose-lift:   #E93C83;  /* Human · lathe, tethered, cohortcollab, loomallure */
  --coral-mark:  #E07A5F;  --coral-ink:  #B1523A;  --coral-lift:  #E07A5F;  /* Origin · inputdojo */
  --cyan-mark:   #00B4D8;  --cyan-ink:   #007992;  --cyan-lift:   #00B4D8;  /* Utility · togglesnap, yapcircuit, filefriend */

  /* neutrals — identical on every property */
  --ground:      #F3F2F8;
  --surface:     #FAFAFC;
  --card:        #FFFFFF;
  --line:        #E1E0E5;
  --line-strong: #D1D0D6;
  --ink-0:       #1B1922;  /* headings, primary text */
  --ink-1:       #54525E;  /* body-secondary */
  --ink-2:       #929198;  /* captions, disabled */

  /* the gunmetal dark material (elevation ramp: elevated = lighter) */
  --gun-base:    #191923;
  --gun-surface: #1F1F2A;
  --gun-card:    #262633;
  --gun-line:        rgba(230,232,244,.10);
  --gun-line-strong: rgba(230,232,244,.22);
  --gun-ink-0:   #F2F3FA;
  --gun-ink-1:   #8E90A6;

  /* type — system stack body/UI; Inter (self-hosted, OFL) display; OFL mono */
  --font-body:    -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Inter Display", Inter, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-mono:    "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --fs-13: 13px;  --fs-16: 16px;  --fs-20: 20px;  --fs-25: 25px;
  --fs-31: 31px;  --fs-39: 39px;  --fs-49: 49px;
  --track-display: -0.02em;
  --leading-body: 1.5;

  /* geometry — 4px grid */
  --r-card: 10px;  --r-panel: 14px;  --r-pill: 999px;
  --sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px;  --sp-4: 16px;
  --sp-6: 24px; --sp-8: 32px; --sp-12: 48px; --sp-16: 64px;
}

/* per-property adoption: the host sets its family once; components read the generic slots */
[data-family="blue"]   { --fam-mark: var(--blue-mark);   --fam-ink: var(--blue-ink);   --fam-lift: var(--blue-lift); }
[data-family="green"]  { --fam-mark: var(--green-mark);  --fam-ink: var(--green-ink);  --fam-lift: var(--green-lift); }
[data-family="indigo"] { --fam-mark: var(--indigo-mark); --fam-ink: var(--indigo-ink); --fam-lift: var(--indigo-lift); }
[data-family="rose"]   { --fam-mark: var(--rose-mark);   --fam-ink: var(--rose-ink);   --fam-lift: var(--rose-lift); }
[data-family="coral"]  { --fam-mark: var(--coral-mark);  --fam-ink: var(--coral-ink);  --fam-lift: var(--coral-lift); }
[data-family="cyan"]   { --fam-mark: var(--cyan-mark);   --fam-ink: var(--cyan-ink);   --fam-lift: var(--cyan-lift); }

/* unseen care, pass 1 — focus ring + selection wear the family */
:focus-visible { outline: 2px solid var(--fam-ink, var(--indigo-ink)); outline-offset: 2px; }
::selection    { background: color-mix(in srgb, var(--fam-ink, var(--indigo-ink)) 18%, transparent); }

/* button roles — fills take INK, never MARK */
.os-btn-primary   { background: var(--fam-ink, var(--indigo-ink)); color: #fff; border-radius: var(--r-card); }
.os-btn-secondary { background: var(--card); color: var(--ink-0); border: 1px solid var(--line-strong); border-radius: var(--r-card); }

/* NEEDS-YOU alert — fleet-locked · PROPOSED (W5 · founder disposes sample before ship)
   Distinct from Rose MARK #E63980 and Coral MARK #E07A5F by hue (true red, not brand).
   Use ONLY for NEEDS-YOU. Denied = family INK, never this red fill.
   Do not product-mount without founder eyes on light + gunmetal sample. */
:root {
  --alert-needs-you:      #C1121F; /* light ground · ≥4.5:1 on white for glyph+text */
  --alert-needs-you-on-gun: #FF4D5A; /* large/glyph on gunmetal · large-text bar */
  --alert-needs-you-soft: color-mix(in srgb, var(--alert-needs-you) 12%, transparent);
}
.os-alert-needs-you {
  color: var(--alert-needs-you);
  border-color: var(--alert-needs-you);
}
[data-theme="gun"] .os-alert-needs-you,
.gun .os-alert-needs-you {
  color: var(--alert-needs-you-on-gun);
  border-color: var(--alert-needs-you-on-gun);
}
