/* SynapticSci core tokens — v3.3. Shared by BOTH themes (commercial + product). Every token cites its deriving concept ID;
   v3.3 craft tokens cite the dated decision that created them instead (decision 2026-09-24, concept-ids).
   Themes override only density, size, elevation, motion, and extended status — never these hues or faces. */
:root{
  /* base */
  --ink:#221f1a;               /* voice-science-first — primary text, sub-brand prefixes */
  --ink-soft:#6e675c;          /* value-empathy — secondary text, captions */
  --paper:#fcfaf4;             /* value-empathy — vellum page background */
  --surface:#ffffff;           /* value-simplicity — cards, tiles */
  --rule:#e4ded3;              /* value-simplicity — hairline rules, card borders */
  /* brand core */
  --primary:#243e9c;           /* value-science, value-insight — Ultramarine; links, buttons, focus, "Sci" */
  --primary-deep:#182a6e;      /* value-science — hover/active, dark bands */
  --primary-wash:#e9edfa;      /* value-empathy — lazuli tint; callout/selected fills; FILL only */
  --patina:#22a695;            /* ethos-synaptic-spark — Copper Patina; evidence accent, punch fills, large text only */
  --patina-deep:#0e6b5e;       /* voice-evidence-before-amplification — evidence text, section labels (5.5:1) */
  /* semantic — never brand duty */
  --status-ready:#356c21;      /* Fern — ready/published */
  --status-withheld:#9c1b34;   /* Madder — withheld/error ONLY */
  --status-review-bg:#f4f1ea;  /* governed empty/held state */
  --danger-text:var(--status-withheld);
  /* semantic aliases — components consume roles, not raw hues */
  --text-body:var(--ink);--text-soft:var(--ink-soft);--text-link:var(--primary);
  --surface-card:var(--surface);--border-hairline:var(--rule);--held-bg:var(--status-review-bg);
  /* dataviz — derived from core, no new hues (value-insight) */
  --viz-1:var(--primary);--viz-2:var(--patina);--viz-3:#6b7fd4;--viz-4:var(--patina-deep);--viz-5:#a9b4d9;
  --viz-axis:var(--rule);--viz-label:var(--ink-soft);
  /* figure palette (v3.9, decision 2026-10-06 figure-palette) — four hues for figures with categories, in this fixed order; three
     levels (restrained | wash | feature) on data-figure. Every pair checked for colour-blind separation in both modes. */
  --fig-hue-1:var(--primary);--fig-hue-2:#e0a400;--fig-hue-3:var(--patina);--fig-hue-4:#eb5a1e;   /* Ultramarine, Gold, Patina, Cadmium */
  --fig-tint-1:color-mix(in srgb,var(--fig-hue-1) 14%,var(--surface));--fig-tint-2:color-mix(in srgb,var(--fig-hue-2) 18%,var(--surface));
  --fig-tint-3:color-mix(in srgb,var(--fig-hue-3) 16%,var(--surface));--fig-tint-4:color-mix(in srgb,var(--fig-hue-4) 14%,var(--surface)); /* wash-level fields */
  --fig-wash-1:color-mix(in srgb,var(--fig-hue-1) 30%,var(--surface));--fig-wash-2:color-mix(in srgb,var(--fig-hue-2) 42%,var(--surface));
  --fig-wash-3:color-mix(in srgb,var(--fig-hue-3) 34%,var(--surface));--fig-wash-4:color-mix(in srgb,var(--fig-hue-4) 30%,var(--surface)); /* wash-level marks, feature-level fields */
  --fig-on-1:#ffffff;--fig-on-2:#221f1a;--fig-on-3:#221f1a;--fig-on-4:#221f1a;  /* text on a solid hue: paper on Ultramarine, ink on the rest */
  --fig-edge:rgba(34,31,26,.45);  /* the faint edge on Gold marks at feature: Gold is 2.2:1 on paper */
  --fig-label:var(--patina-deep);--fig-label-soft:var(--ink-soft); /* labels inside figures; the field classes remap them to ink over tints */
  /* reserve accents — illustration, event/print one-offs ONLY. Never UI chrome, never identity. Gold and Cadmium are figure hues
     as of 3.9 (aliases kept); Rhodamine and Tekhelet failed the figure palette's separation check and stay reserve. */
  --reserve-gold:var(--fig-hue-2);--reserve-cadmium:var(--fig-hue-4);--reserve-rhodamine:#e0479e;--reserve-tekhelet:#4a3a9e;
  /* type faces (sizes live in themes) */
  --font-display:"STIX Two Text","Times New Roman",Times,serif;                          /* voice-science-first */
  --font-body:"Source Sans 3","Segoe UI",-apple-system,"Helvetica Neue",Arial,sans-serif;   /* value-empathy */
  --font-mono:Consolas,"Courier New",monospace;                                            /* voice-evidence-before-amplification */
  --font-logo:synapticsciregular,Georgia,serif;                                            /* logo lockup ONLY */
  --lh-heading:1.15; /* @kind other */
  --track-caps:0.04em; /* @kind other */
  /* space scale — shared; themes choose which steps sections and controls use */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;
  /* shape + focus */
  --radius-card:4px;--radius-pill:999px;
  --focus-ring:2px solid var(--primary);--focus-offset:2px;
  --double-hairline:0 3px 0 -2px var(--rule);
  /* v3.3 additions — decision board 2026-09-23/24. Craft tokens: provenance is the dated decision, not a concept. */
  --pen:#2b3a8c;                /* decision 2026-09-24 handwriting — annotation ink, handwritten figure text ONLY */
  --font-hand:"Reenie Beanie","Segoe Script",cursive; /* decision 2026-09-24 — interim until the team handwriting font; figures only */
  --font-label:var(--font-mono); /* decision 2026-09-24 labels — eyebrows, role labels, metadata in mono */
  --track-label:0.08em; /* @kind other */ /* decision 2026-09-24 labels — tracking for mono labels */
  --radius-control:2px;         /* decision 2026-09-24 corners — buttons and chips; cards keep --radius-card */
  --elevation-paper:0 8px 26px rgba(34,31,26,.12); /* decision 2026-09-24 — physical-paper figures ONLY, never UI */
  --tilt-paper:-1.4deg; /* @kind other */ /* decision 2026-09-24 — paper figures tilt with --elevation-paper */
  --motion-dwell:1500ms; /* @kind other */ /* D115 A3 — then/now: in view >= 75% this long before the wipe */
  --motion-wipe:6s; /* @kind other */ /* D115 A3 — then/now wipe, left to right */
  --motion-wipe-back:1.6s; /* @kind other */ /* D115 A3 — then/now sweep back when the figure leaves */
  --motion-scan:2.6s; /* @kind other */ /* decision 2026-09-24 demonstration motion — scan beam */
  --motion-pulse:5s; /* @kind other */ /* decision 2026-09-24 demonstration motion — figure node pulse */
  /* on ink grounds (v3.3.1, decision 2026-09-24 footer-ink) — text and rules on --ink only, never on paper */
  --on-ink-label:#c9c2b0;       /* decision 2026-09-24 — secondary lines on ink (9.3:1) */
  --on-ink-soft:#a39a85;        /* decision 2026-09-24 — column heads, fine print on ink (5.9:1) */
  --on-ink-rule:#3a362e;        /* decision 2026-09-24 — hairline rules on ink; never text */
  --figure-text-min:12px; /* @kind font */ /* decision 2026-09-23 — smallest text inside any figure, at every width */
  /* v3.4 — audit 2026-09-25: accessibility, roles for dark mode, and the values components still wrote as literals */
  --border-control:#8c8373;     /* audit 2026-09-25 — form control borders: 3.7:1 on surface (WCAG 1.4.11); --rule stays for hairlines */
  --lh-solid:1; /* @kind other */ --lh-tight:1.2; /* @kind other */ --lh-snug:1.35; /* @kind other */
  --lh-normal:1.5; /* @kind other */ --lh-relaxed:1.6; /* @kind other */ /* audit 2026-09-25 — the line-height scale components use */
  --motion-stagger:60ms; /* @kind other */ /* audit 2026-09-25 — rise stagger per sibling */
  --motion-fade:400ms; /* @kind other */ /* audit 2026-09-25 — label and badge fades */
  /* the dark band's glow and the scan beam: the two sanctioned effects, as tokens (audit 2026-09-25) */
  --glow-patina:rgba(34,166,149,.16); /* @kind color */
  --glow-primary:rgba(36,62,156,.55); /* @kind color */
  --scan-edge:rgba(34,166,149,0); /* @kind color */
  --scan-mid:rgba(34,166,149,.16); /* @kind color */
  --scan-core:rgba(34,166,149,.32); /* @kind color */
  /* roles (v3.4, dark mode): components read these, so a mode swaps values without touching a component */
  --ground-ink:var(--ink);      /* the ink slab: footer, "now" labels. Text on it uses --on-ink-* */
  --on-ink-text:var(--paper);   /* primary text on the ink slab */
  --band-bg:var(--primary-deep);    /* the dark band */
  --band-text:var(--surface);       /* heading and ghost action on the band */
  --band-soft:var(--primary-wash);  /* body text on the band (11.3:1) */
  --band-label:var(--on-ink-label); /* eyebrow on the band (7.4:1; patina was 4.4:1) */
  --band-action-bg:var(--paper);    /* the band's paper button */
  --band-action-text:var(--primary-deep);
}

