:root {
  --runway: #78D64B;
  --ink: #13180F;
  --paper: #F4F3EC;
  --leaf: #B7ED93;
  --forest: #1E7A43;
  --white: #FFFFFF;
  --graphite: #3A4034;
  --grey: #8A8F84;
  --fail: #B42318;
  --warning: #8A5A00;
  --line: rgba(19, 24, 15, .18);
  --soft-line: rgba(19, 24, 15, .09);
  --page-w: 210mm;
  --page-h: 297mm;
  --baseline: 2mm;
  --screen-frame: 1240px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: #d8dad3;
  color: var(--ink);
  font-family: "Helvetica Neue", "Source Han Sans SC", "PingFang SC",
    "Noto Sans CJK SC", "Hiragino Sans GB", "Microsoft YaHei UI",
    "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial,
    sans-serif;
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
}

a { color: inherit; text-underline-offset: .2em; }
img { max-width: 100%; height: auto; }

.skip-link {
  position: fixed;
  z-index: 100;
  left: .75rem;
  top: .75rem;
  transform: translateY(-180%);
  padding: .65rem .9rem;
  background: var(--runway);
  color: var(--ink);
  font-weight: 800;
}

.skip-link:focus { transform: none; }

:focus-visible { outline: 3px solid var(--runway); outline-offset: 3px; }

.web-header {
  position: sticky;
  top: 0;
  z-index: 30;
  border-bottom: 1px solid var(--line);
  background: rgba(244, 243, 236, .96);
  backdrop-filter: blur(12px);
}

