:root {
  color-scheme: light;
  --paper: #e9e2d6;
  --paper-light: #f2ece2;
  --paper-deep: #ddd3c4;
  --ink-title: #2b2925;
  --ink-primary: #34312c;
  --ink-body: #514c45;
  --ink-muted: #6f6860;
  --graphite: #3a3732;
  --paper-text: #eee8dc;
  --oxide: #a54b37;
  --amber: #b27a32;
  --mineral: #657765;
  --cobalt: #536f80;
  --rule: #bdb3a5;
  --sans: "IBM Plex Sans", "Segoe UI", sans-serif;
  --serif: "Newsreader", Georgia, serif;
  --mono: "IBM Plex Mono", Consolas, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; color: var(--ink-primary); background: var(--paper); font-family: var(--sans); line-height: 1.55; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
button, a { font: inherit; }
button, a[href] { min-height: 44px; }
button:focus-visible, a:focus-visible, [tabindex="0"]:focus-visible { outline: 3px solid color-mix(in srgb, var(--cobalt) 70%, transparent); outline-offset: 3px; }
.paper-texture { position: fixed; inset: 0; z-index: 10; pointer-events: none; opacity: .34; background: url("./paper-texture.svg") repeat; mix-blend-mode: multiply; }

.report-masthead { position: relative; z-index: 1; min-height: 64px; display: grid; grid-template-columns: 220px 1fr auto; align-items: center; border-bottom: 1px solid var(--rule); padding: 0 28px; letter-spacing: .09em; font-size: .72rem; }
.wordmark { display: inline-flex; align-items: center; gap: 14px; color: var(--ink-title); text-decoration: none; font-size: 1rem; letter-spacing: .24em; }
.report-masthead p { margin: 0; font-weight: 600; }
.report-masthead p span, .masthead-meta { color: var(--ink-muted); font-weight: 400; }
.masthead-meta { display: flex; gap: 22px; font-family: var(--mono); letter-spacing: 0; }
.report-layout { position: relative; z-index: 1; display: grid; grid-template-columns: 190px minmax(0, 1fr); min-height: calc(100vh - 64px); }
.report-rail { display: flex; flex-direction: column; border-right: 1px solid var(--rule); padding: 30px 16px 22px; }
.rail-label { margin: 0 0 30px 10px; font-size: .66rem; font-weight: 600; letter-spacing: .14em; }
.workspace-tabs { display: grid; }
.workspace-tabs button { position: relative; display: grid; gap: 2px; min-width: 0; border: 0; padding: 13px 10px 13px 18px; color: var(--ink-body); background: transparent; text-align: left; cursor: pointer; }
.workspace-tabs button > span { color: var(--ink-muted); font: .62rem var(--mono); }
.workspace-tabs button strong { font-size: .69rem; letter-spacing: .11em; }
.tab-short { display: none; }
.workspace-tabs button[aria-selected="true"] { color: var(--ink-title); background: color-mix(in srgb, var(--paper-deep) 30%, transparent); }
.workspace-tabs button[aria-selected="true"]::before { content: ""; position: absolute; inset: 9px auto 9px 0; width: 2px; background: var(--oxide); }
.workspace-tabs button:hover { color: var(--oxide); }
.rail-project { margin: 30px 10px 0; border-top: 1px solid var(--rule); padding: 16px 0 0; }
.rail-project div + div { margin-top: 14px; border-top: 1px solid color-mix(in srgb, var(--rule) 70%, transparent); padding-top: 12px; }
.rail-project dt { color: var(--ink-muted); font-size: .58rem; letter-spacing: .12em; }
.rail-project dd { margin: 4px 0 0; font-family: var(--serif); font-size: 1rem; }
.report-main { min-width: 0; padding: 22px 28px 40px; }
#reentry-app:focus { outline: none; }
.load-state, .state-message { max-width: 720px; margin: 15vh auto 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 42px 0; text-align: center; color: var(--ink-body); }
.state-message h2 { margin: 8px 0; font: 500 clamp(2rem, 5vw, 4rem)/1 var(--serif); }
.state-message > p:first-child { color: var(--oxide); font-size: .68rem; letter-spacing: .12em; }
.workspace-view { max-width: 1180px; margin: 0 auto; }

.section-index { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--oxide); font-family: var(--serif); font-size: 1.45rem; }
.section-index::after { content: ""; width: 28px; height: 1px; background: var(--oxide); }
.section-index span { color: var(--ink-primary); font: 500 .65rem var(--sans); letter-spacing: .14em; }
.workspace-heading { display: grid; grid-template-columns: 155px minmax(0, 1fr) auto; align-items: end; gap: 26px; margin-bottom: 24px; border-bottom: 1px solid var(--rule); padding: 4px 0 20px; }
.workspace-heading h2 { margin: 0; color: var(--ink-title); font: 400 clamp(2.5rem, 4.5vw, 4.5rem)/.95 var(--serif); letter-spacing: -.035em; }
.workspace-heading div > p { max-width: 670px; margin: 8px 0 0; color: var(--ink-body); font-family: var(--serif); font-size: 1.08rem; }
.workspace-heading > small { color: var(--ink-muted); font: .67rem var(--mono); }
.section-helper { margin: 8px 0 14px; color: var(--ink-muted); font: .78rem/1.5 var(--sans); }

