/* styles/variables.css — design tokens, TWO layers (see ARCHITECTURE).
   Layer 1: raw PRIMITIVES (palette, grades, scale) — components never touch these.
   Layer 2: SEMANTIC aliases that point at primitives — components use ONLY these.

   This is the "Sourdough" theme (docs/DESIGN-SYSTEM.md): monochrome
   e-ink / Swiss-editorial. The whole re-skin is done HERE — every existing
   component restyles because it only ever read the Layer-2 aliases. */

/* FLAVORS (the `data-theme` axis) live as reference files under themes/ — each a pure token
   override; see themes/_template.css to add one. Imported here (imports must precede all other
   rules, so before @font-face) so the ONE stylesheet every page + the catalog already loads
   carries them. The flavor selectors out-specify :root, so import order doesn't affect cascade.
   Sourdough is the hueless :root default below and needs no file. */
/* ---- Redaction grades, self-hosted (docs/DESIGN-SYSTEM.md §3) ----------------
   Each grade is its OWN family, so switching grade = swapping family (a class
   change), which is how "grade as signal" works. */
@font-face {
  font-family: "Redaction"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("data:font/woff2;base64,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") format("woff2");
}
@font-face {
  font-family: "Redaction 35"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("data:font/woff2;base64,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") format("woff2");
}
@font-face {
  font-family: "Redaction 50"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("data:font/woff2;base64,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") format("woff2");
}
@font-face {
  font-family: "Redaction 70"; font-style: normal; font-weight: 400; font-display: swap;
  src: url("data:font/woff2;base64,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") format("woff2");
}

:root {
  /* ---- Layer 1: primitives ------------------------------------------------ */

  /* monochrome paper + ink — six values do everything (DESIGN-SYSTEM §2) */
  --paper:     #E2E0D8;            /* page background — dimmed warm grey, NOT bright */
  --paper-2:   #E8E6DF;            /* subtle hover surface */
  --panel:     #E8E6DF;            /* grouped "sheet" — a hair brighter than the page */
  --ink:       #1C1B17;            /* primary text, filled dots, rules */
  --ink-muted: #6E6C64;            /* secondary text, section labels */
  --ink-faint: #ABA89F;            /* fading insights, empty/future dots */
  --hairline:  #1C1B17;            /* solid rules (under headlines) */
  --line-soft: rgba(28, 27, 23, .14);  /* translucent border for quiet grouping */

  /* grade font families (clean = human, grain = AI / in-transit). Grain is grade 50 —
     one step up from the 35 working grade for more visible texture. */
  --font-smooth: "Redaction",    "Times New Roman", Georgia, serif;
  --font-grain:  "Redaction 50", "Redaction 35", "Times New Roman", Georgia, serif;
  --font-accent: "Redaction 70", "Times New Roman", Georgia, serif;
  /* the FINE grain face — grade 35 only, skipping the rougher 50. Grade texture only reads as
     texture (not noise) at >= --text-2xl (CLAUDE.md lesson 4); a component that must show the
     AI-grain signal in small text (a chat bubble, --text-sm) reads this instead of --font-grain so
     the "AI wrote this" cue survives without Redaction 50's rough strokes collapsing into mush at
     14px. Still a Redaction face, still visibly not --font-smooth — the signal doesn't disappear,
     it just doesn't demonstrate the roughest texture where it can't read anyway. */
  --font-grain-fine: "Redaction 35", "Times New Roman", Georgia, serif;

  /* monospace — code blocks / inline code (grade-independent: code stays mono, the AI
     signal for code is the dashed edge, not a font swap). System stack, nothing to host. */
  --font-mono: ui-monospace, "SF Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;

  --font-weight-regular: 400;      /* house weight — even for headlines */
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;         /* reserved for rare extra punch */

  /* type scale (mobile-first, rem @ 16px) — fluid display via clamp */
  --text-xs:  0.8125rem;  /* 13px caption */
  --text-sm:  0.875rem;   /* 14px label / eyebrow */
  --text-base: 0.9375rem; /* 15px body */
  --text-lg:  1.05rem;
  --text-xl:  1.3rem;     /* section heading */
  --text-2xl: 1.6rem;
  --text-3xl: 2.25rem;
  --display:  clamp(2rem, 6vw, 2.75rem);   /* the masthead headline */

  --leading-tight: 1.02;   /* display */
  --leading-normal: 1.5;
  --leading-relaxed: 1.55; /* body */

  /* spacing — 4px base scale */
  --space-1: 0.25rem;  --space-2: 0.5rem;  --space-3: 0.75rem;
  --space-4: 1rem;     --space-5: 1.25rem; --space-6: 1.5rem;
  --space-8: 2rem;

  /* radius — crisp, almost square (DESIGN-SYSTEM §4) */
  --radius-sm: 4px;
  --radius-md: 4px;
  --radius-pill: 2px;    /* badges are near-rectangular here, not pills */

  /* rules */
  --rule:   1.5px solid var(--hairline);   /* under-headline rule */
  --border: 1px solid var(--hairline);     /* buttons, hard edges you tap */

  --content-max: 768px;
  --page-pad: clamp(1.25rem, 5vw, 2.5rem);

  /* ---- Layer 2: semantic aliases (the only tokens components touch) -------
     Re-pointed at the monochrome primitives. Because components read these and
     never the primitives, the whole app re-themes from the lines below. */

  /* surfaces & text */
  --color-bg: var(--paper);
  --color-surface: var(--panel);
  --color-fg: var(--ink);
  --color-muted: var(--ink-muted);
  --color-line: var(--line-soft);

  /* ACCENT — the ONE signature hue (doctrine: "full reach, single hue"). This is the single
     brand knob a theme/product sets. REACH is full — links, focus rings, ::selection, and the
     primary button fill all point here. COUNT is one — the palette stays CLOSED: exactly one
     accent, and success/danger NEVER get their own hue (below). The default (Sourdough) keeps
     it HUELESS by setting it to ink, so nothing gains colour except a subtle ink ::selection.
     An accented theme (Baguette, Brioche) overrides just these four. See DESIGN-SYSTEM.md §2. */
  --color-accent: var(--ink);              /* hueless default — a flavor overrides to its one hue */
  --color-accent-hover: var(--ink);
  --color-accent-contrast: var(--paper);
  --color-accent-soft: var(--paper-2);

  /* "primary" now chains to the accent (was hardcoded ink) — so the primary button fill follows
     the one brand hue automatically; hueless by default because accent = ink. */
  --color-primary: var(--color-accent);
  --color-primary-hover: var(--color-accent-hover);
  --color-primary-contrast: var(--color-accent-contrast);
  --color-primary-soft: var(--color-accent-soft);

  /* success / danger collapse to ink in monochrome — signalled by weight/treatment,
     not hue (DESIGN-SYSTEM §2: states from opacity + size, palette stays closed —
     the ONE hue is the accent above; states never get their own) */
  --color-success: var(--ink);
  --color-success-hover: var(--ink);
  --color-success-contrast: var(--paper);
  --color-success-soft: var(--paper-2);
  --color-danger: var(--ink);
  --color-danger-hover: var(--ink);
  --color-danger-contrast: var(--paper);
  --color-danger-soft: var(--paper-2);

  /* status badge */
  --color-ok-bg: transparent;
  --color-ok-fg: var(--ink);
  --color-archived-bg: transparent;
  --color-archived-fg: var(--ink-muted);

  /* the inheritable grade switch — DESIGN-SYSTEM §3 "As an atom".
     Default = human/clean; ancestors flip it; CSS inheritance distributes it. */
  --type-font: var(--font-smooth);

  /* base font shorthand */
  --font-base: var(--text-base)/var(--leading-relaxed) var(--type-font);

  /* AI spotlight veil (GRAIN) — set ONCE here so every page fades the same way.
     Pick ONE (CSS comments don't nest — keep exactly one line uncommented): */
  --ai-veil-alpha: 22%;   /* tweak this one number to change the dim depth everywhere */
  --ai-veil: color-mix(in srgb, var(--ink) var(--ai-veil-alpha), transparent);   /* dim: gentle ink recede */
  /* --ai-veil: color-mix(in srgb, var(--paper) 70%, transparent); */ /* wash: bleach toward blank paper */
  /* --ai-veil: transparent; */                                      /* lift: no veil, the element pops alone */

  /* how slowly the spotlight box glides onto the next surface when the AI switches focus,
     and its easing — gentle like a page transition (soft start, soft landing), never a snap.
     Keep the duration ≤ the reasoner's SETTLE_MS (700ms) so the box lands before it acts. */
  --ai-focus-move: 0.65s;
  --ai-focus-ease: ease-in-out;

  /* AI takeover STACKING — one source of truth so the AI module (grain/ai/ai.css) and any
     consumer chrome (e.g. the app's portfolio-frame console/chat) agree without duplicating
     magic z-index numbers. veil < spotlit surface < the AI surfaces that stay above the veil. */
  --z-ai-veil: 9000;      /* the dimming backdrop */
  --z-ai-spot: 9001;      /* the spotlit surface, lifted out of the dim */
  --z-ai-surface: 9002;   /* AI surfaces kept above the veil (acting label, console, chat) */

  /* paper grain SVG overlay opacity (DESIGN-SYSTEM §6) — override in dark mode to reduce contrast */
  --paper-grain-opacity: 0.09;
}

/* ============================================================================================
   THEMING — two ORTHOGONAL axes, both pure TOKEN re-skins (the whole point of the two-layer
   system): only Layer-1 PRIMITIVES flip; Layer-2 aliases point at them, so every component
   re-colours with ZERO edits. See grain/README.md §4 + §6 (consumer guide).
     • `data-color-scheme` = light | dark   (follows the OS; force it on <html> to override)
     • `data-theme`        = the FLAVOR      (default = Sourdough via :root; add bread varieties)
   They compose: any flavor in either scheme. `grain/scripts/theme.js` sets both on <html> (persisted).
   ============================================================================================ */

/* ---- Color scheme: dark (flavor-agnostic — applies to whatever flavor is active). Warm+soft,
   no pure black/white, to keep the e-ink feel. Auto by OS unless forced light. ---- */
@media (prefers-color-scheme: dark) {
  :root:not([data-color-scheme="light"]) {
    --paper: #1B1A16; --paper-2: #232219; --panel: #232219;
    --ink: #E4E1D8; --ink-muted: #9A968B; --ink-faint: #6B6862;
    --hairline: #E4E1D8; --line-soft: rgba(228, 225, 216, 0.16);
    --ai-veil: color-mix(in srgb, #000 50%, transparent);   /* dark: dimming darkens further */
    --paper-grain-opacity: 0.04;
  }
}
:root[data-color-scheme="dark"] {
  --paper: #1B1A16; --paper-2: #232219; --panel: #232219;
  --ink: #E4E1D8; --ink-muted: #9A968B; --ink-faint: #6B6862;
  --hairline: #E4E1D8; --line-soft: rgba(228, 225, 216, 0.16);
  --ai-veil: color-mix(in srgb, #000 50%, transparent);
  --paper-grain-opacity: 0.04;
}

/* ============================================================================================
   FLAVORS (`data-theme`) — bread varieties, each a pure token override (light + composed dark).
   Sourdough is the :root default above (hueless). The accented flavors now live as reference
   files under themes/ (Baguette, Brioche) — @imported at the top of this file. An accented flavor
   overrides the four --color-accent slots with its ONE signature hue; success/danger stay
   monochrome (doctrine above). The flavor+dark selector (0,3,0) outranks the plain dark block
   (0,2,0), so it wins in dark mode. `theme.js` switches any value; add a variety by copying
   themes/_template.css. See grain/README §4/§6 + DESIGN-SYSTEM §2.
   ============================================================================================ */

/* grain/styles/global.css — GRAIN's base/skin: reset, paper, base layout, masthead.
   The grade-as-signal MECHANISM is the sibling grain.css; the token VALUES live in
   variables.css. The three are linked together as GRAIN's default theme. */

/* Cross-document (MPA) view transitions: a slow fade fits e-ink; bouncy easing
   would break the spell (DESIGN-SYSTEM §6). */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 0.3s; }

* { box-sizing: border-box; }

/* Smooth programmatic scrolling owned by CSS in ONE place — the AI spotlight just calls
   scrollIntoview() with no behavior, and this decides (honoring reduced-motion). */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font: var(--font-base);
  color: var(--color-fg);
  background: var(--paper);
  margin: 0;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---- Paper grain (DESIGN-SYSTEM §6): one fixed full-screen SVG turbulence layer,
   multiply-blended so it darkens the surface like fibre. Covers everything. */
body::before {
  content: "";
  position: fixed; inset: 0; z-index: 9999;
  pointer-events: none;
  mix-blend-mode: multiply;
  opacity: var(--paper-grain-opacity);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- Layout: one left-aligned column, generous air (DESIGN-SYSTEM §4/§7) ---- */
.container { max-width: var(--content-max); margin: var(--space-8) auto; padding: 0 var(--page-pad); }
/* .board is the SAME reading-column treatment as .container, for content composed inside the
   app-shell's __main pane (portfolio pages + MILL-rendered docs/notes — content.ts, mill/serve.ts).
   Kept as a separate name (not a .container alias) since it lives inside a shell pane, not a bare
   page body — but must carry the identical padding, or MILL content renders flush to the edge. */
.board { max-width: var(--content-max); margin: var(--space-8) auto; padding: 0 var(--page-pad); }
h1, h2, h3 { font-weight: var(--font-weight-regular); letter-spacing: -0.01em; text-wrap: balance; }
p { margin: 0 0 var(--space-4); text-wrap: pretty; }   /* no orphans/ragged breaks — no JS */

/* ---- Masthead (DESIGN-SYSTEM §5): eyebrow → display headline → hairline rule -- */
.eyebrow { font-size: var(--text-sm); color: var(--color-fg); margin: 0 0 var(--space-2); }
.eyebrow .name { text-decoration: underline; }
.masthead { font-size: var(--display); line-height: var(--leading-tight); letter-spacing: -0.01em; margin: 0 0 var(--space-3); }
.rule { border: 0; border-bottom: var(--rule); margin: 0 0 var(--space-6); }

/* ---- Section header: label left, underlined action right -------------------- */
.section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  font-size: var(--text-xl); margin: var(--space-8) 0 var(--space-3);
}
.section-head .action { font-size: var(--text-sm); }

/* ---- Links: always underlined; the underline IS the affordance. Colour = the ONE accent
   (hueless by default: accent = ink); an accented theme tints links with its signature hue. --- */
a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 2px; }

/* ::selection — part of the accent's "full reach", kept SUBTLE: a low-alpha wash of the one accent
   (text keeps its own colour, stays readable). Hueless by default (accent = ink → a quiet grey
   tint); an accented theme tints the selection with its signature hue. */
::selection { background: color-mix(in srgb, var(--color-accent) 22%, transparent); }

/* :focus-visible — the last of the accent's "full reach": keyboard focus draws a ring in the ONE
   accent (hueless by default: accent = ink → an ink ring; an accented theme tints it with its
   signature hue). Keyed off :focus-visible so pointer clicks stay quiet — only keyboard/AT users
   see it. offset keeps it clear of the element's own edge/underline. */
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

/* form layout helper — a native <form> composed of atomic fields on a page */
.add-form { display: flex; gap: var(--space-2); align-items: flex-end; margin-bottom: var(--space-6); }

.muted { color: var(--color-muted); font-size: var(--text-sm); line-height: var(--leading-normal); }
.error { color: var(--color-fg); text-decoration: underline; }   /* monochrome: no red */

/* grain/styles/grain.css — GRAIN's grade-as-signal MECHANISM (the inherited --type-font
   switch + caret/settle). Reads token slots from variables.css (the default theme).
   One of GRAIN's three page-level stylesheets, all LINKED (not bundled): variables.css
   (tokens) → global.css (base/skin) → grain.css (this, the grade mechanism). The "AI is
   acting" spotlight lives separately in the optional AI module, grain/ai/ai.css. */

/* ---- The typography atom: one inherited switch (DESIGN-SYSTEM §3) -----------
   Every type primitive reads --type-font and knows nothing about grades. State
   lives on ancestors; CSS inheritance distributes it. */
.t, h1, h2, h3, h4, h5, h6, p, li, label, button, input, textarea, a {
  font-family: var(--type-font);
}
.is-ai,    [data-grade="grain"]  { --type-font: var(--font-grain); }
.is-human, [data-grade="smooth"] { --type-font: var(--font-smooth); }
[data-grade="accent"]            { --type-font: var(--font-accent); }
/* An element that CARRIES a grade also renders in it — not only its covered descendants. So
   data-grade works on any element (a bare <span>, a <div>), not just .t/p/li/h*. Children still
   inherit and covered primitives still re-read --type-font, so nested grades keep working. */
