/* 全站样式：学术风格（宋体标题、细线框、viridis / RdBu / Paul Tol 配色） */
:root {
  --fg: #1f2328; --muted: #5f6670; --faint: #8a9099; --bg: #f5f6f8; --panel: #fff; --line: #dfe2e7; --line2: #c9ced6;
  --acc: #4477AA; --soft: #eef3f9; --warn: #b2182b; --ok: #228833;
  --grid: #e3e6ea; --axis: #5f6670;
  --serif: "Songti SC", "STSong", "SimSun", "Noto Serif SC", serif;
  --sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
  --mono: Consolas, "SFMono-Regular", Menlo, monospace;
  --top: 52px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--top) + 52px); }
body { margin: 0; background: var(--bg); color: var(--fg); font: 15px/1.75 var(--sans); -webkit-text-size-adjust: 100%; }
a { color: var(--acc); text-decoration: none; }
a:hover { text-decoration: underline; }
code { font-family: var(--mono); font-size: .86em; background: #f1f3f5; border-radius: 3px; padding: 0 3px; word-break: break-all; }
math { font-family: "Cambria Math", "STIX Two Math", "Latin Modern Math", "Times New Roman", serif; font-size: 1.08em; }
math[display="block"] { margin: 6px 0; overflow-x: auto; overflow-y: hidden; max-width: 100%; }

/* 顶栏 */
.topbar { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--line); height: var(--top); }
.topbar-in { max-width: 1320px; margin: 0 auto; height: 100%; display: flex; align-items: center; gap: 18px; padding: 0 24px; }
.brand { font-family: var(--serif); font-size: 16px; color: var(--fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
.brand:hover { text-decoration: none; color: var(--acc); }
.brand .bs { display: none; }
.boards { display: flex; gap: 2px; margin-left: auto; overflow-x: auto; scrollbar-width: none; flex: 0 0 auto; }
.boards::-webkit-scrollbar { display: none; }
.boards a { color: var(--muted); font-size: 13.5px; padding: 6px 10px; border-radius: 4px; white-space: nowrap; }
.boards a:hover { background: var(--soft); text-decoration: none; color: var(--fg); }
.boards a[aria-current="page"] { color: var(--fg); background: var(--soft); font-weight: 600; }
.boards a.todo { color: var(--faint); }

/* 全局切换 */
.gctl { background: #fbfcfd; border-bottom: 1px solid var(--line); position: sticky; top: var(--top); z-index: 19; }
.gctl-in { max-width: 1320px; margin: 0 auto; padding: 7px 24px; display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; font-size: 13px; }
.gctl-l { color: var(--muted); }
.seg { display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 2px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.seg button { font: inherit; font-size: 13px; color: var(--muted); background: transparent; border: 0; border-radius: 3px; padding: 2px 10px; cursor: pointer; white-space: nowrap; }
.seg button:hover { color: var(--fg); }
.seg button[aria-pressed="true"] { background: var(--acc); color: #fff; }
.seg button:disabled { opacity: .4; cursor: default; }

/* 页面框架 */
.crumb { max-width: 1320px; margin: 0 auto; padding: 14px 24px 0; font-size: 13px; color: var(--muted); }
.crumb a { color: var(--muted); }
.crumb b { color: var(--fg); font-weight: 500; }
.layout { max-width: 1320px; margin: 0 auto; padding: 8px 24px 48px; display: grid; grid-template-columns: 228px minmax(0, 1fr); gap: 28px; align-items: start; }
.toc { position: sticky; top: calc(var(--top) + 54px); max-height: calc(100vh - var(--top) - 70px); overflow: auto; font-size: 13.5px; padding: 6px 0; }
.toc-h { font-family: var(--serif); font-size: 15px; margin: 0 0 6px; padding: 0 10px; }
.toc a { display: block; color: var(--muted); padding: 3px 10px; border-left: 2px solid transparent; line-height: 1.5; }
.toc a:hover { color: var(--fg); text-decoration: none; background: #fff; }
.toc a.l3 { padding-left: 24px; font-size: 13px; }
.toc a.on { color: var(--fg); border-left-color: var(--acc); background: #fff; }
.toc summary { display: none; }
main { min-width: 0; }
.page-h h1 { font-family: var(--serif); font-weight: 400; font-size: 27px; margin: 6px 0 4px; line-height: 1.35; }
.page-h .sub { color: var(--muted); margin: 0 0 18px; font-size: 14px; max-width: 80ch; }
.sec { margin: 0 0 30px; }
.sec > h2 { font-family: var(--serif); font-weight: 400; font-size: 22px; margin: 26px 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--line2); }
.sec > h3, .sub-h { font-family: var(--serif); font-weight: 400; font-size: 18.5px; margin: 22px 0 8px; }
.lead { color: var(--muted); margin: 0 0 14px; max-width: 86ch; }
.pager { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 36px; border-top: 1px solid var(--line); padding-top: 18px; }
.pager a { display: block; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 12px 16px; color: var(--fg); }
.pager a:hover { border-color: var(--acc); text-decoration: none; }
.pager .k { display: block; font-size: 12px; color: var(--muted); }
.pager .n { font-family: var(--serif); font-size: 16px; }
.pager .nx { text-align: right; grid-column: 2; }
.foot { max-width: 1320px; margin: 0 auto; padding: 0 24px 30px; font-size: 12px; color: var(--faint); }

/* 卡片与图 */
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 18px 22px; margin: 0 0 16px; min-width: 0; }
.fig { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 16px 20px 12px; margin: 0 0 16px; min-width: 0; }
.fig-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 6px 14px; }
.fig h4 { font-family: var(--serif); font-weight: 400; font-size: 16.5px; margin: 0; line-height: 1.45; }
.fig h4 .no { font-family: var(--sans); font-weight: 600; font-size: 14px; margin-right: .6em; }
.paper { font-size: 12px; color: var(--acc); background: var(--soft); border-radius: 4px; padding: 1px 7px; white-space: nowrap; }
.paper.none { color: var(--faint); background: #f3f4f6; }
.note { font-size: 13px; color: var(--muted); margin: 4px 0 8px; }
.ctl { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin: 4px 0 8px; font-size: 13px; }
.ctl .l { color: var(--muted); }
.chart { position: relative; min-height: 120px; }
.chart > svg { display: block; overflow: visible; font-family: var(--sans); }
.chart.map > svg { overflow: hidden; touch-action: none; cursor: grab; }
.chart.map > svg:active { cursor: grabbing; }
.src { font-size: 12px; color: var(--muted); margin: 8px 0 0; padding-top: 6px; border-top: 1px solid var(--line); }
.export { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 6px; margin-top: 6px; font-size: 12px; color: var(--muted); }
.export button { font: inherit; color: var(--fg); background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 1px 9px; cursor: pointer; }
.export button:hover { border-color: var(--muted); }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 430px), 1fr)); gap: 16px; }
.grid2 > .fig, .grid2 > .panel { margin: 0; }
.grid2 + .fig, .grid2 + .panel, .grid2 + .grid2 { margin-top: 16px; }

/* SVG 文字 */
.tk { fill: var(--muted); font-size: 11.5px; }
.lb { fill: var(--fg); font-size: 11.5px; }
.lb-b { fill: var(--fg); font-size: 12px; font-weight: 600; }
.at { fill: var(--fg); font-size: 12px; }
.grat { stroke: var(--muted); stroke-opacity: .25; stroke-width: .6; stroke-dasharray: 2 3; pointer-events: none; }
.frame-tick { stroke: var(--fg); stroke-width: 1; }
.coord { fill: var(--muted); font-size: 10px; paint-order: stroke; stroke: #fff; stroke-width: 3px; stroke-linejoin: round; pointer-events: none; }
.north { fill: #fff; stroke: var(--fg); stroke-width: 1; }
.north-h { fill: var(--fg); }
.scale-a { fill: var(--fg); } .scale-b { fill: #fff; } .scale-o { stroke: var(--fg); stroke-width: 1; }
.neat { fill: none; stroke: var(--fg); stroke-width: 1.2; pointer-events: none; }
.map-lbl { font-size: 11.5px; fill: var(--fg); paint-order: stroke; stroke: #fff; stroke-width: 3px; stroke-linejoin: round; pointer-events: none; }
.map-prov { font-size: 14px; fill: var(--muted); opacity: .5; letter-spacing: .3em; pointer-events: none; }

/* 图例 */
.legend { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 12px; color: var(--muted); margin: 6px 0 0; }
.legend .i { display: inline-flex; align-items: center; gap: 6px; }
.legend .i > i { width: 10px; height: 10px; display: inline-block; flex: none; }
.legend .i > svg { flex: none; }
.legend .grad { width: 110px; height: 9px; border: 1px solid var(--line); display: inline-block; flex: none; }

/* 缩放按钮、提示框 */
.zoom { position: absolute; top: 8px; right: 8px; display: flex; flex-direction: column; gap: 2px; z-index: 3; }
.zoom button { font: inherit; width: 28px; height: 28px; line-height: 1; color: var(--fg); background: #fff; border: 1px solid var(--line2); border-radius: 4px; cursor: pointer; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.zoom button:hover { background: var(--bg); }
.tip { position: absolute; z-index: 5; pointer-events: none; background: #fff; border: 1px solid var(--line2); border-radius: 5px; box-shadow: 0 4px 14px rgba(0,0,0,.12); padding: 6px 9px; font-size: 12px; min-width: 9rem; max-width: 20rem; }
.tip[hidden] { display: none; }
.tip .h { color: var(--muted); margin-bottom: 2px; }
.tip .r { display: flex; align-items: center; gap: 6px; font-variant-numeric: tabular-nums; }
.tip .r i { width: 8px; height: 8px; flex: none; }
.tip .r span { flex: 1; color: var(--muted); }
.tip .r b { font-weight: 600; }

/* 数字卡 */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 12px; margin: 0 0 16px; }
.kpi { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 12px 16px; }
.kpi .l { font-size: 12.5px; color: var(--muted); }
.kpi .v { font-family: var(--serif); font-size: 26px; line-height: 1.25; margin: 2px 0; font-variant-numeric: tabular-nums; }
.kpi .v small { font-size: 14px; margin-left: 2px; }
.kpi .s { font-size: 12px; color: var(--muted); }

/* 表格 */
.tbl-wrap { overflow-x: auto; max-width: 100%; }
.tbl { border-collapse: collapse; width: 100%; font-size: 13.5px; }
.tbl th { background: var(--soft); font-weight: 600; text-align: left; padding: 7px 10px; border: 1px solid var(--line); white-space: nowrap; }
.tbl td { border: 1px solid var(--line); padding: 7px 10px; vertical-align: top; }
.tbl td.n, .tbl th.n { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tbl-sm { font-size: 12.5px; }
.tbl-sm th, .tbl-sm td { padding: 4px 8px; }
.tbl.raw td { font-family: var(--mono); font-size: 12px; white-space: nowrap; }
.tbl tr.hl td { background: #fffbe6; }
.scroll-y { max-height: 460px; overflow: auto; }
.scroll-y .tbl th { position: sticky; top: 0; z-index: 1; }

/* 数据卡（1.2–1.4） */
.dcard { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; margin: 0 0 18px; overflow: hidden; }
.dcard-h { padding: 14px 20px 10px; border-bottom: 1px solid var(--line); background: #fbfcfd; }
.dcard-h h4 { font-family: var(--serif); font-weight: 400; font-size: 18px; margin: 0; }
.dcard-h .tag { font-size: 12px; color: #fff; background: var(--acc); border-radius: 4px; padding: 1px 8px; margin-left: 8px; vertical-align: 2px; font-family: var(--sans); }
.dl { display: grid; grid-template-columns: 9.5em minmax(0, 1fr); margin: 0; }
.dl dt { padding: 8px 12px 8px 20px; color: var(--muted); font-size: 13.5px; border-bottom: 1px solid var(--line); background: #fcfcfd; }
.dl dd { margin: 0; padding: 8px 20px 8px 12px; border-bottom: 1px solid var(--line); font-size: 14px; min-width: 0; }
.dl dd p { margin: 0 0 4px; } .dl dd p:last-child { margin: 0; }
.dl dd ul { margin: 2px 0; padding-left: 18px; }
.dcard-figs { padding: 14px 16px 2px; }
.loc { display: inline-block; font-size: 12.5px; background: var(--soft); border-radius: 4px; padding: 0 7px; margin: 1px 4px 1px 0; white-space: nowrap; }
.loc.todo { color: var(--muted); background: #f3f4f6; }
.loc.todo::after { content: "（待做）"; font-size: 11px; color: var(--faint); }

/* 方法、指标条目（板块五） */
.filters { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin: 0 0 12px; font-size: 13px; }
.search { font: inherit; font-size: 13px; padding: 4px 10px; border: 1px solid var(--line2); border-radius: 5px; min-width: 14rem; background: #fff; }
.item { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; margin: 0 0 12px; scroll-margin-top: calc(var(--top) + 60px); }
.item-h { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding: 11px 18px; border-bottom: 1px solid var(--line); background: #fbfcfd; }
.item-h h4 { font-family: var(--serif); font-weight: 400; font-size: 17px; margin: 0; }
.item-h .sym { font-size: 16px; }
.item-h .ref { margin-left: auto; font-size: 12px; color: var(--faint); }
.item .dl dt { padding-left: 18px; }
.item:target { border-color: var(--acc); box-shadow: 0 0 0 2px rgba(68,119,170,.18); }
.f { margin: 0 0 6px; } .f:last-child { margin: 0; }
.f ul { margin: 2px 0 2px; padding-left: 20px; }
.formula-box { background: #fafbfc; border: 1px solid var(--line); border-radius: 6px; padding: 8px 14px; overflow-x: auto; }
.formula-box .nt { font-size: 12.5px; color: var(--muted); margin-top: 2px; }

/* 5.5 沿用预览页 */
ul.notes { margin: 0; padding-left: 20px; } ul.notes li { margin: 4px 0; }
h3.h55 { font-family: var(--serif); font-weight: 400; font-size: 19px; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
h3.h55 .tag { font-family: var(--sans); font-size: 12px; color: #fff; background: var(--acc); border-radius: 4px; padding: 1px 8px; margin-left: 8px; vertical-align: 3px; }
table.fr { border-collapse: collapse; width: 100%; min-width: 980px; font-size: 14px; }
table.fr th { background: var(--soft); font-weight: 600; text-align: left; padding: 10px 12px; border: 1px solid var(--line); white-space: nowrap; }
table.fr td { border: 1px solid var(--line); padding: 12px; vertical-align: top; }
table.fr td:nth-child(1) { width: 15%; font-weight: 600; } table.fr td:nth-child(2) { width: 17%; }
table.fr td:nth-child(3) { width: 46%; } table.fr td:nth-child(4) { width: 22%; }
.lbl { display: inline-block; font-size: 12px; font-weight: 600; color: var(--acc); background: var(--soft); border-radius: 4px; padding: 0 6px; margin-right: 6px; }
.blk { margin: 0 0 8px; } .blk:last-child { margin: 0; } .next { font-weight: 600; }
table.ml { border-collapse: collapse; margin: 6px 0 8px; font-size: 13px; width: 100%; }
table.ml caption { text-align: left; font-weight: 600; font-size: 13px; margin-bottom: 4px; }
table.ml th, table.ml td { border: 1px solid var(--line); padding: 5px 8px; text-align: left; }
table.ml th { background: #f7f8fa; font-weight: 600; } table.ml td.v { font-variant-numeric: tabular-nums; }
.note55 { margin-top: 14px; background: #f7f8fa; border-left: 3px solid var(--acc); border-radius: 4px; padding: 12px 16px; font-size: 14px; }
.note55 h3 { font-family: var(--serif); font-weight: 400; font-size: 16px; margin: 0 0 6px; }
.note55 p { margin: 6px 0; }
.note55 .formula { font-family: "Times New Roman", var(--serif); font-size: 16px; text-align: center; margin: 10px 0; }

/* 主页 */
.hero { background: var(--panel); border-bottom: 1px solid var(--line); }
.hero-in { max-width: 1180px; margin: 0 auto; padding: 42px 24px 30px; }
.hero h1 { font-family: var(--serif); font-weight: 400; font-size: 31px; line-height: 1.4; margin: 0 0 14px; }
.meta { display: flex; flex-wrap: wrap; gap: 6px 32px; font-size: 14px; color: var(--muted); margin: 0 0 16px; }
.meta span b { font-weight: 400; color: var(--fg); display: inline-block; min-width: 8em; border-bottom: 1px solid var(--line2); }
.intro { font-size: 15.5px; max-width: 78ch; margin: 0; }
.home { max-width: 1180px; margin: 0 auto; padding: 26px 24px 50px; }
.home h2 { font-family: var(--serif); font-weight: 400; font-size: 20px; margin: 4px 0 12px; }
.flow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin: 0 0 30px; }
.flow a { position: relative; display: block; background: var(--soft); color: var(--fg); padding: 12px 22px 12px 26px; min-height: 76px; clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%, 14px 50%); margin-right: -6px; }
.flow a:first-child { clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%); padding-left: 16px; }
.flow a:nth-child(2) { background: #dde8f3; } .flow a:nth-child(3) { background: #cbdcec; } .flow a:nth-child(4) { background: #b7cfe6; } .flow a:nth-child(5) { background: #a3c1df; }
.flow a:hover { text-decoration: none; filter: brightness(.97); }
.flow .k { display: block; font-size: 12px; color: var(--muted); }
.flow .t { display: block; font-family: var(--serif); font-size: 15px; line-height: 1.4; }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 16px; }
.card { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 18px 20px 16px; display: flex; flex-direction: column; }
.card .k { font-size: 12.5px; color: var(--acc); font-weight: 600; }
.card h3 { font-family: var(--serif); font-weight: 400; font-size: 18.5px; margin: 2px 0 6px; line-height: 1.4; }
.card p { font-size: 14px; color: var(--muted); margin: 0 0 12px; flex: 1; }
.card .num { font-family: var(--serif); font-size: 30px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.card .num small { font-size: 15px; margin-left: 3px; }
.card .nl { font-size: 12.5px; color: var(--muted); margin-bottom: 12px; }
.card .go { align-self: flex-start; font-size: 14px; border: 1px solid var(--acc); border-radius: 5px; padding: 4px 14px; }
.card .go:hover { background: var(--acc); color: #fff; text-decoration: none; }
.badge { display: inline-block; font-size: 11.5px; color: var(--muted); background: #f3f4f6; border-radius: 4px; padding: 0 6px; margin-left: 6px; vertical-align: 2px; font-weight: 400; }

/* 数据总览图 */
.ov-node rect { fill: #fff; stroke: var(--line2); }
.ov-node.on rect { stroke: var(--acc); stroke-width: 1.6; }
.ov-link { fill: none; stroke: var(--acc); stroke-opacity: .28; stroke-width: 1.4; }
.ov-link.on { stroke-opacity: .9; stroke-width: 2; }

@media (max-width: 960px) {
  .layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .toc { position: static; max-height: none; background: #fff; border: 1px solid var(--line); border-radius: 8px; margin: 6px 0 14px; padding: 0; }
  .toc summary { display: block; cursor: pointer; padding: 8px 14px; font-size: 14px; }
  .toc .toc-h { display: none; }
  .toc nav { padding: 0 0 8px; }
  .flow { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .flow a, .flow a:first-child { clip-path: none; margin: 0; border-radius: 6px; min-height: 0; padding: 10px 14px; }
}
@media (max-width: 640px) {
  :root { --top: 48px; }
  body { font-size: 14.5px; }
  .topbar-in, .crumb, .layout, .gctl-in, .foot, .home, .hero-in { padding-left: 16px; padding-right: 16px; }
  .brand { font-size: 14px; flex: none; }
  .brand .bf { display: none; } .brand .bs { display: inline; }
  .boards a { padding: 6px 7px; font-size: 13px; }
  .page-h h1 { font-size: 22px; }
  .hero h1 { font-size: 23px; }
  .fig { padding: 12px 12px 10px; }
  .panel { padding: 14px; }
  .dl { grid-template-columns: minmax(0, 1fr); }
  .dl dt { border-bottom: 0; padding: 8px 14px 0; background: none; font-weight: 600; color: var(--fg); }
  .dl dd { padding: 2px 14px 8px; }
  .pager { grid-template-columns: minmax(0, 1fr); }
  .pager .nx { grid-column: 1; }
  .gctl { position: static; }
  html { scroll-padding-top: calc(var(--top) + 8px); }
}
@media print { .topbar, .gctl, .toc, .export, .zoom, .pager { display: none !important; } .layout { display: block; } .fig, .panel { break-inside: avoid; } }
.tbl td:first-child { white-space: nowrap; }

/* ===== 修饰（第 1 批反馈）：标题加粗、深色顶栏、卡片阴影、板块色 ===== */
body[data-page="b1"] { --bc: #4477AA; } body[data-page="b2"] { --bc: #228833; } body[data-page="b3"] { --bc: #B8A12E; }
body[data-page="b4"] { --bc: #E0566A; } body[data-page="b5"] { --bc: #AA3377; }
body { background: #f4f6f9; color: #1f2933; }
.topbar { background: #12304d; border-bottom: 0; box-shadow: 0 2px 10px rgba(18,48,77,.25); }
.brand { color: #fff; font-weight: 700; }
.brand:hover { color: #cfe6ff; }
.boards a { color: #b8cde2; }
.boards a.todo { color: #7f97b0; }
.boards a:hover { background: rgba(255,255,255,.1); color: #fff; }
.boards a[aria-current="page"] { background: var(--bc, #4477AA); color: #fff; }
.gctl { background: #fff; box-shadow: 0 1px 4px rgba(18,48,77,.06); }
.crumb { padding-top: 16px; }
.page-h { border-left: 6px solid var(--bc, #4477AA); background: #fff; border-radius: 10px; padding: 16px 22px 14px; margin: 4px 0 22px; box-shadow: 0 2px 12px rgba(18,48,77,.07); }
.page-h h1 { font-weight: 700; color: #12304d; margin-top: 0; }
.page-h .sub { margin-bottom: 0; color: #4a5562; }
.sec > h2 { font-weight: 700; color: #12304d; border-bottom: 2px solid #e1e6ec; padding-left: 12px; position: relative; }
.sec > h2::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 10px; width: 4px; border-radius: 2px; background: var(--bc, #4477AA); }
.sec > h3, .sub-h { font-weight: 700; color: #1d3f61; padding-bottom: 4px; border-bottom: 1px dashed #d3dae3; }
.lead { color: #4a5562; }
.fig, .panel, .dcard, .item, .kpi { border-color: #e3e8ee; border-radius: 10px; box-shadow: 0 2px 12px rgba(18,48,77,.06); }
.fig h4, .panel h4 { font-weight: 700 !important; color: #12304d; }
.fig h4 .no, .panel h4 .no { color: var(--bc, #4477AA); }
.dcard-h { background: linear-gradient(90deg, #f3f7fb, #fff); border-left: 4px solid var(--bc, #4477AA); }
.dcard-h h4 { font-weight: 700; color: #12304d; }
.dcard-h .tag { background: var(--bc, #4477AA); }
.dl dt { font-weight: 600; color: #4a5562; }
.item-h h4 { font-weight: 700; color: #12304d; }
.kpi .v { font-weight: 700; color: #12304d; }
.kpi { border-top: 3px solid var(--bc, #4477AA); }
.toc-h { font-weight: 700; color: #12304d; }
.toc a.on { font-weight: 600; border-left-color: var(--bc, #4477AA); }
.tbl th { background: #eef3f8; color: #24384d; }
.seg button[aria-pressed="true"] { background: var(--bc, #4477AA); }
.tbl-group td { background: #f6f8fb; font-weight: 700; color: #1d3f61; }
.panel h4 { font-family: var(--serif); font-size: 16.5px; margin: 0; line-height: 1.45; }
.fig h4 .no, .panel h4 .no { font-family: var(--sans); font-weight: 700; font-size: 14px; margin-right: .6em; }

/* 方法清单：编号、名称突出，来源标签 */
.item.method { border-left: 5px solid var(--sc, #4477AA); }
.item.method .item-h { align-items: center; padding: 14px 18px; }
.item.method .item-h h4 { font-size: 19px; color: #12304d; }
.mno { font-family: var(--sans); font-size: 12.5px; font-weight: 700; color: #fff; background: #12304d; border-radius: 4px; padding: 1px 7px; }
.src-tag { display: inline-block; font-size: 12px; font-weight: 600; color: var(--sc); background: color-mix(in srgb, var(--sc) 12%, #fff); border: 1px solid color-mix(in srgb, var(--sc) 45%, #fff); border-radius: 99px; padding: 0 10px; white-space: nowrap; }
.src-ref { margin-left: 8px; font-size: 13px; color: #24384d; }
.src-note { margin-top: 6px; font-size: 13.5px; color: #4a5562; }
.src-types { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 10px; margin: 0 0 14px; }
.src-type { background: #fff; border: 1px solid #e3e8ee; border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: #4a5562; }
.src-type .src-tag { align-self: flex-start; }
.src-type b { color: #12304d; }
.dl dt { white-space: nowrap; }

/* 方法卡（板块二、三、四每张图下方） */
.mcards { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.mcard { border: 1px solid #e3e8ee; border-left: 4px solid var(--sc, #4477AA); border-radius: 8px; background: #fbfcfe; }
.mcard summary { cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 7px 12px; font-size: 13.5px; list-style: none; }
.mcard summary::-webkit-details-marker { display: none; }
.mcard summary::after { content: "展开 ▾"; margin-left: auto; font-size: 12px; color: var(--muted); }
.mcard[open] summary::after { content: "收起 ▴"; }
.mcard summary b { color: #12304d; }
.mcard .dl { border-top: 1px solid #e3e8ee; }
.mcard .dl dt { padding-left: 14px; font-size: 13px; }
.mcard .dl dd { font-size: 13.5px; }
.mc-k { font-size: 12px; font-weight: 700; color: var(--muted); letter-spacing: .05em; }
.mc-link { display: inline-block; margin: 8px 14px 10px; font-size: 13px; }
.mc-ind { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 13px; padding: 2px 2px; }
.mc-ind a { background: #eef3f8; border-radius: 99px; padding: 1px 10px; color: #1d3f61; }
.flow-steps { display: flex; flex-direction: column; gap: 0; }

/* 板块五分组 */
.tbl-sub td { background: #fbfcfd; font-weight: 600; color: #4a5562; padding-left: 18px !important; }
.stage-h { display: flex; align-items: baseline; gap: 10px; font-family: var(--serif); font-weight: 700; font-size: 18px; color: #12304d; margin: 22px 0 10px; padding: 6px 12px; background: #eef3f8; border-radius: 6px; border-left: 4px solid var(--bc, #AA3377); }
.stage-h span { font-family: var(--sans); font-size: 12.5px; font-weight: 400; color: var(--muted); }

/* 板块四：4A 研究结果 / 4B 稳健性检验 的标签 */
.part-tag { display: inline-block; font-family: var(--sans); font-size: 12px; font-weight: 700; color: #fff; border-radius: 4px; padding: 1px 8px; margin-right: 10px; vertical-align: 3px; }
.part-tag.a { background: #E0566A; }
.part-tag.b { background: #EE7733; }
.sec.rob > h2::before { background: #EE7733; }
.sec.rob .fig, .sec.rob .panel { border-top: 3px solid #EE7733; }
.city-sel { font: inherit; }
.paper.pending { color: #8a6d1f; background: #fbf3dc; }