.project-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 34px; margin: 0 0 18px; }
.project-intro h2 { margin: 4px 0 8px; color: var(--ink-title); font: 400 clamp(3.5rem, 6.8vw, 6.7rem)/.88 var(--serif); letter-spacing: -.05em; }
.project-intro > div:first-child > p:not(.section-index) { max-width: 610px; margin: 0 0 6px; font-family: var(--serif); font-size: 1.12rem; }
.project-intro small { color: var(--ink-muted); }
.current-state { align-self: center; border-left: 1px solid var(--rule); padding: 12px 0 12px 30px; }
.current-state > span, .current-state p { color: var(--ink-muted); font-size: .68rem; letter-spacing: .1em; }
.current-state strong { display: block; max-width: 360px; margin: 8px 0 12px; color: color-mix(in srgb, var(--oxide) 70%, var(--ink-title)); font: 400 clamp(1.8rem, 3vw, 3.1rem)/1.03 var(--serif); }
.current-state p b { color: var(--ink-title); font-family: var(--serif); font-size: 1.4rem; }
.signal-strip, .signal-classifier { display: grid; grid-template-columns: repeat(4, 1fr); margin: 0 0 24px; border: 1px solid var(--rule); }
.signal-reading { position: relative; min-height: 118px; min-width: 0; border: 0; border-right: 1px solid var(--rule); padding: 15px 19px 18px; color: var(--ink-primary); background: transparent; text-align: left; cursor: pointer; transition: background-color 160ms ease, transform 160ms ease; }
.signal-reading:last-child { border-right: 0; }
.signal-reading:hover { background: color-mix(in srgb, var(--paper-deep) 46%, transparent); transform: translateY(-1px); }
.signal-reading[aria-pressed="true"] { color: var(--paper-text); background: color-mix(in srgb, var(--graphite) 94%, var(--paper) 6%); }
.signal-reading > span { display: block; font-size: .58rem; letter-spacing: .11em; }
.signal-reading > strong { display: block; margin: 5px 0; color: var(--ink-title); font: 400 2.75rem/1 var(--serif); }
.signal-reading[aria-pressed="true"] > strong { color: var(--paper-text); }
.signal-reading small { display: block; min-height: 2.5em; color: inherit; font-size: .72rem; }
.signal-reading i { position: absolute; right: 16px; bottom: 14px; font-style: normal; }
.signal-oxide > strong { color: var(--oxide); }
.signal-amber > strong { color: var(--amber); }
.signal-green > strong { color: var(--mineral); }

