/* Selah workbench — word factoring
   Word-page v2 factoring bands (mini T0-T5, gematria sweeps).
   Split from resources/public/css/workbench.css on 2026-07-01 —
   run git log --follow to trace history through the pre-split file. */

/* ═══ Word-page v2 · factoring bands ═══════════════════════════ */

/* head anatomy — big letter strip + breath band. No own bottom rule;
   the FACTOR section that follows has its own border-top, which is
   the single separator between head and bands per the mockup. */
.wb-fac-anatomy {
  display: flex; flex-direction: column; gap: 10px;
  padding-bottom: 14px;
}
.wb-fac-letters { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.wb-fac-letter {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  min-width: 76px; padding: 10px 12px;
  border: 1px solid var(--wb-rule); border-radius: 3px;
  background: var(--wb-bg-3);
}
.wb-fac-letter-glyph {
  font-family: var(--font-hebrew);
  font-size: 30px; line-height: 1; color: var(--wb-ink);
}
.wb-fac-letter-name { font-size: 9px; color: var(--wb-ink-3); letter-spacing: 0.06em; }
.wb-fac-letter-v {
  font-size: 13px; color: var(--wb-warm);
  font-family: var(--rd-mono); font-variant-numeric: tabular-nums;
}
.wb-fac-letter-role { font-size: 9px; color: var(--wb-ink-3); font-style: italic; }
/* Breath class as colored text on the letter card. Palette matches
   the per-class chip palette so the cards encode the articulation
   visually without a separate pill row. */
.wb-fac-letter-breath {
  font-family: var(--rd-mono);
  font-size: 9px; letter-spacing: 0.04em;
  margin-top: 2px;
}
.wb-fac-letter-breath--stop      { color: var(--wb-warm); }
.wb-fac-letter-breath--liquid    { color: var(--wb-mint, #79b58c); }
.wb-fac-letter-breath--nasal     { color: var(--wb-cyan, #5fa8b8); }
.wb-fac-letter-breath--sibilant  { color: var(--wb-rose, #c98a6f); }
.wb-fac-letter-breath--guttural  { color: var(--wb-violet, #9d7ab8); }
.wb-fac-letter-breath--vowel     { color: var(--wb-ink-3); }
.wb-fac-letter-sum {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  min-width: 90px; margin-left: 8px; padding: 10px 12px;
  border: 1px dashed var(--wb-warm); border-radius: 3px;
  background: color-mix(in srgb, var(--wb-warm) 5%, transparent);
}
.wb-fac-letter-sum-h { font-size: 18px; color: var(--wb-warm); line-height: 1; }
.wb-fac-letter-sum-v {
  font-size: 22px; color: var(--wb-warm);
  font-family: var(--rd-mono); font-variant-numeric: tabular-nums;
}
.wb-fac-letter-sum-cap { font-size: 8px; color: var(--wb-ink-3); text-align: center; }

/* Breath band — colored pill per letter (full class word), then the
   class code + sibling count. Matches mockup 15. */
.wb-fac-breath {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  justify-content: center;
  font-family: var(--rd-mono);
  font-size: 10.5px; color: var(--wb-ink-3);
}
.wb-fac-breath .wb-profile-h3 {
  font-size: 10px; letter-spacing: 0.15em; color: var(--wb-warm);
  margin: 0;
}
.wb-fac-breath-pat {
  display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap;
}
.wb-fac-bp {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 2px 10px;
  border-radius: 10px;
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--wb-bg);
  font-weight: 500;
}
.wb-fac-bp--stop      { background: var(--wb-warm); }
.wb-fac-bp--liquid    { background: var(--wb-mint, #79b58c); }
.wb-fac-bp--nasal     { background: var(--wb-cyan, #5fa8b8); }
.wb-fac-bp--sibilant  { background: var(--wb-rose, #c98a6f); }
.wb-fac-bp--guttural  { background: var(--wb-violet, #9d7ab8); }
.wb-fac-bp--vowel     { background: var(--wb-ink-3); }
.wb-fac-breath-cap { margin-left: 4px; color: var(--wb-ink-3); }
.wb-fac-breath-cap code {
  color: var(--wb-ink-2);
  background: transparent;
  padding: 0;
}


/* right-aligned count on a section header */
.wb-fac-band-r {
  margin-left: auto;
  font-family: var(--rd-mono);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--wb-ink-3);
  text-transform: none;
}
.wb-fac-band-n {
  font-family: var(--rd-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--wb-ink-3);
  text-transform: none;
}
.wb-fac-band-sub {
  font-family: var(--rd-mono);
  font-size: 10px;
  letter-spacing: 0.02em;
  color: var(--wb-ink-3);
  text-transform: none;
  font-weight: 400;
  font-style: italic;
}
.wb-profile-h3 { display: flex; align-items: baseline; gap: 10px; }

/* Per-section help affordance — small `?` next to the header, click
   to expand the typeset explanation below. */
.wb-help-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px;
  margin-left: 4px;
  border: 1px solid var(--wb-rule);
  border-radius: 50%;
  font-family: var(--rd-mono);
  font-size: 9.5px;
  color: var(--wb-ink-3);
  background: transparent;
  cursor: pointer;
  letter-spacing: 0;
  transition: color 80ms ease, border-color 80ms ease, background 80ms ease;
}
.wb-help-toggle:hover {
  color: var(--wb-warm);
  border-color: var(--wb-warm);
  background: color-mix(in srgb, var(--wb-warm) 10%, transparent);
}
.wb-help-toggle--on {
  color: var(--wb-warm);
  border-color: var(--wb-warm);
  background: color-mix(in srgb, var(--wb-warm) 14%, transparent);
}
.wb-help-body {
  max-width: 640px;
  margin: 8px 0 14px;
  padding: 14px 18px;
  background: color-mix(in srgb, var(--wb-warm) 4%, var(--wb-bg-2));
  border-left: 2px solid var(--wb-warm);
  border-radius: 0 3px 3px 0;
}
.wb-help-title {
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 14px;
  color: var(--wb-ink);
  margin-bottom: 6px;
  letter-spacing: 0;
  text-transform: none;
}
.wb-help-prose {
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 13px;
  line-height: 1.6;
  color: var(--wb-ink-2);
}
.wb-help-prose p { margin: 0 0 8px; }
.wb-help-prose p:last-child { margin-bottom: 0; }
.wb-help-prose ul { margin: 4px 0 8px 0; padding-left: 18px; }
.wb-help-prose li { margin-bottom: 4px; }
.wb-help-prose b { color: var(--wb-ink); font-weight: 600; }
.wb-help-prose em { color: var(--wb-warm); font-style: italic; }
.wb-help-prose code {
  font-family: var(--rd-mono);
  font-size: 11.5px;
  color: var(--wb-warm);
  background: color-mix(in srgb, var(--wb-warm) 8%, transparent);
  padding: 0 4px;
  border-radius: 2px;
}

/* finals lens display on the head meta-strip */
.wb-fac-lens {
  display: inline-flex; align-items: baseline; gap: 6px;
  padding: 1px 6px;
  border: 1px solid var(--wb-rule);
  border-radius: 2px;
  background: var(--wb-bg-2);
}
.wb-fac-lens b {
  color: var(--wb-ink-3); font-weight: 500; font-size: 9px;
  letter-spacing: 0.1em; text-transform: uppercase;
}
.wb-fac-lens-on  { color: var(--wb-warm); }
.wb-fac-lens-off { color: var(--wb-ink-4); }

/* factoring prose — named sections below the FI table
   (2026-08-02: centered formatting retired; start-aligned
   reading measure) */
.wb-fac-prose {
  /* tight to the themes grid above; the old 40px air before the
     FORMS & INSTANCES table halved in the 2026-08-14 ergonomic
     tightening (with the toggles→clusters and clusters→letters
     gaps) */
  margin: 8px 0 18px;
  padding: 0;
}
.wb-fac-prose-h {
  margin: 0 0 10px;
  font-family: var(--rd-mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wb-ink-3);
}
.wb-fac-prose-sec { margin-top: 12px; }
/* the pictographic PLAQUE — an inscription, not a caption.
   Warm left accent only; no box (its top/bottom borders were
   two more horizontal lines under the head's rule). */
.wb-fac-plaque {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 14px;
  padding: 4px 14px;
  border-left: 3px solid var(--wb-warm);
  font-size: 12.5px;
  color: var(--wb-ink-2);
}
.wb-fac-plaque em { font-style: italic; }
/* plaque micro-label — same voice as the section heads */
.wb-fac-plaque-l {
  flex-shrink: 0;
  font-family: var(--rd-mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-style: normal;
  color: var(--wb-ink-3);
}
/* layer-toggle chips — house chip design, start-aligned (right
   under RTL via flex-start + dir), CAPS, smaller; the choice
   holds while arrowing word-by-word */
.wb-fac-nav {
  display: flex;
  gap: 6px;
  justify-content: flex-start;
  margin: 12px 0 4px;
}
.wb-fac-nav-chip {
  justify-content: center;
  padding-block: 2px;
}
.wb-fac-nav-chip .rd-hl-toggle-label {
  text-transform: uppercase;
  font-size: 8.5px;
  letter-spacing: 0.12em;
  /* tracking adds a phantom space after the LAST glyph — cancel
     it so the label sits optically centered in the pill */
  margin-inline-end: -0.12em;
  line-height: 1;
  position: relative;
  top: 0.5px;
}
.wb-fac-summary {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--wb-ink-2);
  text-align: start;
}
.wb-fac-summary + .wb-fac-summary { margin-top: 10px; }
/* The interpretation paragraph — beneath the commentary, one shade
   quieter. The negative-space note closes the head in the quietest
   voice: what the letters do NOT spell here. */
.wb-fac-interpretation {
  margin-top: 8px;
  color: var(--wb-ink-3);
}
.wb-fac-negative-note {
  max-width: 640px;
  margin: 10px auto 0;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--wb-ink-4);
  text-align: center;
  font-style: italic;
}
/* .wb-fac-picto retired 2026-08-02 — the pictographic line is a
   PLAQUE now (.wb-fac-plaque above). */
.wb-fac-gematria {
  display: flex; flex-wrap: wrap; gap: 8px 14px;
  justify-content: center;
  margin: 10px auto 0;
  font-family: var(--rd-mono);
  font-size: 11px;
  color: var(--wb-ink-2);
}
.wb-fac-gv b {
  color: var(--wb-ink-3); font-weight: 500; font-size: 9px;
  letter-spacing: 0.1em; text-transform: uppercase; margin-right: 4px;
}
.wb-fac-gv { font-variant-numeric: tabular-nums; }
.wb-fac-sig {
  padding: 1px 8px; border: 1px solid var(--wb-warm); border-radius: 2px;
  color: var(--wb-warm); background: color-mix(in srgb, var(--wb-warm) 8%, transparent);
}

/* band 2 · FACTOR grid */
.wb-fac-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 6px;
}
.wb-fac-cell {
  position: relative;
  padding: 6px 8px;
  border: 1px solid var(--wb-rule);
  border-radius: 3px;
  background: var(--wb-bg-2);
  min-height: 48px;
}
.wb-fac-cell--r { cursor: pointer; }
.wb-fac-cell--r:hover {
  border-color: color-mix(in srgb, var(--wb-warm) 50%, var(--wb-rule));
  background: color-mix(in srgb, var(--wb-warm) 6%, var(--wb-bg-2));
}
.wb-fac-cell--ghost { opacity: 0.5; }
.wb-fac-cell--num { background: var(--wb-bg-3); }
.wb-fac-cell-op {
  font-family: var(--rd-mono);
  font-size: 9px; letter-spacing: 0.04em; color: var(--wb-ink-3);
}
.wb-fac-cell-s {
  font-family: var(--font-hebrew);
  font-size: 18px; color: var(--wb-warm); line-height: 1.2;
}
.wb-fac-cell--ghost .wb-fac-cell-s { color: var(--wb-ink-3); }
.wb-fac-cell-s--n {
  font-family: var(--rd-mono);
  font-size: 15px;
  color: var(--wb-cyan, #5fa8b8);
  font-variant-numeric: tabular-nums;
}
.wb-fac-cell-gloss {
  font-size: 9.5px; color: var(--wb-ink-3); font-style: italic;
  margin-top: 1px;
}
.wb-fac-cell-mark {
  position: absolute; top: 5px; right: 6px;
  font-size: 10px; color: var(--wb-mint, #79b58c);
}
.wb-fac-cell-mark--ghost { color: var(--wb-ink-4); }
.wb-fac-rej {
  margin-top: 6px;
  font-family: var(--rd-mono);
  font-size: 10px; color: var(--wb-ink-3); font-style: italic;
}

/* FACTOR · CANDIDATES — compact gv-values + ghosts rows.
   Single-row alternatives to the retired FACTOR grid. */
.wb-fac-numeric-row,
.wb-fac-ghosts-row {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 4px 14px;
  margin: 0 0 10px 0; padding: 6px 10px;
  background: var(--wb-bg-2);
  border-left: 2px solid var(--wb-rule);
  font-family: var(--rd-mono);
  font-size: 11px; color: var(--wb-ink-2);
}
.wb-fac-numeric-row-h,
.wb-fac-ghosts-row-h {
  color: var(--wb-ink-4);
  text-transform: uppercase; letter-spacing: 0.08em;
  font-size: 9px;
  margin-right: 4px;
}
.wb-fac-numeric-cell {
  display: inline-flex; align-items: baseline; gap: 5px;
}
.wb-fac-numeric-l {
  color: var(--wb-ink-3);
  font-size: 10px;
}
.wb-fac-numeric-v {
  color: var(--wb-cyan);
  font-weight: 600;
}
.wb-fac-ghost-cell {
  display: inline-flex; align-items: baseline; gap: 5px;
  opacity: 0.85;
}
.wb-fac-ghost-op {
  color: var(--wb-ink-3); font-size: 10px;
  text-transform: lowercase;
}
.wb-fac-ghost-s {
  color: var(--wb-ink-2);
  font-family: var(--font-hebrew);
  font-size: 14px;
}
.wb-fac-band-foot {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px;
  margin-top: 10px; padding-top: 8px;
  border-top: 1px dashed var(--wb-rule);
  font-family: var(--rd-mono);
  font-size: 10px; color: var(--wb-ink-3);
}
.wb-fac-band-foot-key { display: inline-flex; align-items: center; gap: 4px; }
.wb-fac-band-foot-spacer { flex: 1 1 auto; }

/* band 3 · CANDIDATES — compact single-line rows. Flex layout so the
   → stays in-row; truncating widths on morph / gloss / ops keep
   things bounded; the row hovers as one. */
.wb-cand-list { display: flex; flex-direction: column; gap: 1px; }
.wb-cand {
  display: flex; align-items: baseline; gap: 12px;
  padding: 3px 8px;
  border-radius: 2px;
  font-size: 11px;
  line-height: 1.4;
  min-height: 26px;
}
.wb-cand:hover { background: var(--wb-bg-2); }
.wb-cand--unc { opacity: 0.7; }
.wb-cand-tier { flex: 0 0 12px; font-size: 13px; line-height: 1; }
.wb-cand-tier--anchor    { color: var(--wb-warm); }
.wb-cand-tier--strong    { color: var(--wb-mint, #79b58c); }
.wb-cand-tier--tentative { color: var(--wb-rose, #c98a6f); }
.wb-cand-tier--none      { color: var(--wb-ink-4); }
.wb-cand-hbr {
  flex: 0 0 5.5em; text-align: right;
  font-family: var(--font-hebrew);
  font-size: 17px; line-height: 1.2;
  color: var(--wb-ink); cursor: pointer;
}
.wb-cand-hbr:hover { color: var(--wb-warm); }
.wb-cand-morph {
  flex: 0 0 7em;
  font-family: var(--rd-mono); font-size: 9.5px;
  color: var(--wb-ink-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.wb-cand-gloss {
  flex: 1 1 auto; min-width: 0;
  color: var(--wb-ink-2);
  /* allow wrapping so the full lead-clause is visible without
     mouseover; row height grows for long glosses */
  white-space: normal;
  word-break: break-word;
}
.wb-cand-unc { color: var(--wb-rose, #c98a6f); font-style: italic; }
.wb-cand-src {
  flex: 0 0 auto;
  font-size: 9px; padding: 0 6px; border-radius: 8px;
  border: 1px solid color-mix(in srgb, var(--wb-mint, #79b58c) 50%, var(--wb-rule));
  color: var(--wb-mint, #79b58c);
}
.wb-cand-reg  {
  flex: 0 0 5em;
  font-size: 9.5px; color: var(--wb-ink-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* ── Narrow-viewport candidates row ─────────────────────────────
   The candidate rows carry 4-6 columns of metadata (morph, reg,
   verse-ref, source badge). At mobile widths that reserves so much
   width for fixed columns that the flex-gloss column gets 20-40px
   and the gloss text wraps one character per line. Fix: below 700px
   hide the auxiliary metadata columns; below 560px stack the row
   into two lines (Hebrew above, gloss below). */

@media (max-width: 700px) {
  .wb-cand-morph,
  .wb-cand-reg,
  .wb-cand-verse { display: none; }
  .wb-cand-hbr { flex: 0 0 auto; }
  .wb-cand-gloss { word-break: normal; overflow-wrap: break-word; }
}

@media (max-width: 560px) {
  .wb-cand {
    flex-wrap: wrap;
    row-gap: 2px;
  }
  .wb-cand-hbr { flex: 0 0 100%; text-align: right; }
  .wb-cand-gloss { flex: 1 1 100%; padding-inline-start: 24px; }
}

.wb-cand-verse {
  flex: 0 0 6.5em;
  font-family: var(--rd-mono); font-size: 9.5px;
  color: var(--wb-ink-3); font-variant-numeric: tabular-nums;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.wb-cand-ops {
  flex: 0 0 12em;
  font-family: var(--rd-mono); font-size: 9px;
  color: var(--wb-ink-4);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  text-align: right;
}
.wb-cand-go { flex: 0 0 12px; color: var(--wb-ink-3); text-align: center; }

/* band 3b · surfaced-by */
.wb-fac-inbound { display: flex; flex-direction: column; gap: 2px; }
.wb-fac-inb {
  display: flex; align-items: baseline; gap: 10px;
  font-size: 11px; padding: 2px 6px;
}
.wb-fac-inb-arrow { color: var(--wb-ink-4); }
.wb-fac-inb-hbr {
  font-family: var(--font-hebrew);
  font-size: 15px; color: var(--wb-ink); cursor: pointer;
}
.wb-fac-inb-hbr:hover { color: var(--wb-warm); }
.wb-fac-inb-gloss { color: var(--wb-ink-2); }
.wb-fac-inb-count {
  font-family: var(--rd-mono);
  font-size: 9px;
  color: var(--wb-ink-3);
  padding: 0 6px;
  border: 1px solid var(--wb-rule);
  border-radius: 8px;
  font-variant-numeric: tabular-nums;
  margin-left: 6px;
}
.wb-fac-inb-via {
  font-family: var(--rd-mono); font-size: 9px;
  color: var(--wb-ink-4); margin-left: auto;
  max-width: 24em;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* band 4 · CLUSTERS */
.wb-fac-cluster-grid {
  display: grid;
  /* `auto-fit` collapses empty tracks so remaining cards expand
     to share the row; `justify-content: center` centers the
     grid within its container when it doesn't fill the width. */
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  justify-content: center;
  gap: 8px;
}
/* Wrap used at the promoted position above the FI table — adds
   vertical breathing room since we removed the section chrome
   (top rule + header) that used to provide it. Extra top padding
   opens a real gap from the editorial paragraph above. */
.wb-profile-cluster-grid-wrap {
  padding: 14px 0 0;   /* 32px → 14px, 2026-08-14 tightening */
}
.wb-fac-cluster {
  padding: 10px 12px;
  border: 1px solid var(--wb-rule);
  border-left: 3px solid var(--wb-ink-4);
  border-radius: 3px;
  background: var(--wb-bg-2);
}
.wb-fac-cluster--anchor    { border-left-color: var(--wb-warm); }
.wb-fac-cluster--strong    { border-left-color: var(--wb-mint, #79b58c); }
.wb-fac-cluster--tentative { border-left-color: var(--wb-rose, #c98a6f); }
.wb-fac-cl-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.wb-fac-cl-name { font-size: 12px; color: var(--wb-ink); }
.wb-fac-cl-st {
  margin-left: auto; font-family: var(--rd-mono);
  font-size: 9px; letter-spacing: 0.05em; text-transform: uppercase;
}
.wb-fac-cl-st--anchor    { color: var(--wb-warm); }
.wb-fac-cl-st--strong    { color: var(--wb-mint, #79b58c); }
.wb-fac-cl-st--tentative { color: var(--wb-rose, #c98a6f); }
.wb-fac-cl-members { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-bottom: 6px; }
.wb-fac-cl-chip {
  font-family: var(--font-hebrew);
  font-size: 16px; color: var(--wb-warm); cursor: pointer;
  padding: 0 4px; border-radius: 2px;
}
.wb-fac-cl-chip:hover { background: color-mix(in srgb, var(--wb-warm) 14%, transparent); }
.wb-fac-cl-body { font-size: 11px; line-height: 1.45; color: var(--wb-ink-2); }

/* band 5 · COVERAGE cards */
.wb-fac-cov-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
}
.wb-fac-cov {
  padding: 8px 10px;
  border: 1px solid var(--wb-rule);
  border-radius: 3px;
  background: var(--wb-bg-2);
}
.wb-fac-cov--empty { opacity: 0.45; }
.wb-fac-cov-h {
  font-family: var(--rd-mono); font-size: 9px;
  letter-spacing: 0.08em; color: var(--wb-ink-3);
}
.wb-fac-cov-lead {
  font-family: var(--font-hebrew);
  font-size: 15px; color: var(--wb-ink); margin: 2px 0;
}
.wb-fac-cov-row { display: flex; align-items: baseline; gap: 8px; }
.wb-fac-cov-size { font-family: var(--rd-mono); font-size: 10px; color: var(--wb-warm); }
.wb-fac-cov-tag { font-size: 9px; color: var(--wb-ink-3); }
.wb-fac-cov-sub { font-size: 9.5px; color: var(--wb-ink-3); line-height: 1.35; margin-top: 2px; }

/* CHOSHEN — reserved gate REMOVED 2026-08-20 ("the gate is coming down") */
/* Basin · per reader — one row per reader (A/G/T/M) whose chain
   diverges from the unified basin. Reader letter + status sit on
   the left at a fixed width; the chain flows inline next to them,
   wrapping to subsequent visual rows when it overruns. Distinct
   class so the duplicate `.wb-profile-cipher-row` rule that
   binds a 5em/1fr/6em grid further down doesn't squash the chain
   into a 6em right column. */
.wb-profile-basin-row {
  display: grid;
  grid-template-columns: 1.5em 6em 1fr;
  align-items: baseline;
  gap: 6px 10px;
  margin: 4px 0;
}
.wb-profile-basin-reader {
  font-family: var(--rd-mono);
  font-size: 11px; font-weight: 600;
  color: var(--wb-warm);
  text-align: center;
}
.wb-profile-basin-status {
  font-family: var(--rd-mono);
  font-size: 10.5px;
  color: var(--wb-ink-3);
  font-variant-numeric: tabular-nums;
}
.wb-profile-basin-chain {
  display: flex; flex-wrap: wrap; gap: 4px 8px;
  align-items: baseline;
  min-width: 0;
}

/* Basin trajectory — arrow chain of Hebrew chips ending at the
   word's attractor. Click a chip → that word's profile. */
.wb-profile-basin {
  display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 6px 18px;
  padding: 4px 0;
}
.wb-profile-basin-step {
  display: inline-flex; align-items: baseline; gap: 8px;
}
.wb-profile-basin-arrow {
  color: var(--wb-ink-3);
  font-family: var(--rd-mono);
  font-size: 12px;
  opacity: 0.8;
}
.wb-profile-basin-w {
  font-family: var(--font-hebrew);
  font-size: 17px;
  line-height: 1.2;
  color: var(--wb-warm);
  cursor: pointer;
  padding: 1px 5px;
  border-radius: 3px;
  direction: rtl;
}
.wb-profile-basin-w:hover {
  background: color-mix(in srgb, var(--wb-warm) 12%, transparent);
}
.wb-profile-basin-step--start .wb-profile-basin-w {
  font-weight: 500;
}
/* Basin chip with inline gloss — column layout: Hebrew on top,
   small italic mono gloss below. Lets the chain read both
   directions (Hebrew flow + English meaning) at once. */
.wb-profile-basin-cell {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;  /* RTL alignment */
  gap: 0;
  line-height: 1.1;
}
.wb-profile-basin-gloss {
  font-family: var(--rd-mono);
  font-size: 9px;
  color: var(--wb-ink-3);
  font-style: italic;
  letter-spacing: 0.02em;
  direction: ltr;
}
.rd-panel-oracle-word-chip-hb {
  /* Hebrew text — inherits font-family from parent. */
}
/* Reading-count badge — small, dim, mono. Only renders when count
   > 1 (so a 1×-reading chip stays visually quiet). The "rare reading
   is the correct one" axis: low n = pay attention. */
.rd-panel-oracle-word-chip-n {
  direction: ltr;
  font-family: var(--rd-mono);
  font-size: 9.5px;
  color: var(--rd-ink-3);
  font-variant-numeric: tabular-nums;
}
.rd-panel-oracle-word-chip-n::before { content: "×"; opacity: 0.6; }

/* Lead-clause Strong's gloss inline beside the Hebrew on oracle
   image chips. Italic mono, ellipsis-truncated. */
.rd-panel-oracle-word-chip-gloss {
  direction: ltr;
  font-family: var(--rd-mono);
  font-size: 9px;
  font-style: italic;
  color: var(--rd-ink-3);
  letter-spacing: 0.02em;
}

/* Per-reader preimage paths — the [stone, letter-index] sequences
   that PRODUCE the asked word. Each path renders as the ordered
   lit-letter run; multiple paths per reader = multiple ways the
   reader can read the same word from different illuminations. */
.rd-panel-oracle-preimage {
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px dashed var(--rd-rule);
}
.rd-panel-oracle-preimage-reader {
  display: flex; align-items: baseline; gap: 6px;
  margin: 2px 0;
}
.rd-panel-oracle-preimage-paths {
  display: flex; flex-wrap: wrap; gap: 2px 8px;
}
.rd-panel-oracle-preimage-path {
  display: inline-flex;
  direction: rtl;
  gap: 1px;
  padding: 0 4px;
  border-radius: 2px;
  background: var(--rd-bg-3);
  cursor: pointer;
}
.rd-panel-oracle-preimage-path:hover {
  background: color-mix(in srgb, var(--rd-warm) 10%, var(--rd-bg-3));
}
.rd-panel-oracle-preimage-path--on {
  background: color-mix(in srgb, var(--rd-warm) 25%, var(--rd-bg-3));
  box-shadow: 0 0 0 1px var(--rd-warm) inset;
}
.rd-panel-oracle-preimage-step {
  font-family: var(--font-hebrew);
  font-size: 13px;
  color: var(--rd-warm);
}

/* Deduped rows (2026-08-20 face-lift): one row per distinct path /
   word; the four chairs ride each row as an A G T M badge cluster —
   present chairs lit, absent chairs ghosted. */
.rd-panel-oracle-prow,
.rd-panel-oracle-irow {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin: 3px 0;
  min-width: 0;
}
.rd-panel-oracle-badges {
  display: inline-flex;
  gap: 3px;
  flex: none;
  font-family: var(--rd-mono);
  font-size: 9.5px;
  letter-spacing: 0.04em;
}
/* Image rows: subscripts are at most 2 digits, so each badge fits a
   known 14px box — four fixed mini-columns make the cluster width
   constant (no stagger) and as tight as it can be, with the Hebrew
   pulled close (Scott 2026-08-20, second pass). */
.rd-panel-oracle-irow {
  gap: 6px;
}
.rd-panel-oracle-irow .rd-panel-oracle-badge {
  display: inline-block;
  width: 14px;
}
.rd-panel-oracle-badge {
  color: var(--rd-warm);
  font-weight: 600;
}
.rd-panel-oracle-badge--off {
  color: var(--rd-ink-3);
  opacity: 0.35;
  font-weight: 400;
}
.rd-panel-oracle-badge-n {
  font-size: 8px;
  opacity: 0.7;
  margin-inline-start: 1px;
  font-variant-numeric: tabular-nums;
}
.rd-panel-oracle-irow-gloss {
  font-family: var(--rd-mono);
  font-size: 9.5px;
  font-style: italic;
  color: var(--rd-ink-3);
  letter-spacing: 0.02em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}

/* Asking placeholder — transient, dim, subtly pulsing.
   Replaced by the full result block when the breastplate
   response lands. */
.rd-panel-oracle--asking {
  background: transparent;
  border-style: dashed;
  border-color: var(--rd-rule);
}
.rd-panel-oracle-asking {
  color: var(--rd-ink-3);
  font-style: italic;
  font-size: 10.5px;
  letter-spacing: 0.04em;
  animation: rd-oracle-asking-pulse 1.6s ease-in-out infinite;
}
@keyframes rd-oracle-asking-pulse {
  0%, 100% { opacity: 0.55; }
  50%      { opacity: 0.95; }
}

/* Breastplate mini — 4×3 grid of stones. Lit stones glow with
   the warm/hot color; lit letters get an underline. */
.rd-panel-bp {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(4, auto);
  gap: 3px;
  margin-top: 8px;
  direction: rtl;
}
/* In profile bands the mini reads as a thumbnail, not as a
   full-width side-panel widget. Cap the width and center it so
   the head + stats + chips remain the eye-line. */
.wb-profile-section .rd-panel-bp {
  max-width: 320px;
  margin-left: 0;
  margin-right: 0;
}
.wb-profile-section .rd-panel-bp-cell {
  min-height: 20px;
  padding: 2px 3px;
}
.wb-profile-section .rd-panel-bp-letter {
  font-size: 10.5px;
}
.rd-panel-bp-cell {
  display: flex; flex-wrap: wrap; gap: 1px;
  padding: 3px 4px;
  border: 1px solid var(--rd-rule);
  border-radius: 2px;
  background: var(--rd-bg-3);
  min-height: 22px;
  align-items: center;
  justify-content: center;
}
.rd-panel-bp-cell--empty {
  opacity: 0.25;
  border-style: dashed;
}
.rd-panel-bp-cell--lit {
  background: color-mix(in srgb, var(--rd-hot) 20%, var(--rd-bg-3));
  border-color: var(--rd-hot);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--rd-hot) 35%, transparent);
}
.rd-panel-bp-letter {
  font-family: var(--font-hebrew);
  font-size: 11px;
  color: var(--rd-ink-3);
  line-height: 1;
}
.rd-panel-bp-letter--lit {
  color: var(--rd-warm);
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 2px;
}
/* end CHOSHEN block */

/* Phrase chips — parent / children / siblings. Click → another
   phrase profile tab. */
.wb-profile-phrase-chips {
  display: flex; flex-wrap: wrap; gap: 6px;
  direction: rtl;
}

/* ── The scale ladder — position drawn, not listed (board 28) ──
   One hairline track per scope, warm tick = this word, violet
   ghost = its mirror. Open a scope for facts + the partner verse. */
.wb-ladder {
  margin-top: 26px;
  border: 1px solid var(--wb-line, rgba(255,255,255,0.08));
}
.wb-lad-hdr {
  display: flex; align-items: center;
  padding: 8px 14px;
  border-bottom: 1px solid var(--wb-line, rgba(255,255,255,0.08));
}
.wb-lad-title {
  font-family: var(--rd-mono);
  font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--wb-ink-2);
}
.wb-lad-legend {
  margin-left: auto;
  display: flex; align-items: center; gap: 6px;
  font-family: var(--rd-mono); font-size: 9px; color: var(--wb-ink-3);
}
.wb-lad-lg-tick, .wb-lad-lg-ghost {
  width: 2px; height: 10px; display: inline-block;
}
.wb-lad-lg-tick  { background: var(--wb-warm); }
.wb-lad-lg-ghost { background: #9d7ab8; margin-left: 10px; }

.wb-lad-scope { border-bottom: 1px solid var(--wb-line, rgba(255,255,255,0.08)); }
.wb-lad-scope:last-child { border-bottom: none; }
.wb-lad-head {
  display: flex; align-items: center; gap: 14px;
  padding: 11px 14px;
  cursor: pointer;
}
.wb-lad-scope--open .wb-lad-head { background: var(--wb-bg-2, rgba(255,255,255,0.03)); }
.wb-lad-k {
  font-family: var(--rd-mono);
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--wb-ink-2);
  flex: 0 0 auto; min-width: 92px;
}
.wb-lad-scope--open .wb-lad-k { color: var(--wb-warm); }
.wb-lad-track {
  flex: 1; height: 14px; position: relative;
  border-bottom: 1px solid var(--wb-line, rgba(255,255,255,0.1));
}
.wb-lad-tick {
  position: absolute; bottom: -1px; width: 2px; height: 14px;
  background: var(--wb-warm);
}
.wb-lad-tick::after {
  content: ''; position: absolute; left: -2px; bottom: -2px;
  width: 6px; height: 6px; background: var(--wb-warm);
}
.wb-lad-ghost {
  position: absolute; bottom: -1px; width: 2px; height: 10px;
  background: #9d7ab8; opacity: 0.85;
}
.wb-lad-ghost::after {
  content: ''; position: absolute; left: -2px; bottom: -2px;
  width: 6px; height: 6px; border: 1px solid #9d7ab8;
}
.wb-lad-frac {
  font-family: var(--rd-mono); font-size: 11px;
  flex: 0 0 auto; min-width: 110px; text-align: right;
  color: var(--wb-ink);
}
.wb-lad-frac b { color: var(--wb-warm); font-weight: 500; }
.wb-lad-frac em { color: var(--wb-ink-3); font-style: normal; font-size: 10px; }
.wb-lad-caret { color: var(--wb-ink-3); font-size: 10px; flex: 0 0 auto; }

.wb-lad-body {
  padding: 4px 14px 14px 106px;
  background: var(--wb-bg-2, rgba(255,255,255,0.03));
}
.wb-lad-facts { display: flex; gap: 26px; flex-wrap: wrap; padding-bottom: 12px; }
.wb-lad-fact { display: flex; flex-direction: column; gap: 1px; font-family: var(--rd-mono); font-size: 12px; color: var(--wb-ink); }
.wb-lad-fact i {
  font-size: 8px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--wb-ink-3); font-style: normal;
}
.wb-lad-fact em { font-size: 10px; color: var(--wb-ink-3); font-style: normal; }

.wb-lad-partner { padding: 10px 0 0; border-top: 1px solid var(--wb-line, rgba(255,255,255,0.08)); }
.wb-lad-partner--veil { border-top-style: dashed; }
.wb-lad-partner-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.wb-lad-partner-k {
  font-family: var(--rd-mono); font-size: 9px; letter-spacing: 0.12em;
  text-transform: uppercase; color: #9d7ab8;
}
.wb-lad-partner--veil .wb-lad-partner-k { color: #5fa8b8; }
.wb-lad-partner-addr { font-family: var(--rd-mono); font-size: 11px; color: var(--wb-ink-2); }
.wb-lad-partner-he { font-family: var(--font-hebrew); font-size: 14px; color: var(--wb-ink-3); }
.wb-lad-partner-word { font-family: var(--font-hebrew); direction: rtl; font-size: 22px; color: var(--wb-ink); }
.wb-lad-partner-gloss { font-size: 13px; font-style: italic; color: var(--wb-ink-2); }
.wb-lad-partner-ref {
  font-family: var(--rd-mono); font-size: 10px; color: var(--wb-ink-3);
  text-decoration: none;
}
.wb-lad-partner-ref:hover { color: var(--wb-warm); }

.wb-lad-verse {
  display: flex; flex-direction: row-reverse; flex-wrap: wrap;
  gap: 4px 10px; margin-top: 10px;
}
.wb-lad-vtok { display: flex; flex-direction: column; align-items: center; }
.wb-lad-vt { font-family: var(--font-hebrew); font-size: 16px; color: var(--wb-ink-2); }
.wb-lad-vg { font-size: 8.5px; color: var(--wb-ink-3); font-style: italic; max-width: 9ch; text-align: center; }
.wb-lad-vtok--hit .wb-lad-vt {
  color: var(--wb-warm);
  background: color-mix(in srgb, var(--wb-warm) 14%, transparent);
  padding: 0 3px;
}

@media (max-width: 640px) {
  .wb-lad-k { min-width: 64px; font-size: 9px; }
  .wb-lad-frac { min-width: 80px; font-size: 10px; }
  .wb-lad-body { padding-left: 14px; }
  .wb-lad-legend { display: none; }
}

/* ── The masthead — plate left, ladder right (boards 27+28) ────
   Two voices: serif carries human language (translit, gloss,
   epigraph), mono keeps the machine facts (ledger, ladder). */
.wb-masthead {
  display: grid;
  grid-template-columns: 1fr minmax(360px, 460px);
  /* Keep the identity ledger as a true full-width foot. The
     hero and position ladder share the first row; machine facts
     then use the whole profile width and wrap only as needed. */
  grid-template-areas:
    "l    r"
    "foot foot";
  column-gap: 44px;
  row-gap: 12px;
  align-items: start;
  margin-bottom: 6px;
}
.wb-masthead-l    { grid-area: l; }
.wb-masthead-r    { grid-area: r; padding-top: 8px; }
.wb-masthead-r .wb-ladder { margin-top: 0; }
@media (max-width: 980px) {
  .wb-masthead {
    grid-template-columns: 1fr;
    grid-template-areas: "l" "r" "foot";
    gap: 18px;
  }
}

/* left plate — everything starts at the left edge, on the SAME
   margin as the content below (head-v3's 22px side padding made
   two competing left edges); the head's full-width bottom rule
   goes too — the ledger's own top rule is the only divider */
.wb-masthead .wb-profile-head-v3 {
  padding: 4px 0 0;
  border-bottom: none;
  margin-bottom: 0;
}
.wb-masthead-l .wb-profile-hero-v3 { text-align: left; }
.wb-masthead-l .wb-profile-hb {
  justify-content: flex-start;
  text-align: left;
}
/* the hairline is the word's underline, not the panel's rule —
   absolutely-positioned gradient (fades both ends, board 27's
   colophon gesture); absolute takes it out of the hero's flex
   flow, fit-content keeps it the word's width */
.wb-masthead-l .wb-profile-hb {
  width: fit-content;
  position: relative;
  padding-bottom: 16px;
}
.wb-masthead-l .wb-profile-hb::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--wb-warm) 22%, var(--wb-warm) 78%, transparent);
  opacity: 0.5;
}
.wb-masthead-l .wb-profile-hero-v3-translits {
  justify-content: flex-start;
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-style: italic;
  font-size: 14px;
}
/* gloss row — one line; the stamp (T4/T5 only) rides the baseline */
.wb-masthead-l .wb-profile-hero-v3-gloss-row {
  justify-content: flex-start;
  align-items: baseline;
  gap: 10px;
}
.wb-masthead-l .wb-profile-hero-v3-gloss {
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 18px;
  line-height: 1.5;
  color: var(--wb-ink);
  text-align: left;
}
.wb-profile-hero-v3-gloss-paren { color: var(--wb-ink-3); }

/* the ledger — label above value, keys small-caps, machine mono */
.wb-masthead .wb-profile-head-v3-meta {
  display: flex;
  justify-content: flex-start;
  gap: 26px;
  flex-wrap: wrap;
  /* tightened 2026-08-13 (Scott: ergonomics — the stacked ledger
     rows each carried 20+14px and the gaps compounded) */
  margin-top: 9px;
  padding-top: 7px;
  border-top: 1px solid var(--wb-rule);
}
.wb-masthead .wb-profile-head-v3-canon {
  margin-top: 5px;
  padding-top: 5px;
  border-top: none;
}
.wb-masthead .wb-profile-meta-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}
.wb-masthead .wb-profile-meta-l {
  font-size: 8px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wb-ink-3);
}
.wb-masthead .wb-profile-meta-v { font-size: 15px; color: var(--wb-ink); }
/* the ledger, the meta panel and the Selah sense read in the gloss line's face,
   not the mono (Scott, 2026-10-07: "can we not use jetbrains here?" → Cardo).
   Digits stay tabular so the counts still line up. */
.wb-masthead .wb-profile-head-v3-meta,
.wb-meta-explain,
.wb-sense {
  /* the gloss line's own stack — NOT var(--font-chrome), whose system-ui comes
     before serif and renders a sans wherever Cardo is not installed */
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-variant-numeric: tabular-nums;
}
.wb-masthead .wb-profile-meta-v--mid { font-size: 10px; color: var(--wb-ink-3); }
/* value + info-tip on one line inside a column cell */
.wb-profile-meta-vrow { display: flex; align-items: center; gap: 5px; }

/* the epigraph — the plaque goes serif, loses its accent bar:
   a lyric line with a gutter label, per the masthead board */
.wb-fac-plaque {
  border-left: none;
  padding: 4px 0;
  margin-top: 0;
}
.wb-fac-plaque em {
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 16px;
  color: var(--wb-ink-2);
  line-height: 1.5;
}

/* stacked translit variant — lemma masthead shows both voices
   (academic transliteration + Strong's pronunciation), one per line */
.wb-profile-hero-v3-translits--stack {
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

/* stacked translits sit flush — no interposed dot, no indent */
.wb-profile-hero-v3-translits--stack
  .wb-profile-hero-v3-translit-cell + .wb-profile-hero-v3-translit-cell::before {
  content: none;
}

/* lemma-page masthead: full width on the same 36px gutter as
   .wb-profile-sections (FORMS etc.) — without a width the grid
   shrink-wraps inside the centering flex column and floats */
.wb-profile--with-aside .wb-masthead {
  width: 100%;
  box-sizing: border-box;
  padding: 0 36px;
}

/* lemma page gutters match the WORD profile exactly: word content
   sits at 28px from the stage edge (scope-top main pads 16/28);
   lemma main pads 24, so 4px inner padding lands both at 28 */
.wb-profile--lemma .wb-masthead { padding: 0 4px; }
.wb-profile--lemma .wb-profile-sections { padding: 0 4px 36px; }

/* the hero cluster (Hebrew · translits · gloss) indents a step
   past the ledger on BOTH profiles (Scott, 2026-08-02) */
.wb-masthead-l .wb-profile-hero-v3 { padding-left: 14px; }

/* ── FI-table, lemma variant (FORMS + PEERS on the lemma page) ──
   mark · form · gloss · count · first · go */
.wb-fi-table--lemma { border: 1px solid var(--wb-rule); }
.wb-fi-row--lemma {
  grid-template-columns: 6px 96px 1fr 56px 140px 20px;
}
.wb-fi-lemma-head {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: 9px;
  color: var(--wb-ink-3);
  background: var(--wb-bg-2, rgba(255,255,255,0.03));
}
.wb-fi-lemma-head:hover { background: var(--wb-bg-2, rgba(255,255,255,0.03)); }

/* canon chips on the instances rail */
.wb-inst-canon {
  display: flex;
  gap: 6px;
  padding: 0 0 10px;
}

/* instances-as-tab: the totals line that replaced the section header */
.wb-inst-tab-meta {
  font-family: var(--rd-mono);
  font-size: 10px;
  color: var(--wb-ink-3);
  padding: 8px 12px 6px;
}

/* ghost cells — server-enriched: live ones click, glosses whisper,
   indirect jumps show their destination */
.wb-fac-ghost-cell--live { cursor: pointer; }
.wb-fac-ghost-cell--live:hover .wb-fac-ghost-s { color: var(--wb-warm); }
.wb-fac-ghost-gloss {
  font-size: 9.5px;
  font-style: italic;
  color: var(--wb-ink-3);
  margin-left: 5px;
}
.wb-fac-ghost-via {
  font-size: 10px;
  color: var(--wb-ink-3);
  margin-left: 5px;
  white-space: nowrap;
}
.wb-fac-ghost-via span { font-family: var(--font-hebrew); font-size: 12px; }

/* the masthead FOOT — the ledger sits UNDER THE HERO in the left
   grid area (the ladder keeps the right for its full height);
   cells flow across and flex-wrap stacks them as the page
   narrows (Scott, 2026-08-03 / re-gridded 2026-08-04) */
.wb-masthead-foot { grid-area: foot; min-width: 0; }
.wb-profile-head-v3--ledger { padding: 0; border-bottom: none; margin-bottom: 0; }

/* ── THE FINDING BAND — the mouth's register ───────────────────
   Every other band on this page is a machine channel: mono
   labels, counts, grids. This one is Selah SPEAKING — so it
   takes the serif voice (the same face the masthead's translit
   and gloss use, at reading size), a warm margin-rule, and the
   air of a printed column. Nothing here is a table.

   Two tiers. The plain band is the word-level finding. The
   `--here` band is the instance finding for the verse the reader
   is standing in — the reward for having walked to the place —
   and it earns a fuller accent, the ◈ glyph, and the `found
   here` running-head.

   Logical properties throughout (border-inline-start etc.) so the
   Hebrew rail's dir=rtl mirrors the accent without an override. */
.wb-finding {
  max-width: 68ch;
  margin: 26px 0 10px;
  padding: 2px 0 2px 20px;
  padding-inline-start: 20px;
  border-inline-start: 2px solid color-mix(in srgb, var(--wb-warm) 32%, transparent);
}
.wb-finding--here {
  border-inline-start-width: 3px;
  border-inline-start-color: var(--wb-warm);
}
/* stacked (word profile: the place-finding leads, the word-level
   finding follows) — the stack owns the spacing */
.wb-finding-stack {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin: 26px 0 10px;
}
.wb-finding-stack > .wb-finding { margin: 0; }
/* running-head — the one mono line in the band, so the serif
   below reads as speech rather than as another labelled row */
.wb-finding-label {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-family: var(--rd-mono);
  font-size: 8.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--wb-ink-3);
}
.wb-finding--here .wb-finding-label {
  color: color-mix(in srgb, var(--wb-warm) 80%, var(--wb-ink));
}
.wb-finding-ref {
  letter-spacing: 0.1em;
  color: var(--wb-ink-3);
  unicode-bidi: isolate;
}
.wb-finding-title {
  margin: 7px 0 12px;
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--wb-ink);
}
.wb-finding-glyph {
  margin-inline-end: 8px;
  font-size: 15px;
  color: var(--wb-warm);
  vertical-align: 0.06em;
}
.wb-finding-body {
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--wb-ink-2);
}
.wb-finding-body p { margin: 0 0 0.95em; }
.wb-finding-body p:last-child { margin-bottom: 0; }
.wb-finding-body strong {
  font-weight: 700;
  color: color-mix(in srgb, var(--wb-warm) 78%, var(--wb-ink));
}
.wb-finding-body em { font-style: italic; color: var(--wb-ink); }
/* blockquote — hanging quote glyph, no second vertical rule
   competing with the band's own accent */
.wb-finding-body blockquote {
  position: relative;
  margin: 1.1em 0 1.2em;
  margin-inline-start: 1.3em;
  padding-inline-start: 12px;
  font-style: italic;
  color: var(--wb-ink);
}
.wb-finding-body blockquote::before {
  content: "\201C";
  position: absolute;
  inset-inline-start: -0.55em;
  top: -0.12em;
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 2em;
  line-height: 1;
  color: color-mix(in srgb, var(--wb-warm) 65%, transparent);
}
@media (max-width: 640px) {
  .wb-finding { padding-inline-start: 14px; }
  .wb-finding-title { font-size: 18px; }
  .wb-finding-body { font-size: 15px; line-height: 1.72; }
}

/* Finding inside the verse study-column TAB — the tab head already
   says FINDING, so the band drops its own kicker and the vertical
   accent bar (Scott, 2026-08-04). */
.pf-finding-tab .wb-finding {
  margin: 14px 0 6px;
  padding-inline-start: 0;
  border-inline-start: none;
}
.pf-finding-tab .wb-finding-label { display: none; }
.pf-finding-tab .wb-finding-title { margin-top: 0; }

/* FINDING in the reading stack — same section idiom as THE
   LETTERS / THE READING, no accent bar (Scott, 2026-08-04). */
.wb-finding-prose { margin-top: 4px; }
/* directly after THE READING, close the reading container's 40px
   tail so the finding sits one section-gap (22px) below, like any
   other section in the stack */
.wb-fac-prose + .wb-finding-prose { margin-top: -40px; }
.wb-finding-sec--here .wb-fac-prose-h {
  color: color-mix(in srgb, var(--wb-warm) 80%, var(--wb-ink));
}
.wb-finding-sec .wb-finding-ref { margin-inline-start: 8px; }
.wb-finding-sec .wb-finding-glyph {
  margin-inline-end: 6px;
  font-size: 10px;
}
/* in the reading stack the finding speaks in the STACK's own
   face and scale — same family, size, and ink as .wb-fac-summary,
   so the sections read as one column (Scott, 2026-08-04:
   "fonts weights sizes… make it work together"). One head per
   section: the kicker carries the title — label muted like its
   siblings, title lifted to full ink, same 9px caps. */
.wb-finding-h-title {
  color: var(--wb-ink);
}
.wb-finding-sec .wb-finding-body {
  max-width: none;
  font-family: inherit;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--wb-ink-2);
}
.wb-finding-sec .wb-finding-body p { margin: 0 0 0.8em; }
/* the quote is a payoff LINE, not a pull-quote — no hanging
   glyph (it read as a stray quote mark at this scale); a plain
   indent, italic, full ink. */
.wb-finding-sec .wb-finding-body blockquote {
  margin: 0.9em 0 1em;
  margin-inline-start: 1.3em;
  padding-inline-start: 0;
  font-size: 12.5px;
}
.wb-finding-sec .wb-finding-body blockquote::before {
  content: none;
}

/* READING channel — tabbed like the verse profile's channels
   (Scott, 2026-08-04). Same pf-channel-tab dress; body spacing
   matches the old prose stack. */
.wb-reading-channel { margin: 18px 0 24px; }
.wb-reading-channel .pf-channel-tabs { margin-bottom: 14px; }
.wb-reading-channel .pf-channel-tab {
  font-family: var(--rd-display);
  font-size: 11px;
  letter-spacing: 0.16em;
}
.wb-reading-channel .wb-fac-summary {
  font-family: 'Cardo', 'EB Garamond', Georgia, var(--script-faces), serif;
  font-size: 15.5px;
  line-height: 1.65;
}
.wb-reading-channel .wb-fac-interpretation {
  color: var(--wb-ink-2);
}
.wb-reading-channel .pf-channel-tab .wb-finding-glyph {
  margin-inline-end: 5px;
  font-size: 9px;
}
.wb-finding-tab-title {
  margin: 0 0 8px;
  font-size: 12.5px;
  font-weight: 650;
  color: var(--wb-ink);
}

/* ◈ finding pointer in the word MINI hero — one quiet warm line;
   the full text lives on the profile (hero click opens it). */
.rd-mw-finding {
  margin-top: 6px;
  font-family: var(--rd-mono);
  font-size: 9px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--wb-warm);
}
.rd-mw-finding .wb-finding-glyph {
  font-size: 9px;
  margin-inline-end: 4px;
}
.rd-mw-finding-ref { color: var(--wb-ink-3); letter-spacing: 0.06em; }

/* ── CHOSHEN verdict badges (word mini, 2026-08-20) ─────────────
   Family tints on the standard .rd-mw-tag chip. Muted — the verdict
   is a label, not an alarm. */
.rd-mw-tag--verdict-unanimous { color: #7dc47d; border-color: #7dc47d55; }
.rd-mw-tag--verdict-split     { color: #c4a24d; border-color: #c4a24d55; }
.rd-mw-tag--verdict-partial   { color: #8fa3c4; border-color: #8fa3c455; }
.rd-mw-tag--verdict-ghost     { color: #9a7dc4; border-color: #9a7dc455; }
.rd-mw-tag--verdict-fixed     { color: #c47d7d; border-color: #c47d7d55; }
.rd-mw-choshen-v { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.rd-mw-choshen-detail .rd-panel-oracle { padding-top: 4px; }

/* CHOSHEN ? help (2026-08-20) */
.rd-panel-oracle-help-toggle {
  margin-inline-start: auto;
  padding: 0 6px;
  border: 1px solid var(--wb-ink-4, #3a4353);
  border-radius: 9px;
  font-size: 10px;
  color: var(--wb-ink-3, #7a8499);
  cursor: pointer;
  user-select: none;
}
.rd-panel-oracle-help-toggle:hover { color: var(--wb-ink-1, #d8dee9); }
.rd-panel-oracle-head { display: flex; align-items: center; gap: 6px; }
.rd-panel-oracle-help {
  margin: 6px 0 2px;
  padding: 8px 10px;
  border: 1px dashed var(--wb-ink-4, #3a4353);
  border-radius: 6px;
  font-size: 11px;
  line-height: 1.5;
  color: var(--wb-ink-2, #aab3c5);
}
.rd-panel-oracle-help p + p { margin-top: 6px; }

/* preimage path gloss — the tribes the walk spells (2026-08-20) */
.rd-panel-oracle-path-gloss {
  display: block;
  margin-top: 2px;
  font-size: 9.5px;
  font-style: italic;
  letter-spacing: 0.02em;
  color: var(--wb-ink-3, #8b94a7);
  direction: ltr;
  text-align: left;
}

/* Letter-variant counter on a collapsed path row (×n, and ·k while
   cycling). Same quiet register as the reading-count badge. */
.rd-panel-oracle-path-variants {
  direction: ltr;
  font-family: var(--rd-mono);
  font-size: 8.5px;
  color: var(--rd-ink-3);
  margin-inline-start: 3px;
  align-self: center;
  font-variant-numeric: tabular-nums;
}

/* ── ELS tab · ONE band per fiber (Scott, 2026-09-15) ──
   form · gloss · badges · skip · THE PATH (chips, letters lit,
   gloss pinned) · ref-range · →. The path rides inline as a
   column; refs collapse to one range; L·start lives in the
   tooltip (the path SHOWS L). */
.wb-fi-row--els {
  grid-template-columns: 6px 64px minmax(90px, 0.7fr) 74px 44px
                         minmax(220px, 1fr) 20px;
  gap: 10px;
}
.wb-fi-els-path {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1px 10px;
  --sv-hb-size: 18px;
  --sv-word-gap: 4px;
  --sv-cluster-pad: 0;
  min-width: 0;
}
.wb-fi-els-path .rd-embed-il-gloss { font-size: 9px; max-width: 12ch; }
.wb-fi-els-cellref {
  font-family: var(--rd-mono);
  font-size: 8.5px;
  letter-spacing: 0.06em;
  color: var(--wb-ink-4, var(--wb-ink-3));
  direction: ltr;
}

/* The 👓 reader door beside the word profile's floated star
   (Scott, 2026-09-15: "just the icon, no grey background, match
   the size of the ★, centers aligned"). The float container is
   inline-flex/center; the emoji fills its em where the ★ inks
   ~0.7 of its 2.6rem, so 2.35rem is the visual match. Chrome-
   stripping + ink-lift come from the .rd-reader-glasses base
   rule in panel.css. (First cut landed in profiles.css — a file
   the bundle never included; the rule lives HERE, in a bundled
   file, on purpose.) */
.wb-profile-hero-glasses {
  font-size: 2.35rem;
  align-self: center;
}

/* ── the meta row unpacked + the Selah sense (2026-10-06) ──
   MORPH and BREATH are toggles; the panel opens under the ledger
   in the reader's own words. The Selah sense sits below it. */
.wb-meta-toggle { cursor: pointer; }
.wb-meta-toggle:hover .wb-profile-meta-v,
.wb-meta-toggle.is-open .wb-profile-meta-v { color: var(--wb-ink); text-decoration: underline dotted; text-underline-offset: 3px; }
.wb-meta-toggle-mark { font-size: 9px; color: var(--wb-ink-3); }
.wb-meta-explain {
  margin-top: 8px;
  padding: 8px 10px;
  border-left: 2px solid var(--wb-rule);
  font-size: 13px;
  line-height: 1.5;
  color: var(--wb-ink-2);
  max-width: 68ch;
}
.wb-meta-explain-lede { margin: 0 0 6px; color: var(--wb-ink-3); font-size: 12px; }
.wb-meta-explain-seg + .wb-meta-explain-seg { margin-top: 6px; }
.wb-meta-explain-pos { color: var(--wb-ink); }
.wb-meta-explain-pos code { font-size: 11px; color: var(--wb-ink-3); }
.wb-meta-explain-note { color: var(--wb-ink-3); }
.wb-meta-explain-sum { margin: 6px 0 0; color: var(--wb-ink-2); font-variant-numeric: tabular-nums; }
.wb-meta-explain .wb-fac-numeric-row { margin-top: 8px; }
.wb-meta-explain-items { margin: 3px 0 0; padding-left: 1.1em; }
.wb-meta-explain-items li { margin: 1px 0; }
.wb-meta-explain-letter {
  font-family: 'SBL Hebrew', 'Ezra SIL', var(--script-faces), serif;
  font-size: 16px;
  color: var(--wb-ink);
}
.wb-sense {
  margin-top: 9px;
  padding-top: 7px;
  border-top: 1px solid var(--wb-rule);
  max-width: 68ch;
}
.wb-sense-head { display: flex; align-items: baseline; gap: 8px; }
.wb-sense-kept { font-size: 10px; color: var(--wb-ink-3); letter-spacing: 0.04em; }
.wb-sense-text { font-size: 17px; color: var(--wb-ink); margin-top: 2px; }
.wb-sense-literal, .wb-sense-readings, .wb-sense-detail > div { font-size: 15px; color: var(--wb-ink-2); margin-top: 2px; }
.wb-sense-literal { font-style: italic; }
.wb-sense-l {
  font-size: 8px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--wb-ink-3);
  font-style: normal;
}
.wb-sense-more {
  margin-top: 4px;
  padding: 0;
  border: none;
  background: none;
  font-size: 11px;
  color: var(--wb-ink-3);
  cursor: pointer;
  text-decoration: underline dotted;
}
.wb-sense-detail { margin-top: 4px; }
.wb-sense-conf {
  margin-left: auto; background: none; border: 0; padding: 0; cursor: pointer;
  font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wb-ink-3);
}
.wb-sense-conf:hover, .wb-sense-conf[aria-expanded="true"] { color: var(--wb-ink-2); }
.wb-sense-dots { letter-spacing: 0.1em; }
.wb-sense-sources {
  margin-top: 8px; padding-left: 10px; border-left: 2px solid var(--wb-rule, var(--wb-ink-3));
}
.wb-sense-sources > div { font-size: 14px; color: var(--wb-ink-3); margin-top: 2px; }
.wb-sense-prov { font-size: 11px; color: var(--wb-ink-3); margin-top: 6px; }