[data-grade] { font-family: var(--type-font); }

/* a field is "yours, right now": draft (grain) at rest, clean while editing */
.field              { --type-font: var(--font-grain); }
.field:focus-within { --type-font: var(--font-smooth); }

/* commit state == grade: anything the single writer hasn't committed reads grain
   (in-transit), settling to clean on commit (AI-INTERFACE §5). */
[data-commit="pending"] { --type-font: var(--font-grain); }

/* ---- AI text + streaming (DESIGN-SYSTEM §3 "Typing / streaming") ------------- */
.ai-text { color: var(--color-fg); }
.caret {
  display: inline-block; width: 0.5ch; margin-left: 1px;
  border-right: 2px solid var(--color-fg);
  animation: caret-blink 1s steps(1) infinite;
}
@keyframes caret-blink { 50% { opacity: 0; } }
.settled { animation: settle 0.5s ease both; }   /* "fax developing into a clean page" */
@keyframes settle { from { opacity: 0.55; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  .caret { animation: none; }
  .settled { animation: none; }
}

/* NOTE: the "AI is acting" spotlight (dim/spotlit/label/confirm) is NOT here — it's in
   the optional AI module, grain/ai/ai.css. This stylesheet is the design-system grade
   mechanism alone, usable with no AI interface at all. */

/* grain/styles/themes/brioche.css — a GRAIN flavor (see _template.css for the pattern).
   Brioche — warm cream + honey-gold accent (the one colorful theme). A pure token override on
   the `data-theme="brioche"` axis; success/danger stay monochrome (the one-hue doctrine —
   DESIGN-SYSTEM §2). Loaded via @import from variables.css; the flavor selectors out-specify
   :root, so cascade order is irrelevant. */
:root[data-theme="brioche"] {
  --paper: #F5EEDD; --paper-2: #FBF5E7; --panel: #FFFDF6;
  --ink: #2C2416; --ink-muted: #6E6249; --ink-faint: #B9AC8E;
  --hairline: #2C2416; --line-soft: rgba(44, 36, 22, 0.14);
  --color-accent: #B77F1E; --color-accent-hover: #9A6A16;
  --color-accent-contrast: #FFFFFF; --color-accent-soft: #F3E7CC;
}
@media (prefers-color-scheme: dark) {
  :root[data-theme="brioche"]:not([data-color-scheme="light"]) {
    --paper: #1D180F; --paper-2: #262016; --panel: #262016;
    --ink: #EFE6D2; --ink-muted: #9C907A; --ink-faint: #6A6152;
    --hairline: #EFE6D2; --line-soft: rgba(239, 230, 210, 0.16);
    --color-accent: #E3B457; --color-accent-hover: #EEC777;
    --color-accent-contrast: #1D180F; --color-accent-soft: rgba(227, 180, 87, 0.16);
    --ai-veil: color-mix(in srgb, #000 50%, transparent);
  }
}
:root[data-theme="brioche"][data-color-scheme="dark"] {
  --paper: #1D180F; --paper-2: #262016; --panel: #262016;
  --ink: #EFE6D2; --ink-muted: #9C907A; --ink-faint: #6A6152;
  --hairline: #EFE6D2; --line-soft: rgba(239, 230, 210, 0.16);
  --color-accent: #E3B457; --color-accent-hover: #EEC777;
  --color-accent-contrast: #1D180F; --color-accent-soft: rgba(227, 180, 87, 0.16);
  --ai-veil: color-mix(in srgb, #000 50%, transparent);
}

/* atoms/b-badge — one class; tone via attribute. Monochrome: a hairline tag, no
   fill, no pill. State is carried by ink vs muted, not by hue (DESIGN-SYSTEM §2). */
.badge {
  font-size: var(--text-xs); padding: 0 var(--space-2);
  border: 1px solid var(--line-soft); border-radius: var(--radius-pill);
  background: transparent;
}
.badge[data-status="active"]   { color: var(--ink); border-color: var(--ink); }
.badge[data-status="archived"] { color: var(--ink-faint); }

/* ---- AI / in-transit: the non-text grain. A badge the AI is setting (live pending, or
   any grain ancestor) wears the dashed "terminal" edge; the label already swaps to the
   grain family via --type-font. Same vocabulary as the button + field. */
.badge[data-commit="pending"],
[data-grade="grain"] .badge { border-style: dashed; border-color: var(--ink); }

/* atoms/b-button — the button, ONE class: .btn. Variants are ATTRIBUTES, not
   extra classes (vanilla CSS, no utility soup). The component owns its styling.
   Accent is three CSS vars scoped to .btn; a status attribute repoints them, so
   every variant inherits the new color for free.
   Each pseudo-state has a parallel data-force value so the catalog can show it
   statically (e.g. .btn:hover AND .btn[data-force~="hover"]). */

.btn {
  /* accent token set — [data-status] overrides these */
  --btn-accent: var(--color-primary);
  --btn-accent-hover: var(--color-primary-hover);
  --btn-accent-contrast: var(--color-primary-contrast);
  --btn-accent-soft: var(--color-primary-soft);

  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--space-2);
  font-family: var(--type-font);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-sm);
  letter-spacing: 0.08em; text-transform: uppercase;   /* DESIGN-SYSTEM §3 button label */
  line-height: var(--leading-normal);
  min-height: 2.75rem;                    /* ≥44px touch target (DESIGN-SYSTEM §7) */
  padding: var(--space-2) var(--space-4);
  border: var(--border);                  /* ink hairline — no fill, no shadow */
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background-color 0.15s, color 0.15s;

  /* default = transparent fill, ink border + label (DESIGN-SYSTEM §5 Buttons) */
  background: transparent;
  color: var(--ink);
}

/* ---- sizes (attribute) ---- */
.btn[data-size="sm"] { min-height: 0; padding: var(--space-1) var(--space-3); font-size: var(--text-xs); }
.btn[data-size="lg"] { padding: var(--space-3) var(--space-5); font-size: var(--text-base); }
/* On a phone the small button's dense min-height:0 lands ~30px - below the touch
   target floor (DESIGN-SYSTEM §7). Restore a comfortable tap size at the narrow
   breakpoint without fattening the dense desktop rows. */
@media (max-width: 768px) { .btn[data-size="sm"] { min-height: 2.5rem; } }

/* ---- variants (attribute). Monochrome: the difference is fill, not hue ---- */
.btn[data-variant="soft"]    { background: var(--paper-2); }
.btn[data-variant="outline"] { background: transparent; }   /* already the default look */

/* ---- status (attribute): repoint the accent token set ---- */
.btn[data-status="success"] {
  --btn-accent: var(--color-success); --btn-accent-hover: var(--color-success-hover);
  --btn-accent-contrast: var(--color-success-contrast); --btn-accent-soft: var(--color-success-soft);
}
.btn[data-status="danger"] {
  --btn-accent: var(--color-danger); --btn-accent-hover: var(--color-danger-hover);
  --btn-accent-contrast: var(--color-danger-contrast); --btn-accent-soft: var(--color-danger-soft);
}

/* ---- pseudo-states. Hover = a quiet ink WASH (DESIGN-SYSTEM §5), never an invert and
   never a new hue — the full ink-fill invert read as a loud accent block and revealed the
   corner radius on otherwise-flat buttons (regression, 2026-07-04). ---- */
.btn:hover, .btn[data-force~="hover"] { background: color-mix(in srgb, var(--ink) 8%, transparent); }

.btn:focus-visible, .btn[data-force~="focus"] { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.btn:active,        .btn[data-force~="active"] { transform: translateY(1px); }

.btn:disabled, .btn[disabled] { opacity: 0.5; cursor: not-allowed; pointer-events: none; }

/* ---- AI / in-transit: the non-text grain (grade = commit state, AI-INTERFACE §5).
   Same idea as the text grain, expressed for a button: the label already swaps to the
   Redaction grain family via the inherited --type-font; here we add the "retro terminal"
   edge — a dashed border + a blinking block caret — that says "machine-made, not settled".
   Keyed off the button's own pending state OR any grain ancestor (e.g. the catalog toggle). */
.btn[data-commit="pending"],
.btn[data-grade="grain"],
[data-grade="grain"] .btn {
  border-style: dashed;          /* a control the AI is using — terminal edge + grain label */
  pointer-events: none;          /* one intent at a time while the writer works */
}
/* processing indicator: a blinking block caret after the label = "this control is
   working". A flex item (the button is inline-flex) so it sits to the RIGHT of the
   label, vertically centred — not absolutely positioned (that was the old top-left bug,
   a collision with the spotlight pulse, which now lives on ::before). */
.btn[data-commit="pending"]::after {
  content: ""; align-self: center;
  width: 0.5ch; height: 1.05em; margin-left: 0.45ch;
  background: currentColor;
  animation: caret-blink 1s steps(1) infinite;   /* keyframes in grain/styles/grain.css */
}
@media (prefers-reduced-motion: reduce) { .btn[data-commit="pending"]::after { animation: none; } }

/* atoms/b-icon — a monochrome line glyph. Inherits color (currentColor) so it flips
   ink↔grain with whatever it sits in; sized in rem so it scales with the layout, not
   a fixed pixel. One class (.icon); size is an attribute (DESIGN-SYSTEM §4). */
.icon {
  display: inline-block; flex: 0 0 auto; vertical-align: middle;
  width: 1.25rem; height: 1.25rem;   /* default */
  color: currentColor;               /* the sprite's stroke reads this */
}
.icon[data-size="sm"] { width: 1rem;   height: 1rem; }
.icon[data-size="lg"] { width: 1.5rem; height: 1.5rem; }

/* atoms/b-input — one class per element (BEM, component-scoped).
   Variants are attributes, same pattern as the button. */
.field { display: flex; flex-direction: column; gap: var(--space-1); flex: 1; }
.field__label { font-size: var(--text-sm); color: var(--color-muted); }
.field__input {
  padding: var(--space-2) var(--space-3);
  font-family: var(--type-font); font-size: var(--text-base);
  color: var(--ink); background: transparent;
  border: var(--border); border-radius: var(--radius-sm);   /* hard edge — you tap it */
}
.field__input::placeholder { color: var(--ink-faint); }
/* focus ring; data-force parallel lets the catalog show the state statically (same pattern as
   the button) — never `autofocus`, which would steal focus + scroll the catalog on load. */
.field__input:focus-visible, .field__input[data-force~="focus"] { outline: 2px solid var(--color-accent); outline-offset: 1px; }

/* invalid state — native, no JS. Monochrome: a heavier rule, not a red one. */
.field__input:user-invalid { border-width: 2px; }

/* ---- variants (attribute) ---- */
.field[data-variant="inline"] { flex-direction: row; align-items: center; gap: var(--space-3); }
.field[data-variant="inline"] .field__label { flex: 0 0 auto; }

/* ---- sizes (attribute) ---- */
.field[data-size="sm"] .field__input { padding: var(--space-1) var(--space-2); font-size: var(--text-sm); }
.field[data-size="lg"] .field__input { padding: var(--space-3) var(--space-4); font-size: var(--text-lg); }

/* ---- AI / in-transit: the non-text grain, same language as the button (AI-INTERFACE §5).
   A field the AI is touching (live pending, or any grain ancestor) wears the dashed
   "terminal" edge; the label + value already swap to the grain family via --type-font.
   EXCEPTION: while the AI is actively COMPOSING, the dispatcher sets data-grade="smooth"
   on the input itself (clean ink, real caret, like a human typing) — so that stays solid.
   The `:not([data-grade="smooth"])` guard makes the exception explicit: a self-smooth input
   never matches the dashed rule, so the outcome doesn't depend on stylesheet source order. */
.field[data-commit="pending"] .field__input:not([data-grade="smooth"]),
[data-grade="grain"] .field__input:not([data-grade="smooth"]) { border-style: dashed; }
.field__input[data-grade="smooth"] { border-style: solid; }

/* atoms/b-kbd — a keyboard-shortcut hint. A quiet hairline chip in muted ink; reads the
   inherited --type-font like every type primitive (no bespoke font). */
.kbd {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.5rem; min-height: 1.5rem;
  padding: 0 var(--space-2);
  font-family: var(--type-font); font-size: var(--text-xs);
  color: var(--ink-muted);
  border: 1px solid var(--line-soft); border-radius: var(--radius-sm);
  white-space: nowrap;
}

/* atoms/b-list — a quiet list. Markers are an editorial em-dash (bullet) or a counter
   (ordered) in muted ink — no heavy disc, fits the e-ink paper look (DESIGN-SYSTEM §4). */
.list { margin: 0 0 var(--space-4); padding: 0; list-style: none; }
.list__item { position: relative; padding-left: var(--space-5); margin: var(--space-2) 0; }
.list__item::before { content: "—"; position: absolute; left: 0; color: var(--ink-muted); }

/* ---- ordered variant (attribute): a counter, not a disc ---- */
.list[data-variant="ordered"] { counter-reset: li; }
.list[data-variant="ordered"] .list__item { counter-increment: li; }
.list[data-variant="ordered"] .list__item::before { content: counter(li) "."; }

/* ---- AI / in-transit: an item the AI is writing reads grain (the label swaps via the
   inherited --type-font); its marker recedes to faint while pending, settling on commit.
   Same vocabulary as the other atoms (AI-INTERFACE §5). */
.list__item[data-commit="pending"]::before,
[data-grade="grain"] .list__item::before { color: var(--ink-faint); }

/* While the AI writes an item it's momentarily EMPTY (appended, not yet typed). Reserve
   a line so the list doesn't collapse then grow back — that jumpy shrink before writing. */
.list__item:empty { min-height: 1.55em; }   /* ≈ one --leading-relaxed line */


/* atoms/b-select — the field family's dropdown; reuses .field/.field__label from b-input,
   adds .field__select. One class per element (BEM, component-scoped); variants are attributes,
   same pattern as the input/button. Native dropdown arrow kept (no appearance: none) — accessible,
   and a hardcoded caret color would break the tokens-only rule. */
.field__select {
  width: 100%; box-sizing: border-box;
  padding: var(--space-2) var(--space-3);
  font-family: var(--type-font); font-size: var(--text-base);
  color: var(--ink); background: transparent;
  border: var(--border); border-radius: var(--radius-sm);
}
/* focus ring; data-force parallel lets the catalog show the state statically (same pattern as
   b-input) — never `autofocus`, which would steal focus + scroll the catalog on load. */
.field__select:focus-visible, .field__select[data-force~="focus"] { outline: 2px solid var(--color-accent); outline-offset: 1px; }

/* invalid state — native, no JS. Monochrome: a heavier rule, not a red one. */
.field__select:user-invalid { border-width: 2px; }

/* ---- sizes (attribute, on .field, same as b-input) ---- */
.field[data-size="sm"] .field__select { padding: var(--space-1) var(--space-2); font-size: var(--text-sm); }
.field[data-size="lg"] .field__select { padding: var(--space-3) var(--space-4); font-size: var(--text-lg); }

/* Inline variant (.field[data-variant="inline"]) already works — it's declared on .field itself
   in b-input.css, so b-select gets it for free by reusing the same frame. Not re-declared here. */

/* ---- AI / in-transit: the non-text grain, same language as the button/field (AI-INTERFACE §5).
   A select the AI is touching (live pending, or any grain ancestor) wears the dashed "terminal"
   edge; the label + value already swap to the grain family via --type-font.
   EXCEPTION: while the AI is actively COMPOSING, the dispatcher sets data-grade="smooth" on the
   select itself (clean ink, like a human choosing) — so that stays solid. The
   `:not([data-grade="smooth"])` guard makes the exception explicit: a self-smooth select never
   matches the dashed rule, so the outcome doesn't depend on stylesheet source order. */
.field[data-commit="pending"] .field__select:not([data-grade="smooth"]),
[data-grade="grain"] .field__select:not([data-grade="smooth"]) { border-style: dashed; }
.field__select[data-grade="smooth"] { border-style: solid; }

/* atoms/b-switch — a labelled on/off toggle, built on a real <input type="checkbox">
   so it keeps native focus, keyboard (Space), and form semantics. The checkbox is
   visually hidden (not display:none — it stays focusable and hit-testable); the
   track + thumb are the drawn control, driven by :checked / :focus-visible on the
   sibling input. Monochrome by default; ON reaches the accent hue (the one place a
   toggle earns color, matching nav-item[aria-current] / tabs). Use where an action
   is a STATE the user sets (delivered / held, locked / open), not a one-shot verb -
   a button that reads "PUBLISHING" and un-publishes on click is the anti-pattern
   this replaces. */

.switch {
  display: inline-flex; align-items: center; gap: var(--space-2);
  cursor: pointer; font-family: var(--type-font); font-size: var(--text-xs);
  line-height: var(--leading-normal); color: var(--ink);
}

/* the real control: visually hidden, still focusable + operable */
.switch__input {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  border: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}

.switch__track {
  --sw-h: 1.25rem; --sw-w: 2.25rem;
  position: relative; flex: none;
  inline-size: var(--sw-w); block-size: var(--sw-h);
  border: var(--border); border-radius: 999px;
  background: var(--paper-2);
  transition: background-color 0.15s, border-color 0.15s;
}
.switch__thumb {
  position: absolute; top: 50%; inset-inline-start: 0.125rem;
  inline-size: calc(var(--sw-h) - 0.5rem); block-size: calc(var(--sw-h) - 0.5rem);
  transform: translateY(-50%); border-radius: 50%;
  background: var(--ink);
  transition: inset-inline-start 0.15s, background-color 0.15s;
}

/* ON: accent wash track + accent thumb slid to the end */
.switch__input:checked ~ .switch__track { background: var(--color-accent-soft); border-color: var(--color-accent); }
.switch__input:checked ~ .switch__track .switch__thumb { inset-inline-start: calc(100% - var(--sw-h) + 0.375rem); background: var(--color-accent); }

/* keyboard focus lands on the hidden input; show the ring on the drawn track */
.switch__input:focus-visible ~ .switch__track { outline: 2px solid var(--color-accent); outline-offset: 2px; }

.switch__input:disabled ~ .switch__track { opacity: 0.5; }
.switch:has(.switch__input:disabled) { cursor: not-allowed; }

.switch__label { color: inherit; }
.switch__label--off { color: var(--ink-muted); }

@media (prefers-reduced-motion: reduce) {
  .switch__track, .switch__thumb { transition: none; }
}

/* AI / in-transit: same grade-as-signal edge the button uses - a dashed track +
   locked out while the writer works (AI-INTERFACE §5). */
.switch__input[data-commit="pending"] ~ .switch__track,
[data-grade="grain"] .switch__track {
  border-style: dashed; pointer-events: none;
}

/* atoms/b-meter — a proportional horizontal bar split into segments: a health bar (passed/
   failed/pending share), a storage bar, a progress bar, a poll result. Grain had no meter/
   progress primitive at all. One class per element (BEM); tone is an attribute. Each segment's
   width is one custom property (--seg) so it's data-bindable server-side with zero JS.
   Monochrome: segments differ by TEXTURE + ink-level, never by hue (DESIGN-SYSTEM §2) — solid
   ink (ok), hatched (bad), faint (the rest) — the e-ink language. */
.meter {
  display: flex; align-items: stretch;
  height: var(--space-2); overflow: hidden;
  border-radius: var(--radius-pill); background: var(--line-soft);
}
/* a segment fills its share of the track; default/"pending" reads faint solid */
.meter__seg { flex: 0 0 auto; width: var(--seg, 0); background: var(--ink-faint); }
/* ok — solid ink (the load-bearing "good" share) */
.meter__seg[data-tone="ok"] { background: var(--ink); }
/* bad — a dense diagonal hatch of ink (stands out by texture, not colour) */
.meter__seg[data-tone="bad"] {
  background-color: transparent;
  background-image: repeating-linear-gradient(45deg, var(--ink) 0 2px, transparent 2px 5px);
}
/* pending — a sparse dotted hatch, echoing the in-transit e-ink grain (lighter than "bad") */
.meter__seg[data-tone="pending"] {
  background-color: transparent;
  background-image: repeating-linear-gradient(45deg, var(--ink-faint) 0 1px, transparent 1px 4px);
}

/* ---- indeterminate: running, totals unknown yet. A single faint stripe sweeps the track.
   Honours reduced-motion (falls back to a static faint fill). ---- */
.meter[data-state="busy"] .meter__seg { width: 35%; background: var(--ink-faint); animation: meter-sweep 1.1s ease-in-out infinite; }
@keyframes meter-sweep { 0% { margin-left: -35%; } 100% { margin-left: 100%; } }
@media (prefers-reduced-motion: reduce) {
  .meter[data-state="busy"] .meter__seg { animation: none; width: 100%; }
}

/* ---- AI / in-transit: the non-text grain, same vocabulary as the rest of the family
   (AI-INTERFACE §5). A meter the AI is updating (live pending, or any grain ancestor) wears the
   dashed "terminal" edge on the track. ---- */
.meter[data-commit="pending"],
[data-grade="grain"] .meter { border: 1px dashed var(--ink); }

/* atoms/action-badge — the AI's action verb as a badge. It's AI by nature, so it always
   wears the non-text grain (dashed "terminal" edge + grain family), the same vocabulary as
   b-button / b-badge in transit. `data-status` carries the step's state:
     (default) done   → dashed outline, muted ink
     active            → filled ink (the AI is doing THIS now)  */
.action-badge {
  display: inline-block;
  font-family: var(--font-grain);          /* always grain — the AI is always the actor */
  font-size: var(--text-xs);
  text-transform: uppercase; letter-spacing: 0.08em;
  padding: 0 var(--space-2);
  color: var(--ink-muted);
  border: 1px dashed var(--ink); border-radius: var(--radius-pill);
}
.action-badge[data-status="active"] {
  background: var(--ink); color: var(--paper); border-style: solid;
}

/* atoms/code-block — a monospace code block (and a .code-inline run) for content prose.
   CSS-only (CONVENTIONS §4): MILL hand-composes <pre class="code-block">, nothing data-binds
   it, so there's no .html template. Reads --font-mono, so code stays mono in either grade. */
.code-block {
  margin: 0 0 var(--space-4);
  padding: var(--space-4);
  overflow-x: auto;                         /* long lines scroll, never break the column */
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  line-height: var(--leading-normal);
  color: var(--color-fg);
}
.code-block code { font-family: inherit; }

/* optional language tag: `data-lang` renders a quiet eyebrow above the block */
.code-block[data-lang]::before {
  content: attr(data-lang);
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-muted);
}

/* inline code — a quiet mono run inside prose */
.code-inline {
  font-family: var(--font-mono);
  font-size: 0.9em;
  padding: 0 var(--space-1);
  background: var(--color-surface);
  border-radius: var(--radius-sm);
}

/* ---- AI / in-transit: same vocabulary as the atoms (CONVENTIONS §4). A code block the AI
   is writing wears the dashed "terminal" edge (non-text grain). MILL output is human-authored,
   so it never triggers this; the catalog grain-flip demonstrates it. */
.code-block[data-commit="pending"],
[data-grade="grain"] .code-block { border-style: dashed; border-color: var(--ink); }

/* molecules/card — a bordered content tile + its companion grid. CSS-only (CONVENTIONS §4):
   composed by hand — a <div> for a plain fact, an <a> for a navigable tile. Monochrome:
   a hairline box, no fill, no shadow (DESIGN-SYSTEM §2). Variants are attributes. */
.card {
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  padding: var(--space-5);
}
.card[data-pad="sm"] { padding: var(--space-4); }

.card__title { font-size: var(--text-base); margin: 0 0 var(--space-2); }
.card__body  { color: var(--color-muted); font-size: var(--text-sm);
  line-height: var(--leading-normal); margin: 0; }

/* a navigable card: the whole tile is the link — quiet at rest, paper lifts on hover */
a.card { display: block; text-decoration: none; color: var(--color-fg);
  transition: background-color 0.15s; }
a.card:hover { background: var(--paper-2); }
a.card[aria-disabled="true"] { pointer-events: none; opacity: 0.6; }

/* the companion grid: auto-fit tiles, min width tunable per use (--card-min) */
.card-grid { display: grid; gap: var(--space-4);
  grid-template-columns: repeat(auto-fit, minmax(var(--card-min, 15rem), 1fr)); }

/* ---- AI / in-transit: the non-text grain — a card the AI is composing wears the dashed
   "terminal" edge (live pending, or any grain ancestor). Same vocabulary as badge + field. */
.card[data-commit="pending"],
[data-grade="grain"] .card { border-style: dashed; border-color: var(--ink); }

/* molecules/stat-tile — a KPI tile: one big number, a small label, an optional sub-line.
   The standard dashboard primitive; grain had nothing between b-badge and card. One class per
   element (BEM); tone is an attribute. Monochrome: tone is carried by ink-level + border weight,
   never by hue (DESIGN-SYSTEM §2) — same doctrine as b-badge's "active". Tiles compose in a plain
   flex/grid row; no wrapper component (see the .md). */
.stat {
  display: flex; flex-direction: column; gap: var(--space-1);
  padding: var(--space-3) var(--space-4);
  border: var(--border); border-radius: var(--radius-md);
  min-inline-size: 0;
}
/* the number sits at display scale so grain texture reads if it's AI-written (grade doctrine) */
.stat__value {
  font-size: var(--text-2xl); font-weight: var(--font-weight-medium);
  line-height: var(--leading-tight); color: var(--ink);
}
.stat__label { font-size: var(--text-sm); color: var(--color-muted); }
.stat__sub { font-size: var(--text-xs); color: var(--ink-faint); }

/* ---- tone (attribute) — ink-level + border weight, NOT hue ----
   default : the calm baseline (a healthy/positive count needs no shouting).
   ok      : same calm baseline — an explicit "good" that reads identical, by design.
   bad     : draws the eye monochromatically — a solid-ink border + full-ink value.
   muted   : a context/secondary count (skipped, pending, a total) recedes to faint. */
.stat[data-tone="bad"] { border-color: var(--ink); }
.stat[data-tone="muted"] .stat__value { color: var(--ink-faint); }
.stat[data-tone="muted"] .stat__label { color: var(--ink-faint); }

/* ---- AI / in-transit: the non-text grain, same vocabulary as the button/field/badge
   (AI-INTERFACE §5). A tile whose number is mid-update wears the dashed "terminal" edge; a
   value the AI is writing carries data-grade="grain" so its digits render in the grain family
   via the inherited --type-font. */
.stat[data-commit="pending"],
[data-grade="grain"] .stat { border-style: dashed; border-color: var(--ink); }

/* molecules/table — a content data table (MILL maps Markdown pipe tables to it), wrapped
   in .table-scroll so wide tables scroll inside their own box instead of breaking the page.
   Monochrome and ruled, not zebra-striped (DESIGN-SYSTEM §2). CSS-only: composed by MILL
   or written by hand; nothing data-binds it. */
.table-scroll { overflow-x: auto; margin: 0 0 var(--space-4); }
.table { border-collapse: collapse; width: 100%; font-size: var(--text-sm); }
.table th {
  text-align: left;
  font-weight: var(--font-weight-semibold);
  border-bottom: 2px solid var(--ink);
  padding: var(--space-2) var(--space-3);
}
.table td {
  border-bottom: 1px solid var(--color-line);
  padding: var(--space-2) var(--space-3);
  vertical-align: top;
  line-height: var(--leading-normal);
}
.table th:first-child, .table td:first-child { padding-left: 0; }

/* AI / in-transit: dashed terminal edge (non-text grain idiom, same as the atoms) */
.table[data-commit="pending"],
[data-grade="grain"] .table { border: 1px dashed var(--ink); }

/* molecules/callout — a blockquote / margin-note aside for content prose. A quiet ruled
   block, not a coloured box (monochrome, DESIGN-SYSTEM §2). CSS-only (CONVENTIONS §4): MILL
   maps Markdown blockquotes to <blockquote class="callout">; nothing data-binds it. */
.callout {
  margin: 0 0 var(--space-4);
  padding: var(--space-2) 0 var(--space-2) var(--space-4);
  border-left: 2px solid var(--ink);
  color: var(--color-muted);
  font-style: italic;
}
.callout > :last-child { margin-bottom: 0; }

/* tone via attribute (not a second class): a stronger note keeps full ink, upright */
.callout[data-status="strong"] { color: var(--color-fg); font-style: normal; }

/* ---- AI / in-transit: dashed terminal edge (non-text grain), same idiom as the atoms.
   MILL output is human-authored → never triggers; the catalog grain-flip demonstrates it. */
.callout[data-commit="pending"],
[data-grade="grain"] .callout { border-left-style: dashed; }

/* molecules/tab — one open view in the tab-bar, editor-style (the workspace metaphor): a boxed
   tab with an icon, a mono label, and a close affordance — the active tab carries a top accent
   line and merges into its pane. Composed: icon (.tab__icon, optional) + label text + close
   (.tab__close, optional). The close is PRESENTATIONAL by default (pointer-events off — a click
   lands on the tab link); a consumer with genuinely closable views wires it as a real button. */
.tab {
  display: flex; align-items: center; gap: var(--space-2);
  height: 2.5rem; padding: 0 var(--space-2) 0 var(--space-3);
  font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.01em;
  color: var(--color-muted); text-decoration: none; white-space: nowrap;
  border-right: 1px solid var(--color-line);
}
.tab:hover { color: var(--color-fg); background: color-mix(in srgb, var(--color-bg) 55%, transparent); }
.tab__icon { display: inline-flex; color: var(--ink-faint); }
.tab[aria-current="page"], .tab[data-active="true"] {
  color: var(--color-fg); background: var(--color-bg);
  box-shadow: inset 0 2px 0 var(--color-accent, var(--ink));   /* the editor tab's top accent line */
}
.tab[aria-current="page"] .tab__icon, .tab[data-active="true"] .tab__icon { color: var(--color-accent, var(--ink)); }
.tab__close {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.15rem; height: 1.15rem; border-radius: var(--radius-sm);
  color: transparent; pointer-events: none;   /* hidden until the tab is hovered/active */
}
.tab:hover .tab__close, .tab[aria-current="page"] .tab__close, .tab[data-active="true"] .tab__close { color: var(--ink-faint); }
/* the PINNED marker: same box as .tab__close but ALWAYS visible and never interactive — it
   reads "this tab doesn't close" (a pinned tab ships a .tab__pin instead of a .tab__close). */
.tab__pin {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.15rem; height: 1.15rem; border-radius: var(--radius-sm);
  color: var(--ink-faint); pointer-events: none;
}

/* molecules/made-with — the system byline: "made with GRAIN by tjakoen". The one footer
   line every GRAIN app mounts at the bottom of its shell, so provenance reads the same
   everywhere. CSS-only (CONVENTIONS §4): consumers emit the markup themselves or import
   the string helper (scripts/made-with.js) — one source of truth for the content. */
.made-with {
  display: block;
  padding: var(--space-6) var(--space-4) var(--space-4);
  text-align: center;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}
.made-with a { color: inherit; text-decoration: none; }
.made-with a:hover,
.made-with a:focus-visible { color: var(--color-fg); text-decoration: underline; }

/* inside a status-bar (or any inline meta row) it flows as quiet meta-text, not a block —
   the row's own type treatment wins */
.made-with[data-inline] {
  display: inline;
  padding: 0;
  text-align: inherit;
  font-family: inherit;
  font-size: inherit;
}

/* molecules/status-list — a list where each row carries a leading status mark, a title, and
   trailing meta (duration, target). A live pass/fail checklist, a job queue, a deploy pipeline, a
   task run-down — b-list is prose-marker only, this is a three-slot structural row. One class per
   element (BEM). Monochrome: the mark you place carries the signal (a glyph / b-badge / b-icon in
   currentColor), never a hue baked in here (DESIGN-SYSTEM §2).

   The load-bearing idea: an in-flight row wears data-commit="pending" (dashed leading edge +
   blinking caret) and settles on result — the grain control lifecycle (lesson 2) mapped onto a
   list item, no new "running" state invented. A not-yet-reached row reads faint via
   data-state="waiting". Rows take data-surface so an AI can address one row at a time. */
.status-list { list-style: none; margin: 0; padding: 0; }
.status-list__item {
  display: flex; align-items: baseline; gap: var(--space-3);
  padding: var(--space-2) var(--space-2) var(--space-2) var(--space-3);
  border-top: 1px solid var(--line-soft);
}
.status-list__item:first-child { border-top: 0; }
/* the leading mark slot: fixed width so titles align; author fills it with a glyph/badge/icon,
   rendered in the row's ink (monochrome) */
.status-list__mark { flex: 0 0 1.5em; text-align: center; color: var(--ink); }
.status-list__title { flex: 1 1 auto; min-inline-size: 0; color: var(--ink); }
.status-list__meta { flex: 0 0 auto; font-size: var(--text-sm); color: var(--color-muted); }

/* ---- waiting: a row the runner hasn't reached yet recedes to faint (generic queue/pending
   state — not a domain status) ---- */
.status-list__item[data-state="waiting"] .status-list__mark,
.status-list__item[data-state="waiting"] .status-list__title { color: var(--ink-faint); }

/* ---- AI / in-transit + "this row is being acted on": the grain control lifecycle (lesson 2),
   same vocabulary as the button/field. An in-flight row (a runner is acting on it, or the AI is)
   wears the dashed "terminal" leading edge; a blinking block caret trails the title. Keyed off
   the row's own pending state OR any grain ancestor. ---- */
.status-list__item[data-commit="pending"],
[data-grade="grain"] .status-list__item {
  border-left: 2px dashed var(--ink); padding-left: calc(var(--space-3) - 2px);
}
.status-list__item[data-commit="pending"] .status-list__title::after,
[data-grade="grain"] .status-list__item .status-list__title::after {
  content: ""; display: inline-block;
  width: 0.5ch; height: 1em; margin-left: 0.4ch; vertical-align: text-bottom;
  background: currentColor;
  animation: caret-blink 1s steps(1) infinite;   /* keyframes in grain/styles/grain.css */
}
@media (prefers-reduced-motion: reduce) {
  .status-list__item[data-commit="pending"] .status-list__title::after,
  [data-grade="grain"] .status-list__item .status-list__title::after { animation: none; }
}

/* molecules/nav-item — a rail navigation entry: an icon in the rail's shared ICON GUTTER, then
   the label — the two-column, editor-workspace look (icons align in their own vertical column;
   the rail draws the gutter line). A styled anchor composed with b-icon (not a custom tag, so it
   drops into a static page). Active = aria-current="page" (accessible) or data-active="true".
   Grid: icon column (fixed, --rail-icon-col) | label | trailing (chevron). Iconless items (e.g.
   a group's sub-entries) indent past the gutter instead — see side-rail. */
.nav-item {
  display: grid; grid-template-columns: var(--rail-icon-col, 2.5rem) 1fr auto;
  align-items: center; column-gap: var(--space-2);
  min-height: 2.25rem; padding-right: var(--space-2);
  border: 1px solid transparent; border-radius: var(--radius-sm);
  color: var(--color-muted); text-decoration: none; white-space: nowrap;
}
.nav-item > b-icon, .nav-item > .icon { justify-self: center; }   /* the icon sits centered in the gutter */
.nav-item:hover { background: var(--color-bg); color: var(--color-fg); }
.nav-item[aria-current="page"], .nav-item[data-active="true"] {
  color: var(--color-fg); background: var(--color-bg); border-color: var(--color-line);
}
.nav-item__label { font-size: var(--text-base); }

/* molecules/chip-group — one class per element; a set of selectable pills acting as a form
   control (single- or multi-select). Native inputs inside labels → zero JS, form-postable,
   keyboard + AX for free; checked state styled via :has()/:checked. Monochrome: a hairline pill,
   no fill — state is carried by ink vs muted, not by hue (DESIGN-SYSTEM §2), same doctrine as
   b-badge's "active". */
.chips {
  border: 0; margin: 0; padding: 0; min-inline-size: 0;
  display: flex; flex-wrap: wrap; gap: var(--space-2);
}
.chips__chip {
  display: inline-flex; align-items: center; gap: var(--space-1);
  padding: var(--space-1) var(--space-3); font-size: var(--text-sm);
  border: 1px solid var(--line-soft); border-radius: var(--radius-pill);
  color: var(--color-muted); cursor: pointer; user-select: none;
}
/* the native input stays focusable/keyboard-operable — sr-only, never display:none (that kills
   keyboard). The label is the visible target. */
.chips__chip input {
  position: absolute; width: 1px; height: 1px; opacity: 0; margin: 0;
}
/* selected (monochrome, like badge "active") */
.chips__chip:has(:checked) { color: var(--ink); border-color: var(--ink); }
/* focus ring (keyboard) */
.chips__chip:has(:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: 1px; }
/* hover (subtle, muted → fg) */
.chips__chip:hover { color: var(--ink); }

/* data-select="single" (radios) needs no separate CSS — radios vs checkboxes are a markup
   swap; the :has(:checked) rule above covers both. Do not invent per-variant classes. */

/* ---- AI / in-transit: the non-text grain. A chip the AI is toggling (live pending, or any
   grain ancestor) wears the dashed "terminal" edge; the label already swaps to the grain family
   via --type-font. Same vocabulary as the button + field + badge. */
.chips[data-commit="pending"] .chips__chip,
[data-grade="grain"] .chips__chip { border-style: dashed; border-color: var(--ink); }

/* molecules/content-index — a collection's listing (MILL's index route emits it): a quiet
   ruled list of entries, each meta → linked title → summary → tags. CSS-only: composed by
   MILL, nothing data-binds it. Human-authored content lists → clean ink. */
.content-index { list-style: none; margin: 0; padding: 0; }
.content-index__item { padding: var(--space-5) 0; border-bottom: 1px solid var(--color-line); }
.content-index__item:last-child { border-bottom: 0; }

.content-index__meta {
  font-size: var(--text-xs);
  color: var(--color-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 var(--space-1);
}
/* date + readingTime ship as separate spans (mill/serve.ts) so the "log" variant below can put
   the date alone in a fixed gutter; the default listing joins them back inline with a rule. */
.content-index__readtime::before { content: " \00b7 "; }
.content-index__title { font-size: var(--text-xl); margin: 0 0 var(--space-2); }
.content-index__title a { color: var(--color-fg); text-decoration: none; }
.content-index__title a:hover { text-decoration: underline; }
.content-index__summary {
  color: var(--color-muted);
  line-height: var(--leading-relaxed);
  max-width: 60ch;
  margin: 0 0 var(--space-2);
}
.content-index .note__tags { margin: 0; }

/* AI / in-transit: dashed terminal edge (non-text grain idiom) — never from MILL itself */
.content-index__item[data-commit="pending"],
[data-grade="grain"] .content-index__item { border-bottom-style: dashed; }

/* variant: log — a collection read as `git log --graph`: a node + connecting rail down the
   left edge, a mono date gutter, the title as the commit message, tags as branch chips. Opt-in
   per collection (indexVariant, mill/serve.ts); default listing above is untouched for
   collections that don't ask for it.

   THREE grid columns: [graph] [date] [message]. The graph column holds no grid child — the
   node + rail are pseudo-elements on the LI itself (position:absolute is excluded from grid
   auto-placement, so they can't collide with the real columns), same technique as the
   side-rail's own icon-gutter line. `.content-index__meta`'s two children (date, readingTime —
   separate spans since mill/serve.ts) go `display:contents` so each can be grid-placed on its
   own: date into the fixed gutter, readingTime down with the message instead of crowding the
   gutter — that crowding (both joined in one nowrap string) was the overlap bug. */
.content-index[data-variant="log"] .content-index__item {
  position: relative;
  display: grid;
  grid-template-columns: 1.25rem 11ch 1fr;
  column-gap: var(--space-3);
}
/* the rail: one hairline down the graph column, full item height — trimmed at the first/last
   entry so it starts/stops at the tip and root commit instead of dangling past the list. */
.content-index[data-variant="log"] .content-index__item::before {
  content: ""; position: absolute; left: 0.625rem; top: 0; bottom: 0;
  width: 1px; background: var(--color-line);
}
.content-index[data-variant="log"] .content-index__item:first-child::before { top: 0.95rem; }
.content-index[data-variant="log"] .content-index__item:last-child::before { bottom: calc(100% - 0.95rem); }
/* the node: an accent dot on the rail, haloed in the page background so the rail reads as
   passing BEHIND it (the same halo trick a git-graph renderer uses). */
.content-index[data-variant="log"] .content-index__item::after {
  content: ""; position: absolute; left: 0.625rem; top: 0.95rem;
  width: 7px; height: 7px; margin-left: -3px; border-radius: 50%;
  background: var(--color-accent); border: 2px solid var(--color-bg);
}
.content-index[data-variant="log"] .content-index__meta { display: contents; }
.content-index[data-variant="log"] .content-index__date {
  grid-column: 2; grid-row: 1;
  font-family: var(--font-mono); text-transform: none; letter-spacing: normal; white-space: nowrap;
  color: var(--color-muted);
}
.content-index[data-variant="log"] .content-index__title {
  grid-column: 3; grid-row: 1;
  font-size: var(--text-base); font-weight: 600;
}
.content-index[data-variant="log"] .content-index__readtime {
  grid-column: 3; grid-row: 2;
  font-family: var(--font-mono); font-size: var(--text-xs); color: var(--color-muted);
}
.content-index[data-variant="log"] .content-index__readtime::before { content: ""; }   /* cancel the default " · " prefix — no longer beside the date */
.content-index[data-variant="log"] .content-index__summary { grid-column: 3; grid-row: 3; }
.content-index[data-variant="log"] .note__tags { grid-column: 3; grid-row: 4; display: flex; gap: var(--space-2); flex-wrap: wrap; }
.content-index[data-variant="log"] .note__tags .badge {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}
.content-index[data-variant="log"] .note__tags .badge::before { content: "⎇ "; }

/* molecules/lede — the opening paragraph of a page or section: larger, muted, measured.
   CSS-only (CONVENTIONS §4): nothing data-binds it — compose by hand under a masthead.
   Emphasis inside a lede reads as underline, not italic (monochrome, DESIGN-SYSTEM §2). */
.lede {
  color: var(--color-muted);
  font-size: var(--text-lg);
  max-width: 56ch;
  line-height: var(--leading-relaxed);
}
.lede em { font-style: normal; text-decoration: underline; }

/* size is an attribute, not a second class: the small lede is a quiet aside — body-small,
   a touch wider measure */
.lede[data-size="sm"] { font-size: var(--text-sm); max-width: 60ch; }

/* ---- AI / in-transit: a lede is text — the global grade mechanism (data-grade →
   --type-font, styles/grain.css) already carries the grain; nothing bespoke needed. */

/* organisms/tab-bar — the top strip of open views inside the app-shell topbar. A
   horizontal, scrollable row of tabs; the page places controls (⌘K, presence) after it in
   the topbar. A layout class composed with tab. flex:1 so it fills the topbar's remaining
   width — that's what pins .tab-bar__close-all to the topbar's true far edge instead of
   floating right after the last tab with empty space beyond it. */
.tab-bar {
  display: flex; align-items: stretch; min-width: 0; flex: 1 1 auto;
  overflow-x: auto; scrollbar-width: none;
  /* scroll affordance: fade the far edge so hidden tabs read as "more to scroll"
     rather than a hard clip. Tabs are flex:none and left-packed, so when the
     strip is NOT overflowing the faded edge sits over empty space (invisible);
     it only bites a real tab once the row overflows. */
  mask-image: linear-gradient(to right, currentColor calc(100% - 1.5rem), transparent);
}
.tab-bar::-webkit-scrollbar { display: none; }
/* Where scroll-driven animation is supported, upgrade to both edges tracking the
   actual scroll position: right-only at the start, both in the middle, left-only
   at the end. Unsupported browsers keep the static right fade above. */
@supports (animation-timeline: scroll()) {
  .tab-bar { animation: tab-bar-edges linear both; animation-timeline: scroll(self inline); }
  @keyframes tab-bar-edges {
    from { mask-image: linear-gradient(to right, currentColor, currentColor calc(100% - 1.5rem), transparent); }
    50%  { mask-image: linear-gradient(to right, transparent, currentColor 1.5rem, currentColor calc(100% - 1.5rem), transparent); }
    to   { mask-image: linear-gradient(to right, transparent, currentColor 1.5rem, currentColor); }
  }
}
@media (prefers-reduced-motion: reduce) { .tab-bar { animation: none; } }

/* the close-all affordance — a small TAB-SHAPED cell pinned past the scrollable strip (a sibling
   in the topbar, never a child of .tab-bar), so it never scrolls out of reach no matter how many
   tabs are open. Same height as .tab for one continuous band; a left hairline (mirrors .tab's own
   border-right) reads it as its own cell, distinct from each tab's individual .tab__close.
   tabs.js toggles [hidden] when nothing closable is open (pinned tabs don't count) — `all: unset`
   resets `display` to its initial value (inline) UNCONDITIONALLY, and author CSS always beats
   the UA `[hidden]{display:none}` rule regardless of specificity, so the base rule alone already
   overrode `hidden` (the button showed, just un-flexed) — `[hidden]{display:none}` below is the
   fix: a class+attribute selector out-specifies the plain class rule, restoring `hidden`. */
.tab-bar__close-all {
  all: unset; box-sizing: border-box; cursor: pointer;
  display: flex; flex: none; align-items: center; justify-content: center;
  height: 2.5rem; width: 2.25rem;
  border-left: 1px solid var(--color-line);
  color: var(--color-muted);
}
.tab-bar__close-all[hidden] { display: none; }
.tab-bar__close-all:hover { color: var(--color-fg); background: color-mix(in srgb, var(--color-bg) 55%, transparent); }
.tab-bar__close-all:focus-visible { outline: 1px solid var(--color-accent); outline-offset: -2px; }
.tab-bar__close-all .icon { width: 0.85rem; height: 0.85rem; }

/* organisms/app-shell — the WORKSPACE layout (the "work-y" archetype): a full-viewport
   grid of five regions — a left rail, a top bar, the main pane, a right aside (the
   assistant), and a bottom console. It HOSTS arbitrary page content, so it's a layout
   the page applies via region classes (the render engine can't project children into a
   component), not a data-bound tag. Re-skins via tokens like everything else. Coexists
   with the single-column editorial `.container`; the reference app composes it via portfolio-frame
   (tjakoen.github.io/components/organisms/portfolio-frame) on every page, incl. /loop. */

/* Two optional full-width rows bracket the workspace: "window" (the app-window title bar)
   and "status" (the status-bar). Auto rows collapse to zero when a page places nothing in
   them, so shells without the editor-window dressing are untouched. The ASIDE (assistant)
   spans the full right column from the topbar row down — it sits beside the tab bar, not
   under it (no dead space). The CONSOLE (terminal) docks under main only, as a bottom panel. */
.app-shell {
  display: grid;
  height: 100dvh;
  grid-template-columns: var(--shell-rail, 15rem) minmax(0, 1fr) var(--shell-aside, 20rem);
  /* main + console rows are minmax tracks whose endpoints are ALL lengths/fr — never `auto` or
     `min-content` — so grid-template-rows stays INTERPOLABLE and every console state change
     (closed→open band→full-screen) GLIDES instead of snapping (an auto/px↔fr endpoint makes the
     whole track list discrete → an instant jump; measured). The console height is driven entirely
     by the track here, not by the feed's content: `--shell-console-min` is the floor (bar height
     when closed, a band when open) and `--shell-console-fr` grows it to fill on expand. The feed
     is `flex:1 1 0` (console.css) so it has zero intrinsic height and simply fills whatever the
     track gives — which is what lets the floor be an exact length with no content-balloon. */
  grid-template-rows: auto auto minmax(0, var(--shell-main-fr, 1fr)) minmax(var(--shell-console-min, 2.75rem), var(--shell-console-fr, 0fr)) auto;
  grid-template-areas:
    "window window  window"
    "rail   topbar  aside"
    "rail   main    aside"
    "rail   console aside"
    "status status  status";
  background: var(--color-bg);
  color: var(--color-fg);
  overflow: hidden;
  /* panels glide in/out: the rail/aside columns animate their width (grid tracks interpolate);
     main/console share the SAME transition when the console grows (see data-console-expanded). */
  transition: grid-template-columns 0.26s ease, grid-template-rows 0.26s ease;
}
.app-shell[data-rail-collapsed="true"] { --shell-rail: 3.25rem; }   /* icons-only rail */
/* OPEN: the console grows from the slim bar to a docked BAND — the floor rises from the bar
   height to ~16rem. A length↔length change, so it glides (grid-rows transition above). NOTE:
   `data-acting` (a run) does NOT open the band — during a run the terminal stays collapsed and the
   CHAT previews the output; the person clicks "open in terminal" (→ data-console-open) to expand
   it (loop.e2e "takeover"). */
.app-shell[data-console-open] { --shell-console-min: 16rem; }
/* GROWN (console.css's `console__grow` toggle): the console takes over the WHOLE screen — main's
   fr goes to 0 (`minmax(0, 0fr)` collapses it) and the console's fr goes to 1 so it fills the
   freed space. Only the fr coefficients change against a fixed floor, so it glides both ways
   (measured: a smooth main-height ramp to 0, not a snap). */
.app-shell[data-console-expanded] { --shell-main-fr: 0fr; --shell-console-fr: 1fr; }

/* ---- OPT-IN: a `.rail-head` (full-width, brand/title row) stacks the rail vertically — the
   head sits at the SAME height as the topbar row beside it, and everything below it (the icon
   column + tree) starts on its own line underneath. A rail without one is untouched (flex-column
   with a single child behaves like the old block layout). ---- */
.app-shell__rail:has(> .rail-head) { display: flex; flex-direction: column; }
.app-shell__rail > .rail-body { min-height: 0; }
.app-shell__rail:has(> .rail-head) > .rail-body { flex: 1 1 auto; }

/* ---- OPT-IN: a rail hosting an `activity-bar` (VS Code icon column) becomes a flex row — the
   strip beside the tree. Composes with `.rail-head` above (activity-bar sits in `.rail-body` then)
   or stands alone as a direct child of `__rail`. A rail with NEITHER is untouched (these `:has()`
   rules never match). This rule lives HERE, alongside the mobile-drawer rules below, so bundle
   order can never let the drawer's `position: fixed` lose to it (the same trap that once broke the
   drawer — see the mobile block). Collapsed rail = the icon strip only (the tree hides, the
   activity bar stays). ---- */
.app-shell__rail:has(> .activity-bar), .app-shell__rail > .rail-body:has(> .activity-bar) {
  display: flex; flex-direction: row; align-items: stretch;
}
.app-shell__rail:has(> .activity-bar) > .side-rail,
.app-shell__rail > .rail-body:has(> .activity-bar) > .side-rail { flex: 1 1 auto; min-width: 0; }
.app-shell[data-rail-collapsed="true"] .app-shell__rail:has(> .activity-bar) > .side-rail,
.app-shell[data-rail-collapsed="true"] .app-shell__rail > .rail-body:has(> .activity-bar) > .side-rail { display: none; }

/* VS Code-style pane visibility (shell.js: data-shell="aside-toggle"). The aside animates to width
   0 (no display:none, so the glide is smooth); its border/scroll fold away at zero. */
.app-shell[data-aside-hidden="true"] { --shell-aside: 0rem; }
.app-shell[data-aside-hidden="true"] .app-shell__aside { border-left: 0; overflow: hidden; }
.app-shell[data-console-hidden="true"] .app-shell__console { display: none; }
@media (prefers-reduced-motion: reduce) { .app-shell { transition: none; } }

/* ---- the regions (grid slots) ---- */
.app-shell__window  { grid-area: window;  min-width: 0; }
.app-shell__status  { grid-area: status;  min-width: 0; }
/* the rail separates from the content with a SOFTENED hairline — present, but quieter than
   the rail's own icon-gutter line, so the eye reads gutter > rail-edge as two weights. */
.app-shell__rail    { grid-area: rail;    min-height: 0;
                      border-right: 1px solid color-mix(in srgb, var(--color-line) 55%, transparent); }
/* position:relative + a real z-index (not "auto") pins the topbar — and the rail-toggle hamburger
   inside it — above anything else painting in this stacking context; explicit pointer-events:auto
   guards against ever inheriting a stray `none` from an ancestor. Defensive: the 2026-07-14 audit
   found the mobile hamburger timing out in Playwright (present, but unclickable) at squeezed
   widths — the root cause was the grid-squeeze the @container fix above resolves, but a control
   this load-bearing (it's the ONLY way to reach the rail on mobile) shouldn't also depend on
   nothing else ever drifting a z-index/pointer-events value over it. */
.app-shell__topbar  { grid-area: topbar;  min-width: 0; display: flex; align-items: stretch;
                      min-height: var(--editor-header-h, 2.9rem);   /* aligns with the panel head (one line) */
                      border-bottom: 1px solid var(--color-line); background: var(--color-surface);
                      position: relative; z-index: 1; pointer-events: auto; }
/* __main owns the page scroll inside the shell — it must OPT INTO the smooth-scroll contract
   (global.css sets it on html, but scrollIntoView scrolls the nearest scrollable ancestor,
   which in a shell is this pane; without it the AI's focus jumps are instant). */
.app-shell__main    { grid-area: main;    min-width: 0; overflow: auto; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { .app-shell__main { scroll-behavior: auto; } }
.app-shell__aside   { grid-area: aside;   min-height: 0; overflow: auto;
                      border-left: 1px solid var(--color-line); background: var(--color-surface); }
.app-shell__console { grid-area: console; border-top: 1px solid var(--color-line);
                      background: var(--color-bg); }
.app-shell__scrim   { display: none; }   /* only used as the drawer scrim on mobile */

/* ---- CONTAINER (2026-07-14 responsive-polish fix): the two layout breakpoints below used to be
   `@media`, which reads the actual BROWSER viewport — so the viewport-toggle's cosmetic max-width
   clamp on `.app-shell` (see the bottom of this file) never made them fire; a squeezed real window
   between 768-1100px also just squeezed the fixed rail/aside tracks instead of collapsing (the
   `minmax(0,1fr)` main column went to zero, not the layout).

   Fix: `.app-shell` cannot query an `@container` condition on ITSELF (the CSS containment spec:
   a container never matches its own query, only its descendants' do) — so the container has to be
   an ANCESTOR. `.app-shell` has no wrapper of its own in any real composition (portfolio-frame,
   this file's own .md demo): it is always a DIRECT CHILD of `<body>`. So `<body>` becomes the named
   container (`shell-frame`), scoped with `:has()` so a page with no shell is untouched. Both
   `.app-shell` and its descendants (`.app-shell__aside`, `sidebar-panel`, `status-bar`) can then
   legally query it. The viewport-toggle's clamp moves to `body[data-viewport]` too (below) — so
   shrinking body for the toggle shrinks the SAME container real narrow windows shrink, and both
   paths now drive the identical mobile layout. `container-type: inline-size` only tracks/queries
   the inline axis, which is exactly the width-based breakpoints below — height stays content-sized
   as before (100dvh via .app-shell, unaffected). */
body:has(.app-shell) { container-type: inline-size; container-name: shell-frame; }

/* ---- narrow desktop: keep all three columns but tighten the aside so the assistant
   stays reachable (dropping it here stranded the chat on laptop-width windows) ---- */
@container shell-frame (max-width: 1100px) {
  .app-shell { --shell-aside: 16rem; }
}

/* ---- mobile: single column; the rail becomes an off-canvas drawer. The aside (assistant)
   becomes a bottom sheet (sidebar-panel.css, which loads after this file and wins the tie). ---- */
@container shell-frame (max-width: 768px) {
  .app-shell {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "window" "topbar" "main" "console" "status";
    grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  }
  .app-shell__aside { display: none; }
  .app-shell[data-rail-collapsed="true"] { --shell-rail: 15rem; }   /* collapse-width is desktop-only */
  /* two classes ON PURPOSE: a composed rail (e.g. side-rail) may carry its own `position:
     relative` (the icon gutter), and the CSS bundle sorts side-rail AFTER app-shell — at equal
     specificity the drawer's `fixed` silently lost and the rail fell back into the grid flow.
     The extra ancestor class keeps the drawer winning regardless of bundle order. */
  .app-shell .app-shell__rail {
    position: fixed; inset: 0 auto 0 0; z-index: 40;
    width: min(78vw, 18rem);
    transform: translateX(-100%); transition: transform 0.3s ease;
    border-right: 1px solid var(--color-line); background: var(--color-surface);
  }
  .app-shell[data-rail-open="true"] .app-shell__rail { transform: none; }
  .app-shell__scrim {
    display: block; position: fixed; inset: 0; z-index: 39;
    background: color-mix(in srgb, var(--ink) 32%, transparent);
    opacity: 0; pointer-events: none; transition: opacity 0.3s ease;
  }
  .app-shell[data-rail-open="true"] .app-shell__scrim { opacity: 1; pointer-events: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .app-shell__rail, .app-shell__scrim { transition: none; }
}

/* ---- viewport preview (shell.js: data-shell="viewport-toggle") — clamps `<body>`, the SAME
   element the @container queries above read (`shell-frame`), not `.app-shell`. That's what makes
   this a real (if imperfect) breakpoint drive now instead of a cosmetic frame: shrinking body's
   inline-size shrinks the container, so the toggle fires the identical mobile/tablet layout a real
   narrow window does — the rail becomes a drawer, the aside hides, etc. Still not a full device
   emulator (no simulated touch/DPR, and app-window.css's OWN backdrop/title-bar collapse — a
   separate `@media` — can't follow suit: that rule restyles `body.app-window-backdrop` itself,
   and a container may never query its own condition, only a descendant's; see that file). The
   shell's framed border stays keyed off `.app-shell` (a descendant of body, so this is legal) so
   the visual frame still hugs the shell's own edge, not body's padding box. */
body[data-viewport] { max-width: var(--shell-viewport-w, 100%); margin-inline: auto; }
body[data-viewport] .app-shell { border-inline: 1px solid var(--color-line); }
body[data-viewport="tablet"] { --shell-viewport-w: 48rem; }
body[data-viewport="mobile"] { --shell-viewport-w: 24.4rem; }

/* ---- single-page feel: the shell chrome PERSISTS across cross-document navigations (each name is
   present once per page, so it morphs in place); only <main> is in the root snapshot and cross-fades.
   Reduced-motion disables view transitions globally (grain/styles/global.css). ---- */
.app-shell__rail    { view-transition-name: shell-rail; }
.app-shell__topbar  { view-transition-name: shell-topbar; }
.app-shell__aside   { view-transition-name: shell-aside; }
.app-shell__console { view-transition-name: shell-console; }
.app-shell__window  { view-transition-name: shell-window; }
.app-shell__status  { view-transition-name: shell-status; }

/* organisms/side-rail — the vertical navigation rail inside the app-shell: a brand at the
   top, nav-items, a spacer, then footer items (settings). The rail draws a shared ICON
   GUTTER (a fixed column + a hairline) so every item's glyph sits in its own vertical
   column beside the labels — the editor-workspace look. Collapses to icons-only when the
   shell carries data-rail-collapsed (labels are dropped, the gutter line goes). Composed
   with b-icon + nav-item; a layout class, not a data-bound tag. */
.side-rail {
  position: relative;
  display: flex; flex-direction: column; gap: 2px;
  height: 100%; padding: var(--space-3) var(--space-2);
  overflow: hidden;
}
/* the gutter line — one hairline the full height of the rail, at the icon column's edge */
.side-rail::before {
  content: ""; position: absolute; top: 0; bottom: 0;
  left: calc(var(--space-2) + var(--rail-icon-col, 2.5rem));
  width: 1px; background: var(--color-line);
}
.side-rail__brand {
  display: grid; grid-template-columns: var(--rail-icon-col, 2.5rem) 1fr;
  align-items: center; column-gap: var(--space-2);
  padding: var(--space-2) 0 var(--space-4);
  font-family: var(--font-accent); letter-spacing: 0.02em;
  white-space: nowrap;
}
.side-rail__brand > b-icon, .side-rail__brand > .icon { justify-self: center; }
/* the brand mark carries the theme's accent — hueless under Sourdough, a hue under Baguette/
   Brioche (the accent reaches the brand + the presence star; DESIGN-SYSTEM §2). */
.side-rail__brand > b-icon { color: var(--color-accent); }
.side-rail__spacer { flex: 1 1 auto; }

/* ---- grouped nav — a collapsible section for nested navigation (e.g. a BREAD group over
   BATCH / GRAIN / MILL). Native <details>/<summary>, no JS: the summary IS a nav-item, the
   sub-items indent under it. Open/closed is the browser's; a rotating chevron shows state. ---- */
.side-rail__group { display: contents; }                 /* the <details> itself adds no box */
.side-rail__group > summary { list-style: none; cursor: pointer; }
.side-rail__group > summary::-webkit-details-marker { display: none; }
.side-rail__group > summary .nav-item__chev { margin-left: auto; color: var(--ink-faint);
  transition: transform 0.2s ease; }
.side-rail__group[open] > summary .nav-item__chev { transform: rotate(90deg); }
.side-rail__sub { display: flex; flex-direction: column; gap: 2px; }
/* iconless children: skip the gutter, align labels with the parent's label column */
.side-rail__sub .nav-item {
  grid-template-columns: 1fr auto;
  padding-left: calc(var(--rail-icon-col, 2.5rem) + var(--space-2));
}

/* ---- collapsed: drop the labels + the gutter line, center the glyphs ---- */
[data-rail-collapsed="true"] .side-rail::before { display: none; }
[data-rail-collapsed="true"] .side-rail__brand span,
[data-rail-collapsed="true"] .nav-item__label { display: none; }
[data-rail-collapsed="true"] .nav-item { grid-template-columns: var(--rail-icon-col, 2.5rem); }
[data-rail-collapsed="true"] .side-rail__brand { grid-template-columns: var(--rail-icon-col, 2.5rem); }
[data-rail-collapsed="true"] .side-rail__group > summary .nav-item__chev { display: none; }
[data-rail-collapsed="true"] .side-rail__sub .nav-item { padding-left: 0; }

/* organisms/topbar — the app-shell top bar's CONTENT: a right-aligned control cluster (the theme +
   light/dark toggles, ⌘K, a presence indicator). CSS-only pattern — place a `.topbar-ctl` inside the
   shell's `.app-shell__topbar` region (the shell owns the bar's grid slot + border, app-shell.css).
   Persona-neutral: the toggles are grain `.icon-btn`s carrying the theming controls
   (`data-toggle-scheme`, `data-cycle-theme` — see grain/scripts/theme.js). Consumers supply the
   brand/presence text. See topbar.md. */
.topbar-ctl { display: flex; align-items: center; gap: var(--space-3); margin-left: auto; padding: 0 var(--space-4); }
.presence { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--color-muted); font-size: var(--text-sm); }

/* organisms/status-bar — the editor-style STATUS ROW at the bottom of the app window:
   quiet mono meta-text (presence, build info) left, small controls (theme cycle, scheme
   toggle, ⌘K hint) right. CSS-only pattern — place a `.status-bar` in the app-shell's
   `.app-shell__status` grid row (app-shell.css owns the row; see status-bar.md).
   Controls are STATUS, not content: buttons here unstyle to plain text and only sharpen
   on hover/focus. Tokens only. */
.status-bar {
  display: flex; align-items: center; gap: var(--space-5);
  padding: 0.3rem 0.9rem;
  background: var(--color-surface);
  border-top: 1px solid var(--color-line);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
  white-space: nowrap;
}
.status-bar__spacer { flex: 1; }
.status-bar button {
  all: unset;                    /* a status control reads as text, not a button */
  cursor: pointer;
  font: inherit; color: inherit;
}
.status-bar button:hover { color: var(--color-fg); }
.status-bar button:focus-visible { outline: 1px solid var(--color-accent); outline-offset: 2px; }

/* narrow screens: keep presence + controls, let the middle meta-text go. `@container shell-frame`
   (app-shell.css establishes the container on `<body>`) so this fires off BOTH a real narrow
   window and the shell's viewport-toggle clamp, not just the real one — `.status-bar` is a
   descendant of body, never body itself, so it's legal to query here (see app-shell.css). */
@container shell-frame (max-width: 768px) {
  .status-bar { gap: var(--space-4); }
  .status-bar [data-status-optional] { display: none; }
}

/* organisms/sidebar-panel — the workspace's right-hand panel that fills `.app-shell__aside`: a
   header / scrolling body / composer column. Its default use is the ASSISTANT (chat). During an AI
   takeover (the shell raises `data-acting`) it slides away so the console can narrate; on mobile it
   becomes a bottom sheet. Persona-neutral — the consumer supplies any label/name. CSS-only pattern:
   compose `.assistant` inside `.app-shell__aside`; see sidebar-panel.md. Re-skins via tokens.
   (Loads after app-shell.css in the sorted bundle, so its aside overrides win.) */

/* the panel (assistant form): header · scrolling log · composer */
.assistant { display: flex; flex-direction: column; height: 100%; }
.assistant__head { display: flex; align-items: center; justify-content: space-between; padding: 0 var(--space-4);
  min-height: var(--editor-header-h, 2.9rem); box-sizing: border-box;   /* aligns with the topbar/tab row (one line) */
  border-bottom: 1px solid var(--color-line); font-size: var(--text-sm); text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-muted); }
/* OPTIONAL MODES: a panel may carry several PANES (chat / a catalog / …) switched by small tabs
   in the head. Markup: `.assistant[data-mode="…"]` whose head holds `.assistant__modes` (buttons
   `[data-shell-mode="…"]`), with sibling `.assistant__pane[data-pane="…"]` columns — the inactive
   ones `[hidden]` (SSR sets the initial state; shell.js flips data-mode / hidden / aria-selected).
   Value-agnostic: the consumer names the modes. A panel with no panes is untouched. */
.assistant__modes { display: flex; gap: var(--space-1); }
.assistant__modes [data-shell-mode] { background: transparent; border: 1px solid transparent;
  border-radius: var(--radius-sm); padding: 0 var(--space-2); font: inherit; color: var(--color-muted);
  cursor: pointer; }
.assistant__modes [data-shell-mode][aria-selected="true"] { color: var(--color-fg);
  border-color: var(--color-line); background: var(--color-surface); }
.assistant__pane { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.assistant__pane[hidden] { display: none; }

.assistant__log { flex: 1; overflow: auto; padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-3);
  scroll-behavior: smooth; }
.assistant__log > :first-child { margin-top: auto; }   /* bottom-pin the conversation — no mid-panel dead space */
.assistant__composer { border-top: 1px solid var(--color-line); padding: var(--space-3); display: flex; gap: var(--space-2); }
.assistant__composer .field__input { flex: 1; font: inherit; font-size: var(--text-sm); color: var(--color-fg);
  background: var(--color-bg); border: 1px solid var(--color-line); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); }
.assistant__composer .field__input::placeholder { color: var(--ink-faint); }

/* TAKEOVER: the shell raises `data-acting` (grain/scripts/ai-dispatch.js). The terminal (console)
   narrates the AI's THINKING; the chat is for COMMUNICATION — the two are separate concerns and
   both stay visible during a run (owner, 2026-07-05: the chat no longer collapses when the AI
   works). The panel just lifts above the spotlight veil so it stays usable mid-run — a click in
   here is not an interrupt (ai-dispatch ignores aside/console clicks). */
.app-shell[data-acting="true"] .app-shell__aside { position: relative; z-index: var(--z-ai-surface, 9002); }

/* mobile (<768px): the panel becomes a bottom SHEET. The shell drops the aside column, so re-show it
   fixed to the bottom, collapsed to its header as a grab bar; tap the header to raise the full panel.
   `@container shell-frame`, not `@media` (app-shell.css establishes the container on `<body>` and
   converts its own layout breakpoints the same way — this one has to move in lockstep, or the
   viewport-toggle would hide the aside per app-shell.css's mobile block without this bottom-sheet
   override ever kicking in to replace it, since its old `@media` never fired off the toggle's
   clamp). Every selector here targets a descendant of body (`.app-shell__aside`, `.assistant__head`),
   never body itself, so the container-query self-query rule doesn't block this file. */
@container shell-frame (max-width: 768px) {
  .app-shell__aside {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-ai-surface, 9002);
    height: 85dvh; opacity: 1;
    transform: translateY(calc(100% - 2.75rem));           /* collapsed: the head peeks as a bar */
    border: 0; border-top: 1px solid var(--ink); border-radius: var(--radius-md) var(--radius-md) 0 0;
  }
  .assistant__head { cursor: pointer; }                    /* the grab bar toggles the sheet */
  .assistant__head::after { content: "▴"; color: var(--ink-faint); }
  .app-shell[data-aside-open] .assistant__head::after { content: "▾"; }
  .app-shell[data-aside-open] .app-shell__aside { transform: translateY(0); }
  /* while acting, the floating console is the AI surface — hide the idle sheet unless the chat is
     explicitly opened, then raise it full. */
  .app-shell[data-acting="true"] .app-shell__aside { transform: translateY(100%); }
  .app-shell[data-acting="true"][data-chat-open] .app-shell__aside { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .app-shell__aside { transition: none; }
  .assistant__log { scroll-behavior: auto; }
}

/* organisms/timeline — the INTERACTION TIMELINE: a read-only, push-only feed of every crossing of
   the one door, human AND AI, recorded identically at the single writer (AI-INTERFACE §5g). The AI
   only ever WRITES to it (`log` render ops at the `timeline` surface); nothing acts on it, so it's a
   push surface, never a SurfaceKind. Provenance is shown the GRAIN way — by GRADE, not a hue: an AI
   crossing renders in the grain font behind a dashed "terminal" edge (grain = AI); a human crossing
   in the smooth font behind a solid edge; a system rejection stays faint. Tokens only. CSS-only
   pattern (no .html): compose the markup below inside your page; see timeline.md. */

.timeline { display: flex; flex-direction: column; min-height: 0;
  border: 1px solid var(--color-line); border-radius: var(--radius-md); background: var(--color-bg); }

.timeline__head { display: flex; align-items: baseline; gap: var(--space-3); flex: 0 0 auto;
  padding: var(--space-2) var(--space-4); border-bottom: 1px solid var(--color-line);
  font-family: var(--font-grain); font-size: var(--text-sm); color: var(--color-fg); }
.timeline__hint { color: var(--color-muted); font-size: var(--text-xs); }

/* the scrolling feed — the `data-surface="timeline"` element `log` ops land in. It sizes to its
   content and CAPS at 18rem, scrolling inside there (pinned to newest by the dispatcher, since
   overflowY = auto). `flex: 0 1 auto` (not `1 1 0`): this component sits in normal document flow,
   so the feed must grow with its rows — a `1 1 0` basis would collapse it to a sliver here (that
   fill-the-row behaviour is for a fixed-height parent like the docked console). */
.timeline__feed { list-style: none; margin: 0; padding: var(--space-2) var(--space-3);
  display: flex; flex-direction: column; gap: var(--space-1);
  flex: 0 1 auto; min-height: 0; max-height: 18rem; overflow: auto; scroll-behavior: smooth; }
.timeline__feed:empty::after { content: "No crossings yet — ask the AI, or watch it act.";
  color: var(--ink-faint); font-family: var(--font-grain); font-size: var(--text-sm); padding: var(--space-2); }

/* one crossing. The left edge carries the provenance; the row reads verb + detail. */
.timeline__entry { display: flex; align-items: baseline; gap: var(--space-2);
  padding: var(--space-1) var(--space-2); padding-left: var(--space-3);
  border-left: 3px solid var(--color-accent); font-size: var(--text-sm); color: var(--color-fg); }

/* grade = provenance (DESIGN-SYSTEM §3): AI in the grain font behind a DASHED terminal edge (non-text
   grain = dashed edge); the human in the smooth font behind a solid edge; a system rejection faint. */
.timeline__entry[data-provenance="user"]   { font-family: var(--font-smooth); }
.timeline__entry[data-provenance="ai"]      { font-family: var(--font-grain); border-left-style: dashed; }
.timeline__entry[data-provenance="system"]  { font-family: var(--font-grain); border-left-color: var(--ink-faint); color: var(--ink-muted); }

/* a failed crossing (rejected request / rolled-back write) reads as struck through, still legible. */
.timeline__entry[data-ok="false"] { color: var(--ink-muted); }
.timeline__entry[data-ok="false"] .timeline__verb { text-decoration: line-through; }

.timeline__who { flex: 0 0 auto; min-width: 2.6rem; text-transform: uppercase;
  letter-spacing: 0.06em; font-size: var(--text-xs); color: var(--color-muted); }
.timeline__mark { flex: 0 0 auto; color: var(--color-accent); }
.timeline__entry[data-ok="false"] .timeline__mark { color: var(--ink-muted); }
.timeline__verb { flex: 0 0 auto; color: var(--color-fg); }
.timeline__detail { flex: 1 1 auto; min-width: 0; color: var(--color-muted);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) { .timeline__feed { scroll-behavior: auto; } }

/* organisms/console — the AI's narration TERMINAL, a DOCKED bottom panel (VS Code style): it
   lives in the shell's `console` grid row under main, not floating. At rest it's a slim clickable
   bar ("Terminal ▸"); clicking it — or the AI taking over (`data-acting`) — opens the feed in
   place (the grid row grows to a fixed band). A second control (`console__grow`) expands that
   band further, to fill most of the shell's height. It narrates the AI's steps as `action-badge`
   lines. Persona-neutral. CSS-only pattern: compose `.console__box` inside `.app-shell__console`;
   see console.md. (Loads after app-shell.css in the sorted bundle.) */

.app-shell__console { display: flex; flex-direction: column; min-height: 0; background: var(--color-bg); }
/* the box fills the console grid row (whose HEIGHT is what animates, in app-shell.css); the bar is
   fixed, the feed flex-grows into the rest — so the row height alone drives open/expand and the
   feed carries no intrinsic height (see the feed's `flex: 1 1 0` below). */
.console__box { display: flex; flex-direction: column; width: 100%; flex: 1 1 auto; min-height: 0; overflow: hidden; background: var(--color-bg); }
.console__bar { display: flex; align-items: center; gap: var(--space-2); flex: 0 0 auto;
  padding: var(--space-2) var(--space-4); font-family: var(--font-grain); font-size: var(--text-sm); color: var(--color-muted); }
/* the expand control: a transparent, keyboard-operable button that looks like the bar text */
.console__expand { display: flex; align-items: center; gap: var(--space-2); flex: 1; min-width: 0;
  background: transparent; border: 0; padding: 0; margin: 0; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.console__expand:focus-visible, .console__grow:focus-visible, .chat-thinking__toggle:focus-visible {
  outline: 2px solid var(--color-accent); outline-offset: 2px; }
.console__label { color: var(--color-fg); }
.console__acting { display: none; color: var(--color-fg); }   /* shown only while acting */
.console__chev { color: var(--ink-faint); transition: transform 0.2s ease; }   /* ▾ open · ▸ collapsed */
.app-shell:not([data-console-open]):not([data-acting="true"]) .console__chev { transform: rotate(-90deg); }
/* the feed carries NO intrinsic height (`flex: 1 1 0`) — it simply fills whatever the console grid
   row gives it beyond the bar. So closed (row = bar height) → feed 0 → hidden; open (row = the
   16rem band) → feed ~13rem; expanded (row = 1fr) → feed fills the screen. All the animation lives
   in the grid ROW height (app-shell.css), which glides because its endpoints are all lengths/fr —
   the feed just follows. This replaced a `max-height` reveal that snapped on the auto↔fr expand. */
.console__feed { display: flex; flex-direction: column; gap: var(--space-2); flex: 1 1 0;
  min-height: 0; overflow: auto; scroll-behavior: smooth;
  border-top: 0 solid var(--color-line);
  padding: 0 var(--space-4); font-family: var(--font-grain); font-size: var(--text-sm); }
/* fully CLOSED = the feed is genuinely gone (not a 1-2px sliver that reads as "visible"): the row
   is just the bar. It reappears when open/expanded, sliding in as the grid row grows around it.
   (A run alone — data-acting — keeps it closed; the chat previews instead.) */
.app-shell:not([data-console-open]):not([data-console-expanded]) .console__feed { display: none; }
/* border + vertical padding appear once there's a feed to show (open / expanded) */
.app-shell[data-console-open] .console__feed,
.app-shell[data-console-expanded] .console__feed { border-top-width: 1px; padding-top: var(--space-2); padding-bottom: var(--space-2); }
/* v3.1 tried boxing each line individually (mirrors chat-message) — reverted (owner, 2026-07-06):
   it read as harder to scan, not easier, and doubled up with the chat-thinking box's own border
   around the whole run's preview. A flowing stream, one row per line, is the readable form; the
   OUTPUT-level grouping (one bordered box per run) already comes from the surrounding container
   (.console__feed's border-top in the terminal, .chat-thinking's border in the chat preview). */
.console__line { display: flex; align-items: baseline; gap: var(--space-2); padding: var(--space-1) 0; }
.console__desc { color: var(--color-fg); }
.console__line[data-variant="cmd"] .console__prompt { color: var(--color-accent); }   /* the echoed human command */
.console__line[data-state="error"] .console__desc { color: var(--color-danger, var(--color-accent)); }
.console__line a { color: var(--color-accent); text-decoration: none; }
.console__line a:hover { text-decoration: underline; }
.console__pre { margin: 0; white-space: pre-wrap; word-break: break-word;
  font-family: var(--font-grain); font-size: var(--text-xs); color: var(--color-fg); line-height: 1.5; }

/* the INTERACTIVE command line (grain/scripts/terminal.js injects it into a
   `.console__box[data-terminal="interactive"]`). Shown only when the terminal is open — it rides
   the same open/close as the feed. The prompt is grain (machine), the typed text is clean (human,
   via .field-like grade); tokens only. */
.console__input { display: none; align-items: baseline; gap: var(--space-2); flex: 0 0 auto;
  border-top: 1px solid var(--color-line); padding: var(--space-2) var(--space-4);
  font-family: var(--font-grain); font-size: var(--text-sm); }
.app-shell[data-console-open] .console__box[data-terminal="interactive"] .console__input { display: flex; }
.console__prompt { color: var(--color-muted); flex: 0 0 auto; }
.console__cmd { flex: 1; min-width: 0; background: transparent; border: 0; padding: 0; margin: 0;
  color: var(--color-fg); font-family: var(--font-smooth); font-size: var(--text-sm); }
.console__cmd::placeholder { color: var(--ink-faint); }
.console__cmd:focus { outline: none; }
.console__input:focus-within .console__prompt { color: var(--color-accent); }

/* the chat's mid-run "thinking" box: a compact indicator + a small LIVE PREVIEW of the terminal
   output (the last few lines, mirrored by shell.js), with a button to expand the full terminal. */
.chat-thinking { display: none; flex-direction: column; margin: 0 var(--space-4) var(--space-3);
  border: 1px dashed var(--ink-faint); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3);
  background: color-mix(in srgb, var(--ink) 4%, transparent); }
.chat-thinking__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-1); }
.chat-thinking__who { font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-faint); }
/* compact icon button (saves space in the run-time thinking box) */
.chat-thinking__toggle { cursor: pointer; font: inherit; color: var(--color-fg);
  display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; padding: 0;
  background: transparent; border: 1px solid var(--color-line); border-radius: var(--radius-sm); }