.brief-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr); gap: 24px; }
.brief-changes { grid-row: span 2; }
.brief-focus, .next-best-action { border-top: 1px solid var(--rule); padding: 17px 0; }
.brief-focus > p:first-child, .next-best-action > p, .linked-decision > p { margin: 0 0 8px; color: var(--ink-muted); font-size: .62rem; font-weight: 600; letter-spacing: .12em; }
.brief-focus h2, .next-best-action h2, .linked-decision h2 { margin: 0 0 7px; font: 400 1.45rem/1.1 var(--serif); }
.brief-focus > p:not(:first-child) { margin: 9px 0 0; color: var(--ink-body); font-family: var(--serif); }
.record-status { border: 1px solid var(--rule); padding: 2px 7px; color: var(--oxide); font: .58rem var(--mono); text-transform: uppercase; }
.next-best-action small { display: block; color: var(--ink-muted); }

.report-section { border-top: 1px solid var(--rule); padding: 18px 0 25px; }
.report-section > header { display: grid; grid-template-columns: 36px auto 1fr; align-items: baseline; gap: 12px; margin-bottom: 15px; }
.report-section > header span { font: 400 1.5rem var(--serif); }
.report-section > header h2, .ledger-section > header h2 { margin: 0; font-size: .72rem; letter-spacing: .13em; }
.report-section > header small { justify-self: end; color: var(--ink-muted); }
.timeline-list, .evidence-chain { margin: 0; padding: 0; list-style: none; }
.timeline-list li { display: grid; grid-template-columns: 74px 1fr; gap: 20px; padding: 10px 0 10px 20px; border-left: 1px solid var(--rule); }
.timeline-list time { color: var(--oxide); font: 500 .68rem var(--mono); }
.timeline-list strong { font-family: var(--serif); font-size: 1.03rem; }
.timeline-list p { margin: 3px 0; color: var(--ink-body); }
.timeline-list small { color: var(--ink-muted); font-size: .69rem; }

