/* ==========================================================================
   治理站点 · 文档页表达层
   --------------------------------------------------------------------------
   条款 / 判据 / 变更史 / 业务架构 / 治理真相源 五类文档页共用这一份。
   设计语言与系统架构页同源：纯白底 · 零圆角 · 细线分节 · 数值用等宽体 · 不用卡片阴影。
   只管「长什么样」；内容由 build/ 下的渲染器产出。
   ========================================================================== */

:root {
  --d-ink: #07142b;
  --d-muted: #61718a;
  --d-line: #dce4ef;
  --d-line-strong: #b8c6db;
  --d-tint: #fbfcfe;
  --d-blue: #0668f6;
  --d-orange: #ff5b24;
  --d-teal: #009f92;
  --d-red: #d4380d;
  --d-max: 1180px;
  --d-gutter: 40px;
  --d-mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, "Cascadia Mono", monospace;
  --d-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }

body.doc-page {
  margin: 0;
  background: #fff;
  color: var(--d-ink);
  font-family: var(--d-sans);
  font-size: 15px;
  line-height: 1.78;
  -webkit-font-smoothing: antialiased;
}

/* ---------- 页头 ---------- */

.doc-head {
  max-width: var(--d-max);
  margin: 0 auto;
  padding: 52px var(--d-gutter) 34px;
  border-bottom: 1px solid var(--d-line);
}

.doc-kicker {
  margin: 0 0 12px;
  font-family: var(--d-mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--d-blue);
}

.doc-head h1 {
  margin: 0 0 14px;
  font-family: var(--d-mono);
  font-size: clamp(28px, 3.2vw, 46px);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.08;
}

.doc-lead { max-width: 78ch; margin: 0; font-size: 15px; }

.doc-source {
  margin: 20px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--d-line);
  font-size: 12.5px;
  color: var(--d-muted);
}

.doc-facts {
  display: flex;
  flex-wrap: wrap;
  margin: 26px 0 0;
  border-top: 1px solid var(--d-line);
}

.doc-facts > div { flex: 1 1 140px; min-width: 124px; padding: 14px 20px 12px 0; border-right: 1px solid var(--d-line); }
.doc-facts > div:last-child { border-right: 0; }
.doc-facts > div + div { padding-left: 20px; }
.doc-facts dt { margin: 0 0 5px; font-size: 12px; color: var(--d-muted); }
.doc-facts dd { margin: 0; }

.doc-num { font-family: var(--d-mono); font-size: 18px; font-weight: 600; letter-spacing: -.01em; }
.doc-warn { color: var(--d-orange); }

/* ---------- 页内目录 ---------- */

.doc-toc {
  max-width: var(--d-max);
  margin: 0 auto;
  padding: 22px var(--d-gutter);
  border-bottom: 1px solid var(--d-line);
  background: var(--d-tint);
}

.doc-toc b { display: block; margin-bottom: 10px; font-size: 12px; letter-spacing: .06em; color: var(--d-muted); }
.doc-toc ul { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; list-style: none; }
.doc-toc li { font-size: 13px; }
.doc-toc li.lv3 { font-size: 12.5px; opacity: .82; }
.doc-toc li.lv3::before { content: "· "; color: var(--d-line-strong); }
.doc-toc a { color: var(--d-ink); text-decoration: none; border-bottom: 1px solid var(--d-line); }
.doc-toc a:hover { border-bottom-color: var(--d-blue); color: var(--d-blue); }

/* ---------- 正文 ---------- */

.doc-body { max-width: var(--d-max); margin: 0 auto; padding: 34px var(--d-gutter) 90px; }
.doc-body > *:first-child { margin-top: 0; }

.doc-body h2, .doc-body h3, .doc-body h4, .doc-body h5, .doc-body h6 { scroll-margin-top: 20px; }

.doc-body h2 {
  margin: 44px 0 16px;
  padding-top: 20px;
  border-top: 1px solid var(--d-line-strong);
  font-size: clamp(20px, 2vw, 27px);
  font-weight: 600;
  letter-spacing: -.01em;
}