.chat-thinking__toggle:hover { background: var(--paper-2); }
/* holds CLONED narration lines (each action in its own box, mirrored from the terminal) */
.chat-thinking__preview { display: flex; flex-direction: column; gap: var(--space-1);
  max-height: 6em; overflow: hidden; font-size: var(--text-xs); }
.chat-thinking__preview:empty { display: none; }

/* the GROW toggle: expand the docked terminal to fill most of the shell's vertical space (owner,
   2026-07-06) instead of the fixed 11rem band — for reading a long run back. Label via ::before,
   so it stays correct even when the state is reset externally. Repurposes the slot of the old
   chat⇄terminal toggle, dead since the chat and terminal started coexisting (owner, 2026-07-05). */
.console__grow { display: inline-flex; align-items: center; margin-left: auto; cursor: pointer;
  font: inherit; font-size: var(--text-xs); color: var(--color-fg); background: transparent;
  border: 1px solid var(--color-line); border-radius: var(--radius-sm); padding: 2px var(--space-2); }
.console__grow::before { content: "⤢ expand"; }
.app-shell[data-console-expanded] .console__grow::before { content: "⤡ collapse"; }
.console__grow:hover { background: var(--paper-2); }

/* TAKEOVER: on `data-acting` the docked terminal's bar becomes the "acting" indicator (grain's
   top label is hidden) and the feed opens in place. The chat stays put alongside it — thinking
   goes to the terminal, communication to the chat (owner, 2026-07-05). */
