/* 固定页通用样式（2026-10-20 由 school-page.css 改名）：院校页、党校单校页，以后的问答页、文章页都用这一份。
   页面骨架由 backend/app/services/page_frame.py 生成，规范见 docs/页面骨架规范.md。
   通用部分在前；只属于某一种页面的，放在后面并在注释里写明是哪种页面。 */
.crumb { color: var(--meta); font-size: var(--fs-meta); }
.crumb a { color: var(--meta); }
.s-head h1 { font-family: var(--serif); font-weight: 600; font-size: var(--fs-title); line-height: 1.25; }
/* 校名为主、「在职研究生」降一档，暖赭那一笔留在后缀下面、改细 */
.s-head h1 span { display: inline-block; padding-bottom: 2px; border-bottom: 2px solid var(--mark); font-size: var(--fs-section); font-weight: 400; color: var(--meta); }   /* 宋体只有 600 / 400 两档（design.md §2.2，2026-10-26） */
.s-head .meta { margin-top: 14px; color: var(--meta); font-size: var(--fs-meta); }
.s-head .meta span { white-space: nowrap; }
@media (max-width: 760px) { .s-head .meta span { white-space: normal; } }   /* 手机上「适用：……」长的一项允许折行，不被屏幕边裁（2026-10-23 冷看） */
@media (max-width: 760px) { .s-head .meta .wide-only { display: none; } }   /* 院校页「学校代码」手机上不占抬头（2026-10-25 冷审第 11 条） */
/* 院校页的五省地图（视觉记忆点，ww 2026-10-25）：共用底图 map-5prov.svg 一次下载、各页走缓存，每页只多一个点；只是记号，读屏跳过 */
/* 电脑：整张五省地图淡淡地铺在标题右侧到复试线、难度两张卡后面这一片（ww 2026-10-25：「不要小小的，要某一片区域淡淡的」「要看得出整体轮廓」「往左上挪一点」）。
   地图完整显示、不裁；在内容下面一层（main 单独成层），关键数卡片半透明透出地图；下端停在分隔线之上；不占位置，不推任何内容 */