.web-header__inner {
  width: min(calc(100% - 48px), var(--screen-frame));
  min-height: 72px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.web-brand {
  display: flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
}

.web-brand img { display: block; width: 92px; }

.web-brand span {
  padding-left: 1rem;
  border-left: 1px solid var(--line);
  color: var(--graphite);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .1em;
}

.web-actions { display: flex; align-items: center; gap: 1rem; font-size: .84rem; font-weight: 750; }
.web-actions a { text-decoration: none; }
.web-actions .print-note { color: var(--graphite); font-weight: 500; }

.web-intro {
  background: var(--ink);
  color: var(--white);
  border-bottom: 7px solid var(--runway);
}

.web-intro__inner {
  width: min(calc(100% - 48px), var(--screen-frame));
  margin-inline: auto;
  padding: 4.8rem 0 4.2rem;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
  align-items: end;
}

.web-intro__inner > div:first-child { grid-column: 1 / span 8; }
.web-intro__inner > .intro-status { grid-column: 10 / -1; }

.web-intro h1 {
  max-width: 12ch;
  margin: 1rem 0 1.4rem;
  font-size: clamp(3rem, 5.6vw, 5.7rem);
  line-height: .94;
  letter-spacing: -.065em;
}

.web-intro p { max-width: 42em; margin: 0; color: rgba(255,255,255,.72); font-size: 1.02rem; line-height: 1.75; }

.eyebrow {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: var(--forest);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.eyebrow::before {
  content: "";
  width: 34px;
  height: 3px;
  background: var(--runway);
  transform: skewX(-36deg);
}

.web-intro .eyebrow { color: var(--leaf); }

.intro-status {
  border-top: 3px solid var(--runway);
  padding-top: 1.25rem;
}

.intro-status strong { display: block; color: var(--runway); font-size: 1.4rem; line-height: 1.25; }
.intro-status span { display: block; margin-top: .5rem; color: rgba(255,255,255,.68); font-size: .82rem; }

.web-toc {
  width: min(calc(100% - 48px), var(--screen-frame));
  margin: 2rem auto 3rem;
  border-top: 2px solid var(--ink);
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: transparent;
}

.web-toc a {
  min-height: 62px;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .75rem .65rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-decoration: none;
  color: var(--graphite);
  font-size: .72rem;
  line-height: 1.25;
}

.web-toc a:nth-child(7n) { border-right: 0; }
.web-toc a:hover { background: rgba(183, 237, 147, .4); color: var(--ink); }
.web-toc b { color: var(--forest); font-family: "SFMono-Regular", Consolas, monospace; }

.report-document { padding: 0 24px 96px; }

.report-page {
  position: relative;
  isolation: isolate;
  width: min(100%, var(--page-w));
  min-height: var(--page-h);
  margin: 0 auto 36px;
  padding: 16mm 16mm 19mm;
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 18px 48px rgba(19, 24, 15, .13);
}

.report-page::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -45mm;
  top: 30mm;
  width: 115mm;
  height: 2.2mm;
  background: var(--runway);
  opacity: .18;
  transform: rotate(-54deg);
}

.report-page::after {
  content: "完全合成 · 非真人 · 不可用于决策";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 51%;
  width: 180mm;
  transform: translate(-50%, -50%) rotate(-32deg);
  color: rgba(30, 122, 67, .042);
  font-size: 22pt;
  font-weight: 800;
  letter-spacing: .14em;
  text-align: center;
  white-space: nowrap;
}

.page-header {
  min-height: 12mm;
  padding-bottom: 3mm;
  border-bottom: .45mm solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8mm;
}

.page-header img { display: block; width: 27mm; }
.page-header__meta { color: var(--graphite); font-size: 7.2pt; text-align: right; line-height: 1.4; letter-spacing: .01em; }
.page-header__meta strong { color: var(--forest); }

.page-body { padding-top: 8mm; padding-bottom: 8mm; }

.page-number {
  display: flex;
  align-items: center;
  gap: 3mm;
  color: var(--forest);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 7.4pt;
  font-weight: 800;
  letter-spacing: .14em;
}

.page-number::after {
  content: "";
  flex: 1;
  height: .22mm;
  background: var(--soft-line);
}

.report-page h2 {
  max-width: 18ch;
  margin: 3mm 0 5mm;
  font-size: 27pt;
  line-height: 1.04;
  letter-spacing: -.055em;
  font-weight: 700;
}

.report-page h3 {
  margin: 5mm 0 2.2mm;
  font-size: 12.5pt;
  line-height: 1.25;
}

.page-body > h3 {
  padding-top: 2.2mm;
  border-top: .25mm solid var(--line);
}

.report-page h4 {
  margin: 3.5mm 0 1.5mm;
  color: var(--forest);
  font-size: 9pt;
  letter-spacing: .04em;
}

.report-page p { margin: 0 0 2.8mm; }
.report-page ul,
.report-page ol { margin: 1.5mm 0 3mm; padding-left: 5mm; }
.report-page li { margin-bottom: 1.25mm; }

.lead { max-width: 38em; color: var(--graphite); font-size: 11.5pt; line-height: 1.68; }
.small { font-size: 8.2pt; line-height: 1.48; color: var(--graphite); }
.micro { font-size: 7.2pt; line-height: 1.4; color: var(--graphite); }
.mono { font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; }

.synthetic-banner {
  margin: 4mm 0;
  border: .45mm solid var(--ink);
  border-left: 3mm solid var(--runway);
  padding: 3.2mm 4mm;
  background: rgba(244, 243, 236, .72);
  font-size: 9.3pt;
  line-height: 1.48;
}

.synthetic-banner strong { display: block; margin-bottom: .8mm; }

.claim-tag,
.state-tag {
  display: inline-block;
  padding: .55mm 1.7mm;
  border: 0;
  border-bottom: .32mm solid currentColor;
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 7pt;
  font-weight: 800;
  line-height: 1.25;
  vertical-align: .12em;
}

.claim-tag { color: var(--forest); background: rgba(183, 237, 147, .14); }
.state-tag.is-n { color: var(--warning); background: rgba(255, 248, 232, .72); }
.state-tag.is-s { color: var(--forest); background: rgba(183, 237, 147, .16); }

.summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  border: 0;
  background: transparent;
}

.summary-card {
  min-height: 34mm;
  padding: 3.5mm 0 3mm;
  border-top: .5mm solid var(--ink);
  background: transparent;
}

.summary-card--dark { padding-inline: 4mm; border-top-color: var(--runway); background: var(--ink); color: var(--white); }
.summary-card--dark p { color: rgba(255,255,255,.75); }
.summary-card__label { color: var(--forest); font-size: 7pt; font-weight: 800; letter-spacing: .08em; }
.summary-card--dark .summary-card__label { color: var(--leaf); }
.summary-card strong { display: block; margin: 2mm 0 1mm; font-size: 17pt; line-height: 1.1; }
.summary-card p { margin: 0; font-size: 8pt; line-height: 1.4; }

.layer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4mm;
  border: 0;
  background: transparent;
}

.layer {
  min-height: 50mm;
  padding: 4mm 0;
  border-top: .5mm solid var(--ink);
  background: transparent;
}