.app-shell[data-acting="true"] .console__acting { display: inline; }
.app-shell[data-acting="true"] ~ .ai-acting-label { display: none; }
/* the docked terminal stays ABOVE the spotlight veil so its narration is never dimmed/overlaid */
.app-shell[data-acting="true"] .app-shell__console { position: relative; z-index: var(--z-ai-surface, 9002); }
/* the chat shows a compact "thinking" indicator during a run (its full narration is the terminal) */
.app-shell[data-acting="true"] .chat-thinking { display: flex; }

@media (prefers-reduced-motion: no-preference) {
  .app-shell[data-acting="true"] .console__bar .icon { animation: console-blink 1s steps(1) infinite; }
}
@media (prefers-reduced-motion: reduce) { .console__feed, .console__chev { transition: none; } }
@keyframes console-blink { 50% { opacity: 0.25; } }

/* organisms/file-tree — an EXPLORER file tree (the editor-workspace metaphor): folders as native
   <details>/<summary> (zero-JS collapse, COLLAPSED by default — author without `open`), files as
   real <a> links. Mono type, hairline indent guides, a chevron that rotates on open — VS Code's
   explorer re-spoken in GRAIN. A layout class composed of native elements, not a data-bound tag;
   what the paths MEAN (which file produces which page) is the consumer's contract — this only
   draws the tree. Lives naturally in the app-shell rail (side-rail[data-variant="explorer"]
   drops the icon gutter for it), but works in any column. */