.evidence-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, 340px); gap: 32px; align-items: start; }
.evidence-main { min-width: 0; }
.broken-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; }
.broken-list article { position: relative; min-width: 0; border-bottom: 1px solid color-mix(in srgb, var(--rule) 70%, transparent); padding: 11px 0 11px 12px; }
.broken-list article.is-selected-signal { background: color-mix(in srgb, var(--paper-light) 42%, transparent); }
.broken-list article.is-selected-signal::before { position: absolute; inset: 9px auto 9px 0; width: 2px; background: color-mix(in srgb, var(--oxide) 72%, var(--rule)); content: ""; }
.broken-list article > div { display: flex; justify-content: space-between; gap: 8px; color: var(--ink-muted); font: .61rem var(--mono); text-transform: uppercase; }
.broken-list strong { display: block; margin-top: 6px; font-family: var(--serif); }
.broken-list p { margin: 3px 0; color: var(--ink-body); }
.broken-list small { color: var(--ink-muted); overflow-wrap: anywhere; }
.broken-list em { color: var(--oxide); font-style: normal; }
.evidence-chain li { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 2px 15px; min-width: 0; border-left: 1px solid var(--rule); padding: 10px 0 10px 13px; }
.chain-type { grid-row: span 2; color: var(--cobalt); font: 500 .61rem var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.chain-title { min-width: 0; overflow-wrap: anywhere; font-family: var(--serif); font-size: .94rem; line-height: 1.25; }
.chain-meta { color: var(--ink-muted); font-size: .67rem; line-height: 1.35; overflow-wrap: anywhere; }
.linked-decision { border: 1px solid var(--rule); padding: 18px; }
.linked-decision span { margin-right: 10px; color: var(--mineral); font: .61rem var(--mono); text-transform: uppercase; }
.linked-decision small { color: var(--ink-muted); }
.signal-lens { position: sticky; top: 24px; border-top: 1px solid color-mix(in srgb, var(--oxide) 56%, var(--rule)); border-bottom: 1px solid var(--rule); padding: 15px 0; }
.inspector-heading { display: flex; justify-content: space-between; gap: 12px; }
.inspector-heading p, .inspector-heading span, .signal-lens h3 { margin: 0; font-size: .59rem; font-weight: 600; letter-spacing: .11em; }
.inspector-heading span { border: 1px solid currentColor; padding: 3px 7px; text-transform: uppercase; }
.signal-lens h2 { max-width: 30ch; margin: 12px 0 7px; font: 400 1.42rem/1.12 var(--serif); }
.inspector-summary { margin: 0 0 17px; color: var(--ink-body); font-family: var(--serif); }
.signal-lens section { border-top: 1px solid var(--rule); padding: 14px 0; }
.signal-lens section p { margin: 7px 0 0; }
.lens-next-action { margin: 12px 0 0; color: var(--ink-body); font-size: .74rem; }
.lens-counts { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 10px; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.lens-counts div { padding: 10px 0; }
.lens-counts dt { color: var(--ink-muted); font-size: .62rem; }
.lens-counts dd { margin: 2px 0 0; font: 1.35rem var(--serif); }

.workspace-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 14px; }
.primary-instrument-action { width: fit-content; max-width: min(100%, 300px); min-height: 45px; border: 0; padding: 11px 17px; color: var(--paper-text); background: color-mix(in srgb, var(--oxide) 82%, var(--graphite)); cursor: pointer; font-weight: 600; }
.signal-amber .primary-instrument-action { background: color-mix(in srgb, var(--amber) 82%, var(--graphite)); }
.signal-green .primary-instrument-action { background: color-mix(in srgb, var(--mineral) 86%, var(--graphite)); }
.secondary-action, .text-action, .auxiliary-action { width: fit-content; min-height: 44px; border: 0; padding: 8px 0 4px; color: var(--cobalt); background: transparent; cursor: pointer; font-weight: 600; text-align: left; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
.secondary-action:hover, .text-action:hover, .auxiliary-action:hover { text-decoration-color: currentColor; }
.auxiliary-action { color: var(--ink-muted); font-size: .74rem; }
.lens-actions { display: grid; justify-items: start; }
.prototype-feedback { color: var(--ink-muted); font-size: .7rem; }

.ledger-filters { display: flex; flex-wrap: wrap; gap: 0; margin-bottom: 25px; border-bottom: 1px solid var(--rule); }
.ledger-filters button { border: 0; border-bottom: 2px solid transparent; padding: 10px 18px; color: var(--ink-body); background: transparent; cursor: pointer; }
.ledger-filters button[aria-pressed="true"] { border-color: var(--oxide); color: var(--ink-title); font-weight: 600; }
.memory-ledger { display: grid; gap: 30px; }
.memory-group > header, .ledger-section > header { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--rule); padding-bottom: 10px; }
.memory-group > header h3 { margin: 0; font: 400 1.65rem var(--serif); }
.memory-group > header span, .ledger-section > header span { color: var(--ink-muted); font: .7rem var(--mono); }
.memory-record { border-bottom: 1px solid color-mix(in srgb, var(--rule) 70%, transparent); }
.memory-record summary { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 18px; align-items: center; min-height: 62px; padding: 8px 0; cursor: pointer; list-style-position: inside; }
.memory-record summary strong { font: 400 1.12rem var(--serif); }
.memory-record summary em { border: 1px solid var(--rule); padding: 3px 7px; color: var(--ink-muted); font: .58rem var(--mono); font-style: normal; text-transform: uppercase; }
.memory-type { color: var(--cobalt); font: .61rem var(--mono); text-transform: uppercase; }
.memory-detail { padding: 0 0 18px 128px; }
.memory-detail > p { margin-top: 0; font-family: var(--serif); }
.memory-detail dl, .action-record dl { display: flex; flex-wrap: wrap; gap: 20px; margin: 12px 0; }
.memory-detail dl div, .action-record dl div { min-width: 110px; }
.memory-detail dt, .action-record dt { color: var(--ink-muted); font-size: .56rem; letter-spacing: .1em; }
.memory-detail dd, .action-record dd { margin: 3px 0 0; font-size: .72rem; }
.memory-detail ul { margin: 10px 0 0; padding-left: 18px; color: var(--ink-body); }

.action-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: 34px; align-items: start; }
.ledger-section { min-width: 0; }
.action-ledger { grid-column: 1 / -1; margin-top: 6px; }
.decision-gate { min-width: 0; border-top: 1px solid color-mix(in srgb, var(--oxide) 58%, var(--rule)); border-bottom: 1px solid var(--rule); padding: 15px 0 18px; }
.decision-gate > p:first-child { margin: 0 0 8px; color: var(--ink-muted); font-size: .62rem; font-weight: 600; letter-spacing: .12em; }
.decision-gate h2 { max-width: 24ch; margin: 0 0 9px; font: 400 1.65rem/1.08 var(--serif); }
.decision-gate-status { display: inline-block; border: 1px solid color-mix(in srgb, var(--oxide) 55%, var(--rule)); padding: 3px 7px; color: var(--oxide); font: .58rem var(--mono); }
.decision-gate-summary { margin: 14px 0; color: var(--ink-body); font-family: var(--serif); }
.decision-gate dl { margin: 0; }
.decision-gate dl div { border-top: 1px solid color-mix(in srgb, var(--rule) 70%, transparent); padding: 10px 0; }
.decision-gate dt { color: var(--ink-muted); font-size: .56rem; letter-spacing: .1em; }
.decision-gate dd { margin: 4px 0 0; font-size: .76rem; }
.ledger-item { scroll-margin-top: 30px; border-bottom: 1px solid var(--rule); padding: 14px 0; }
.ledger-item > div { display: flex; justify-content: space-between; color: var(--ink-muted); font: .59rem var(--mono); }
.ledger-item em { color: var(--mineral); font-style: normal; text-transform: uppercase; }
.ledger-item h3, .action-record h3 { margin: 6px 0 3px; font: 400 1.14rem var(--serif); }
.ledger-item p, .action-record p { margin: 0 0 4px; color: var(--ink-body); }
.ledger-item small, .action-record small { color: var(--ink-muted); }
.requires-decision em, .ownership-risk em, .is-risk { color: var(--oxide) !important; }
.ledger-item.is-related-focus { outline: 1px solid color-mix(in srgb, var(--mineral) 58%, transparent); outline-offset: 6px; background: color-mix(in srgb, var(--mineral) 8%, transparent); }
.action-ledger { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; }
.action-ledger > header { grid-column: 1 / -1; }
.action-record { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 12px; align-items: start; border-bottom: 1px solid var(--rule); padding: 16px 0; }
.action-record > button { grid-column: 2; }
.action-record.is-priority-action { border-top: 2px solid color-mix(in srgb, var(--amber) 58%, var(--rule)); }
.action-number { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: var(--paper-text); background: var(--graphite); font: .64rem var(--mono); }
.action-record .text-action { width: fit-content; }
.empty-copy { color: var(--ink-muted); font-family: var(--serif); }
code { font-family: var(--mono); }