@media (min-width: 761px) {
  body[data-page="school"] main.wrap:has(.mini-map) { isolation: isolate; }
  .s-head:has(.mini-map) { position: relative; }
  .s-head .mini-map { position: absolute; z-index: -1; top: -85px; right: 140px; height: 325px;   /* ww：再往左靠；多项目的学校卡片下面直接是分隔线，高度收到不碰线 */ aspect-ratio: 1000 / 1535; pointer-events: none; }
  .s-head .mini-map::before { content: ""; position: absolute; inset: 0; opacity: .6; background: url("map-5prov.svg") center / contain no-repeat;   /* ww：浓度调回之前那样淡 */ }
  .s-head .mini-map i { position: absolute; z-index: 1; width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%; background: var(--accent);
    box-shadow: 0 0 0 4px rgba(255,255,255,.9), 0 0 0 6px var(--accent), 0 0 0 16px rgba(58,106,114,.12); }
  body[data-page="school"] main.wrap:has(.mini-map) .facts div { background: rgba(255,255,255,.74); }
}
/* 手机：校名右边一张小图（ww 2026-10-25 看样图认可；校名长的，「在职研究生」换到第二行）；抬头把图整个包住，名字短的学校下面卡片不被挤窄 */
@media (max-width: 760px) {
  .s-head:has(.mini-map) { display: flow-root; }
  .s-head .mini-map { position: relative; float: right; width: 52px; aspect-ratio: 1000 / 1535; margin: 6px 0 4px 12px; background: url("map-5prov.svg") center / contain no-repeat; }
  .s-head .mini-map i { position: absolute; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 2px var(--card), 0 0 0 3.5px var(--accent); }
}
.s-head .lead { margin-top: 14px; max-width: 760px; font-size: var(--fs-body); line-height: 1.8; }
.facts { margin-top: 22px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.facts div { padding: 14px 16px; background: var(--card); border: 0.5px solid var(--border); border-radius: 12px; }
.facts b { display: block; font-family: var(--serif); font-weight: 600; font-size: var(--fs-section); line-height: 1.3; }
.facts small { display: block; margin-top: 4px; }
.facts small { color: var(--meta); font-size: var(--fs-meta); }
h2.sec { margin-top: 40px; padding-top: 14px; border-top: 1px solid var(--rule); font-family: var(--serif); font-weight: 600; font-size: var(--fs-section); line-height: 1.35; }
.tbl-wrap { margin-top: 14px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
table.pj-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: var(--fs-dense); background: var(--card); border: 0.5px solid var(--border); border-radius: 12px; overflow: hidden; }
.pj-table th, .pj-table td { padding: 10px 12px; text-align: left; border-bottom: 0.5px solid var(--divider); vertical-align: top; }
.pj-table th { color: var(--meta); font-weight: 600; font-size: var(--fs-meta); background: var(--paper); white-space: nowrap; }
.pj-table td b { font-weight: 600; }
.pj-table td:nth-child(n+2):not(:nth-child(5)):not(:nth-child(7)) { white-space: nowrap; }
.pj-table td:first-child { min-width: 9em; }
.pj-table td:nth-child(5) { min-width: 9em; }
.pj-table td small { display: block; color: var(--meta); font-size: var(--fs-meta); }
.note { margin-top: 8px; color: var(--meta); font-size: var(--fs-meta); line-height: 1.8; }
/* 细节卡：两栏各自往下排（不按行对齐），收起一张不会在旁边留一大块空；只有一张时占满整行（2026-10-23 冷看，准则二-9、四-5） */
.cards { margin-top: 16px; column-count: 2; column-gap: 14px; }
.cards > * { break-inside: avoid; margin-bottom: 14px; }
.cards:has(> :only-child) { column-count: 1; }
.card { padding: 18px 20px; background: var(--card); border: 0.5px solid var(--border); border-radius: 14px; min-width: 0; }
.card h3 { font-family: var(--serif); font-weight: 600; font-size: var(--fs-item); line-height: 1.4; }
.card h3 small { display: block; margin-top: 2px; font-family: var(--sans); font-weight: 400; color: var(--meta); font-size: var(--fs-meta); }
.card dl { margin-top: 10px; }
/* 党校单校页专业卡（ww 2026-10-22）：可收起；手机上默认收起，只露专业名、招生人数、方向 */
/* 专业卡：标题行（summary）占满卡片上沿，点开后只有它变浅青，内容区保持白底（ww 2026-10-23：和中外合作卡一致，准则二-9） */
.card.dx-major { padding: 0; overflow: hidden; }
.dx-major > summary { position: relative; padding: 18px calc(20px + 4.5em) 18px 20px; list-style: none; cursor: pointer; transition: background .15s ease; }
.dx-major[open] > summary { background: var(--accent-soft); }
.card.dx-major > dl { margin: 0; padding: 6px 20px 16px; }
/* 能展开 / 收起的提示挂在标题这一行，每张卡都有，不靠「方向」那行字（重庆专业没有方向，原来就没有提示，ww 2026-10-22） */
.dx-major > summary::after { content: "展开 ▾"; position: absolute; top: 50%; right: 20px; transform: translateY(-50%); color: var(--meta); font-size: var(--fs-meta); }
.dx-major > summary { display: flex; flex-direction: column; justify-content: center; }
.dx-major[open] > summary::after { content: "收起 ▴"; }
.dx-major > summary::-webkit-details-marker { display: none; }
.dx-major .dx-dir { margin-top: 6px; font-size: var(--fs-dense); line-height: 1.6; }
@media (max-width: 760px) {
  .dx-major > summary { min-height: var(--tap-min); }
  .dx-major > summary { padding: 12px calc(16px + 4.5em) 12px 16px; }   /* 收起时只是一行标题，卡片收紧（ww 2026-10-22） */
  .dx-major > summary::after { right: 16px; }
  .card.dx-major > dl { padding: 4px 16px 14px; }
  /* 手机上小标题在上、内容在下，内容用满整行，不挤成窄条（ww 2026-10-22） */
  .card.dx-major dl div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .card.dx-major dt { padding-top: 0; }
}
.card dl div { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: 10px; padding: 6px 0; border-bottom: 0.5px solid var(--divider); }
.card dt { color: var(--meta); font-size: var(--fs-meta); padding-top: 3px; }
.card dd { font-size: var(--fs-body); line-height: 1.65; overflow-wrap: anywhere; }
.card .more { margin-top: 10px; font-size: var(--fs-body); }
.rules { margin-top: 14px; max-width: 760px; display: grid; gap: 8px; font-size: var(--fs-body); line-height: 1.75; padding-left: 1.2em; }
.src { margin-top: 28px; padding-top: 12px; border-top: 0.5px solid var(--divider); color: var(--meta); font-size: var(--fs-meta); line-height: 1.8; }
/* 站内互链（2026-10-20）：整行可点开院校卡；表头「难度等级」旁的小问号点开一两句说明 */
.pj-table tr.go { cursor: pointer; }
.pj-table tr.go:hover td { background: var(--paper); }
.pj-table td a { color: var(--ink); text-decoration: none; }
.pj-table td a b { border-bottom: 1px dashed var(--meta); }
.tip { position: relative; display: inline-block; margin-left: 4px; vertical-align: 1px; }
.tip summary { list-style: none; display: inline-grid; place-items: center; width: 16px; height: 16px; border: 1px solid var(--meta); border-radius: 50%; font-size: 11px; line-height: 1; cursor: pointer; }
.tip summary::-webkit-details-marker { display: none; }
.tip summary::after { content: ""; position: absolute; inset: -14px; }   /* 透明外扩，手机上好点 */
.tip > span { position: fixed; z-index: 50; width: 240px; padding: 10px 12px; background: var(--band); color: var(--card); border-radius: 8px; font-weight: 400; font-size: var(--fs-meta); line-height: 1.7; white-space: normal; text-align: left; }
.tip > span a { color: var(--card); text-decoration: underline; }
/* 浮窗用 fixed 浮在整页最上层（表格区能左右滑，absolute 会被裁），位置由页面里的小脚本按问号摆 */
/* 党校单校页（backend/app/services/dangxiao_pages.py）多出来的两块：录取线表、报名考试时间 */
table.pj-table.dx-table { min-width: 560px; }
.dx-table thead th[rowspan] { vertical-align: bottom; }
.dx-table th.grp-h { text-align: left; border-bottom: 1px solid var(--border); color: var(--ink); }   /* 组表头：说清下面几列是什么（准则三-9） */
.dx-table td:nth-child(n+2) { white-space: nowrap; }
.pj-table.dx-table td:first-child, .pj-table.dx-table td:nth-child(5) { min-width: 0; }
/* 党校单校页过考率：横条，按 0–100% 画、有底槽；全体平均用浅色，研知道学员用主色（ww 2026-10-22） */
.dx-rates { max-width: 760px; margin-top: 18px; display: grid; gap: 16px; }
.dx-rate p { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.dx-rate span { font-size: var(--fs-body); }
.dx-rate span small { display: block; color: var(--meta); font-size: var(--fs-meta); }
.dx-rate b { font-family: var(--serif); font-weight: 600; font-size: var(--fs-section); line-height: 1.2; white-space: nowrap; }
.dx-rate .dx-track { display: block; height: 10px; margin-top: 6px; border-radius: 999px; background: var(--divider); overflow: hidden; }   /* 底槽 = 100% */
.dx-rate i { display: block; height: 100%; border-radius: 999px; background: var(--accent); }
.dx-rate.avg i { background: var(--nav-soft); }   /* 全体平均用中间色，和底槽、研知道学员的深色都分得开 */
.dx-events { margin-top: 14px; max-width: 760px; }
.dx-events div { display: grid; grid-template-columns: 6em minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 0.5px solid var(--divider); }
.dx-events dt { color: var(--meta); font-size: var(--fs-meta); padding-top: 3px; }
.dx-events dd { font-size: var(--fs-body); line-height: 1.65; }
@media (max-width: 760px) {
  .s-head h1 span { font-size: var(--fs-item); }
  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  h2.sec { font-size: var(--fs-item); }
  .cards { column-count: 1; }
  .card { padding: 16px; }
  .card dd { font-size: var(--fs-dense); }
  /* 党校单校页「N 个专业一览」：手机上五年得分率原来藏在右边要横滑、又没提示（表宽 560、屏宽 343），收紧列宽让一屏放下，专业名不折行（2026-10-25 冷审第 5 条） */
  table.pj-table.dx-table { min-width: 0; font-size: var(--fs-meta); }
  .dx-table th, .dx-table td { padding: 8px 3px; }
  .dx-table th:first-child, .dx-table td:first-child { padding-left: 8px; white-space: nowrap; }
  .dx-table th { white-space: normal; }
}
.pj-table .tag { display: inline-block; margin-left: 4px; padding: 0 5px; border: 0.5px solid var(--mark); border-radius: 4px; font-size: var(--fs-meta); font-weight: 400; color: var(--meta); }
/* 问答页（backend/app/services/wenda_pages.py）：标题是一句问话，字号降一档；首段直答做成答案框；相关问题一行一条 */
body[data-page="wenda"] .s-head h1, body[data-page="wenzhang"] .s-head h1 { font-size: var(--fs-section); line-height: 1.4; max-width: 760px; }
body[data-page="wenda"] .s-head .lead, body[data-page="wenzhang"] .s-head .lead { max-width: 760px; margin-top: 18px; padding: 18px 20px; background: var(--card); border: 0.5px solid var(--border); border-left: 3px solid var(--accent); border-radius: 12px; }
body[data-page="wenda"] h2.sec, body[data-page="wenzhang"] h2.sec { max-width: 760px; }
/* 电脑上「依据」、底部出口、刊尾也收进 760 正文栏，不在页尾突然变宽（2026-10-25 冷审第 19 条） */
body[data-page="wenda"] .src, body[data-page="wenda"] .next, body[data-page="wenda"] .colophon, body[data-page="wenzhang"] .src, body[data-page="wenzhang"] .next, body[data-page="wenzhang"] .colophon { max-width: 760px; }
.qa-p { margin-top: 12px; max-width: 760px; font-size: var(--fs-body); line-height: 1.8; }
table.pj-table.qa-table { min-width: 0; max-width: 760px; }
.pj-table.qa-table td, .pj-table.qa-table td:nth-child(n+2):not(:nth-child(5)):not(:nth-child(7)) { white-space: normal; min-width: 0; }
.pj-table.qa-table td:first-child { min-width: 5em; color: var(--meta); white-space: normal; }
.pj-table.qa-pair td:first-child { color: var(--ink); }   /* 两列并列的正文表，第一列不当标签（ww 2026-10-26） */   /* 至少 5 个字宽，「非全日制」这类短标签不拆字（2026-10-23 冷看）；长的允许换行——原来整列不换行，「适合 | 不太适合」「时间 | 做什么」这类首列长的表在手机上把右列挤成一字一行（ww 2026-10-26） */
.qa-rel { margin-top: 10px; max-width: 760px; list-style: none; padding: 0; }
.qa-rel li a { display: flex; align-items: center; min-height: var(--tap-min); padding: 8px 0; border-bottom: 0.5px solid var(--divider); color: var(--ink); text-decoration: none; font-size: var(--fs-body); }
.qa-rel li a::after { content: "→"; margin-left: auto; padding-left: 12px; color: var(--meta); }
/* 院校页第二版：按专业分组的小标题行（电脑、手机都显示） */
.pj-table tr.grp th { padding: 14px 10px 6px; text-align: left; font-weight: 600; color: var(--band); background: none; border-bottom: 1px solid var(--rule); }
.pj-table tr.grp th small { margin-left: 8px; color: var(--meta); font-weight: 400; font-size: var(--fs-meta); }
/* 院校页第二版「项目一览」（ww 2026-10-22，先只给 school_pages.SLIM 里的学校）：电脑照旧是表；
   手机上每行变一张紧凑小卡，四行：项目名 / 学习方式 · 学制 · 学费 / 复试线 · 难度 · 大专 / 上课方式，不横滑 */
@media (max-width: 760px) {
  .tbl-wrap:has(> .m-cards) { overflow: visible; }
  table.pj-table.m-cards { min-width: 0; width: 100%; }
  .m-cards thead { display: none; }
  .m-cards tbody { display: grid; gap: 8px; }
  .m-cards tr { display: flex; flex-wrap: wrap; align-items: baseline; row-gap: 2px; padding: 10px 14px; background: var(--card); border: 0.5px solid var(--border); border-radius: 12px; }
  .m-cards tr::before { content: ""; order: 2; flex-basis: 100%; height: 0; }   /* 第二、三行之间换行 */
  .m-cards td { padding: 0; border: 0; white-space: nowrap !important; min-width: 0 !important; font-size: var(--fs-dense); line-height: 1.6; }
  .m-cards td:nth-child(1) { order: 0; flex-basis: 100%; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; white-space: normal !important; }
  .m-cards td:nth-child(1) small { display: inline; }
  .m-cards td:nth-child(2), .m-cards td:nth-child(3), .m-cards td:nth-child(4) { order: 1; }
  .m-cards td:nth-child(7) { order: 3; } .m-cards td:nth-child(8) { order: 4; } .m-cards td:nth-child(6) { order: 5; }
  .m-cards td:nth-child(5) { order: 6; flex-basis: 100%; white-space: normal !important; color: var(--meta); font-size: var(--fs-meta); }
  .m-cards td:nth-child(2)::after, .m-cards td:nth-child(3)::after, .m-cards td:nth-child(7)::after, .m-cards td:nth-child(8)::after { content: "·"; margin: 0 8px; color: var(--meta); }
  .m-cards td:nth-child(7)::before { content: attr(data-label) " "; color: var(--meta); }   /* 「2026 复试线」带年份（准则三-4，2026-10-23 冷看） */
  .m-cards td:nth-child(8)::before { content: "难度 "; color: var(--meta); }
  .m-cards td:nth-child(6)::before { content: "大专 "; color: var(--meta); }
  .m-cards td small { font-size: var(--fs-meta); }
  .m-cards tr.grp { display: block; padding: 10px 2px 0; background: none; border: 0; border-radius: 0; }
  .m-cards tr.grp::before { content: none; }
  .m-cards tr.grp th { display: block; padding: 0 2px; border: 0; font-size: var(--fs-body); }
}

/* 问答列表页（ww 2026-10-22）：分类入口 + 问题搜索 + 按决策阶段排的卡片；电脑三列、手机一列，列表里用短名 */
.qa-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.qa-chips a { display: inline-flex; align-items: center; gap: 6px; min-height: var(--tap-min); padding: 6px 16px; border-radius: 999px; background: var(--card); border: 0.5px solid var(--border); color: var(--ink); text-decoration: none; font-size: var(--fs-dense); }
.qa-chips small { color: var(--meta); font-size: var(--fs-meta); }
.qa-find { display: flex; align-items: center; gap: 12px; max-width: 560px; margin-top: 16px; }
.qa-find[hidden] { display: none; }
.qa-find input { flex: 1; min-width: 0; min-height: var(--tap-min); padding: 8px 16px; border: 0.5px solid var(--border); border-radius: 999px; background: var(--card); color: var(--ink); font: inherit; font-size: var(--fs-body); }
.qa-find input:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.qa-find [data-count] { flex: none; color: var(--meta); font-size: var(--fs-meta); }
.qa-none { margin-top: 12px; color: var(--meta); font-size: var(--fs-body); }
.qa-none a { color: var(--band); font-weight: 600; }
.qa-group[hidden], .qa-stage[hidden], .qa-stage li[hidden] { display: none; }
.qa-group { scroll-margin-top: calc(var(--site-header-height) + 16px); }
.qa-group.qa-flash > h2.sec { animation: qa-flash 1.2s ease-out; }
@keyframes qa-flash { 0%, 30% { color: var(--accent); } 100% { color: inherit; } }
@media (prefers-reduced-motion: reduce) { .qa-group.qa-flash > h2.sec { animation: none; } }
.qa-stages { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; align-items: start; }
.qa-col { display: grid; gap: 12px; align-content: start; }
.qa-stage { padding: 4px 16px 6px; background: var(--card); border: 0.5px solid var(--border); border-radius: 14px; }
.qa-stage > summary { display: flex; align-items: center; gap: 8px; min-height: var(--tap-min); margin: -4px -16px 0; padding: 0 16px; border-radius: 14px 14px 0 0; list-style: none; cursor: pointer; transition: background .15s ease; }
/* 阶段块：两种状态都写字，点开后只有标题行变浅青（准则二-9，2026-10-23 冷看） */
.qa-stage > summary::after { content: "展开 ▾"; color: var(--meta); font-size: var(--fs-meta); white-space: nowrap; }
.qa-stage[open] > summary::after { content: "收起 ▴"; }
.qa-stage[open] > summary { background: var(--accent-soft); margin-bottom: 4px; }
.qa-stage:not([open]) > summary { border-radius: 14px; }
.qa-stage > summary h3 { flex: 1; }
.qa-stage > summary::-webkit-details-marker { display: none; }
.qa-stage h3 small { margin-left: auto; color: var(--meta); font-weight: 400; font-size: var(--fs-meta); }
.qa-stage:not([open]) { padding-bottom: 4px; }
.qa-stage h3 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--fs-dense); font-weight: 600; color: var(--band); }
.qa-stage h3 span { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--accent-soft); color: var(--band); font-size: var(--fs-meta); }
.qa-stage ul { list-style: none; margin: 0; padding: 0; }
.qa-stage li a { display: flex; align-items: center; min-height: var(--tap-min); padding: 6px 0; border-top: 0.5px solid var(--divider); color: var(--ink); text-decoration: none; font-size: var(--fs-dense); line-height: 1.5; }
.qa-stage li:first-child a { border-top: 0; }
.qa-stage li a::after { content: "→"; margin-left: auto; padding-left: 10px; color: var(--meta); }
.qa-stage li a:hover { color: var(--band); }
@media (max-width: 760px) { .qa-stages, .qa-col { grid-template-columns: minmax(0, 1fr); gap: 10px; } .qa-stage { padding: 2px 14px 4px; } .qa-stage:not([open]) { padding-bottom: 2px; } .qa-stage > summary { margin: -2px -14px 0; padding: 0 14px; } }
.qa-schools li { display: flex; align-items: center; gap: 12px; border-bottom: 0.5px solid var(--divider); }
.qa-schools li a { flex: none; border-bottom: 0; }
.qa-schools li small { margin-left: auto; color: var(--meta); font-size: var(--fs-meta); text-align: right; }
.qa-schools li a::after { content: none; }
@media (max-width: 760px) {
  body[data-page="wenda"] .s-head h1, body[data-page="wenzhang"] .s-head h1 { font-size: var(--fs-item); }
  body[data-page="wenda"] .s-head .lead, body[data-page="wenzhang"] .s-head .lead { padding: 14px 16px; }
}