.file-tree {
  display: flex; flex-direction: column;
  min-height: 0; overflow-y: auto; overscroll-behavior: contain;
  font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: 0.01em;
  scrollbar-width: thin;
}

/* ---- a folder: <details class="file-tree__dir"><summary>name/</summary><div class="file-tree__children">… ---- */
.file-tree__dir > summary {
  display: flex; align-items: center; gap: var(--space-1);
  padding: 0.28rem var(--space-2);
  color: var(--color-muted); cursor: pointer; user-select: none;
  list-style: none; white-space: nowrap;
}
.file-tree__dir > summary::-webkit-details-marker { display: none; }
.file-tree__dir > summary:hover { color: var(--color-fg); }
/* the chevron: one glyph, rotated by state — no per-state art */
.file-tree__dir > summary::before {
  content: "▸"; flex: 0 0 auto; width: 0.9em;
  color: var(--ink-faint); font-size: 0.9em;
  transition: transform 0.15s ease;
}
.file-tree__dir[open] > summary::before { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) { .file-tree__dir > summary::before { transition: none; } }

/* ---- children indent under a hairline guide (the VS Code indent line) ---- */
.file-tree__children {
  display: flex; flex-direction: column;
  margin-left: calc(var(--space-2) + 0.45em);
  border-left: 1px solid color-mix(in srgb, var(--color-line) 60%, transparent);
}

