:root {
  color-scheme: light;
  --paper: oklch(96.8% 0.009 150);
  --sheet: oklch(99.1% 0.006 150);
  --ink: oklch(24% 0.035 155);
  --quiet: oklch(48% 0.025 155);
  --rule: oklch(82% 0.018 150);
  --evergreen: oklch(39% 0.09 158);
  --evergreen-dark: oklch(30% 0.075 158);
  --amber: oklch(68% 0.13 75);
  --red: oklch(48% 0.15 25);
  --space-xs: .25rem;
  --space-sm: .5rem;
  --space-md: .75rem;
  --space-lg: 1rem;
  --space-xl: 1.5rem;
  --space-2xl: 2rem;
  --space-3xl: 3rem;
  --space-4xl: 4rem;
  font-family: "Avenir Next", Avenir, Aptos, Candara, sans-serif;
  font-size: 100%;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); line-height: 1.55; }
a { color: var(--evergreen-dark); text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { color: var(--evergreen); }
h1, h2, h3 { margin: 0; font-family: Charter, "Iowan Old Style", Constantia, Georgia, serif; line-height: 1.08; text-wrap: balance; }
h1 { font-size: clamp(2.4rem, 7vw, 5.4rem); font-weight: 500; letter-spacing: -.045em; }
h2 { font-size: 1.75rem; font-weight: 600; }
h3 { font-size: 1.2rem; }
p, dl, ul { margin-block: 0; }
code { font: .86em ui-monospace, "Cascadia Code", monospace; overflow-wrap: anywhere; }
.skip-link { position: fixed; z-index: 20; inset: .5rem auto auto .5rem; padding: .7rem 1rem; background: var(--ink); color: var(--sheet); transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.site-head { width: min(84rem, calc(100% - 2rem)); min-height: 4.5rem; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: var(--space-xl); border-bottom: 1px solid var(--rule); }
.site-head nav { display: flex; gap: var(--space-xl); }
.wordmark { font-family: Charter, "Iowan Old Style", Georgia, serif; font-size: 1.2rem; font-weight: 700; text-decoration: none; }
.wordmark span { margin-inline-start: .5rem; color: var(--quiet); font: .72rem "Avenir Next", Avenir, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.container { width: min(78rem, calc(100% - 2rem)); margin: clamp(2rem, 7vw, 6rem) auto; }
.editorial-head { display: grid; gap: var(--space-lg); max-width: 62rem; margin-block-end: var(--space-4xl); }
.editorial-head .lede { max-width: 65ch; }
.page-head { display: flex; justify-content: space-between; align-items: end; gap: var(--space-2xl); }
.eyebrow { color: var(--quiet); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.lede { color: var(--quiet); font-size: 1.08rem; }
.quiet, .meta, .hint { color: var(--quiet); }
.hint { font-size: .9rem; }
.url { overflow-wrap: anywhere; }
.crumbs { display: flex; gap: var(--space-sm); margin-block-end: var(--space-3xl); color: var(--quiet); font-size: .9rem; }
button, input, select, .button { box-sizing: border-box; min-height: 2.75rem; font: inherit; }
button, .button { display: inline-flex; align-items: center; justify-content: center; padding: .66rem 1rem; border: 1px solid var(--evergreen-dark); border-radius: .2rem; background: var(--evergreen-dark); color: var(--sheet); font-weight: 750; text-decoration: none; cursor: pointer; }
button:hover, .button:hover { background: var(--evergreen); color: var(--sheet); }
.secondary { background: transparent; color: var(--evergreen-dark); }
.danger { border-color: var(--red); background: transparent; color: var(--red); }
button:disabled { cursor: not-allowed; opacity: .48; }
input, select { width: 100%; padding: .6rem .75rem; border: 1px solid var(--rule); border-radius: .2rem; background: var(--sheet); color: var(--ink); }
:focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; }
form { display: grid; gap: var(--space-md); }
fieldset { border: 1px solid var(--rule); border-radius: .2rem; }
.check, .confirm { display: flex; align-items: center; gap: var(--space-sm); min-height: 2.75rem; }
.check input, .confirm input { width: auto; min-height: auto; }
.ledger { margin-block-start: var(--space-4xl); border-top: 1px solid var(--ink); }
.history { margin-block-start: 6rem; }
.section-head, .ledger-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: var(--space-xl); border-bottom: 1px solid var(--rule); }
.section-head { padding-block: var(--space-lg); }
.section-head p { color: var(--quiet); }
.ledger-row { padding-block: var(--space-xl); }
.row-actions { display: flex; align-items: center; gap: var(--space-xl); }
.state { display: inline-flex; align-items: center; gap: .4rem; color: var(--quiet); font-size: .82rem; font-weight: 800; }
.state::before { content: ""; width: .55rem; height: .55rem; border: 1px solid currentColor; border-radius: 50%; background: transparent; }
.state-ok::before, .state-completed::before, .state-succeeded::before, .state-pass::before, .state-fixed::before { background: var(--evergreen); }
.state-warn::before, .state-running::before, .state-partial::before, .state-improved_partial::before { background: var(--amber); }
.state-fail, .state-failed, .state-error, .state-regressed, .state-new { color: var(--red); }
.state-fail::before, .state-failed::before, .state-error::before, .state-regressed::before, .state-new::before { background: var(--red); }
.empty { padding-block: var(--space-2xl); color: var(--quiet); }
.notice { padding: var(--space-xl); border: 1px solid var(--rule); background: oklch(94% .025 150); }
.notice-warn { border-color: var(--amber); background: oklch(95% .045 80); }
.notice h2 { margin-block-end: var(--space-md); }
.prepare-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(18rem, .75fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.page-group { border-bottom: 1px solid var(--rule); }
.page-group summary { min-height: 3.5rem; display: flex; align-items: center; justify-content: space-between; gap: var(--space-lg); cursor: pointer; font-weight: 750; }
.page-group ul { display: grid; gap: var(--space-sm); padding-block: 0 var(--space-xl); }
.run-sheet { position: sticky; top: var(--space-xl); padding-block: var(--space-xl); border-block: 1px solid var(--ink); }
.run-sheet dl { margin-block: var(--space-xl); }
.run-sheet dl div, .score-strip dl div, .provenance dl div { display: grid; grid-template-columns: 1fr auto; gap: var(--space-lg); padding-block: var(--space-md); border-bottom: 1px solid var(--rule); }
.run-sheet dd, .score-strip dd, .provenance dd { margin: 0; font-weight: 750; text-align: end; }
.progress-sheet { display: grid; gap: var(--space-md); padding-block: var(--space-xl); border-block: 1px solid var(--ink); }
.progress-copy { display: flex; justify-content: space-between; gap: var(--space-lg); }
progress { width: 100%; height: .7rem; accent-color: var(--evergreen); }
.job-table, .comparison-table { width: 100%; border-collapse: collapse; }
th, td { padding: var(--space-lg) var(--space-sm); border-bottom: 1px solid var(--rule); text-align: start; vertical-align: top; }
th small, td small { display: block; margin-block-start: var(--space-xs); color: var(--quiet); font-weight: 400; overflow-wrap: anywhere; }
.mobile-list { display: none; list-style: none; padding: 0; }
.action-bar, .report-actions { display: flex; flex-wrap: wrap; gap: var(--space-md); margin-block-start: var(--space-2xl); }
.action-bar form { display: block; }
.report-head { max-width: none; grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.score-strip { display: grid; grid-template-columns: .7fr 1fr 1.3fr; gap: var(--space-3xl); padding-block: var(--space-2xl); border-block: 1px solid var(--ink); }
.score-strip > div > strong { display: block; margin-block-start: var(--space-sm); font-family: Charter, Georgia, serif; font-size: 3rem; }
.report-section { margin-block-start: 5rem; }
.finding { padding-block: var(--space-2xl); border-bottom: 1px solid var(--rule); }
.finding > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-xl); }
.finding h3 { max-width: 50rem; margin-block-start: var(--space-sm); font-size: 1.45rem; }
details summary { cursor: pointer; }
.finding details { margin-block-start: var(--space-lg); }
.evidence { padding: var(--space-lg); background: oklch(94% .015 150); }
.client-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(20rem, .8fr); gap: clamp(2rem, 6vw, 5rem); align-items: end; padding-block: var(--space-2xl); border-block: 1px solid var(--ink); }
.client-score h2 { margin-block: var(--space-sm); font-size: clamp(2.6rem, 7vw, 5rem); font-weight: 500; }
.client-score > p:last-child { color: var(--quiet); }
.client-counts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-sm); }
.client-counts div { padding: var(--space-lg); border-left: 1px solid var(--rule); }
.client-counts dt { color: var(--quiet); font-size: .8rem; }
.client-counts dd { margin: var(--space-xs) 0 0; font-family: Charter, Georgia, serif; font-size: 2rem; }
.client-finding { display: grid; gap: var(--space-xl); }
.client-finding > header { margin-block-end: 0; }
.finding-explanation { max-width: 65ch; font-size: 1.08rem; }
.finding-why, .finding-task { display: grid; grid-template-columns: minmax(9rem, .3fr) minmax(0, 1fr); gap: var(--space-xl); padding-block-start: var(--space-lg); border-top: 1px solid var(--rule); }
.finding-why h4, .finding-task h4 { margin: 0; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.task-copy { max-width: 70ch; white-space: pre-line; }
.client-finding .evidence dl { display: grid; gap: var(--space-sm); margin-block-start: var(--space-lg); }
.client-finding .evidence dl div { display: grid; grid-template-columns: minmax(10rem, .4fr) minmax(0, 1fr); gap: var(--space-lg); }
.client-finding .evidence dd { margin: 0; overflow-wrap: anywhere; }
.strength-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: var(--space-lg); padding-block-start: var(--space-xl); }
.strength-list article { display: grid; gap: var(--space-md); padding: var(--space-xl); border: 1px solid var(--rule); background: var(--sheet); }
.owner-note { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2xl); margin-block-start: 6rem; padding-block: var(--space-2xl); border-top: 1px solid var(--ink); }
.owner-note p { max-width: 65ch; margin-block-start: var(--space-sm); color: var(--quiet); }
.provenance { margin-block-start: 6rem; padding-block: var(--space-2xl); border-top: 1px solid var(--ink); }
.compare-form { grid-template-columns: 1fr 1fr auto; align-items: end; padding-block: var(--space-xl); border-block: 1px solid var(--ink); }
.compare-form label { display: grid; gap: var(--space-sm); font-weight: 750; }
.card { padding: var(--space-2xl); border: 1px solid var(--rule); background: var(--sheet); }
.stack { display: grid; gap: var(--space-md); }
.two-col { display: grid; grid-template-columns: 1.25fr .75fr; gap: var(--space-xl); align-items: start; }
.page-form { grid-template-columns: 1fr auto; align-items: end; }
.page-card { display: grid; gap: var(--space-lg); }
.page-classification { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-lg); }
.classification-editor { padding-block-start: var(--space-sm); border-top: 1px solid var(--rule); }
.classification-editor summary { color: var(--evergreen-dark); font-weight: 750; }
.classification-form { grid-template-columns: minmax(12rem, 1fr) auto auto; align-items: end; margin-block-start: var(--space-lg); }
.classification-form label:not(.check) { display: grid; gap: var(--space-sm); font-weight: 750; }
.actions, .meta, .pagination, .pagination div { display: flex; align-items: center; gap: var(--space-lg); }
.pagination { justify-content: space-between; margin-block-start: var(--space-xl); }
.badge { padding: .25rem .5rem; border: 1px solid var(--rule); font-size: .8rem; font-weight: 800; }
.error { color: var(--red); }.success { color: var(--evergreen-dark); font-weight: 750; }