.doc-body h3 { margin: 30px 0 12px; font-size: 17px; font-weight: 600; }
.doc-body h4 { margin: 22px 0 10px; font-size: 15px; font-weight: 600; color: var(--d-muted); }
.doc-body h5, .doc-body h6 { margin: 18px 0 8px; font-size: 14px; font-weight: 600; color: var(--d-muted); }

.doc-body p { margin: 0 0 13px; max-width: 96ch; }
.doc-body hr { margin: 34px 0; border: 0; border-top: 1px solid var(--d-line); }

.doc-body b, .doc-body strong { font-weight: 650; }

.doc-body code, .doc-head code, .doc-toc code {
  font-family: var(--d-mono);
  font-size: .88em;
  padding: 1px 5px;
  background: var(--d-tint);
  border: 1px solid var(--d-line);
  white-space: nowrap;
}

.doc-body pre.md-code {
  margin: 14px 0 18px;
  padding: 16px 18px;
  overflow-x: auto;
  background: var(--d-tint);
  border: 1px solid var(--d-line);
  border-left: 3px solid var(--d-line-strong);
  font-size: 12.5px;
  line-height: 1.7;
}

.doc-body pre.md-code code { padding: 0; background: none; border: 0; white-space: pre; font-size: inherit; }

.doc-body pre.md-code[data-lang]:not([data-lang=""])::before {
  content: attr(data-lang);
  display: block;
  margin-bottom: 10px;
  font-family: var(--d-mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--d-muted);
}

.doc-body blockquote {
  margin: 13px 0;
  padding: 2px 0 2px 16px;
  border-left: 2px solid var(--d-line-strong);
  color: var(--d-muted);
}

.doc-body ul.md-list, .doc-body ol.md-list { margin: 0 0 14px; padding-left: 0; list-style: none; }
.doc-body ul.md-list > li { position: relative; margin: 0 0 9px; padding-left: 20px; }
.doc-body ul.md-list > li::before { content: ""; position: absolute; top: .74em; left: 2px; width: 7px; height: 1px; background: var(--d-line-strong); }
.doc-body ol.md-list { counter-reset: mdli; }
.doc-body ol.md-list > li { position: relative; margin: 0 0 9px; padding-left: 26px; counter-increment: mdli; }
.doc-body ol.md-list > li::before { content: counter(mdli); position: absolute; left: 0; top: .1em; font-family: var(--d-mono); font-size: 12px; color: var(--d-muted); }
.doc-body .md-list .md-list { margin: 8px 0 0; padding-left: 4px; border-left: 1px solid var(--d-line); }
.doc-body .md-list .md-list > li { font-size: 14px; }

.doc-body a { color: var(--d-blue); text-decoration: none; border-bottom: 1px solid rgba(6, 104, 246, .28); }
.doc-body a:hover { border-bottom-color: var(--d-blue); }

/* ---------- 表格 ---------- */

.md-table-wrap { margin: 14px 0 20px; overflow-x: auto; border: 1px solid var(--d-line); }
.md-table { width: 100%; border-collapse: collapse; font-size: 13.5px; background: #fff; }
.md-table th, .md-table td { padding: 9px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--d-line); }
.md-table th { font-weight: 600; white-space: nowrap; background: var(--d-tint); border-bottom-color: var(--d-line-strong); }
.md-table tr:last-child td { border-bottom: 0; }

/* ---------- 降级：健壮，但不撒谎 ---------- */

.md-degraded { margin: 14px 0 20px; border: 1px solid var(--d-orange); }
.md-degraded-note { margin: 0; padding: 8px 14px; background: rgba(255, 91, 36, .08); color: var(--d-red); font-size: 12.5px; }
.md-degraded pre { margin: 0; padding: 14px; overflow-x: auto; font-family: var(--d-mono); font-size: 12px; line-height: 1.65; }

/* ---------- 条款卡 ---------- */

.doc-sec { }

.doc-clause {
  margin: 0 0 22px;
  padding: 22px 24px;
  border: 1px solid var(--d-line);
  border-left: 3px solid var(--d-line-strong);
}