/* ---- a file: a real link (hypermedia — the tree navigates with zero JS) ---- */
.file-tree__file {
  display: block; padding: 0.28rem var(--space-2);
  color: var(--color-muted); text-decoration: none;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.file-tree__file:hover { color: var(--color-fg);
  background: color-mix(in srgb, var(--color-surface) 70%, transparent); }
/* an index/entry file (a folder's own page, e.g. index.html) is DIMMED — the directory name
   above it carries the meaning, so the filename recedes. Hover + current win by later position. */
.file-tree__file[data-variant="index"] { color: var(--ink-faint); }
/* the OPEN file: ink + a quiet accent edge (mirrors the rail's current-item bar) */
.file-tree__file[aria-current="page"] {
  color: var(--color-fg); position: relative;
  background: color-mix(in srgb, var(--color-surface) 85%, transparent);
}
.file-tree__file[aria-current="page"]::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: -1px;
  width: 2px; background: var(--color-accent);
}

/* a collection folder may make its NAME a link (the folder's index page): the summary's <a>
   inherits the folder register; navigating is the link's, toggling stays the summary's. */
.file-tree__dir > summary > a { color: inherit; text-decoration: none; }
.file-tree__dir > summary > a:hover { color: var(--color-fg); }

/* ---- a file that's also an OPEN TAB gets a close affordance (tabs.js injects `.file-tree__close`
   as a real child span, live-wired — mirrors `.tab__close`'s hidden-until-hover pattern). :has()
   opts a single row into the flex/space-between layout; a plain file-tree__file is untouched. ---- */
