/* infinity-tokens.css: the one token file for the Infinity app. Guide version 1.3.0, 25 October 2026 (1.1 folds in the Queues admiral tokens and rules; 1.2 the chart series of lane-data Q-D5; 1.3 Andrew's SITTING-1 rulings, W4 of 25 Oct: cards 14, the tool key 42, the theme follows the device).
   Written by the Frontend Guide lane (session local_a5b26f79) for Andrew's ruling W1 of 24 October: a new finalized
   style and design guide, merged from the Queues ux-directions path. NOT YET APPROVED: it goes to Andrew with the
   look (item 525), latest Wed 28 Oct. No em or en dashes.

   SOURCES, in order of authority (a later one fills only what an earlier one leaves open):
   1. The merged Queues look: starmynd-org/infinity-queues-sessions-design, explore/sheet-choices 806db60,
      reference-app/src/skin/tokens.css and app.css (Sheet Aurora, graphite to bronze band, round 5 keys).
   2. Andrew 24 Oct: "IBM Plex. Lock it in as the default." Rounded rows (amendment A2, pending in the blueprint guide).
   3. The blueprint style guide v1 (2026-10-14 Plans\BRAND-BLUEPRINT\STYLE-GUIDE.md) and blueprint-tokens-v0.css
      (sha256 86520687...): states as word plus shape, series, KYN good and bad, grid, focus.
   4. The approved look of 9 October and the 11 October approvals (APP-DESIGN\APPROVED-DESIGN.md): every colour
      value in section 1 below is that table's value unless a line says otherwise.

   HOW TO USE
   - Link this file first, then infinity-parts.css. Set on <html>: data-theme="light" | "dark" (no attribute: follow
     the device, which is the first open default by Andrew's ruling W4, SITTING-1 item 24), optionally data-density="compact" (Tables and dense ledgers).
   - Every colour is a light-dark() pair, so the theme is one switch: color-scheme. Nothing outside this file holds
     a colour. A screen that needs a colour this file does not name asks the Guide lane (QUESTIONS.md) instead.
   - Names are stable within a major version. A minor version (1.1, 1.2) may change values and add names, never
     remove or rename one. The Queues and Sessions UX Admiral's tokens of about Mon 26 Oct land as 1.1.
   - The names of the Queues reference app (--brandfill, --fieldb, --fin, --brk and the rest) are kept as aliases in
     section 9, so the Queues pack reads this file unchanged. */

:root { color-scheme: light dark; }
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] { color-scheme: dark; }