.layer:last-child { padding-inline: 4mm; border-top-color: var(--runway); background: var(--ink); color: var(--white); }
.layer:last-child p { color: rgba(255,255,255,.72); }
.layer .code { color: var(--forest); font-family: "SFMono-Regular", Consolas, monospace; font-size: 7pt; font-weight: 800; }
.layer:last-child .code { color: var(--leaf); }
.layer h3 { margin-top: 8mm; }
.layer p { font-size: 8.5pt; line-height: 1.5; color: var(--graphite); }

.callout {
  margin: 3mm 0;
  padding: 3.2mm 4mm;
  border-left: 2mm solid var(--runway);
  background: var(--paper);
  font-size: 8.8pt;
}

.callout--warning { border-left-color: var(--warning); background: #fff8e8; }
.callout--stop { border-left-color: var(--fail); background: #fff1ef; }
.callout p:last-child { margin-bottom: 0; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 6mm; }
.two-col--wide { grid-template-columns: 1.2fr .8fr; }
.three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4mm; }

.stat-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: .35mm solid var(--ink);
  border-bottom: .3mm solid var(--line);
}

.stat { padding: 3mm 2.5mm 3mm 0; }
.stat strong { display: block; color: var(--forest); font-size: 18pt; line-height: 1.05; }
.stat span { display: block; margin-top: 1mm; color: var(--graphite); font-size: 7.2pt; }

.score-hero {
  padding: 5mm;
  background: var(--ink);
  color: var(--white);
}

.score-hero strong { display: block; color: var(--runway); font-size: 36pt; line-height: 1; letter-spacing: -.05em; }
.score-hero span { display: block; margin-top: 2mm; color: rgba(255,255,255,.72); font-size: 8pt; }

.bar-list { margin: 5mm 0; }
.bar-row { display: grid; grid-template-columns: 31mm 1fr 29mm; align-items: center; gap: 3mm; margin: 3.5mm 0; }
.bar-row__label { font-size: 8.5pt; font-weight: 700; }
.bar-track { height: 4.5mm; background: #e8eae4; }
.bar-fill { height: 100%; background: var(--forest); }
.bar-fill--algebra { width: 74.3%; }
.bar-fill--data { width: 68.6%; }
.bar-fill--geometry { width: 60%; }
.bar-row__value { font-family: "SFMono-Regular", Consolas, monospace; font-size: 8pt; text-align: right; }

.data-table {
  width: 100%;
  margin: 2.5mm 0 4mm;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 7.8pt;
  line-height: 1.42;
}

.data-table caption {
  padding: 0 0 1.5mm;
  color: var(--graphite);
  font-size: 7.2pt;
  line-height: 1.45;
  text-align: left;
}

.data-table th,
.data-table td {
  padding: 2.1mm 2.3mm;
  border-bottom: .25mm solid var(--line);
  vertical-align: top;
  text-align: left;
  overflow-wrap: anywhere;
}

.data-table th {
  border-top: .5mm solid var(--ink);
  color: var(--forest);
  font-size: 7pt;
  letter-spacing: .03em;
}

.data-table tbody tr:nth-child(even) td { background: rgba(244, 243, 236, .52); }
.data-table .num { text-align: right; white-space: nowrap; }

.table-dimensions th:nth-child(1) { width: 20%; }
.table-dimensions th:nth-child(2) { width: 22%; }
.table-items th:nth-child(1) { width: 19%; }
.table-items th:nth-child(2) { width: 16%; }
.table-items th:nth-child(3) { width: 34%; }
.table-hypotheses th:nth-child(1) { width: 24%; }
.table-hypotheses th:nth-child(2) { width: 22%; }
.table-hypotheses th:nth-child(3) { width: 27%; }
.table-model th:nth-child(1) { width: 24%; }
.table-model th:nth-child(2) { width: 13%; }
.table-evidence th:nth-child(1) { width: 19%; }
.table-evidence th:nth-child(2) { width: 35%; }
.table-evidence th:nth-child(3) { width: 16%; }
.table-claims th:nth-child(1) { width: 28%; }
.table-claims th:nth-child(2) { width: 42%; }

.evidence-row {
  display: grid;
  grid-template-columns: 25mm 1fr 1fr;
  gap: 4mm;
  padding: 3mm 0;
  border-top: .25mm solid var(--line);
}
.evidence-row:last-child { border-bottom: .25mm solid var(--line); }
.evidence-row strong { color: var(--forest); font-size: 8.4pt; }
.evidence-row p { margin: 0; font-size: 8pt; line-height: 1.45; }

.action-card {
  margin: 3mm 0;
  border-top: .5mm solid var(--ink);
  padding: 4mm 0;
  background: transparent;
}

.action-card--selected { padding-left: 4mm; border-left: 2mm solid var(--runway); background: rgba(244, 243, 236, .5); }
.action-card__meta { color: var(--forest); font-family: "SFMono-Regular", Consolas, monospace; font-size: 7pt; font-weight: 800; }
.action-card h3 { margin: 2.2mm 0; }
.action-card dl { margin: 0; display: grid; grid-template-columns: 24mm 1fr; gap: 1.3mm 3mm; font-size: 8pt; line-height: 1.42; }
.action-card dt { color: var(--forest); font-weight: 800; }
.action-card dd { margin: 0; }

.not-available-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5mm; border: 0; background: transparent; }
.not-available { min-height: 31mm; padding: 3.5mm 0; border-top: .5mm solid var(--ink); background: transparent; }
.not-available strong { display: block; margin-bottom: 1.5mm; font-size: 10pt; }
.not-available p { margin: 0; color: var(--graphite); font-size: 7.8pt; line-height: 1.45; }