.file-tree__file:has(.file-tree__close) { display: flex; align-items: center; justify-content: space-between; }
.file-tree__close {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 1.15rem; height: 1.15rem; border-radius: var(--radius-sm);
  color: transparent; pointer-events: none;
}
.file-tree__file:hover .file-tree__close, .file-tree__file[aria-current="page"] .file-tree__close {
  color: var(--ink-faint);
}
.file-tree__close:hover { color: var(--color-fg); background: color-mix(in srgb, var(--color-surface) 70%, transparent); }

/* ---- inside a collapsed shell rail the labels are gone — a tree without labels is noise ---- */
[data-rail-collapsed="true"] .file-tree { display: none; }

/* ---- explorer variant of the rail: the icon gutter is the NAV rail's look; a tree brings its
   own indent guides, so the host drops the gutter line ---- */
.side-rail[data-variant="explorer"]::before { display: none; }

/* organisms/code-editor — the interactive tier ABOVE code-block (atoms/code-block). Where
   code-block is a static, hand-composed <pre> for MILL's blog prose, code-editor is the EDIT
   surface: a framed panel with a toolbar, a mount slot a real editor (Monaco) is injected into,
   a validation status strip, a diagnostics list, and a version-history drawer.

   CSS-ONLY, like every grain component — grain ships no JS bundler, so this component bundles NO
   editor. The consumer lazy-loads its own editor into `.code-editor__mount` (keeping Monaco's
   weight off every page that isn't editing) and toggles the state data-attrs below. That's the
   deliberate seam: grain owns the chrome + the monochrome grammar; the app owns the engine.

   Shares code-block's mono/surface tokens on purpose — code in a MILL blog and code in the
   editor read as ONE system. Signal is grain-monochrome throughout: no hue, states come from
   weight/opacity/dashed-edge, never colour (DESIGN-SYSTEM §2). */

.code-editor {
  display: flex; flex-direction: column; min-height: 0;   /* flex child that can shrink for the mount to scroll */
  background: var(--color-surface);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-md);
  overflow: hidden;                                        /* clip the mount + drawer to the rounded frame */
  font-family: var(--font-mono);                           /* the editing surface is code — mono in either grade */
}

/* ---- toolbar: the file identity on the left, actions on the right ------------------------- */
.code-editor__bar {
  display: flex; align-items: center; gap: var(--space-2); flex: 0 0 auto;
  padding: var(--space-2) var(--space-3);
  border-bottom: 1px solid var(--color-line);
  background: var(--color-bg);
  font-family: var(--font-grain);                          /* chrome is machine-voice; only the code itself is mono */
  font-size: var(--text-sm);
}
.code-editor__title { color: var(--color-fg); font-family: var(--font-mono); min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }   /* long paths truncate, never wrap the bar */
/* a quiet "• unsaved" marker the app shows by flipping data-dirty on the root */
.code-editor__dirty { color: var(--color-muted); font-size: var(--text-xs); display: none; }
.code-editor[data-dirty="true"] .code-editor__dirty { display: inline; }
.code-editor__actions { display: flex; align-items: center; gap: var(--space-2); margin-left: auto; flex: 0 0 auto; }

/* ---- mount: where the app injects the editor. Empty, it reads as a quiet code surface so the
   panel never looks broken before the engine loads (progressive: SSR a <pre class="code-block">
   here and Monaco replaces it). ---------------------------------------------------------------- */
.code-editor__mount {
  flex: 1 1 0; min-height: 0;                              /* fills the frame beyond bar+strip; owns the scroll */
  overflow: auto;
  background: var(--color-surface);
  font-family: var(--font-mono); font-size: var(--text-sm); line-height: var(--leading-normal);
  color: var(--color-fg);
}
.code-editor__mount:focus-within { outline: 2px solid var(--color-accent); outline-offset: -2px; }  /* inset — the frame already clips */
/* a code-block dropped inside the mount (the pre-engine fallback) loses its own frame — the panel
   is the frame now. */
.code-editor__mount .code-block { margin: 0; border: 0; border-radius: 0; height: 100%; }

/* ---- status strip: one line under the mount, driven by data-state on the root. Monochrome:
   the WORD carries the signal (via ::before glyph), invalid adds WEIGHT not colour. ------------ */
.code-editor__status {
  flex: 0 0 auto; display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-1) var(--space-3);
  border-top: 1px solid var(--color-line);
  font-family: var(--font-grain); font-size: var(--text-xs); color: var(--color-muted);
}
.code-editor__status::before { content: ""; color: var(--color-fg); }
.code-editor[data-state="validating"] .code-editor__status::before { content: "◐ "; }
.code-editor[data-state="valid"]      .code-editor__status::before { content: "✓ "; }
.code-editor[data-state="invalid"]    .code-editor__status::before { content: "✕ "; }
.code-editor[data-state="saved"]      .code-editor__status::before { content: "✓ "; }
/* invalid is louder, not redder — heavier ink + weight, mirroring b-select:user-invalid's 2px */
.code-editor[data-state="invalid"] .code-editor__status { color: var(--color-fg); font-weight: var(--font-weight-medium); }
.code-editor[data-state="invalid"] { border-width: 2px; }

/* ---- diagnostics: the parse/validate errors, listed under the strip. Hidden until there are
   any (app sets data-state="invalid" / fills the list). Each row is line:col + message. -------- */
.code-editor__diagnostics { flex: 0 0 auto; display: none; max-height: 9rem; overflow: auto;
  border-top: 1px solid var(--color-line); padding: var(--space-2) var(--space-3);
  font-family: var(--font-mono); font-size: var(--text-xs); }
.code-editor[data-state="invalid"] .code-editor__diagnostics:not(:empty) { display: block; }
.code-editor__diag { display: flex; gap: var(--space-2); padding: var(--space-1) 0; color: var(--color-fg); }
.code-editor__diag-loc { color: var(--color-muted); flex: 0 0 auto; }   /* e.g. "12:4" — the click target the app wires to jump the caret */
.code-editor__diag[data-clickable] { cursor: pointer; }
.code-editor__diag[data-clickable]:hover .code-editor__diag-loc { color: var(--color-accent); text-decoration: underline; }

/* ---- history drawer: versions of this spec, newest first. Off-canvas to the right, revealed by
   data-history on the root (the app toggles it from a toolbar button). Each row: author + time +
   message; restore is a button the app wires (restore = write a NEW version, never mutate). ---- */
.code-editor__history {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(20rem, 80%);
  transform: translateX(100%); transition: transform 0.2s ease;
  background: var(--color-bg); border-left: 1px solid var(--color-line);
  display: flex; flex-direction: column; overflow: auto;
  font-family: var(--font-grain); font-size: var(--text-sm);
}
.code-editor { position: relative; }                       /* the drawer anchors to the panel */
.code-editor[data-history="open"] .code-editor__history { transform: translateX(0); }
.code-editor__history-head { flex: 0 0 auto; display: flex; align-items: center; gap: var(--space-2);
  padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-line);
  text-transform: uppercase; letter-spacing: 0.06em; font-size: var(--text-xs); color: var(--ink-faint); }
.code-editor__version { display: flex; flex-direction: column; gap: 2px;
  padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--color-line); cursor: pointer; }
.code-editor__version:hover { background: var(--paper-2); }
.code-editor__version[data-current] { border-left: 2px solid var(--color-accent); }   /* the live version */
.code-editor__version-meta { display: flex; gap: var(--space-2); color: var(--color-muted); font-size: var(--text-xs); }
.code-editor__version-msg { color: var(--color-fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) { .code-editor__history { transition: none; } }

/* ---- AI / in-transit: same vocabulary as code-block + the atoms (CONVENTIONS §4). An editor the
   AI is writing into wears the dashed "terminal" edge (non-text grain). Human editing never
   triggers it; the catalog grain-flip demonstrates it. ---------------------------------------- */
.code-editor[data-commit="pending"],
[data-grade="grain"] .code-editor { border-style: dashed; border-color: var(--ink); }

/* organisms/note — the editorial content article MILL's default layout emits:
   .note / .note__head / .note__lede / .note__tags. CSS-only (CONVENTIONS §4): composed by
   MILL at request time, nothing data-binds it. MILL content is human-authored → the layout
   stamps data-grade="smooth", so the AI-mode idiom never triggers from MILL itself; the
   text grain would still apply if a consumer ever marked one in-transit. */
.note { max-width: 72ch; }
.note > p, .note > ul, .note > ol, .note > blockquote { line-height: var(--leading-relaxed); }

.note__head .eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--text-xs); }
.note__head .masthead { font-size: var(--text-3xl); margin-bottom: var(--space-3); }
.note__lede {
  color: var(--color-muted);
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  max-width: 60ch;
  margin: 0 0 var(--space-4);
}
.note__tags { display: flex; flex-wrap: wrap; gap: var(--space-1); margin: 0 0 var(--space-4); }
.note__head > .rule { margin-top: var(--space-4); }

/* organisms/app-window — the EDITOR-WINDOW frame: the whole app boxed in a bordered,
   radiused window sitting on a darker backdrop, with a title bar up top. CSS-only pattern
   (no .html — it dresses the app-shell; see app-window.md for the parent contract):

     <body class="app-window-backdrop">
       <div class="app-shell app-window">
         <header class="app-shell__window window-bar">…</header>   ← the title bar row
         … the shell's regions …
         <footer class="app-shell__status status-bar">…</footer>   ← see status-bar
       </div>
     </body>

   The app-shell grid owns the ROWS (app-shell.css: "window" / "status"); this file owns the
   LOOK: hairline frame, print-style solid offset shadow (no blur). The title bar hosts, left
   to right: the WINDOW NAV (functional icon buttons: back / refresh / forward — glyphs always
   visible, hover goes to our fg color, never OS traffic-lights), an optional control cluster
   (`__ctl`), a centered title OR search field (`__title` / `__search`), and a symmetry spacer
   (`__end`). Tokens only; re-themes for free. */

/* the backdrop: the page behind the window, a shade darker than the paper */
.app-window-backdrop {
  background: color-mix(in srgb, var(--ink) 12%, var(--paper));
  padding: clamp(0.5rem, 2vh, 1.5rem);
  height: 100dvh;
  box-sizing: border-box;
}

/* the frame: pairs with .app-shell (which sets height: 100dvh — inside the padded
   backdrop the window fills what's left, hence the higher-specificity override) */
.app-shell.app-window { height: 100%; }
.app-window {
  border: 1px solid var(--ink);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 4px 4px 0 color-mix(in srgb, var(--ink) 30%, transparent);   /* print-style, zero blur */
}

/* ---- the title bar ---- */
.window-bar {
  display: flex; align-items: center; gap: var(--space-4);
  padding: 0.4rem 0.9rem;
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-line);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--color-muted);
}

/* the window nav — OS-window CIRCLES, but carrying functional icons (back / refresh / forward):
   round hairline buttons with the glyph ALWAYS visible (quiet muted ink at rest); hover/focus
   goes to our fg + accent tint — no OS traffic-light colors. */
.window-bar__nav { display: flex; align-items: center; gap: 0.4rem; }
.window-bar__nav button {
  all: unset; box-sizing: border-box; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.15rem; height: 1.15rem; border-radius: 50%;
  border: 1px solid var(--color-muted);
  color: var(--color-muted); line-height: 1;
}
.window-bar__nav button:hover {
  color: var(--color-fg); border-color: var(--color-fg);
  background: color-mix(in srgb, var(--color-accent) 14%, transparent);
}
.window-bar__nav button:focus-visible { outline: 1px solid var(--color-accent); outline-offset: 2px; }
.window-bar__nav .icon { width: 0.72rem; height: 0.72rem; }

/* the control cluster — theme/scheme/view toggles. Sits on the RIGHT (the left is only the OS
   circle buttons); the flex:1 search between them keeps it pinned to the trailing edge. */
.window-bar__ctl { display: flex; align-items: center; gap: var(--space-3); flex: none; }
.window-bar__ctl button { all: unset; cursor: pointer; font: inherit; color: inherit; }
.window-bar__ctl button:hover { color: var(--color-fg); }
.window-bar__ctl button:focus-visible { outline: 1px solid var(--color-accent); outline-offset: 2px; }

/* centered title (plain text form) */
.window-bar__title { flex: 1; text-align: center; letter-spacing: 0.06em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* centered SEARCH form: a button drawn as an input (it opens the ⌘K palette) — the editor's
   center search field. The placeholder text is the consumer's (e.g. the page's breadcrumb). */
.window-bar__search {
  all: unset; box-sizing: border-box; cursor: pointer;
  flex: 1; max-width: 34rem; margin-inline: auto;
  display: flex; align-items: center; gap: var(--space-2); justify-content: center;
  padding: 0.15rem 0.7rem;
  border: 1px solid var(--color-line); border-radius: var(--radius-sm);
  background: var(--color-bg);
  font: inherit; color: var(--color-muted);
  white-space: nowrap; overflow: hidden;
}
.window-bar__search:hover { border-color: var(--color-muted); }
.window-bar__search:focus-visible { outline: 1px solid var(--color-accent); outline-offset: 2px; }

/* ---- mobile: the window collapses — no backdrop padding, no frame, no title bar
   (the shell's drawer chrome carries the brand there); the status bar stays.

   SPLIT ON PURPOSE (2026-07-14): app-shell.css turns its own layout breakpoints into
   `@container shell-frame`, keyed to `<body>` — but `.app-window-backdrop` IS `<body>` itself
   (see the class on `<body>` in the comment up top), and a container can never legally query its
   own condition, only a descendant's (CSS containment spec). So the backdrop padding stays a real
   `@media`: it tracks a real narrow WINDOW correctly, but the shell's viewport-toggle preview
   (which clamps body's width, not the real viewport) can't collapse it — a known, harmless gap in
   a demo-only feature. `.app-shell.app-window` and `.window-bar`, though, are DESCENDANTS of body,
   not body itself, so they're free to follow the container — converted, so the toggle's preview at
   least drops the frame border/shadow/title-bar even though the backdrop margin lingers. ---- */
