:root {
  color-scheme: light;
  --paper: #f2f4ef;
  --white: #ffffff;
  --ink: #172d29;
  --muted: #64736e;
  --line: #d8dfd8;
  --green: #26735d;
  --green-soft: #e4f0e9;
  --red: #b84f37;
  --red-soft: #f7e9e4;
  --gold: #c18a2d;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Avenir Next', 'Segoe UI', sans-serif;
  --mono: 'SFMono-Regular', Consolas, monospace;
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 15px/1.5 var(--sans); }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, select { cursor: pointer; }
.skip { position: absolute; left: 16px; top: -60px; z-index: 10; padding: 10px 14px; background: var(--white); color: var(--ink); }
.skip:focus { top: 12px; }
.topbar { height: 76px; padding: 0 max(28px, calc((100vw - 1220px) / 2)); display: flex; align-items: center; justify-content: space-between; background: var(--ink); color: #f5f7f3; }
.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark { width: 37px; height: 37px; display: grid; place-items: center; border: 1px solid #83b7a1; color: #a5d2b9; font: italic 700 25px/1 var(--serif); }
.brand-name { font-size: 12px; font-weight: 750; letter-spacing: 2px; }
.brand-name small { display: block; margin-top: 2px; color: #a8bbb2; font-size: 9px; font-weight: 500; letter-spacing: 3px; }
.topbar nav { display: flex; align-items: center; gap: 27px; }
.back-link { color: #d4ded8; font-size: 13px; }
.back-link:hover { color: #a5d2b9; }
.button { min-height: 39px; padding: 0 14px; border: 1px solid transparent; border-radius: 3px; font-size: 12px; font-weight: 700; }
.button-dark { border-color: #6c8e7e; background: transparent; color: #f5f7f3; }
.button-dark:hover { background: #2b4940; }
.button-dark span { padding-right: 6px; font-size: 16px; }
.report-shell { width: min(1220px, calc(100% - 56px)); margin: 0 auto; }
.report-heading { min-height: 262px; padding: 50px 0 39px; display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; }
.eyebrow { margin: 0 0 12px; color: var(--green); font: 700 10px/1.4 var(--mono); letter-spacing: 1.1px; }
.eyebrow-mark { display: inline-block; width: 7px; height: 7px; margin: 0 7px 1px 0; background: var(--gold); border-radius: 50%; }
h1, h2, p { margin-top: 0; }
h1 { margin-bottom: 11px; font: 400 46px/1.06 var(--serif); letter-spacing: 0; }
h1 em { color: var(--green); font-weight: 400; }
.intro { max-width: 520px; margin-bottom: 0; color: var(--muted); font-size: 14px; }
.report-meta { min-width: 195px; padding: 3px 0 4px 22px; display: grid; grid-template-columns: 1fr; border-left: 1px solid #bac8bf; }
.meta-label { color: var(--muted); font: 700 9px/1.4 var(--mono); letter-spacing: .8px; }
.report-meta strong { margin: 3px 0 12px; font: 600 15px/1.3 var(--sans); }
.report-meta strong:last-child { margin-bottom: 0; }
.meta-rule { width: 100%; height: 1px; margin: 0 0 11px; background: #d4ddd5; }
.summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.summary-item { min-height: 119px; padding: 18px 24px 17px 0; display: grid; grid-template-columns: 1fr auto; align-content: center; border-right: 1px solid var(--line); }
.summary-item + .summary-item { padding-left: 25px; }
.summary-item:last-child { border-right: 0; }
.summary-label { color: var(--muted); font-size: 12px; }
.summary-item strong { grid-column: 2; grid-row: 1 / span 2; align-self: center; font: 400 34px/1 var(--serif); }
.summary-item strong span { color: #89948d; font: 400 15px/1 var(--sans); }
.summary-note { margin-top: 6px; color: #7e8983; font-size: 11px; }
.signals-section { padding: 43px 0 41px; }
.section-heading { margin-bottom: 18px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.section-heading .eyebrow { margin-bottom: 5px; }
h2 { margin-bottom: 0; font: 400 28px/1.15 var(--serif); }
.filters { display: flex; gap: 9px; }
.search-control, .select-control { height: 39px; display: flex; align-items: center; border: 1px solid #cbd5cd; background: #fbfcf9; }
.search-control { width: 220px; padding: 0 10px; gap: 8px; }
.search-icon { color: var(--muted); font-size: 21px; line-height: 1; }
.search-control input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 12px; }
.search-control:focus-within, .select-control:focus-within { border-color: var(--green); box-shadow: 0 0 0 2px #26735d24; }
.select-control select { height: 100%; padding: 0 29px 0 11px; border: 0; outline: 0; appearance: none; background: transparent; color: var(--ink); font-size: 12px; }
.select-control { position: relative; }
.select-control::after { position: absolute; right: 11px; content: '⌄'; color: var(--muted); pointer-events: none; }
.reading-note { margin: 0 0 10px; color: var(--muted); font-size: 11px; }
.signal-key { min-height: 41px; margin-bottom: 7px; padding: 8px 12px; display: flex; align-items: center; gap: 18px; border: 1px solid var(--line); background: #e9ede7; color: #56665e; font-size: 10px; }
.key-group { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.key-group b { color: var(--ink); font-size: 10px; }
.key-group > span { display: inline-flex; align-items: center; gap: 5px; }
.key-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: var(--red); }
.key-dot.good { background: var(--green); }
.key-dot.neutral { background: #8b9690; }
.key-divider { width: 1px; height: 18px; background: #c8d1c9; }
.signal-header, .signal-row { display: grid; grid-template-columns: minmax(210px, 1.2fr) minmax(155px, .78fr) minmax(180px, 1fr) minmax(170px, .82fr); align-items: center; column-gap: 22px; }
.signal-header { min-height: 35px; padding: 0 16px; border-bottom: 1px solid var(--line); color: #738078; font: 700 9px/1.2 var(--mono); letter-spacing: .75px; }
.signal-header span:nth-child(2), .signal-header span:nth-child(4) { text-align: right; }
.signal-row { min-height: 88px; padding: 14px 16px; border-bottom: 1px solid var(--line); background: transparent; transition: background-color 160ms ease; }
.signal-row:hover { background: #e8ede7; }
.metric-info { min-width: 0; }
.metric-title { display: block; overflow-wrap: anywhere; font-size: 14px; font-weight: 700; line-height: 1.35; }
.metric-detail { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 10px; }
.metric-domain { color: #476d5d; font-weight: 700; }
.metric-owner::before { content: '·'; margin-right: 7px; color: #a1aca4; }
.value-pair { text-align: right; white-space: nowrap; }
.actual-value { font: 600 16px/1.25 var(--sans); font-variant-numeric: tabular-nums; }
.target-value { margin-top: 4px; color: var(--muted); font-size: 10px; }
.target-value b { color: #596961; font-weight: 600; }
.attainment { min-width: 0; }
.attainment-top { margin-bottom: 8px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.attainment-top strong { font: 600 13px/1 var(--sans); font-variant-numeric: tabular-nums; }
.attainment-top span { color: var(--muted); font-size: 10px; }
.meter { position: relative; height: 6px; overflow: visible; background: #dce3dc; }
.meter::after { position: absolute; top: -3px; bottom: -3px; left: 80%; width: 1px; content: ''; background: #68786f; }
.meter-fill { height: 100%; background: var(--green); }
.meter-fill.off-track { background: var(--red); }
.meter-legend { margin-top: 5px; display: flex; justify-content: space-between; color: #8a958e; font: 9px/1 var(--mono); }
.change-block { text-align: right; }
.change-value { display: block; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.change-value.good { color: var(--green); }
.change-value.bad { color: var(--red); }
.change-value.neutral { color: #727f77; }
.change-interpretation { margin-top: 3px; display: block; color: var(--muted); font-size: 9px; }
.status-label { margin-top: 5px; display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 10px; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.status-dot.good { background: var(--green); }
.source-line { grid-column: 1 / -1; margin-top: 7px; padding-top: 7px; display: flex; justify-content: space-between; gap: 10px; border-top: 1px dotted #d2dad2; color: #849088; font: 9px/1.3 var(--mono); }
.source-line span { overflow-wrap: anywhere; }
.empty-state { padding: 36px 12px; color: var(--muted); text-align: center; }
.evidence-strip { min-height: 65px; padding: 15px 18px; display: flex; align-items: center; gap: 13px; border-left: 3px solid var(--gold); background: #e8ece6; }
.evidence-icon { flex: 0 0 21px; width: 21px; height: 21px; display: grid; place-items: center; border: 1px solid #a8b6ab; border-radius: 50%; color: #53685c; font: italic 700 13px/1 var(--serif); }
.evidence-strip p { flex: 1; margin: 0; color: #596961; font-size: 11px; }
.evidence-strip p strong { color: var(--ink); }
.evidence-period { color: #78857c; font: 9px/1 var(--mono); white-space: nowrap; }
.report-footer { min-height: 76px; margin-top: 44px; padding: 0 max(28px, calc((100vw - 1220px) / 2)); display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); color: #78857c; font: 9px/1.4 var(--mono); letter-spacing: .5px; }
.report-footer a { color: var(--green); font: 11px/1.4 var(--sans); letter-spacing: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; clip-path: inset(50%); }

@media (max-width: 760px) {
  .topbar { height: 68px; padding: 0 20px; }
  .topbar nav { gap: 15px; }
  .back-link { font-size: 11px; }
  .report-shell { width: min(100% - 36px, 600px); }
  .report-heading { min-height: 0; padding: 39px 0 28px; align-items: flex-start; flex-direction: column; gap: 22px; }
  h1 { font-size: 38px; }
  .report-meta { width: 100%; min-width: 0; padding: 12px 0 0; grid-template-columns: 1fr auto; border-top: 1px solid #bac8bf; border-left: 0; }
  .report-meta .meta-label:nth-of-type(2), .report-meta strong:last-child { grid-column: 2; }
  .report-meta .meta-label:nth-of-type(2) { grid-row: 1; }
  .report-meta strong:last-child { grid-row: 2; }
  .meta-rule { display: none; }
  .summary-item { min-height: 110px; padding-right: 12px; grid-template-columns: 1fr; }
  .summary-item + .summary-item { padding-left: 12px; }
  .summary-item strong { grid-column: 1; grid-row: auto; margin-top: 5px; font-size: 29px; }
  .summary-note { margin-top: 3px; font-size: 9px; line-height: 1.3; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 15px; }
  .filters { width: 100%; }
  .search-control { flex: 1; width: auto; }
  .signal-key { align-items: flex-start; flex-direction: column; gap: 7px; }
  .key-divider { width: 100%; height: 1px; }
  .key-group { gap: 10px; }
  .signal-header { display: none; }
  .signal-row { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 15px 10px; }
  .metric-info { grid-column: 1; }
  .value-pair { grid-column: 2; grid-row: 1; }
  .attainment { grid-column: 1 / -1; grid-row: 2; }
  .change-block { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 10px; text-align: left; }
  .change-interpretation { grid-column: 1; }
  .status-label { margin-top: 0; }
  .source-line { grid-row: 4; }
  .evidence-strip { align-items: flex-start; flex-wrap: wrap; }
  .evidence-strip p { flex-basis: calc(100% - 36px); }
  .evidence-period { margin-left: 34px; }
  .report-footer { min-height: 72px; margin-top: 30px; padding: 0 18px; gap: 15px; }
  .report-footer a { text-align: right; }
}

@media (max-width: 420px) {
  .topbar { padding: 0 14px; }
  .brand-name { font-size: 10px; letter-spacing: 1px; }
  .brand-name small { letter-spacing: 2px; }
  .brand-mark { width: 33px; height: 33px; }
  .topbar nav { gap: 10px; }
  .button-dark { padding: 0 9px; font-size: 10px; }
  .back-link { max-width: 82px; }
  .report-shell { width: calc(100% - 28px); }
  .summary-item { padding-right: 7px; }
  .summary-item + .summary-item { padding-left: 8px; }
  .summary-label { font-size: 10px; }
  .summary-note { max-width: 95px; }
  .select-control select { padding-right: 25px; font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}