@media (max-width: 63.99rem) {
  .prepare-layout { grid-template-columns: minmax(0, 1fr) minmax(17rem, .7fr); gap: var(--space-2xl); }
  .score-strip { grid-template-columns: 1fr 1fr; }
  .score-strip dl { grid-column: 1 / -1; }
  .report-head { grid-template-columns: 1fr; }
  .client-summary { grid-template-columns: 1fr; }
}
@media (max-width: 47.99rem) {
  .site-head { align-items: flex-start; padding-block: var(--space-md); }
  .wordmark span { display: block; margin: 0; }
  .container { width: min(100% - 1.25rem, 42rem); margin-block: var(--space-2xl); }
  h1 { font-size: clamp(2.3rem, 14vw, 3.8rem); }
  .editorial-head { margin-block-end: var(--space-3xl); }
  .page-head, .ledger-row, .section-head, .finding > header { grid-template-columns: 1fr; align-items: start; }
  .row-actions { align-items: flex-start; flex-direction: column; gap: var(--space-md); }
  .prepare-layout, .two-col, .page-form, .classification-form, .compare-form, .score-strip, .finding-why, .finding-task, .client-finding .evidence dl div { grid-template-columns: 1fr; }
  .run-sheet { position: static; }
  .job-table, .comparison-table { display: none; }
  .mobile-list { display: grid; gap: 0; }
  .mobile-list li { display: grid; gap: var(--space-xs); padding-block: var(--space-lg); border-bottom: 1px solid var(--rule); }
  .action-bar, .report-actions { display: grid; }
  .action-bar > *, .action-bar button, .report-actions > * { width: 100%; }
  .score-strip dl { grid-column: auto; }
  .client-counts { grid-template-columns: 1fr; }
  .client-counts div { display: grid; grid-template-columns: 1fr auto; align-items: baseline; border-left: 0; border-bottom: 1px solid var(--rule); }
  .owner-note { align-items: stretch; flex-direction: column; }
  .owner-note .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print {
  @page { margin: 18mm; }
  body { background: white; color: black; font-size: 10pt; }
  .site-head, .skip-link, .crumbs, .report-actions, .action-bar, script { display: none !important; }
  .container { width: 100%; margin: 0; }
  .editorial-head { margin-block-end: 1.5rem; }
  .report-section, .finding, .provenance { break-inside: avoid; }
  a { color: black; text-decoration: none; }
  a[href]::after { content: " (" attr(href) ")"; font-size: .8em; }
}