@media (max-width: 768px) {
  .app-window-backdrop { padding: 0; }
}
@container shell-frame (max-width: 768px) {
  .app-shell.app-window { border: 0; border-radius: 0; box-shadow: none; }
  .window-bar { display: none; }
}

/* grain/styles/cmdk.css — styles for the global command palette (cmdk.js).
   Uses only design tokens — no hardcoded colors or sizes.

   Restyle (owner, 2026-07-06 — visual only, matching logic untouched): was drifted from the
   rest of THE EDITOR's chrome on THREE counts — (1) raw --ink/--paper/--line-soft instead of the
   semantic --color-* tokens everything else here uses, so it couldn't pick up the accent hue
   under Baguette/Brioche (--color-accent overrides --ink for the flavor, never the reverse);
   (2) --font-smooth while the file-tree/tab-bar/console it sits beside are --font-mono — the
   actual "doesn't match the VS Code vibe" gap; (3) the selected row was a solid ink-invert
   block, the exact pattern DESIGN-SYSTEM §5 already rejected elsewhere (see icon-btn.css's own
   hover comment) — a loud block instead of a quiet accent wash. */
.cmdk {
  max-width: 34rem; width: calc(100% - 2rem); margin: 3rem auto auto; padding: 0;
  border: 1px solid var(--color-line); border-radius: var(--radius-md); overflow: hidden;
  background: var(--color-bg); color: var(--color-fg);
  font-family: var(--font-mono);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ink) 22%, transparent);
  opacity: 0; transform: translateY(-0.5rem); transition: opacity .16s ease, transform .16s ease;
}
.cmdk[open] { opacity: 1; transform: translateY(0); }
@starting-style { .cmdk[open] { opacity: 0; transform: translateY(-0.5rem); } }
.cmdk::backdrop { background: color-mix(in srgb, var(--ink) 18%, transparent); }
@media (prefers-reduced-motion: reduce) { .cmdk { transition: none; transform: none; } }

/* anchored: dropped directly beneath the title bar's search field (cmdk.js measures it on open,
   not guessed — grain/CLAUDE.md lesson 9). Reads as that field growing a results list, not a
   separate floating box: same left edge + width, flush top corners, top border dropped so the
   field's own bottom edge is the only seam. */
.cmdk--anchored {
  top: var(--cmdk-top); left: var(--cmdk-left); width: var(--cmdk-width);
  max-width: none; margin: 0;
  border-top-left-radius: 0; border-top-right-radius: 0; border-top-color: transparent;
}

.cmdk__row {
  display: flex; align-items: center; gap: var(--space-2);
  border-bottom: 1px solid var(--color-line); padding: 0 1rem;
}
.cmdk__icon { width: 1rem; height: 1rem; color: var(--color-muted); flex: none; }
.cmdk__input {
  width: 100%; box-sizing: border-box; border: 0;
  background: transparent; padding: .85rem 0;
  font-family: inherit; font-size: 1.1rem; color: inherit;
  /* no outline:none — the input is the palette's focused control; it takes the global
     :focus-visible accent ring (global.css) so keyboard focus is visible on open. */
}
.cmdk__input::placeholder { color: var(--ink-faint); }

.cmdk__list { list-style: none; margin: 0; padding: .25rem; max-height: 52vh; overflow: auto; }
.cmdk__item { display: flex; align-items: baseline; gap: .6rem; padding: .5rem .75rem; border-radius: 2px; cursor: pointer; }
/* selected = a quiet ACCENT wash (never an invert) — the same treatment as every other
   current/selected state in the shell (nav-item[aria-current], tabs, file-tree), so the
   highlight reaches the accent hue on Baguette/Brioche instead of staying flat monochrome. */
.cmdk__item.is-sel { background: color-mix(in srgb, var(--color-accent) 14%, transparent); }

.cmdk__sub { color: var(--color-muted); font-size: .85em; }

.cmdk__kind { margin-left: auto; font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-faint); }

.cmdk__empty { padding: .75rem 1rem; color: var(--color-muted); }

.cmdk__hint {
  padding: .5rem 1rem; border-top: 1px solid var(--color-line);
  font-size: .7rem; color: var(--color-muted); text-transform: uppercase; letter-spacing: .06em;
}

/* grain/styles/lightbox.css — the image viewer modal (lightbox.js). Design tokens only,
   no hardcoded colors. Native <dialog>: it owns the top-layer + ::backdrop, so no z-index
   races and no scrim div. The dialog fills the viewport and centres the figure; the dark
   gutter around the image IS the light-dismiss target. */
/* no `display` on the base rule: the UA hides a closed <dialog> with display:none, and setting a
   display here would defeat that (the closed viewer would stay on screen). Layout goes on [open]. */
.lightbox {
  width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh;
  margin: 0; padding: 0; border: 0; background: transparent; color: var(--color-fg);
  overflow: hidden;
  opacity: 0; transition: opacity .16s ease;
}
.lightbox[open] {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  opacity: 1;
}
@starting-style { .lightbox[open] { opacity: 0; } }
.lightbox::backdrop { background: color-mix(in srgb, var(--ink) 82%, transparent); }
@media (prefers-reduced-motion: reduce) { .lightbox { transition: none; } }

/* the figure: the centre column, holds the image + its caption */
.lightbox__figure {
  grid-column: 2; justify-self: center; align-self: center;
  display: flex; flex-direction: column; gap: var(--space-2);
  max-width: 100%; max-height: 100dvh; margin: 0; padding: var(--space-3);
  box-sizing: border-box;
}
.lightbox__img {
  display: block; max-width: 100%; max-height: calc(100dvh - 6rem);
  width: auto; height: auto; object-fit: contain;
  border-radius: var(--radius-md); background: var(--color-bg);
  box-shadow: 0 8px 32px color-mix(in srgb, var(--ink) 55%, transparent);
}
.lightbox__caption {
  text-align: center; font-size: .85rem; color: var(--color-bg);
  text-shadow: 0 1px 3px color-mix(in srgb, var(--ink) 85%, transparent);
}

/* the controls sit ABOVE the backdrop as fixed chrome. Drawn on the dark gutter, so their
   ink is the inverted (page-bg) colour with a soft dark disc behind for contrast. */
.lightbox__close, .lightbox__nav {
  position: fixed; z-index: 1;
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.75rem; height: 2.75rem; padding: 0;
  border: 0; border-radius: 999px; cursor: pointer;
  color: var(--color-bg);
  background: color-mix(in srgb, var(--ink) 45%, transparent);
  transition: background .12s ease;
}
.lightbox__close:hover, .lightbox__nav:hover { background: color-mix(in srgb, var(--ink) 65%, transparent); }
.lightbox__close .icon, .lightbox__nav .icon { width: 1.25rem; height: 1.25rem; }
.lightbox__close { top: var(--space-3); right: var(--space-3); }
.lightbox__nav--prev { left: var(--space-3); }
.lightbox__nav--next { right: var(--space-3); }
.lightbox__nav { top: 50%; transform: translateY(-50%); }
.lightbox__nav[hidden], .lightbox__close[hidden] { display: none; }

/* the dot rail + counter: fixed to the bottom gutter, only for a real gallery (lightbox.js
   hides both for a single image; dots give way to just the counter past ten photos). */
.lightbox__dots {
  position: fixed; z-index: 1; left: 0; right: 0; bottom: calc(var(--space-3) + 1.5rem);
  display: flex; justify-content: center; gap: var(--space-2); flex-wrap: wrap; padding: 0 var(--space-3);
}
.lightbox__dot {
  width: .55rem; height: .55rem; padding: 0; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--color-bg);
  background: color-mix(in srgb, var(--color-bg) 30%, transparent);
  transition: background .12s ease;
}
.lightbox__dot:hover { background: color-mix(in srgb, var(--color-bg) 60%, transparent); }
.lightbox__dot[aria-selected="true"] { background: var(--color-bg); }
.lightbox__count {
  position: fixed; z-index: 1; left: 0; right: 0; bottom: var(--space-3);
  margin: 0; text-align: center; font-family: var(--font-mono);
  font-size: .75rem; letter-spacing: .06em; color: var(--color-bg);
  text-shadow: 0 1px 3px color-mix(in srgb, var(--ink) 85%, transparent);
}
.lightbox__count[hidden], .lightbox__dots[hidden] { display: none; }

/* grain/ai/ai.css — the AI-interaction MODULE's styling: the "AI is acting" spotlight.
   Optional: include this ONLY when you use GRAIN's AI interface. The design system
   (grain/styles/grain.css + the b-* atoms) works without it. (AI-INTERFACE §5c) */

/* When the AI (not the user) drives a surface, the page dims and a LAMP — one traveling
   frame — glides onto the touched surface. Calm, monochrome, no shadows on content. */
/* THE LAMP MODEL (the root design): the spotlight is ONE fixed-position element whose rect
   glides between surfaces; the dim is the lamp's own cutout shadow, so hole and veil travel
   together. The lit element is NEVER restyled — a rect is a rect, so every surface kind
   (card, list, row, input) gets the same treatment by construction (this designed out the
   old per-kind lit CSS, grain lesson 8). The veil color is ONE theme token, --ai-veil, set
   once in the theme (variables.css) so every page fades the same; the default below (a
   gentle ink dim) applies if a theme doesn't set it. */
.ai-lamp {
  position: fixed; top: 0; left: 0; z-index: var(--z-ai-veil, 9000);
  border-radius: var(--radius-md);   /* no border — the lamp is just the lit hole in the veil */
  /* the dim IS the lamp's shadow: everything outside the frame recedes, and it MOVES with it */
  box-shadow: 0 0 0 200vmax var(--ai-veil, color-mix(in srgb, var(--ink) 22%, transparent));
  opacity: 0; pointer-events: none;
  /* the focus-switch glide — the lamp EASES onto the new surface, soft start and landing,
     like a page transition (keep the duration ≤ the reasoner's SETTLE so it lands before
     the AI acts). Travel rides `transform` (composited — GPU, never janked by layout);
     only the box's size interpolates in layout, and it's one element. */
  transform: translate3d(50vw, 50vh, 0);
  will-change: transform;   /* transform only — promoting width/height forces extra invalidations */
  transition: opacity 0.35s ease,
              transform var(--ai-focus-move, 0.4s) var(--ai-focus-ease, ease),
              width     var(--ai-focus-move, 0.4s) var(--ai-focus-ease, ease),
              height    var(--ai-focus-move, 0.4s) var(--ai-focus-ease, ease);
}
.ai-lamp.is-on { opacity: 1; }
/* The click-catcher: invisible (the lamp's shadow carries the dim) but it still owns the
   interrupt gesture — clicking anywhere while the AI acts asks it to stop. AI surfaces that
   stay live during a run (chat, console, the acting label) sit above it at --z-ai-surface. */
.ai-backdrop {
  position: fixed; inset: 0; z-index: var(--z-ai-veil, 9000);
  background: transparent; pointer-events: none;
}
.ai-backdrop.is-on { pointer-events: auto; }
/* .ai-spotlit stays as the SEMANTIC marker for the surface under the lamp (tests, per-kind
   data-attr logic in the dispatcher) — it carries no visual of its own in the lamp model. */
/* scroll-margin gives the lit surface breathing room from the scroll region's top/bottom edges
   when the dispatcher scrolls it into view (block:"start") — so it never butts the top bar. */
.ai-spotlit { position: relative; scroll-margin-top: var(--space-4); scroll-margin-bottom: var(--space-4); }
/* the "AI clicked here" pulse. Self-sufficient: .is-click alone renders it (position:relative
   anchors its own ::before), so pulsing never silently no-ops for want of a sibling .ai-spotlit.
   (.ai-spotlit already establishes a positioned context, so spotlit elements are unaffected.) */
.is-click { position: relative; }
.is-click::before {     /* ::before so it never collides with a button's ::after caret */
  content: ""; position: absolute; inset: -4px;
  border: 1px solid var(--ink); border-radius: inherit;
  animation: ai-click 0.5s ease-out;
  pointer-events: none;
}
@keyframes ai-click { from { transform: scale(1); opacity: 0.7; } to { transform: scale(1.12); opacity: 0; } }
.ai-acting-label {
  position: fixed; top: var(--space-4); left: 50%; transform: translateX(-50%); z-index: var(--z-ai-surface, 9002);
  font-family: var(--font-grain); font-size: var(--text-sm); color: var(--ink);
  background: var(--paper); border: var(--border); border-radius: var(--radius-sm);
  padding: var(--space-1) var(--space-3);
}

/* interrupt confirm — "ask the AI to stop?" (mediated, never a force-kill).
   A native modal <dialog>: top-layer, focus-trap, Escape-to-close come free. The bare
   element is transparent (the spotlight backdrop already dims); only the card shows. */
.ai-confirm { border: 0; padding: 0; background: transparent; opacity: 0; transition: opacity 0.18s ease; }
.ai-confirm[open] { opacity: 1; }
@starting-style { .ai-confirm[open] { opacity: 0; } }   /* fade in from display:none */
.ai-confirm::backdrop { background: transparent; }      /* the .ai-backdrop beneath already provides the dim */
.ai-confirm__card {
  background: var(--paper); border: 1px solid var(--ink); border-radius: var(--radius-md);
  padding: var(--space-5); max-width: 24rem; text-align: center;
}
.ai-confirm__msg { margin: 0 0 var(--space-4); }
.ai-confirm__actions { display: flex; gap: var(--space-3); justify-content: center; }

@media (prefers-reduced-motion: reduce) {
  .ai-lamp { transition: none; }
  .ai-confirm { transition: none; }
  .is-click::before { animation: none; display: none; }
}

/* ---- X-RAY: see the page as the AI sees it (grain/scripts/xray.js) --------------------
   A dev-mode overlay: outline every operable surface and label it with kind + accepted
   verbs. Purely presentational — xray.js sets `data-xray` on <html> and stamps each
   [data-surface] with a `data-xray-label`; this draws them. Tokens only, so it re-skins
   with the theme. It's the visual twin of the terminal's `context` command. */
html[data-xray] [data-surface] {
  outline: 1px dashed var(--color-accent, var(--ink));
  outline-offset: 2px;
  position: relative;   /* anchor the label; dev-mode only (may shift abs-positioned children) */
}
html[data-xray] [data-surface]::after {
  content: attr(data-xray-label);
  position: absolute; top: 0; right: 0; z-index: var(--z-ai-surface, 9002);
  font-family: var(--font-grain); font-size: var(--text-xs); line-height: 1;
  padding: var(--space-1) var(--space-2);
  color: var(--color-accent, var(--ink));
  background: var(--color-bg, var(--paper));
  border: 1px solid var(--color-line, var(--ink));
  border-radius: var(--radius-sm);
  pointer-events: none; white-space: nowrap;
}

/* ---- honest presence (the AI-online indicator) ---------------------------------------
   The dispatcher stamps <body data-ai-online="true|false"> by OUTCOME (server `ready`
   handshake received / client door actually loaded — ai-dispatch.js). A consumer's presence
   indicator shows three states: waking (default, nothing reported yet), online, offline.
   The wording inside the spans is the consumer's. */
.presence__on, .presence__off { display: none; }
body[data-ai-online] .presence__wait { display: none; }
body[data-ai-online="true"]  .presence__on  { display: inline; }
body[data-ai-online="false"] .presence__off { display: inline; }
/* the presence STAR is its own element (so its color tracks transport health, apart from the
   wording): muted while waking, the accent hue when online, faint when offline. */
.presence__star { color: var(--color-muted); }
body[data-ai-online="true"]  .presence__star { color: var(--color-accent); }
body[data-ai-online="false"] .presence__star { color: var(--ink-faint); }

/* ---- presence GATING: when the door's reply channel is down, AI controls are visibly
   disabled (not silently dead). Consumers mark AI-only controls [data-ai-run] (a trigger that
   drives the AI) or [data-ai-gate] (a composer/region gated on the AI). The dispatcher also
   no-ops submit() when offline (belt-and-braces) — this is the honest visual half. */
body[data-ai-online="false"] [data-ai-run],
body[data-ai-online="false"] [data-ai-gate] {
  pointer-events: none; opacity: 0.5; cursor: not-allowed;
}