/* ================= 1. GROUNDS, LINES AND INK (the approved 9 Oct steel, warmed by Queues) ================= */
:root {
  --page:       light-dark(#F3F1EC, #17181A);   /* the page behind everything */
  --surface:    light-dark(#F8F6F2, #1B1C1F);   /* nav, panels, sheet heads (Queues: nothing selectable is pure white) */
  --card:       light-dark(#FDFCFA, #1F2124);   /* rows, cards, fields */
  --card-sel:   light-dark(#FDFCFA, #23252A);   /* the open card */
  --sunk:       light-dark(#E9E7E2, #111213);   /* wells, tracks, chips */
  --hover:      light-dark(#EFEDE8, #26282B);
  --sel:        light-dark(#ECEAE5, #292B2F);   /* a selected dense row's wash */
  --pressed:    light-dark(#E6E4DD, #2C2E33);
  --rule:       light-dark(#DCD9D3, #2D2F33);   /* hairlines */
  --edge:       light-dark(#C6C3BC, #3E4146);   /* card and plate edges */
  --field:      light-dark(#75726C, #85847F);   /* field and control borders (3 to 1) */
  --ink:        light-dark(#1B1C1E, #EBEAE6);
  --soft:       light-dark(#52524E, #B3B2AD);   /* secondary words */
  --faint:      light-dark(#696863, #8E8D88);   /* 4.5 to 1 on page, surface, card and sunk only; steps up to --soft on a wash */
  --focus:      light-dark(#1B1C1E, #EBEAE6);   /* focus is ink, never bronze (blueprint G2) */
  --scrim:      light-dark(rgb(23 24 27 / 0.32), rgb(0 0 0 / 0.56));
}

/* ================= 2. BRONZE: the product, in five places only ================= */
/* The mark; one main action per screen; progress; "you did this"; the open or selected row's edge. Never a
   background, panel, nav, heading, icon, border, checkbox, switch or chart. (approved look, 9 Oct, section 3) */
:root {
  --bronze:       light-dark(#8F5722, #D4A06A);  /* the main action's fill */
  --bronze-text:  light-dark(#7E4A1A, #DDB282);  /* bronze words on a light ground */
  --on-bronze:    light-dark(#FFFFFF, #2A1806);  /* words on the fill */
  --bronze-soft:  light-dark(#F5ECE1, #30281F);  /* a quiet bronze wash, for the armed quick answer and the picked key's soft look */
  --bronze-lip:   light-dark(#5E3712, #8A5A2B);  /* the solid lip under a key */
  --held-accent:  light-dark(#D4A06A, #8F5722);  /* the countdown ring on the inverted hold card */
}

/* ================= 3. STATES: a word and a shape, never colour alone ================= */
/* working ring, done filled circle, needs you filled triangle, broke cross, resting hollow square.
   State colours mean states only: never identity, a kind, a factory, "ours", a chart series or a figure below goal. */
:root {
  --run:     light-dark(#4A6C8C, #8DB1D3);  --run-bg:  light-dark(#E3EAF1, #1F2C39);  /* working: blued steel */
  --ok:      light-dark(#2C6B60, #86C9BA);  --ok-bg:   light-dark(#DDEDE9, #1A302B);  --on-ok:   light-dark(#FFFFFF, #0F2420);   /* done: patina */
  --wait:    light-dark(#7D5800, #E0B75A);  --wait-bg: light-dark(#FBEFD2, #3A2E14);  --on-wait: light-dark(#FFFFFF, #1E1604);   /* needs you: signal amber */
  --bad:     light-dark(#A3341F, #EC8A74);  --bad-bg:  light-dark(#F9E7E2, #45251E);  --on-bad:  light-dark(#FFFFFF, #2A0D06);   /* broke: red oxide. Damage only. */
  --rest:    light-dark(#8A8882, #77767A);  /* resting: quiet. A mark, not a word colour: its word stays --soft */
  --conflict-bg: light-dark(#ECE8F1, #332C3F); /* someone else already answered: the person's violet wash, no state shape */
}

/* ================= 4. PEOPLE, AGENTS AND METAL ================= */
:root {
  --his:        light-dark(#5A4B6E, #C6B8DA);   /* a person's own lines and nothing else (blueprint G3) */
  --his-bg:     light-dark(#ECE8F1, #332C3F);
  --on-his:     light-dark(#FFFFFF, #1E1828);
  --steel:      light-dark(#D3D9DF, #353C44);   /* an agent's mark (avatar, room glyph) */
  --steel-deep: light-dark(#3F4C59, #C2CCD6);   /* the letters on it */
  --held-bg:    light-dark(#1B1C1E, #EBEAE6);   /* the hold card is the page inverted, so Undo is the most visible thing */
  --held-ink:   light-dark(#F3F1EC, #17181A);
}

/* ---- 4b. Who is speaking (approved 11 Oct, second amendment; data model agent.colour). Used ONLY for a speaker's
   name, bubble border and wash in a chat, and an agent's avatar ring; always beside the name, never alone, never a
   state. Other people take blued steel; the person's own lines take violet. Four repeat from the fifth agent. ---- */
:root {
  --agent-patina: light-dark(#2C6B60, #86C9BA); --agent-patina-bg: light-dark(#E3F0ED, #1E3330);
  --agent-amber:  light-dark(#7D5800, #E0B75A); --agent-amber-bg:  light-dark(#F5EBD3, #3A3018);
  --agent-plum:   light-dark(#8A2F66, #E3A6CF); --agent-plum-bg:   light-dark(#F6E6F0, #3D2436);
  --agent-bronze: light-dark(#7E4A1A, #DDB282); --agent-bronze-bg: light-dark(#F5ECE1, #30281F);
  --other-person: light-dark(#3F5F7D, #8DB1D3); --other-person-bg: light-dark(#E3ECF4, #223244); --other-person-edge: light-dark(#4A6C8C, #8DB1D3);
  --later:        light-dark(#5A4B6E, #C6B8DA); --later-bg: light-dark(#ECE8F1, #332C3F);   /* Later, muted (button style C) */
  --rec-edge:     light-dark(#1B1C1E, #000000);   /* the recommended choice's firm border (his 11 Oct word: black in dark) */
}

/* ================= 5. THE BAND AND THE DRAFTING GRID ================= */
/* The band is decoration on four places only: the open card's top, a sheet head, the clear moment, a room card.
   It is never a state and never a fill behind words, except the picked key (section 2's main action family).
   Graphite to bronze is the default (Andrew's pick, 23 Oct). The grid sits on bands and plates only, never behind rows. */
:root {
  /* light: Andrew's pick A of 26 Oct (band-light-options.html), a thin rule of the accent; dark keeps aurora's band */
  --band: linear-gradient(var(--bronze), var(--bronze));
  --band-h: 2px;        /* the band's height on a sheet head (light 2, dark 5) */
  --band-h-card: 2px;   /* on the open card, the clear moment and a room card (light 2, dark 10) */
  --pick-fill: linear-gradient(100deg, #1B1C1E 0%, #3A3734 45%, #8F5722 100%); /* stops at deep bronze so white words keep 4.5 to 1 */
  --grid:      light-dark(rgb(27 28 30 / 0.045), rgb(235 234 230 / 0.04));
  --grid2:     light-dark(rgb(27 28 30 / 0.09),  rgb(235 234 230 / 0.08));
  --construct: light-dark(rgb(27 28 30 / 0.14),  rgb(235 234 230 / 0.12));
  --progress:  linear-gradient(90deg, light-dark(#2C6B60, #5FB09E), light-dark(#3B8576, #86C9BA)); /* done segments: patina */
  --choice-lip: light-dark(#D2BDA6, #4A3420);
  --pick-lip:   light-dark(#5E3712, #C08A55);
}
:root[data-theme="dark"] {
  --band: linear-gradient(100deg, #0A0B0C 0%, #2D2A27 40%, #8F5722 78%, #D4A06A 100%);
  --band-h: 5px; --band-h-card: 10px;
  --pick-fill: linear-gradient(100deg, #0A0B0C 0%, #2D2A27 42%, #8F5722 100%);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --band: linear-gradient(100deg, #0A0B0C 0%, #2D2A27 40%, #8F5722 78%, #D4A06A 100%);
    --band-h: 5px; --band-h-card: 10px;
    --pick-fill: linear-gradient(100deg, #0A0B0C 0%, #2D2A27 42%, #8F5722 100%);
  }
}

/* ================= 6. DATA: series, ramps, KYN good and bad (blueprint v0, unchanged) ================= */
:root {
  /* 1.2: series 1 to 3 moved into one lightness band (OKLCH L 0.44 to 0.54 light, 0.63 to 0.66 dark), lane-data Q-D5.
     Measured by tools/check-series.js: 4.0 to 1 or more on page, surface, card and sunk; words on a fill 4.95 to 1 or
     more; CIE76 28 or more from every state colour, bronze, violet and KYN good and bad; 37.5 or more apart. */
  --series-1: light-dark(#9A3483, #BF66A9);  /* magenta: "this period" */
  --series-2: light-dark(#66771A, #8D9C3B);  /* olive */
  --series-3: light-dark(#4343A8, #7A7CE3);  /* indigo */
  --series-4: light-dark(#5E5A55, #B8B3AB);  /* stone: the comparison grey (last year, target), not a categorical slot */
  --series-text: light-dark(#FFFFFF, #141518);
  --series-dash: 5 3;                        /* 1.2: members 4 to 6 reuse hues 1 to 3, dashed or hollow */
  --series-muted: var(--faint);              /* 1.2: members 7 and more fold into "the rest" */
  --seq-1: light-dark(#F1F2EE, #2B2D2C); --seq-2: light-dark(#DEE0D5, #3B3E38); --seq-3: light-dark(#C4C9B6, #505447);
  --seq-4: light-dark(#A7AE91, #686C58); --seq-5: light-dark(#89926C, #8D9372); --seq-6: light-dark(#6A7545, #ADB489);
  --seq-7: light-dark(#4F5C22, #C8D09C);
  --sem-good: light-dark(#0F6B57, #6FCDB5);  /* a sign of change, not a state; always with its + and its triangle */
  --sem-bad:  light-dark(#B2331B, #F2907A);
}

/* ================= 7. KNOWLEDGE GRAPH ================= */
/* Kinds are told apart by outline shape, never by colour (blueprint 6.6). Status is told by the stroke:
   live solid, built dashed, planned dotted (the designer pack's map). Bronze never enters a graph; the selected node
   takes an ink halo. Colour by factory uses series tints, and only when a person asks for it. */
:root {
  --kg-ground:   light-dark(#F8F6F2, #141517);   /* the plate the graph sits on */
  --kg-node:     light-dark(#FDFCFA, #1F2124);   /* node fill: paper */
  --kg-line:     light-dark(#1B1C1E, #EBEAE6);   /* node outline and labels */
  --kg-edge:     light-dark(#B9B5AD, #4A4D52);   /* a link at rest */
  --kg-edge-hi:  light-dark(#52524E, #B3B2AD);   /* a link of the focused node */
  --kg-dim:      0.2;                            /* dimmed means 20 percent and no name, never a colour */
  --kg-dash-built:   4 2.5;
  --kg-dash-planned: 1.5 2.5;
  --kg-label: 11px;
}

/* ================= 8. TYPE, SPACE, SHAPE, DEPTH, MOTION, LAYOUT ================= */
:root {
  /* IBM Plex (Andrew, 24 Oct). Self hosted before go live (his ruling W4, SITTING-1 item 19): the build ships the
     faces with the app and makes no font call to a third party; mockups may still load them from Google Fonts.
     Sans for words, Condensed 600 for display, Mono for ids, counts, keys and code only. */
  --font:    "IBM Plex Sans", "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, sans-serif;
  --display: "IBM Plex Sans Condensed", "IBM Plex Sans", system-ui, sans-serif;
  --mono:    "IBM Plex Mono", "Cascadia Mono", ui-monospace, Consolas, monospace;
  --track: -0.01em;
  /* the scale: 12, 13, 15, 18, 24, and two display sizes (page title 40, the clear moment and a sheet head 44) */
  --t-12: 12px; --t-13: 13px; --t-15: 15px; --t-18: 18px; --t-24: 24px; --t-display: 40px; --t-hero: 44px; --t-phone-display: 32px;
  --w-text: 400; --w-label: 500; --w-strong: 600; --w-key: 700;   /* 700 is the main key's label only */
  --lh-text: 1.5; --lh-tight: 1.2;

  /* space: the 8 module (4 for an inset, 2 for a hair) */
  --s-0: 2px; --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px;

  /* shape: rounded rows (amendment A2). Plates, sheet heads and title blocks stay square. */
  --r-control: 6px;    /* buttons, fields, segmented controls' inner (blueprint G6) */
  --r-row: 10px;       /* list rows, mini rows, banners, notes */
  --r-card: 14px;      /* the open card, panels that float, the room card, the plate around a dense grid (1.3: 14 by his ruling W4, SITTING-1 item 22; was 12) */
  --r-key: 22px;       /* choice keys and tiles (round 5, his "more rounded corners") */
  --r-go: 8px;         /* the main key (Queues --go-radius) */
  --r-pill: 999px;     /* counts, chips, segmented outer, badges */
  --r-plate: 0px;      /* sheet heads, title blocks, graph plates */

  /* strokes */
  --stroke-hair: 1px; --stroke-edge: 1.5px; --stroke-focus: 2px; --offset-focus: 2px;

  /* depth: a lip under what you press, one soft shadow under the open card */
  --lip-go: 6px; --lip-key: 5px; --lip-btn: 3px;
  --shadow-card: 0 2px 0 light-dark(#DCD9D3, #0B0C0D), 0 22px 50px light-dark(rgb(40 30 20 / 0.10), rgb(0 0 0 / 0.45));
  --shadow-pop:  0 8px 24px light-dark(rgb(20 20 20 / 0.12), rgb(0 0 0 / 0.5));
  --btn-lip-2nd: 0 3px 0 light-dark(#D3CFC7, #0B0C0D);

  /* motion: felt under 100 ms, settled by 300, never blocks input, none under reduced motion */
  --m-press: 70ms; --m-quick: 150ms; --m-open: 220ms; --m-settle: 300ms; --m-fill: 350ms;
  --ease-out: cubic-bezier(.2, .8, .2, 1); --ease-settle: cubic-bezier(.2, .9, .3, 1.2);
  --hold-seconds: 20;   /* the answer hold before it is recorded */

  /* layout */
  --nav-w: 248px; --panel-w: 420px; --rail-w: 340px; --stage-max: 780px; --thread-max: 720px; --rooms-w: 300px;
  --row-dense: 32px; --row-comfort: 60px; --touch: 44px; --touch-main: 56px;
  --go-h: 64px; --go-min: 260px;
  --go-h-tool: 42px; --lip-tool: 4px;   /* 1.3: the main key in a dense tool screen's toolbar (his ruling W4, SITTING-1 item 28) */
  --btn-h: 42px; --btn-h-pri: 58px; --btn-h-small: 30px;
  --gutter: 28px; --gutter-phone: 16px; --tabbar-h: 64px;
  --phone-max: 767px;   /* below 768 is the phone layout; media queries cannot read a variable, so write 767px */
}
:root[data-density="compact"] { --row-comfort: 44px; --gutter: 20px; --t-15: 14px; }

/* ================= 9. ALIASES: the Queues reference app's names (read only; new code uses the names above) ======= */
:root {
  --fieldb: var(--field); --brandfill: var(--bronze); --brandtext: var(--bronze-text); --onbrand: var(--on-bronze);
  --brandsoft: var(--bronze-soft); --go-lip: var(--bronze-lip);
  --fin: var(--ok); --finbg: var(--ok-bg); --onfin: var(--on-ok);
  --waitbg: var(--wait-bg); --onwait: var(--on-wait);
  --brk: var(--bad); --rejbg: var(--bad-bg); --onbrk: var(--on-bad);
  --runbg: var(--run-bg); --viobg: var(--conflict-bg); --vio: var(--his);
  --aurora: var(--band); --grad: var(--progress); --grid-line: var(--grid); --grid-line2: var(--grid2);
  --stw: var(--card); --card-shadow: var(--shadow-card); --radius: var(--r-control); --btn-radius: var(--r-control);
  --row-radius: var(--r-row); --row-radius-s: var(--r-row); --card-radius: var(--r-card);
  /* blueprint v0 names */
  --paper: var(--card); --line: var(--ink); --quiet: var(--rest); --accent: var(--bronze); --on-accent: var(--on-bronze);
  --accent-ink: var(--bronze-text); --accent-wash: var(--bronze-soft);
}

/* ================= 10. STARMYND: the "starmynd" token group (StarMynd skies, shared by M1 and B4) ================= */
/* Folded in 2026-10-26 by designer D3 on the Design admiral's ask, from D2's data-automations\starmynd-tokens.css (which merged
   D3's tokens-starmynd.css): the blueprint guide's palette D (whiteprint by day, cyanotype by night) and StarMynd's site blue
   scale (internal\starmynd-compp	okens.css, read only). The .starmynd surface class and the .sm-badge part stay in D2's file.
   Rules (STYLE-GUIDE.md 2, 7): the Infinity loop never inside StarMynd styling, the north star never inside Infinity's. */
:root {
  --sm-page:       light-dark(#EEF3F8, #0D2238);   /* whiteprint / cyanotype */
  --sm-paper:      light-dark(#F8FAFC, #102A45);
  --sm-head:       light-dark(#E8EFF6, #143456);
  --sm-sunk:       light-dark(#E8EFF6, #0B1D30);
  --sm-rule:       light-dark(#CBD9E6, #21436A);
  --sm-edge:       light-dark(#B4C6DA, #2E5580);
  --sm-ink:        light-dark(#0C2340, #E2ECF5);
  --sm-line:       light-dark(#1D4A73, #E2ECF5);
  --sm-soft:       light-dark(#34507A, #A7C1D8);
  --sm-faint:      light-dark(#4D6E91, #86A4BF);
  --sm-grid:       light-dark(rgb(29 74 115 / 0.06), rgb(226 236 245 / 0.045));
  --sm-grid2:      light-dark(rgb(29 74 115 / 0.12), rgb(226 236 245 / 0.09));
  --sm-orbit:      light-dark(rgb(29 74 115 / 0.34), rgb(226 236 245 / 0.30));   /* a link at rest: a faint line */
  --sm-accent:     light-dark(#1E5BC6, #6EAAFF);   /* StarMynd blue: links, the selected edge, the main key */
  --sm-on-accent:  light-dark(#FFFFFF, #081626);
  --sm-accent-ink: light-dark(#1E5BC6, #8CBCFF);
  --sm-wash:       light-dark(#E6EFFD, #14264A);
  --sm-lip:        light-dark(#123F8E, #3D78CC);
  --sm-tile:       #0C2340;                        /* the navy tile under the north star, both modes */
  --sm-star:       #EAF2FB;                        /* the north star and its band on the tile */
  /* merged with D3's tokens-starmynd.css (the StarMynd site scale, internal/starmynd-com/app/tokens.css, read only), so
     D3's space-graph.css reads this one group; --sm-page stays the guide's whiteprint and cyanotype pair */
  --sm-blue-100: #E3EDFF; --sm-blue-300: #A9C7FF; --sm-blue-400: #7AA4F2; --sm-blue-500: #5B8DEF; --sm-blue-700: #3F6FD0;
  --sm-orbit-dark: #3F5F9A; --sm-orbit-light: #A9B9D6; --sm-ink-deep: #1D3F7A;
  --sm-band: linear-gradient(100deg, #0C2340 0%, #143456 45%, #3D78CC 80%, #8CBCFF 100%);   /* the light band */
}