/* v3.5 — feedback and overlays (Notice, ErrorSummary, FormStatus, Dialog). No new elevation: Dialog uses
   --elevation-overlay (none in Commercial and Print, the one flat step in Product) and is set off by the scrim. */
:root{
  --scrim:rgba(34,31,26,.55);                          /* Dialog backdrop: dims the page, never blurs it */
  --content-dialog:560px;                              /* Dialog width; the media variant widens to --content-max */
}

/* v3.15 — notebooks (decision 2026-10-08 notebooks, D-4). The bindings of the notebooks on the Lab Notes shelf, matched to the
   rendered shelf photograph (assets/photos/register.json, notebook-shelf). Names follow the notebook registry (SynSci-Curiosity
   content/notebooks.json, "binding"). A binding belongs to a notebook, the object: it is never a practice's, product's or
   sub-brand's colour anywhere else. Bindings and spine labels are physical colours, so they hold their values in dark mode, as
   photographs do. Text on a binding uses its on-colour; every pair is in check-contrast. */
:root{
  --notebook-binding-faded-green:#759175;  /* decision 2026-10-08 notebooks — faded green cloth, the three Out on a LIMS volumes; ink text */
  --notebook-binding-ultramarine:#264892;  /* decision 2026-10-08 notebooks — ultramarine blue cloth; paper text */
  --notebook-binding-rust:#9c4632;         /* decision 2026-10-08 notebooks — rust red cloth; paper text */
  --notebook-binding-teal:#2c5855;         /* decision 2026-10-08 notebooks — dark teal green cloth; paper text */
  --notebook-binding-charcoal:#494c52;     /* decision 2026-10-08 notebooks — charcoal gray cloth; paper text */
  --notebook-binding-plum:#60354b;         /* decision 2026-10-08 notebooks — methods plum cloth; paper text */
  --notebook-binding-field-yellow:#d9ab43; /* decision 2026-10-08 notebooks — field notebook yellow; ink text */
  --notebook-binding-marbled:#1e1e1f;      /* decision 2026-10-08 notebooks — bench composition book, black cloth spine; paper text */
  --notebook-on-dark:#fcfaf4;              /* decision 2026-10-08 notebooks — text on a dark binding (paper, in both modes) */
  --notebook-on-light:#221f1a;             /* decision 2026-10-08 notebooks — text on a light binding (ink, in both modes) */
  --notebook-label:#d3ccb6;                /* decision 2026-10-08 notebooks — the cream spine label as photographed; a drawn label's fill */
  --notebook-label-ink:#221f1a;            /* decision 2026-10-08 notebooks — typeset text on a spine label (10.2:1) */
  /* The shelf's states and the reading room's sheet (design critique 2026-10-08 night, DS-2 to DS-4). Dark values in mode-dark.css. */
  --notebook-edge:transparent;             /* decision 2026-10-08 notebooks, DS-3 — a binding's 1px keyline (swatch, stripe, drawn cover); drawn in dark mode only, at border-control */
  --nb-dim:color-mix(in srgb,var(--ink) 38%,transparent);   /* decision 2026-10-08 notebooks, DS-2 — the veil on every other spine while one notebook is pressed */
  --nb-lift:color-mix(in srgb,var(--surface) 18%,transparent); /* decision 2026-10-08 notebooks, DS-2 — the paper wash on a hovered or focused spine */
  --nb-margin-rule:var(--rule);            /* decision 2026-10-08 notebooks, DS-4 — the rule down an archive entry's margin; neutral, never Madder */
  --nb-sheet-graph:color-mix(in srgb,var(--primary) 7%,transparent); /* decision 2026-10-08 notebooks, DS-4 (kept 2026-10-12) — the graph lines of an archive entry's sheet */
  --nb-sheet-grid:18px; /* @kind other */ /* decision 2026-10-08 notebooks, DS-4 (kept 2026-10-12) — the sheet's graph pitch */
}
