/* Cascadia Claim Integrity. Page chrome follows the Felix design system (cascadia-standards/design-system/felix-design-system.md v1.0);
   charts and data tables inside it follow VIZ-PRINCIPLES / CHART-REVIEW v2.9. Boundary recorded in governance/chart-review.md:
   Felix governs the page, cards, navigation, controls and typography outside a chart; Cascadia governs every chart canvas, its
   finding title, annotation, provenance strip and its data table. Minimum text 12 px everywhere. Light scheme only (VIZ 5.7). */
:root {
  color-scheme: light;
  --paper: #efeee9; --white: #ffffff; --mist: #e8f0ef; --mist-2: #f1f6f5; --line: #dedcd5;
  --ink: #0f1f1e; --ink-soft: #4a5857; --muted: #6b7877; --teal: #12403c; --teal-2: #1f6b63; --teal-3: #3f8f85;
  --lime: #d4f36b; --lime-2: #c2e84a;
  /* Cascadia chart palette */
  --evergreen: #1E7A4C; --glacier: #4C8BC0; --madrona: #C05A2E; --lupine: #7B68AE; --lichen: #9C7A20; --rain: #9AA6A0;
  --basalt: #232B27; --slate: #5B6660; --mist-grid: #E4E7E3; --chart-paper: #FCFCFA;
  --madrona-text: #BA572D; --lichen-text: #90701D; --glacier-text: #4279A7;
  --font-sans: Inter, "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Inter Tight", Inter, "Segoe UI", system-ui, sans-serif;
  --font-serif: Fraunces, Georgia, "Times New Roman", serif;
  --font-mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, Menlo, monospace;
  --chart-serif: "Source Serif 4", Georgia, serif;
  --chart-sans: "Segoe UI", -apple-system, "Helvetica Neue", Arial, sans-serif;
  --radius-card: 1.5rem;
}
* { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-sans); font-size: 16px; line-height: 1.55; }
:focus-visible { outline: 2px solid var(--teal-2); outline-offset: 3px; }
a { color: var(--teal); text-underline-offset: 3px; }
code, .mono { font-family: var(--font-mono); font-size: max(12px, 0.85em); }
.container-x { width: 100%; max-width: 76rem; margin-inline: auto; padding-inline: 1.25rem; }
@media (min-width: 768px) { .container-x { padding-inline: 2rem; } }
.skip { position: absolute; left: -9999px; top: 0; background: var(--ink); color: #fff; padding: .6rem 1rem; z-index: 100; }
.skip:focus { left: 1rem; top: .5rem; }
.muted { color: var(--muted); }
.serif { font-family: var(--font-serif); font-style: italic; font-weight: 400; color: var(--teal-2); }
.stop { color: var(--teal-3); }

/* Header */
.site-head { position: sticky; top: 0; z-index: 50; background: rgba(239,238,233,.97); border-bottom: 1px solid rgba(15,31,30,.08); }
.head-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; min-height: 4.25rem; padding-block: .5rem; }
.wordmark { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--ink); }
.wm-text { font-family: var(--font-display); font-size: 1.25rem; font-weight: 600; letter-spacing: -.02em; white-space: nowrap; }
.view-nav { display: flex; flex-wrap: wrap; gap: .25rem; background: #fff; border-radius: 999px; padding: .25rem; }
.view-nav a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem 1rem; border-radius: 999px; color: var(--ink-soft); text-decoration: none; font-size: .9rem; font-weight: 500; }
.view-nav a:hover { background: var(--paper); color: var(--ink); }
.view-nav a[aria-current="page"] { background: var(--ink); color: #fff; }
@media (max-width: 767px) {
  .site-head { position: static; }
  .view-nav { width: 100%; border-radius: 1rem; }
  .view-nav a { flex: 1 1 100%; justify-content: flex-start; border-radius: .8rem; }
}
.synthetic-band { background: var(--mist-2); border-bottom: 1px solid var(--line); font-size: .875rem; color: var(--ink-soft); padding-block: .55rem; }

/* Type */
h1, h2, h3, h4 { font-family: var(--font-display); letter-spacing: -.025em; color: var(--ink); margin: 0; }
h1 { font-size: clamp(2.1rem, 1.3rem + 3.2vw, 3.6rem); line-height: 1.02; font-weight: 700; letter-spacing: -.04em; }
h2 { font-size: clamp(1.45rem, 1.15rem + 1vw, 1.9rem); line-height: 1.12; font-weight: 650; margin-top: 2.6rem; }
h3 { font-size: 1.2rem; line-height: 1.2; font-weight: 650; }
h4 { font-size: 1rem; font-weight: 650; }
.eyebrow { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--teal-2); }
.lede { font-size: 1.1rem; color: var(--ink-soft); max-width: 52rem; }
p { margin: .6rem 0; }
.small { font-size: .875rem; color: var(--ink-soft); }
.notice { background: #fff; border: 1px solid var(--line); border-radius: 1rem; padding: 1rem 1.2rem; }
.loading { padding: 3rem 0; color: var(--ink-soft); }

/* Surfaces */
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-card); padding: 1.25rem 1.4rem; }
.panel { background: #fff; border-radius: 1.75rem; padding: 1.4rem 1.5rem; margin-top: 1rem; }
.hero { padding-top: 2rem; }
.overview { margin-top: 1.4rem; background: #fff; border-radius: 1.75rem; padding: 1.4rem 1.5rem; border: 1px solid var(--line); }
.overview .finding { font-family: var(--font-display); font-size: clamp(1.1rem, 1rem + .5vw, 1.4rem); line-height: 1.45; font-weight: 500; color: var(--ink); max-width: 60rem; }
.ident { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }
.chip { display: inline-flex; align-items: center; padding: .25rem .7rem; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-family: var(--font-mono); font-size: .75rem; color: var(--ink-soft); }
.pill { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .8rem; border-radius: 999px; background: #fff; border: 1px solid rgba(15,31,30,.14); font-size: .8rem; font-weight: 500; }
.dot { width: .45rem; height: .45rem; border-radius: 999px; background: var(--teal-3); display: inline-block; }
.grid-3 { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.grid-2 { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 900px) { .grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* Measure cards */
.mcard { background: #fff; border: 1px solid var(--line); border-radius: 1.5rem; padding: 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .35rem; }
.mcard .mid { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--teal-2); }
.mcard .mtitle { font-family: var(--font-display); font-weight: 650; font-size: 1.05rem; line-height: 1.25; }
.mcard .value { font-family: var(--font-display); font-weight: 700; font-size: 2.2rem; letter-spacing: -.04em; line-height: 1; margin-top: .3rem; }
.mcard .frac { font-size: .95rem; color: var(--ink-soft); }
.mcard .pop { font-size: .82rem; color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: .5rem; margin-top: .3rem; }
.mcard dl { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .15rem .8rem; margin: .4rem 0 0; font-size: .85rem; }
.mcard dt { color: var(--ink-soft); }
.mcard dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.mcard a.more { font-size: .85rem; margin-top: .4rem; }

/* Controls */
.controls { margin-top: 2rem; background: var(--mist-2); border: 1px solid var(--line); border-radius: 1.5rem; padding: 1rem 1.2rem; }
.controls form { display: grid; gap: .8rem 1rem; grid-template-columns: 1fr; }
@media (min-width: 720px) { .controls form { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.controls label, .controls legend { display: block; font-family: var(--font-mono); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: .3rem; }
.controls select { width: 100%; min-height: 2.75rem; border-radius: .8rem; border: 1px solid var(--line); background: #fff; padding: .4rem .6rem; font: inherit; font-size: .95rem; color: var(--ink); }
.controls .state { grid-column: 1 / -1; font-size: .9rem; color: var(--ink); }
.btn { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; padding: .55rem 1.1rem; border-radius: 999px; font: inherit; font-size: .9rem; font-weight: 500; cursor: pointer; border: 1px solid var(--line); background: #fff; color: var(--ink); text-decoration: none; }
.btn:hover { border-color: var(--teal-2); color: var(--teal); }
.btn-dark { background: var(--ink); color: #fff; border-color: var(--ink); }
.btn-dark:hover { background: var(--teal); color: #fff; }
.btn-row { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.pos-desc { font-size: .82rem; color: var(--ink-soft); margin-top: .3rem; }
.restricted { border-left: 3px solid var(--lichen); background: #fbf7ec; padding: .5rem .8rem; border-radius: 0 .6rem .6rem 0; font-size: .875rem; }

/* Tables */
.table-wrap { overflow-x: auto; background: #fff; border: 1px solid var(--line); border-radius: .9rem; margin-top: .8rem; position: relative; }
.table-wrap:focus-visible { outline: 2px solid var(--teal-2); }
.binding pre { max-width: 100%; overflow: auto; }
.fold summary { overflow-wrap: anywhere; }
table { width: 100%; border-collapse: collapse; font-size: .875rem; line-height: 1.45; }
.tcap { font-weight: 600; font-size: .9rem; margin: 1rem 0 0; color: var(--ink); }
thead { background: var(--mist-2); }
th, td { text-align: left; vertical-align: baseline; padding: .5rem .8rem; border-top: 1px solid var(--line); }
th[scope="col"], th[scope="col"].num { font-weight: 600; white-space: normal; vertical-align: bottom; min-width: 6rem; max-width: 22ch; overflow-wrap: break-word; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
tbody tr:hover { background: #fafaf7; }
.tbl-note { font-size: .82rem; color: var(--ink-soft); padding: .5rem .9rem .8rem; }
tfoot td { border-top: 2px solid var(--ink-soft); font-weight: 600; background: var(--mist-2); }
/* R1-13 finding 4: a table wider than its container says so in place (app.js table() toggles the hint) and shows edge shadows. */
.tbl-hint { font-size: .82rem; color: var(--ink); margin: .3rem 0 0; font-weight: 500; }
.tbl-hint[hidden] { display: none; }
.table-wrap.is-scrollable {
  background: linear-gradient(to right, #fff 30%, rgba(255,255,255,0)) left center / 2.5rem 100% no-repeat local,
              linear-gradient(to left, #fff 30%, rgba(255,255,255,0)) right center / 2.5rem 100% no-repeat local,
              radial-gradient(farthest-side at 0 50%, rgba(15,31,30,.22), rgba(15,31,30,0)) left center / .9rem 100% no-repeat scroll,
              radial-gradient(farthest-side at 100% 50%, rgba(15,31,30,.22), rgba(15,31,30,0)) right center / .9rem 100% no-repeat scroll;
  background-color: #fff;
}
/* Header cells may wrap where a table opts in, so it fits the design width (routes table). */
table.wrap-head th[scope="col"] { white-space: normal; vertical-align: bottom; }
table.wrap-head th, table.wrap-head td { padding-inline: .55rem; }
table.wrap-head td:first-child { white-space: nowrap; }
/* R1-13b finding 7: a table that opts in (downstream table) wraps its long text and identifier columns so it fits at 1280 px. */
table.fit td { white-space: normal; overflow-wrap: break-word; }
table.fit td .ident-wrap { overflow-wrap: anywhere; }
@media (min-width: 601px) { table.fit td:last-child { min-width: 14rem; } }
/* Tables retain their semantic header row at every width; the bounded region scrolls in both axes. */
.tag { display: inline-block; padding: .05rem .5rem; border-radius: 999px; font-size: .78rem; font-weight: 600; border: 1px solid var(--line); background: #fff; max-width: 100%; overflow-wrap: anywhere; }
td .tag { overflow-wrap: break-word; }
.tag.ok { border-color: #b7d6c4; background: #eef7f1; color: #165c39; }
.tag.bad { border-color: #e7c1ae; background: #fbefe8; color: #8f3f1d; }
.tag.unk { border-color: #d6d9d5; background: #f4f5f3; color: #4a5857; }
.tag.warn { border-color: #e6d6a6; background: #fbf6e6; color: #6e5512; }

/* Charts (Cascadia) */
figure.chart { margin: 1rem 0 0; background: var(--chart-paper); border: 1px solid var(--line); border-radius: 1rem; padding: 1rem 1.1rem .8rem; }
figure.chart .ctitle { font-family: var(--chart-serif); font-size: 1.15rem; line-height: 1.3; color: var(--basalt); font-weight: 600; margin: 0 0 .2rem; }
figure.chart .csub { font-family: var(--chart-sans); font-size: .85rem; color: var(--slate); margin: 0 0 .6rem; }
figure.chart svg { display: block; width: 100%; height: auto; }
figure.chart svg text { font-family: var(--chart-sans); font-size: 12px; fill: var(--basalt); }
figure.chart svg .lab-ctx { fill: var(--slate); }
figure.chart svg .ann { font-family: var(--chart-serif); font-size: 13px; }
figure.chart .summary { font-family: var(--chart-sans); font-size: .85rem; color: var(--slate); margin: .6rem 0 0; }
.prov { display: flex; align-items: baseline; gap: .45rem; margin-top: .7rem; font-family: var(--chart-sans); font-size: 12px; color: var(--slate); line-height: 1.4; }
/* R1-13 finding 23: at narrow widths the footnote, summary and provenance strip use the chart text token; the long title gives way to the short one. */
figure.chart .t-short { display: none; }
@media (max-width: 600px) {
  figure.chart .prov, figure.chart .summary, figure.chart .csub { color: var(--basalt); }
  figure.chart .ctitle .t-long { display: none; }
  figure.chart .ctitle .t-short { display: inline; }
}
.prov::before { content: ""; display: inline-block; width: 3px; height: 1.1em; background: var(--evergreen); flex: none; transform: translateY(.15em); }
details.fold { margin-top: 1rem; background: #fff; border: 1px solid var(--line); border-radius: 1.2rem; padding: .3rem 1rem; }
details.fold > summary { cursor: pointer; min-height: 2.75rem; display: flex; align-items: center; font-family: var(--font-display); font-weight: 650; font-size: 1.05rem; }
.relation { display: grid; gap: .5rem; grid-template-columns: 1fr; }

/* Record view */
.rec-head { display: flex; flex-wrap: wrap; gap: .6rem; align-items: baseline; }
.kv { display: grid; grid-template-columns: minmax(9rem, 14rem) minmax(0,1fr); gap: .2rem 1rem; font-size: .9rem; margin: .4rem 0; }
.kv dt { color: var(--ink-soft); }
.kv dd { margin: 0; overflow-wrap: anywhere; min-width: 0; }
.kv dd.hash { font-size: max(12px, .8rem); }
/* R1-13 finding 3: below 600 px the label sits above its value; identifiers break at separators (app.js brk()). */
@media (max-width: 600px) {
  .kv { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .kv dt { font-family: var(--font-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-top: .5rem; }
  .kv dt:first-child { margin-top: 0; }
}
.search { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.search input { flex: 1 1 18rem; min-height: 2.75rem; border-radius: 999px; border: 1px solid var(--line); padding: .45rem 1rem; font: inherit; font-size: .95rem; background: #fff; }
.timeline { list-style: none; margin: .6rem 0 0; padding: 0; border-left: 2px solid var(--line); }
.timeline li { position: relative; padding: .35rem 0 .35rem 1rem; font-size: .88rem; }
.timeline li::before { content: ""; position: absolute; left: -6px; top: .85rem; width: 10px; height: 10px; border-radius: 999px; background: #fff; border: 2px solid var(--teal-3); }
.timeline li.after-k { color: var(--muted); }
.timeline li.after-k::before { border-style: dashed; border-color: var(--rain); }
.story-list { display: grid; gap: .8rem; grid-template-columns: 1fr; margin-top: .8rem; }
@media (min-width: 900px) { .story-list { grid-template-columns: repeat(5, minmax(0,1fr)); } }
.story { background: #fff; border: 1px solid var(--line); border-radius: 1.3rem; padding: 1rem; display: flex; flex-direction: column; gap: .4rem; }
.story .sid { font-family: var(--font-display); font-weight: 700; font-size: 1.4rem; letter-spacing: -.03em; }
.story h3 { font-size: 1rem; }
.steps { counter-reset: s; list-style: none; padding: 0; margin: .6rem 0 0; }
.steps li { counter-increment: s; position: relative; padding: .5rem 0 .5rem 2.4rem; border-top: 1px solid var(--line); }
.steps li::before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: .5rem; font-family: var(--font-display); font-weight: 700; color: var(--teal-2); }
.health { margin-top: 1.4rem; border-radius: 1.2rem; padding: .8rem 1rem; background: #fff; border: 1px dashed var(--rain); font-size: .9rem; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.health strong { font-family: var(--font-display); }
.site-foot { margin-top: 4rem; background: var(--ink); color: rgba(255,255,255,.78); padding-block: 2rem; font-size: .875rem; }
.site-foot .mono { color: rgba(255,255,255,.7); overflow-wrap: anywhere; }
.site-foot a.case-study-link { color: var(--mist); }
.site-foot a.case-study-link:hover { color: var(--lime); }
.foot-row { display: grid; gap: .5rem; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media print { .site-head, .controls, .view-nav { display: none; } }


/* Owner-preview UI revision, 2026-10-19. Felix chrome; Cascadia chart semantics retained. */
.synthetic-band { margin: 1.1rem 0 1.5rem; padding: .65rem .9rem; border: 0; border-left: 2px solid var(--teal-3); background: var(--mist-2); border-radius: 0 .6rem .6rem 0; font-size: .8125rem; line-height: 1.5; }
.synthetic-band .container-x { padding: 0; max-width: none; }
.hero { padding-top: 3rem; }
.hero-split { display: grid; grid-template-columns: minmax(0,1.8fr) minmax(17rem,1fr); gap: 2rem; align-items: center; padding-bottom: .5rem; }
.hero-copy, .hero-guide, .snapshot-card, .blocker-focus > div { min-width: 0; }
.hero-copy h1 { max-width: 13ch; font-size: clamp(2.7rem, 1.8rem + 3.1vw, 4.3rem); margin-top: .8rem; }
.hero-copy .lede { max-width: 42rem; }
.hero-actions { margin-top: 1.35rem; }
.hero-guide { padding: 1.5rem; border-radius: 1.6rem; background: var(--lime); }
.hero-guide .eyebrow { color: var(--teal); }
.hero-guide h2 { font-size: 1.65rem; margin: .6rem 0; line-height: 1.12; }
.hero-guide p:not(.eyebrow) { color: var(--teal); font-size: .95rem; }
.hero-guide .btn { margin-top: .8rem; }
.snapshot.overview { background: transparent; padding: 0; border: 0; border-radius: 0; margin-top: 2rem; }
.snapshot-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem; }
.snapshot h2 { margin: 0; font-size: 1.5rem; }
.snapshot-grid { margin-top: 1rem; }
.snapshot-card { background: white; padding: 1.25rem; border-radius: 1.25rem; border-top: 4px solid var(--teal); }
.snapshot-card:nth-child(2) { border-top-color: var(--teal-3); }
.snapshot-card:nth-child(3) { border-top-color: var(--teal-2); background: var(--mist); }
.snapshot-card .eyebrow { letter-spacing: .08em; margin: 0 0 1.2rem; }
.snapshot-value { font-family: var(--font-display); font-size: 2.65rem; line-height: 1; letter-spacing: -.04em; font-weight: 700; color: var(--ink); }
.snapshot-den { font-size: .95rem; font-weight: 600; line-height: 1.4; }
.scope-note { font-size: .85rem; color: var(--ink-soft); margin-top: 1rem; max-width: 64rem; }
.snapshot-detail { margin-top: .8rem; }
.snapshot-detail > .small { max-width: 64rem; }
.view-a > section:not(.hero):not(.snapshot):not(.controls) { margin-top: 2.8rem; padding-top: .25rem; }
.view-a > section > h2, .view-a > h2 { margin-top: 1rem; }
.view-a > h2 { margin-top: 2.5rem; }
.view-a .mcard { border-top: 3px solid var(--teal-3); }
.view-a .mcard .value { color: var(--teal); }
.terms-fold { margin-bottom: 1rem; }
.terms-fold > summary, .snapshot-detail > summary { font-size: .95rem; }
.view-a .story-list { grid-template-columns: repeat(3, minmax(0,1fr)); }
.view-a .story:first-child { grid-column: span 2; background: var(--teal); color: white; }
.view-a .story:first-child h3, .view-a .story:first-child .small, .view-a .story:first-child a { color: white; }
.view-a .story:first-child .sid { color: var(--lime); }
.view-a .story { padding: 1.25rem; }
.view-a .story .sid { color: var(--teal-2); font-size: 1rem; }
.view-a .story h3 { font-size: 1.13rem; }
.view-a .story a { margin-top: auto; font-weight: 600; min-height: 2.75rem; display: inline-flex; align-items: center; }
.controls { background: var(--mist); border: 0; }
.controls h2 { margin-bottom: .85rem; }
.blocker-focus { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 2rem; padding: 1.4rem; border-radius: 1.5rem; background: white; border-left: 5px solid var(--teal-2); margin-top: 1rem; }
.blocker-focus h3 { margin-top: .45rem; font-size: 1.5rem; }
.blocker-value { color: var(--teal); font-family: var(--font-display); font-size: 3rem; font-weight: 700; letter-spacing: -.04em; line-height: 1; margin-top: 1rem; }
.blocker-context { background: var(--mist-2); border-radius: 1rem; padding: 1rem 1.15rem; font-size: .95rem; }
.blocker-focus .btn { margin-top: .7rem; }
.run-section { border-top: 1px solid var(--line); padding-top: 1.5rem !important; }
.run-section h2 { margin-top: .4rem !important; }
.run-section > .small { max-width: 60rem; }
.run-section > a { display: inline-block; margin-top: .8rem; font-size: .9rem; }
.run-section .health { margin-top: .8rem; font-size: .85rem; }
/* Sticky headers stay visible while the bounded table region scrolls at every viewport width. */
.table-wrap { max-height: min(65vh, 34rem); overflow: auto; overscroll-behavior: auto; }
table { border-collapse: separate; border-spacing: 0; }
thead th { position: sticky; top: 0; z-index: 2; background: var(--mist-2); box-shadow: 0 1px 0 var(--line); }
/* Freeze the identifying column at every width, with a raised corner where both axes meet. */
.table-wrap table > :is(thead, tbody, tfoot) > tr > :first-child { position: sticky; left: 0; z-index: 3; background: var(--frozen-column-bg, #fff); box-shadow: 2px 0 0 var(--line); max-width: 16rem; white-space: normal; overflow-wrap: anywhere; }
.table-wrap table > thead > tr > :first-child { top: 0; z-index: 5; background: var(--mist-2); }
.table-wrap table > tfoot > tr > :first-child { background: var(--mist-2); }
.table-wrap table > :is(thead, tbody, tfoot) > tr > .num:first-child { white-space: nowrap; overflow-wrap: normal; }
.case-result-table tbody tr:nth-child(3) { --frozen-column-bg: var(--mist-2); }
.table-wrap table > tbody > tr > :first-child details > summary { display: block; overflow-wrap: normal; }
.table-wrap table > tbody > tr > :first-child details > summary > .disclosure-scope { display: block; margin: .35rem 0; max-width: 100%; white-space: normal; width: fit-content; }
@media (max-width: 767px) {
  .table-wrap table > :is(thead, tbody, tfoot) > tr > :first-child { min-width: min(8rem, 40vw); max-width: min(12rem, 45vw); white-space: normal; overflow-wrap: anywhere; }
  .table-wrap .case-result-table > :is(thead, tbody) > tr > :first-child { width: min(10rem, 45vw); min-width: min(10rem, 45vw); max-width: min(10rem, 45vw); }
  .table-wrap .case-result-table > tbody > tr > td { width: auto; }
  .table-wrap .case-result-table > thead > tr > :first-child { padding-inline: .65rem; overflow-wrap: normal; }
  .table-wrap table > tbody > tr > :first-child .disclosure-scope-note { display: none; }
}
.chart-point { cursor: pointer; }
.chart-point:focus { outline: none; }
.chart-point:focus-visible .point-hit { stroke: var(--teal-2); stroke-width: 2; }
.chart-tooltip { position: fixed; z-index: 80; width: 18rem; background: var(--ink); color: white; padding: .75rem .9rem; border-radius: .75rem; font-family: var(--chart-sans); font-size: .875rem; line-height: 1.4; box-shadow: 0 6px 24px #0f1f1e30; pointer-events: none; overflow-wrap: anywhere; }
.chart-tooltip[hidden] { display: none; }
.chart-tooltip strong, .chart-tooltip span { display: block; }
.chart-tooltip strong { font-weight: 600; }
.chart-tooltip span { margin-top: .3rem; }
.chart-tooltip .tip-scope { color: #e8f0ef; font-size: .75rem; }
h2[id] { scroll-margin-top: 7rem; }
@media (max-width: 899px) {
  .hero-split { grid-template-columns: minmax(0,1fr); gap: 1.4rem; }
  .hero-copy h1 { max-width: 17ch; }
  .hero-guide { max-width: none; }
  .view-a .story-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .container-x { padding-inline: 1rem; }
  .wm-text { font-size: 1.05rem; }
  .wordmark { gap: .35rem; max-width: 100%; }
  .hero { padding-top: 1.6rem; }
  .hero-copy h1 { font-size: 2.65rem; }
  .hero-copy .eyebrow { font-size: .75rem; letter-spacing: .08em; }
  .hero-actions { gap: .5rem; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .hero-guide { padding: 1.2rem; }
  .hero-guide h2 { font-size: 1.4rem; }
  .snapshot-card { padding: 1.1rem; }
  .snapshot-card .eyebrow { margin-bottom: .7rem; }
  .snapshot-value { font-size: 2.4rem; }
  .snapshot-heading .chip { white-space: normal; }
  .view-a .story-list, .blocker-focus { grid-template-columns: minmax(0,1fr); }
  .view-a .story:first-child { grid-column: auto; }
  .blocker-focus { padding: 1.1rem; gap: 1rem; }
  .blocker-context { padding: .9rem; }
  .search input { min-width: 0; max-width: 100%; }
  .chip { overflow-wrap: anywhere; }
  h2[id] { scroll-margin-top: 1rem; }
}
@media print {
  .table-wrap { max-height: none; overflow: visible; }
  .chart-tooltip { display: none; }
  .synthetic-band { display: block; }
}

/* Preview revision 2: explanatory views share the same Felix hierarchy. */
.explanatory-hero .hero-copy h1 { font-size: clamp(2.7rem, 1.8rem + 2.5vw, 3.8rem); max-width: 15ch; }
.hero-prompts { padding-left: 1.15rem; margin: 1.2rem 0 0; color: var(--teal); font-size: .95rem; }
.hero-prompts li { padding: .55rem 0 .55rem .25rem; border-top: 1px solid #12403c30; }
.reading-nav { margin: 2rem 0; padding: 1rem 1.2rem; background: var(--mist); border-radius: 1.2rem; }
.reading-nav > .eyebrow { margin: 0 0 .6rem; }
.reading-nav .btn { font-size: .85rem; padding: .45rem .85rem; }
.reading-chapter { margin-top: 2rem; padding: 1.5rem; border-radius: 1.5rem; border: 1px solid var(--line); border-top: 4px solid var(--teal-3); background: white; scroll-margin-top: 6rem; min-width: 0; }
.reading-chapter > .eyebrow { margin: 0 0 .6rem; }
.reading-chapter > h2, .reading-chapter > h3 { margin-top: 0 !important; }
.reading-chapter > h2 { font-size: 1.7rem; }
.reading-chapter .panel { background: var(--mist-2); }
.reading-chapter > .small { max-width: 64rem; }
.reading-chapter .table-wrap { border-radius: .8rem; }
.record-search { background: var(--mist); border-radius: 1.5rem; padding: 1.25rem 1.5rem; margin-top: 2rem; }
.record-search > .eyebrow { margin: 0 0 .4rem; }
.record-search h2 { margin: 0; font-size: 1.5rem; }
.record-search > .small { max-width: 56rem; }
.record-search .search { margin-top: 1rem; }
.position-strip { padding: 1rem 1.2rem; border-left: 3px solid var(--teal-3); margin-top: 1rem; background: #ffffff80; border-radius: 0 1rem 1rem 0; }
.position-strip a { display: inline-block; margin: .25rem 0; padding: .2rem .4rem; background: white; border-radius: .4rem; }
.record-context { background: var(--teal); color: white; border-radius: 1.5rem; padding: 1.4rem 1.5rem; margin-top: 2rem; }
.record-context h2 { color: white; font-size: 1.7rem; margin-top: 0 !important; overflow-wrap: anywhere; }
.record-context .kv dt { color: var(--mist); }
.record-context .kv dd { color: white; }
.record-context .tag { background: white; }
.view-b #rec-holder { min-width: 0; }
.view-b #rec-holder > article { min-width: 0; }
.view-b .panel[aria-labelledby="story-h"] { border-left: 4px solid var(--teal-3); }
.view-b .steps > li { padding-top: 1rem; padding-bottom: 1rem; }
.view-b .steps li::before { top: 1rem; }
.view-b #record-financial, .view-b #record-bridge { background: var(--mist-2); }
.view-b #rec-holder > div > h2 { margin-bottom: 1rem; }
.view-b #rec-holder > div > .btn-row { margin-bottom: 1rem; }
.evidence-overview { margin-top: 2rem; }
.evidence-overview > h2 { margin-top: 0; font-size: 1.5rem; }
.evidence-overview > .grid-3 { margin-top: 1rem; }
.evidence-card { background: white; border-top: 4px solid var(--teal); border-radius: 1.2rem; padding: 1.2rem; }
.evidence-card:nth-child(3) { background: var(--mist); }
.evidence-card > .eyebrow { font-size: .75rem; letter-spacing: .08em; margin-top: 0; }
.evidence-card h3 { margin: .7rem 0; font-size: 1.15rem; }
.evidence-card .tag { margin-bottom: .3rem; }
.definition-picker { display: grid; gap: .4rem; max-width: 100%; margin: 1rem 0; padding: 1rem; background: var(--mist); border-radius: .8rem; }
.definition-picker label { font-size: .85rem; font-weight: 600; }
.definition-picker select { width: 100%; min-width: 0; min-height: 2.75rem; border: 1px solid var(--line); border-radius: .6rem; padding: .4rem .7rem; background: white; font: inherit; color: var(--ink); }
.view-c #detectors .tbl-note { background: var(--mist-2); border-left: 3px solid var(--teal-2); border-radius: 0 .7rem .7rem 0; margin: 1rem 0; padding: 1rem; }
.view-c #detectors .fold { margin-top: 1rem; }
.view-c #execution { background: var(--mist-2); }
.recommendations { padding: 1.6rem 0 0 !important; border-top: 1px solid var(--line); }
.recommendations > h2 { font-size: clamp(1.7rem, 1.4rem + 1vw, 2.2rem); margin: .6rem 0 1rem !important; }
.recommendations > .lede { max-width: 58rem; }
.recommendation-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 1.5rem 0; }
.recommendation-card { min-width: 0; background: white; border-radius: 1.3rem; padding: 1.3rem; border-top: 4px solid var(--teal-3); }
.recommendation-card:first-child { background: var(--mist); border-color: var(--teal); }
.recommendation-card > .eyebrow { letter-spacing: .08em; margin: 0 0 .8rem; }
.recommendation-card h3 { font-size: 1.2rem; margin-bottom: .8rem; }
.experiment-question { padding: .9rem; background: var(--mist-2); border-radius: .8rem; margin: 1rem 0; }
.experiment-question .eyebrow { letter-spacing: .08em; font-size: .75rem; }
.experiment-question p { font-size: .95rem; font-weight: 500; }
@media (max-width: 899px) {
  .recommendation-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .explanatory-hero .hero-copy h1 { font-size: 2.65rem; }
  .reading-nav { padding: 1rem; }
  .reading-nav .btn { justify-content: flex-start; width: 100%; }
  .reading-chapter, .record-search, .record-context { padding: 1.1rem; border-radius: 1.1rem; }
  .reading-chapter { scroll-margin-top: 1rem; }
  .reading-chapter > h2 { font-size: 1.45rem; }
  .record-context h2 { font-size: 1.35rem; }
  .record-context .kv dt { color: var(--mist); }
  .recommendation-grid { grid-template-columns: minmax(0,1fr); }
  .recommendation-card { padding: 1.15rem; }
  .definition-picker { padding: .8rem; }
  .definition-picker select { font-size: .875rem; }
  .view-c .reading-chapter .panel { padding: 1rem; border-radius: .8rem; }
}

/* October 19 completion records. Scoped to explanatory cards, not analytical charts. */
.completed-checks > .grid-2 { margin-top: 1rem; }
.completed-checks .completed-check-card { background: white; border-top-color: #165c39; }
.completed-check-card .completed-check-value { font-size: clamp(1.5rem, 3vw, 2.1rem); color: var(--teal); font-variant-numeric: tabular-nums; }
.completed-check-card > p:not(.eyebrow) { margin-bottom: 0; }
.completion-regressions { margin-top: 1rem; padding: 1.1rem 1.2rem; border-radius: 1.2rem; background: var(--mist); }
.completion-regressions > .tag { margin-right: .6rem; }
.completion-regressions > p { margin: .5rem 0 0; }
.completed-checks > .fold { margin-top: 1rem; }

/* Reader-first presentation. Analytical chart colors, scales and tables are unchanged. */
.head-row { gap: .5rem 1rem; }
.portfolio-links { display: flex; gap: .25rem; margin-left: auto; }
.portfolio-links a { min-height: 2.75rem; display: inline-flex; align-items: center; padding: .5rem .8rem; border-radius: 999px; text-decoration: none; font-size: .9rem; }
.portfolio-links a:first-child { background: var(--ink); color: white; }
.view-nav { flex-basis: 100%; width: fit-content; margin-left: auto; justify-content: flex-end; background: transparent; }
.view-nav a { padding: .45rem .9rem; }
.purpose-copy { max-width: 62ch; color: var(--ink-soft); }
.business-terms { margin: 1.8rem 0; }
.business-terms h2 { margin: .4rem 0 1rem !important; font-size: 1.6rem; }
.term-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 1rem 0; }
.term-grid article { min-width: 0; border-top: 3px solid var(--teal-3); border-radius: 1rem; background: white; padding: 1.15rem; }
.term-grid .eyebrow { margin: 0 0 .6rem; }
.term-grid h3 { font-size: 1.1rem; }
.term-grid p:not(.eyebrow) { font-size: .9rem; color: var(--ink-soft); }
.term-grid .next-action { font-weight: 600; color: var(--teal) !important; }
.explore-workspace { margin-top: 2rem; min-width: 0; scroll-margin-top: calc(var(--head-height, 7.5rem) + 1rem); }
.controls { position: sticky; top: var(--head-height, 7.5rem); z-index: 35; margin-top: 0; border-radius: 1rem; padding: .65rem 1rem; box-shadow: 0 5px 15px #0f1f1e12; background: #f1f6f5; }
.filter-drawer > summary { list-style: none; cursor: pointer; font-weight: 650; min-height: 2.75rem; display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.filter-drawer > summary::-webkit-details-marker { display: none; }
.filter-brief { font-size: .8rem; color: var(--ink-soft); font-weight: 400; }
.filter-instruction { margin: .35rem 0 0; font-size: .8rem; }
.controls form { margin-top: .5rem; gap: .6rem 1rem; }
.controls label { font-family: var(--font-sans); letter-spacing: 0; text-transform: none; font-size: .85rem; font-weight: 600; }
.controls .pos-desc { display: none; }
.controls .state { font-size: .8rem; margin: .25rem 0; }
.controls .btn-row { grid-column: 1 / -1; }
.controls .btn { padding-block: .3rem; font-size: .8rem; }
.explore-results { padding-top: 1.8rem; }
.explore-results > h2 { margin: .2rem 0 .8rem; }
.explore-results > section { margin-top: 2.5rem; }
.explore-results > section > h2 { margin-top: 0; }
.selected-scope { background: var(--mist); border-left: 3px solid var(--teal-3); padding: .7rem .9rem; font-size: .875rem; border-radius: 0 .7rem .7rem 0; }
.mcard .mid { order: 10; font-size: .75rem; opacity: .8; margin-top: .5rem; }
.reference-snapshot { margin-top: 2rem !important; }
.record-tools { margin-top: 1rem; }
.record-tools .record-search { margin-top: .5rem; }
.steps a[aria-current="step"] { background: var(--mist); box-shadow: 0 0 0 .35rem var(--mist); border-radius: .3rem; }
.record-inspector > .reading-nav { margin-top: 1rem; }
.methods-details { scroll-margin-top: calc(var(--head-height, 7.5rem) + 1rem); }
.methods-details > summary { font-size: 1.25rem !important; }
.mobile-results-button { display: none; }
.context-identity { background: transparent !important; border-color: #ffffff50 !important; }
.context-identity > summary { color: white; }
.record-summary-list { list-style: none; padding: 0; margin: 1rem 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.record-summary-list li { background: #ffffff10; border: 1px solid #ffffff25; border-radius: .8rem; padding: .9rem; min-width: 0; }
.record-summary-list .small { color: var(--mist); }
.record-summary-list p { font-size: .9rem; }
.record-context .tag { color: var(--ink); }
.reading-chapter .term-grid article { background: var(--mist-2); }
h2[id], section[id] { scroll-margin-top: calc(var(--head-height, 7.5rem) + 1rem); }
.view-a #primary, .view-a #blk-h { scroll-margin-top: calc(var(--head-height, 7.5rem) + 14rem); }
@media (min-width: 768px) {
  .filter-drawer:not([open]) > form { display: grid; }
  .filter-drawer > summary { display: none; }
  .controls .state { grid-column: 1 / 4; align-self: center; }
  .controls .btn-row { grid-column: 4 / 5; justify-content: flex-end; }
  .controls .btn { min-height: 2.3rem; }
  .filter-instruction { display: none; }
}
@media (max-width: 767px) {
  .head-row { padding-block: .6rem; }
  .wm-text { font-size: 1.1rem; }
  .wordmark svg { width: 22px; height: 22px; }
  .portfolio-links { gap: .15rem; }
  .portfolio-links a { font-size: .8rem; padding: .4rem .6rem; }
  .view-nav { display: flex; flex-wrap: wrap; width: 100%; justify-content: flex-start; margin: 0; padding: .15rem 0; border-radius: 0; }
  .view-nav a { flex: 0 1 auto; font-size: .8rem; padding: .5rem .65rem; border-radius: 999px; }
  .controls { top: 0; padding: .5rem .8rem; }
  .filter-drawer > summary { align-items: flex-start; flex-direction: column; gap: .2rem; }
  .filter-drawer > summary > span:first-child::after { content: ' +'; }
  .filter-drawer[open] > summary > span:first-child::after { content: ' −'; }
  .filter-drawer[open] { max-height: 65vh; overflow: auto; }
  .filter-brief { font-size: .75rem; }
  .filter-instruction { display: none; }
  .mobile-results-button { display: inline-flex; margin-top: .6rem; }
  .record-summary-list { grid-template-columns: minmax(0,1fr); }
  .term-grid { grid-template-columns: minmax(0,1fr); gap: .65rem; }
  .term-grid article { padding: 1rem; }
  .business-terms h2 { font-size: 1.4rem; }
  h2[id], section[id] { scroll-margin-top: 1rem; }
  .view-a #primary, .view-a #blk-h { scroll-margin-top: 8rem; }
}

/* Readiness readability pass 2. All new layout rules are scoped to View A. */
.view-a .readiness-points { max-width: 76ch; padding-left: 1.2rem; margin: .8rem 0; color: var(--ink-soft); }
.view-a .readiness-points li { padding: .3rem 0 .3rem .15rem; }
.view-a .readiness-points strong { color: var(--ink); }
.view-a .hero-copy > .readiness-points { margin-bottom: 1rem; }
.view-a .hero-guide .hero-prompts { margin: .8rem 0; }
.view-a .hero-guide .illustration-note { border-top: 1px solid #12403c30; padding-top: .7rem; font-size: .8rem; color: var(--teal); }
.view-a .hero-guide .btn { margin-top: .7rem; }
.view-a .card-counting { margin: .5rem 0; }
.view-a .card-counting summary, .view-a .card-method summary { font-size: .85rem; font-weight: 600; cursor: pointer; min-height: 2.75rem; display: flex; align-items: center; gap: .4rem; }
.view-a .card-counting summary::before, .view-a .card-method summary::before { content: '+'; }
.view-a .card-counting[open] summary::before, .view-a .card-method[open] summary::before { content: '−'; }
.view-a .card-meaning { margin: .4rem 0 .2rem; }
.view-a .readiness-boundary { padding-top: .7rem; border-top: 1px solid var(--line); }
.view-a .recommendation-card .experiment-question { margin-bottom: .5rem; }
.view-a .run-section > a { display: inline-block; margin-top: .5rem; }
/* Fictional client aliases are presentation labels; canonical identifiers remain readable. */
.client-display strong, .client-code { display: block; }
.client-code { font-family: var(--font-mono); font-size: 12px; color: var(--ink-soft); font-weight: 400; }

/* Portfolio spec card and page switch, matching the Early Warning header pattern. */
.site-head { background: var(--paper); }
.head-row { min-height: 4.25rem; flex-wrap: wrap; }
.portfolio-switch { margin-left: auto; display: inline-flex; align-items: center; gap: .15rem; border-radius: 999px; padding: .25rem; background: white; }
.portfolio-switch a { min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; padding: .5rem 1rem; border-radius: 999px; text-decoration: none; color: var(--ink-soft); font-size: .9rem; font-weight: 500; }
.portfolio-switch a:hover { background: var(--paper); color: var(--ink); }
.portfolio-switch a[aria-current="page"] { background: var(--ink); color: white; }
.nav-toggle { display: none; }
.module-tabs { width: 100%; max-width: 76rem; margin-inline: auto; justify-content: flex-start; padding-block: .35rem; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
.module-tabs a { background: white; }
.hero-split { grid-template-columns: minmax(0,1fr) 22rem; align-items: end; gap: 2.5rem; }
.summary-card { align-self: end; background: var(--lime); padding: 1.5rem; border-radius: 1.5rem; }
.summary-card .summary-card-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-bottom: 1px solid var(--ink); padding-bottom: 1rem; }
.summary-card .summary-card-head h2 { margin: 0; font-size: 1.15rem; font-weight: 700; text-transform: uppercase; letter-spacing: -.02em; }
.summary-dot { width: .65rem; height: .65rem; background: var(--ink); border-radius: 50%; flex-shrink: 0; }
.summary-card > p:not(.summary-scope) { margin: 1rem 0 .6rem; font-size: .9rem; color: var(--ink-soft); }
.summary-card .disc-link { margin-top: .5rem; min-height: 2.75rem; padding: .4rem .4rem .4rem 1.05rem; gap: .8rem; line-height: 1.35; }
.link-disc { width: 1.8rem; height: 1.8rem; display: inline-grid; place-items: center; border-radius: 50%; background: var(--lime); color: var(--ink); flex-shrink: 0; font-size: 1.1rem; }
.summary-facts { margin: 1rem 0 0; }
.summary-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: .9rem; padding: .8rem 0; border-bottom: 1px solid #0f1f1e40; }
.summary-facts dt { font-family: var(--font-mono); font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-soft); }
.summary-facts dd { margin: 0; text-align: right; font-size: .875rem; font-weight: 600; }
.summary-card > p.summary-scope { font-size: .75rem; color: var(--ink-soft); margin: .8rem 0 0; }
.intro-context { padding: 1.2rem 1.4rem; border-radius: 1.2rem; border-left: 3px solid var(--teal-3); background: white; margin: 1.7rem 0; }
.intro-context h2 { font-size: 1.35rem; margin: .4rem 0; }
.intro-context > p { color: var(--ink-soft); max-width: 70ch; }
.intro-context .hero-prompts { margin: .7rem 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); column-gap: 1.8rem; }
.intro-context .hero-prompts li { border-top: 0; }
.intro-context .illustration-note { font-size: .8rem; }
@media (max-width: 999px) {
  .hero-split { grid-template-columns: minmax(0,1fr); gap: 1.4rem; }
  .summary-card { width: 100%; }
}
@media (max-width: 767px) {
  .nav-toggle { display: inline-flex; margin-left: auto; min-width: 2.75rem; min-height: 2.75rem; align-items: center; justify-content: center; gap: .5rem; border: 1px solid var(--line); border-radius: 999px; font: inherit; font-size: .85rem; background: white; color: var(--ink); padding: .4rem .8rem; }
  .portfolio-switch { display: none; order: 5; flex-basis: 100%; margin: .35rem 0 0; border-radius: 1rem; padding: .35rem; }
  .portfolio-switch[data-open] { display: flex; flex-direction: column; align-items: stretch; }
  .portfolio-switch a { justify-content: flex-start; border-radius: .7rem; }
  .head-row { min-height: 4.25rem; }
  .module-tabs { padding-block: .35rem; }
  .module-tabs a { font-size: .8rem; }
  .intro-context { padding: 1.1rem; }
  .intro-context .hero-prompts { grid-template-columns: minmax(0,1fr); }
}
.transferred-review-notes { margin-top: 1.5rem; }
.transferred-review-notes .scan-list { padding-left: 1.3rem; }
.transferred-review-notes .scan-list li { margin: .6rem 0; }
.transferred-review-notes .forward-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.transferred-review-notes .forward-grid article { border-top: 2px solid var(--teal-3); padding: .8rem; }
@media (max-width: 767px) { .transferred-review-notes .forward-grid { grid-template-columns: minmax(0,1fr); } }