.history-bars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6mm; align-items: end; height: 56mm; margin: 5mm 0 3mm; border-bottom: .4mm solid var(--ink); }
.history-item { display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; height: 100%; text-align: center; }
.history-bar { display: flex; align-items: flex-start; justify-content: center; padding-top: 2.5mm; background: var(--graphite); color: var(--white); font-size: 12pt; font-weight: 800; }
.history-bar--61 { height: 61%; }
.history-bar--65 { height: 65%; }
.history-bar--68 { height: 68%; }
.history-item:nth-child(3) .history-bar { background: var(--forest); }
.history-label { padding: 2mm 0; font-size: 7.3pt; line-height: 1.35; }

.teachback {
  margin: 3mm 0;
  counter-reset: teach;
}
.teachback li {
  list-style: none;
  display: grid;
  grid-template-columns: 9mm 1fr;
  min-height: 14mm;
  margin: 0;
  padding: 3mm 0;
  border-top: .25mm solid var(--line);
}
.teachback li::before { counter-increment: teach; content: counter(teach, decimal-leading-zero); color: var(--forest); font-family: "SFMono-Regular", Consolas, monospace; font-weight: 800; }
.teachback li:last-child { border-bottom: .25mm solid var(--line); }

.source-list { margin-top: 2mm; padding-left: 4.5mm; font-size: 7.2pt; line-height: 1.4; }
.source-list li { margin-bottom: 1.3mm; }

.page-footer {
  position: absolute;
  left: 16mm;
  right: 16mm;
  bottom: 7mm;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5mm;
  padding-top: 2.6mm;
  border-top: .35mm solid var(--line);
  color: var(--graphite);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 6.6pt;
  line-height: 1.25;
}

.page-footer strong { color: var(--forest); }

.cover .page-body { padding-top: 12mm; }
.cover .cover-title {
  max-width: 11ch;
  margin: 3mm 0 6mm;
  font-size: 40pt;
  line-height: .96;
  letter-spacing: -.065em;
}
.cover .cover-title span { color: var(--forest); }
.cover .identity-grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 5mm;
  margin: 6mm 0;
  border: 0;
  background: transparent;
}

.identity-grid--compact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5mm;
  margin-bottom: 4mm;
}
.identity-block { padding: 4mm 0; border-top: .5mm solid var(--ink); background: transparent; }
.identity-block dl { display: grid; grid-template-columns: 27mm 1fr; gap: 1.3mm 3mm; margin: 0; font-size: 8.3pt; }
.identity-block dt { color: var(--graphite); }
.identity-block dd { margin: 0; font-weight: 700; }
.cover-limit { padding: 4mm; border-top: .5mm solid var(--runway); background: var(--ink); color: var(--white); }
.cover-limit strong { display: block; color: var(--runway); font-size: 11pt; }
.cover-limit p { margin: 1.5mm 0 0; color: rgba(255,255,255,.72); font-size: 8pt; line-height: 1.45; }

.page-compact .page-body { padding-top: 6mm; }
.page-compact h2 { font-size: 22pt; }
.page-dense .page-body { padding-top: 5.5mm; }
.page-dense h2 { margin-bottom: 2mm; font-size: 20pt; }
.page-dense h3 { margin: 3mm 0 1.5mm; }
.page-dense .data-table { margin: 1.8mm 0 2.5mm; font-size: 7.2pt; line-height: 1.35; }
.page-dense .data-table th,
.page-dense .data-table td { padding: 1.6mm 1.8mm; }