.source-live { color: var(--mineral); }
.source-live::before { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: currentColor; content: ""; }
.live-error { max-width: 720px; }
.live-error ol { max-width: 460px; margin: 22px auto; padding-left: 24px; text-align: left; }
.live-error li + li { margin-top: 8px; }
.fixture-mode-action { display: inline-flex; min-height: 44px; margin-top: 14px; padding: 10px 16px; align-items: center; border: 1px solid var(--rule); color: var(--ink-primary); font: 500 .78rem/1 var(--sans); letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.fixture-mode-action:hover, .fixture-mode-action:focus-visible { border-color: var(--mineral); color: var(--mineral); }

@media (max-width: 1100px) {
  .report-masthead { grid-template-columns: 160px 1fr; }
  .masthead-meta { display: none; }
  .report-layout { grid-template-columns: 155px minmax(0, 1fr); }
  .workspace-heading { grid-template-columns: 120px minmax(0, 1fr); }
  .workspace-heading > small { grid-column: 2; }
}

@media (max-width: 1024px) {
  .evidence-layout, .action-layout { grid-template-columns: 1fr; }
  .signal-lens { position: static; max-width: none; }
  .broken-list { grid-template-columns: 1fr; }
  .action-ledger { grid-column: auto; }
}

@media (max-width: 820px) {
  .report-masthead { grid-template-columns: 1fr auto; padding: 10px 18px; }
  .report-masthead > p { display: none; }
  .report-layout { display: block; }
  .report-rail { border-right: 0; border-bottom: 1px solid var(--rule); padding: 0 14px; }
  .rail-label, .rail-project { display: none; }
  .workspace-tabs { display: flex; overflow-x: auto; scrollbar-width: thin; }
  .workspace-tabs button { flex: 1 0 92px; min-height: 54px; padding: 9px 12px; text-align: center; }
  .workspace-tabs button > span { display: none; }
  .workspace-tabs .tab-full { display: none; }
  .workspace-tabs .tab-short { display: inline; }
  .workspace-tabs button[aria-selected="true"]::before { inset: auto 12px 0; width: auto; height: 2px; }
  .report-main { padding: 25px 20px 38px; }
  .project-intro { grid-template-columns: 1fr; gap: 16px; }
  .current-state { border-top: 1px solid var(--rule); border-left: 0; padding: 16px 0 0; }
  .signal-strip, .signal-classifier { grid-template-columns: 1fr 1fr; }
  .signal-reading:nth-child(2) { border-right: 0; }
  .signal-reading:nth-child(-n + 2) { border-bottom: 1px solid var(--rule); }
  .brief-grid, .action-layout { grid-template-columns: 1fr; }
  .brief-changes, .action-ledger { grid-row: auto; grid-column: auto; }
  .workspace-heading { display: block; }
  .workspace-heading .section-index { margin-bottom: 12px; }
  .workspace-heading > small { display: block; margin-top: 12px; }
  .memory-record summary { grid-template-columns: 1fr auto; gap: 6px 12px; }
  .memory-type { grid-column: 1 / -1; }
  .memory-detail { padding-left: 0; }
  .action-ledger { grid-template-columns: 1fr; }
  .action-record { grid-template-columns: 34px minmax(0, 1fr); }
  .action-record > button { grid-column: 2; }
}

@media (max-width: 560px) {
  .masthead-meta { display: none; }
  .report-main { padding-inline: 14px; }
  .project-intro h2 { font-size: clamp(3.1rem, 17vw, 4.7rem); }
  .signal-reading { min-height: 112px; padding: 13px; }
  .signal-reading > strong { font-size: 2.4rem; }
  .signal-reading i { display: none; }
  .timeline-list li { grid-template-columns: 1fr; gap: 3px; padding-left: 14px; }
  .report-section > header { grid-template-columns: 32px 1fr; }
  .report-section > header small { grid-column: 2; justify-self: start; }
  .evidence-chain li { grid-template-columns: 1fr; }
  .chain-type { grid-row: auto; }
  .ledger-filters { display: grid; grid-template-columns: 1fr 1fr; }
  .ledger-filters button { min-width: 0; }
  .memory-record summary { min-height: 68px; }
  .workspace-actions { align-items: flex-start; flex-direction: column; }
  .primary-instrument-action { width: auto; max-width: 100%; }
  .lens-counts { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