.doc-clause h3 { margin: 0 0 14px; font-size: 17px; }
.doc-clause-id {
  display: inline-block;
  margin-right: 10px;
  padding: 1px 8px;
  font-family: var(--d-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--d-blue);
  border: 1px solid var(--d-blue);
}

.doc-fields { margin: 0; }
.doc-field { display: grid; grid-template-columns: 72px 1fr; gap: 16px; padding: 10px 0; border-top: 1px solid var(--d-line); }
.doc-field dt { font-size: 12.5px; color: var(--d-muted); }
.doc-field dd { margin: 0; }
.doc-field dd > p:last-child { margin-bottom: 0; }
.doc-field-forbid dt { color: var(--d-red); }
.doc-field-guard dt { color: var(--d-teal); }
.doc-field-guard.doc-field-nogate dt { color: var(--d-orange); }
.doc-field-guard.doc-field-nogate dd { color: var(--d-muted); }

.doc-guard {
  font-family: var(--d-mono);
  font-size: .9em;
  color: var(--d-teal);
  border-bottom: 1px solid rgba(0, 159, 146, .3);
}
.doc-guard:hover { border-bottom-color: var(--d-teal); }

.doc-note { margin: 0 0 24px; padding: 16px 20px; background: var(--d-tint); border-left: 3px solid var(--d-line-strong); font-size: 14px; }
.doc-note > *:last-child { margin-bottom: 0; }

/* ---------- 变更史台账 ---------- */

.doc-ledger { margin: 0; padding: 0; list-style: none; }

.doc-entry { padding: 26px 0 22px; border-bottom: 1px solid var(--d-line); }
.doc-entry.is-current { padding-left: 18px; border-left: 3px solid var(--d-blue); }

.doc-minor-gap { padding: 0; border-bottom: 1px solid var(--d-line); }
.doc-minor-gap span { display: inline-block; padding: 7px 0; font-family: var(--d-mono); font-size: 11px; letter-spacing: .1em; color: var(--d-muted); }

.doc-entry-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 13px; margin-bottom: 14px; }
.doc-ver { font-family: var(--d-mono); font-size: 23px; font-weight: 600; letter-spacing: -.02em; }
.doc-entry-meta time { font-family: var(--d-mono); font-size: 13px; color: var(--d-muted); }

.doc-fp { font-family: var(--d-mono); font-size: 12px; padding: 2px 8px; background: #fff; border: 1px solid var(--d-line-strong); }
.doc-fp::before { content: "判据指纹 "; color: var(--d-muted); }
.doc-fp.is-none { color: var(--d-muted); }

.doc-seal { font-size: 12px; padding: 2px 9px; border: 1px solid; }
.doc-seal.is-hex { color: var(--d-teal); border-color: var(--d-teal); }
.doc-seal.is-pending { color: var(--d-orange); border-color: var(--d-orange); }
.doc-seal.is-legacy, .doc-seal.is-missing { color: var(--d-muted); border-color: var(--d-line-strong); }

.doc-now { font-size: 12px; padding: 2px 9px; color: #fff; background: var(--d-blue); }

.doc-entry-body { max-width: 100ch; }
.doc-entry-body > *:first-child { margin-top: 0; }
.doc-entry-body > *:last-child { margin-bottom: 0; }
.doc-entry-body h3 { margin: 20px 0 10px; font-size: 14.5px; }

/* ---------- 窄屏 ---------- */

@media (max-width: 760px) {
  :root { --d-gutter: 16px; }
  .doc-head { padding-top: 30px; }
  .doc-facts > div { flex: 1 1 50%; border-right: 0; padding-left: 0; }
  .doc-facts > div + div { padding-left: 0; }
  .doc-field { grid-template-columns: 1fr; gap: 4px; }
  .doc-clause { padding: 18px 16px; }
  .doc-entry-meta { gap: 9px; }
  .doc-ver { font-size: 19px; }
}

@media (prefers-color-scheme: dark) {
  body.doc-page { background: #fff; color: var(--d-ink); }
}