/* 问答页两方对比表（.qa-vs）：手机上项目名占一行，两边并排各占一半，不横滑（ww 2026-10-22） */
@media (max-width: 760px) {
  .tbl-wrap:has(> .qa-vs) { overflow: visible; }
  table.pj-table.qa-vs { min-width: 0; }
  .qa-vs, .qa-vs thead, .qa-vs tbody { display: block; }
  .qa-vs tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-bottom: 0.5px solid var(--divider); }
  .qa-vs th, .qa-vs td { border-bottom: 0; padding: 4px 12px 10px; }
  .qa-vs thead th:first-child { display: none; }
  .qa-vs thead th { padding-top: 10px; }
  .qa-vs tbody td:first-child { grid-column: 1 / -1; padding: 10px 12px 0; color: var(--meta); font-size: var(--fs-meta); font-weight: 600; }
  /* 问答页 3 列以上的表（.qa-stack）：手机上一行一张卡片——第一格当卡片标题，其余每格「列名：内容」一行（ww 2026-10-26：原来最窄一列只剩两个字宽） */
  .tbl-wrap:has(> .qa-stack) { overflow: visible; }
  table.pj-table.qa-stack { min-width: 0; background: none; border: 0; }
  .qa-stack, .qa-stack tbody, .qa-stack tr, .qa-stack td { display: block; }
  .qa-stack thead { display: none; }
  .qa-stack tr { margin-top: 10px; padding: 12px 14px; background: var(--card); border: 0.5px solid var(--border); border-radius: 12px; }
  .qa-stack tr:first-child { margin-top: 0; }
  .qa-stack td { padding: 3px 0; border: 0; white-space: normal; min-width: 0; }
  .pj-table.qa-stack td:first-child { padding: 0 0 6px; color: var(--ink); font-weight: 600; font-size: var(--fs-body); }
  .qa-stack td:not(:first-child)[data-label]:not([data-label=""])::before { content: attr(data-label) "："; color: var(--meta); }
}
/* 常见问题搜索：搜的时候藏起分类按钮，只看排好序的结果（ww 2026-10-22） */
.qa-chips[hidden], .qa-hits[hidden] { display: none; }
.qa-hits { margin-top: 12px; }
.qa-hits .qa-hint { padding: 8px 0; color: var(--meta); font-size: var(--fs-meta); }
/* 带学费、上课方式的学校名单：校名一行，下面每个项目一行、左对齐（ww 2026-10-23 择校问答；右对齐挤在一起读不清） */
.qa-schools.qa-detail li { display: block; padding: 8px 0; }
.qa-schools.qa-detail li a { min-height: 0; padding: 0; }
.qa-schools.qa-detail li small { display: block; margin: 2px 0 0; text-align: left; }
.qa-schools.qa-detail li small span { display: block; }
/* 党校单校页专业一览：手机上表要横滑，「专业」一列固定在左边不跟着滑走（2026-10-23 冷看，准则三-12） */
@media (max-width: 760px) {
  .dx-table thead tr:first-child th:first-child, .dx-table tbody td:first-child { position: sticky; left: 0; z-index: 1; background: var(--card); box-shadow: 1px 0 0 var(--divider); }
  .dx-table thead tr:first-child th:first-child { background: var(--paper); }
  table.pj-table.dx-table { overflow: visible; }
  .dx-table thead tr:first-child th:first-child, .dx-table tbody td:first-child { width: 4.5em; min-width: 4.5em; }
  .dx-table th.grp-h span { position: sticky; left: calc(4.5em + 24px); }   /* 组表头跟着停在固定列右边，横滑时不被挡住 */   /* 表格自己裁切（圆角用）会让固定列只在表内固定，手机上不裁 */
}