#p05 .bar-row { margin-block: 5mm; }
#p05 .data-table th,
#p05 .data-table td { padding-block: 2.8mm; }
#p06 .data-table th,
#p06 .data-table td,
#p07 .data-table th,
#p07 .data-table td,
#p10 .data-table th,
#p10 .data-table td { padding-block: 2.35mm; }

#p11 .history-bars { height: 62mm; margin-top: 8mm; }

@media screen and (max-width: 820px) {
  body { font-size: 16px; }
  .web-header__inner { width: min(calc(100% - 28px), var(--screen-frame)); min-height: 64px; }
  .web-brand span, .web-actions .print-note { display: none; }
  .web-actions { gap: .8rem; }
  .web-intro__inner { width: min(calc(100% - 28px), var(--screen-frame)); grid-template-columns: 1fr; gap: 2rem; padding: 3.2rem 0 2.8rem; }
  .web-intro__inner > div:first-child,
  .web-intro__inner > .intro-status { grid-column: 1; }
  .web-intro h1 { font-size: clamp(2.6rem, 12vw, 4.1rem); }
  .web-toc { width: min(calc(100% - 28px), var(--screen-frame)); grid-template-columns: repeat(2, 1fr); }
  .web-toc a:nth-child(7n) { border-right: 1px solid var(--line); }
  .web-toc a:nth-child(2n) { border-right: 0; }
  .report-document { padding-inline: 12px; }
  .report-page { width: 100%; min-height: 0; margin-bottom: 16px; padding: 24px 20px 64px; overflow: hidden; }
  .report-page::after { width: 100%; font-size: 1rem; line-height: 1.4; white-space: normal; }
  .page-header { min-height: 0; }
  .page-header img { width: 88px; }
  .page-body { padding-top: 26px; }
  .report-page h2 { font-size: clamp(2rem, 10vw, 3rem); }
  .cover .cover-title { font-size: clamp(2.8rem, 13vw, 4.4rem); }
  .summary-grid,
  .layer-grid,
  .two-col,
  .two-col--wide,
  .three-col,
  .not-available-grid,
  .cover .identity-grid,
  .identity-grid--compact { grid-template-columns: 1fr; }
  .summary-card, .layer, .not-available { min-height: 0; }
  .layer h3 { margin-top: 1rem; }
  .stat-strip { grid-template-columns: repeat(2, 1fr); }
  .data-table { display: block; overflow-x: auto; table-layout: auto; font-size: .78rem; }
  .data-table caption::after { content: "（表格可左右滑动）"; }
  .data-table th, .data-table td { min-width: 112px; }
  .evidence-row { grid-template-columns: 1fr; gap: .3rem; }
  .action-card dl { grid-template-columns: 1fr; }
  .action-card dd { margin-bottom: .45rem; }
  .page-footer { left: 20px; right: 20px; bottom: 18px; flex-wrap: wrap; font-size: .64rem; }
  .history-bars { height: 250px; gap: 12px; }
}

@media screen and (max-width: 440px) {
  .web-brand img { width: 84px; }
  .web-actions a:first-child { display: none; }
  .web-toc { grid-template-columns: 1fr; }
  .web-toc a { border-right: 0; }
  .web-toc a:nth-child(7n) { border-right: 0; }
  .stat-strip { grid-template-columns: 1fr; }
  .bar-row { grid-template-columns: 1fr; gap: .3rem; }
  .bar-row__value { text-align: left; }
  .history-label { font-size: .64rem; }
}

@media print {
  @page { size: A4; margin: 0; }

  html, body { width: 210mm; margin: 0; padding: 0; background: #fff; }
  body { font-size: 9.25pt; line-height: 1.48; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .skip-link,
  .web-header,
  .web-intro,
  .web-toc { display: none !important; }
  .report-document { margin: 0; padding: 0; }
  .report-page {
    width: 210mm;
    height: 297mm;
    min-height: 0;
    margin: 0;
    padding: 16mm 16mm 19mm;
    overflow: hidden;
    box-shadow: none;
    break-after: page;
    page-break-after: always;
  }
  .report-page:last-child { break-after: auto; page-break-after: auto; }
  .report-page a { text-decoration: none; }
  .data-table tr,
  .summary-card,
  .layer,
  .callout,
  .action-card,
  .not-available,
  .evidence-row { break-inside: avoid; page-break-inside: avoid; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