/* 文章页（/wenzhang/，2026-10-26）：版式同问答页（上面 wenda 那几条都带了 wenzhang），这里只补文章才有的块 */
.wz-h3 { margin-top: 24px; max-width: 760px; font-family: var(--serif); font-weight: 600; font-size: var(--fs-item); line-height: 1.45; }
.wz-steps { margin-top: 14px; max-width: 760px; display: grid; gap: 8px; padding-left: 1.6em; font-size: var(--fs-body); line-height: 1.75; }
.wz-note { margin: 16px 0 0; max-width: 760px; padding: 12px 16px; border-left: 3px solid var(--rule); background: var(--card); color: var(--ink); font-size: var(--fs-body); line-height: 1.75; }
/* 文章列表（ww 2026-11-02：原来标题和摘要同色同字号、条与条之间只有一根细线，糊在一起）：
 * 一篇一张卡，和常见问题的卡同一套（白底、细边、14px 圆角、卡间 12px）；卡里三层：标题（宋体粗）→ 摘要（灰、最多两行）→ 日期 +「读全文 →」 */
.wz-list { margin-top: 20px; max-width: 760px; display: grid; gap: 12px; list-style: none; padding: 0; }
.wz-list li a { display: grid; gap: 10px; padding: 20px 24px; background: var(--card); border: 0.5px solid var(--border); border-radius: 14px; color: var(--ink); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.wz-list li b { font-family: var(--serif); font-weight: 600; font-size: var(--fs-item); line-height: 1.45; }
.wz-list li span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; color: var(--meta); font-size: var(--fs-dense); line-height: 1.7; }
.wz-list li .wz-meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 2px; color: var(--meta); font-size: var(--fs-meta); }
.wz-list li .wz-meta em { color: var(--accent); font-style: normal; font-weight: 600; font-size: var(--fs-dense); white-space: nowrap; }
@media (hover: hover) { .wz-list li a:hover { border-color: var(--accent); box-shadow: 0 4px 14px rgba(30,61,66,.08); } .wz-list li a:hover b { color: var(--accent); } }
.wz-list li a:active { background: var(--paper); }
@media (max-width: 760px) { .wz-list li a { gap: 8px; padding: 16px; } }
