
/* 生成页专用排版。加载在 styles.css 与 catalog.css 之后。 */
/* 字号一律显式声明：styles.css 末尾那份归一化清单是手写的，不会覆盖新类。 */
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .8rem; color: var(--muted); padding: 22px 0 0 }
.crumbs a { color: var(--blue); text-decoration: none }
.crumbs a:hover { text-decoration: underline }
.crumb-sep { color: #c3cbd9 }
.doc { max-width: 800px; padding: 14px 0 40px }
.doc-wide { max-width: none }
.doc .eyebrow { font-size: .78rem; letter-spacing: .05em; color: var(--blue); margin-bottom: 8px }
.doc h1 { font-size: 1.65rem; line-height: 1.45 }
.doc .doc-lead { font-size: 1rem; color: #52637c; line-height: 1.95; margin-top: 13px }
.doc .doc-updated { font-size: .78rem; color: var(--muted); margin-top: 12px; padding-bottom: 15px; border-bottom: 1px solid var(--line) }
.doc section { margin-top: 30px }
.doc h2 { font-size: 1.15rem; line-height: 1.6; margin-bottom: 12px }
.doc p { font-size: .94rem; line-height: 2; color: #33415c; margin-top: 10px }
.doc a { color: var(--blue) }
.check-list { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 11px }
.check-list li { position: relative; padding-left: 16px; font-size: .94rem; line-height: 2; color: #33415c }
.check-list li::before { content: ''; position: absolute; left: 0; top: .86em; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); opacity: .5 }
.check-list strong { color: var(--ink); font-weight: 600; margin-right: 4px }
.doc-note { font-size: .875rem; line-height: 1.95; color: #6b5320; background: #fff8e6; border: 1px solid #f0dfae; border-radius: 12px; padding: 14px 17px; margin-top: 14px }
.doc-fine { font-size: .8rem; line-height: 1.9; color: var(--muted) }
.entry-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-top: 4px }
.entry-grid-single { grid-template-columns: 1fr }
.entry-card { background: white; border: 1px solid var(--line); border-radius: 14px; padding: 19px; display: flex; flex-direction: column; gap: 9px }
.entry-top { display: flex; align-items: center; justify-content: space-between; gap: 9px; color: var(--blue); font-size: .75rem }
.entry-top .icon { width: 17px; height: 17px }
.entry-card h3 { font-size: .98rem; line-height: 1.65 }
.entry-card p { font-size: .875rem; color: var(--muted); line-height: 1.9; margin: 0; flex: 1 }
.entry-card > a { font-size: .875rem; font-weight: 600; color: var(--blue); text-decoration: none; display: flex; align-items: center; gap: 6px }
.entry-card > a:hover { text-decoration: underline }
.entry-card > a .icon { width: 16px; height: 16px }
.entry-meta { font-size: .75rem; color: var(--muted); line-height: 1.75; border-top: 1px solid var(--line); padding-top: 10px; overflow-wrap: anywhere }
.fee-table-wrap { overflow-x: auto; margin-top: 4px }
.fee-table { width: 100%; border-collapse: collapse; background: white; font-size: .875rem }
.fee-table th, .fee-table td { border: 1px solid var(--line); padding: 11px 13px; text-align: left; vertical-align: top; line-height: 1.85 }
.fee-table thead th { background: #eef2fa; font-size: .78rem; color: #4a5872; white-space: nowrap }
.fee-table tbody th { white-space: nowrap; background: #fafbfe }
.fee-table .basis { font-size: .78rem; color: var(--muted) }
.doc-faq details { background: white; border: 1px solid var(--line); border-radius: 12px; padding: 14px 17px; margin-top: 10px }
.doc-faq summary { font-size: .94rem; font-weight: 600; color: var(--ink); cursor: pointer; line-height: 1.75 }
.doc-faq summary::marker { color: var(--blue) }
.doc-faq p { margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--line); font-size: .9rem; line-height: 1.95 }
.doc-next ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px }
.doc-next li { font-size: .9rem; line-height: 1.85 }
.prov-grid { list-style: none; margin: 4px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px }
.prov-grid a { display: block; background: white; border: 1px solid var(--line); border-radius: 11px; padding: 12px 13px; text-decoration: none; height: 100% }
.prov-grid a:hover { border-color: #c6d4f5 }
.prov-grid strong { display: block; font-size: .94rem; color: var(--ink) }
.prov-grid span { display: block; font-size: .74rem; color: var(--muted); line-height: 1.7; margin-top: 3px }
.school-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) }
.school-program-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; background: white }
.school-program-table { width: 100%; min-width: 980px; border-collapse: collapse; font-size: .84rem }
.school-program-table th, .school-program-table td { border-bottom: 1px solid var(--line); padding: 11px 12px; text-align: left; vertical-align: top; line-height: 1.75 }
.school-program-table th { background: #eef2fa; color: #4a5872; font-size: .76rem; white-space: nowrap }
.school-program-table tbody tr:last-child td { border-bottom: 0 }
.table-sub { display: block; margin-top: 3px; color: var(--muted); font-size: .7rem; font-weight: 400 }
.source-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px }
.source-list li { border: 1px solid var(--line); border-radius: 11px; background: white; padding: 13px 15px }
.source-list a { display: block; font-size: .9rem; font-weight: 600 }
.source-list span { display: block; font-size: .78rem; color: var(--muted); line-height: 1.8; margin-top: 5px }
.sib { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line) }
.sib h2 { font-size: .94rem; color: var(--ink) }
.sib-cross { font-size: .875rem; color: var(--muted); margin-top: 8px }
.sib-grid { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 12px }
.sib-grid a { font-size: .82rem; color: var(--blue); text-decoration: none }
.sib-grid a:hover { text-decoration: underline }

/* 可信度档案：把“官方硬证据”和“影像辅助证据”放在同一张可追溯的表里。 */
.trust-doc { max-width: 1120px; font-size: 1rem }
.trust-definition { font-size: .94rem; background: linear-gradient(145deg, #f5f8ff 0%, #fff 72%); border: 1px solid #cfdbf7; border-radius: 18px; padding: 22px }
.trust-section-heading { font-size: 1rem; display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 14px }
.trust-section-heading h2 { margin-bottom: 0 }
.trust-kicker { display: block; font-size: .72rem; letter-spacing: .08em; color: var(--blue); font-weight: 700; margin-bottom: 4px }
.trust-status { flex: 0 0 auto; font-size: .72rem; color: #52637c; background: #eef3ff; border: 1px solid #d5dff7; border-radius: 999px; padding: 5px 10px }
.trust-definition-grid { font-size: .9rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px }
.trust-definition-grid article { background: white; border: 1px solid var(--line); border-radius: 13px; padding: 17px }
.trust-definition-grid h3 { font-size: 1rem; margin-top: 7px }
.trust-definition-grid p { font-size: .86rem; line-height: 1.85; margin-top: 8px }
.trust-definition-grid a { font-size: .82rem; font-weight: 650; text-decoration: none }
.trust-route { display: inline-block; font-size: .7rem; color: #3150b9; background: #edf2ff; border-radius: 999px; padding: 4px 8px }
.trust-source-note { font-size: .78rem !important; line-height: 1.8 !important; color: var(--muted) !important; border-top: 1px dashed #d5dff0; padding-top: 12px; margin-top: 13px !important }
.evidence-grid { font-size: .9rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px }
.evidence-grid article { position: relative; background: white; border: 1px solid var(--line); border-radius: 14px; padding: 17px; min-height: 170px }
.evidence-grid h3 { font-size: .98rem; margin-top: 30px }
.evidence-grid p { font-size: .82rem; line-height: 1.85; color: var(--muted); margin-top: 6px }
.evidence-number { position: absolute; top: 15px; left: 17px; font-size: .68rem; font-weight: 750; letter-spacing: .08em; color: #8a97ad }
.evidence-grade { position: absolute; top: 12px; right: 13px; font-size: .68rem; font-weight: 700; border-radius: 999px; padding: 4px 8px }
.grade-a { font-size: .68rem; color: #176247; background: #e8f7f0 }
.grade-b { font-size: .68rem; color: #3150b9; background: #edf2ff }
.grade-c { font-size: .68rem; color: #80601a; background: #fff6db }
.trust-dossier { font-size: .94rem; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 22px }
.dossier-head { font-size: 1rem; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px }
.dossier-head h2 { margin-bottom: 5px }
.dossier-head p { font-size: .84rem; line-height: 1.8; color: var(--muted); max-width: 760px; margin-top: 0 }
.dossier-score { flex: 0 0 120px; font-size: .74rem; text-align: right; color: var(--muted) }
.dossier-score strong { display: block; font-size: 1.65rem; color: var(--blue); line-height: 1.15 }
.dossier-score span { display: block; font-size: .72rem; margin-top: 4px }
.dossier-score small { display: block; font-size: .66rem; margin-top: 3px }
.dossier-facts { font-size: .84rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 18px }
.dossier-facts div { background: #f7f9fd; border: 1px solid #e1e7f1; border-radius: 12px; padding: 13px }
.dossier-facts span { display: block; font-size: .68rem; color: var(--muted) }
.dossier-facts strong { display: block; font-size: .9rem; line-height: 1.55; margin-top: 5px; color: var(--ink) }
.dossier-facts small { display: block; font-size: .7rem; line-height: 1.7; margin-top: 4px; color: var(--muted) }
.official-media-grid { font-size: .85rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px }
.official-media { font-size: .8rem; margin: 0; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #f3f6fb }
.official-media a { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #e8edf6 }
.official-media img { display: block; width: 100%; height: 100%; object-fit: cover }
.official-media figcaption { font-size: .78rem; background: white; padding: 12px 14px }
.official-media figcaption strong { display: block; font-size: .86rem; color: var(--ink) }
.official-media figcaption span { display: block; font-size: .7rem; color: var(--blue); margin-top: 3px }
.official-media figcaption small { display: block; font-size: .68rem; line-height: 1.65; color: var(--muted); margin-top: 4px }
.official-video { grid-column: 1 / -1; font-size: .84rem; display: flex; align-items: center; gap: 14px; color: inherit !important; text-decoration: none; border: 1px solid #cfdafb; border-radius: 14px; padding: 15px 17px; background: #f5f8ff }
.official-video:hover { border-color: var(--blue) }
.official-video strong { display: block; font-size: .9rem; color: var(--ink) }
.official-video small { display: block; font-size: .72rem; color: var(--blue); margin-top: 3px }
.official-video em { display: block; font-size: .7rem; font-style: normal; color: var(--muted); margin-top: 3px }
.video-play { flex: 0 0 auto; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--blue); color: white; font-size: .82rem; padding-left: 2px }
.proof-table-wrap { font-size: .82rem; overflow-x: auto; margin-top: 17px; border: 1px solid var(--line); border-radius: 13px }
.proof-table { font-size: .78rem; width: 100%; min-width: 900px; border-collapse: collapse; background: white }
.proof-table th, .proof-table td { border-bottom: 1px solid var(--line); padding: 11px 12px; text-align: left; vertical-align: top; line-height: 1.7 }
.proof-table thead th { background: #eef2fa; color: #4a5872; font-size: .72rem; white-space: nowrap }
.proof-table tbody th { font-size: .76rem; color: var(--ink); white-space: nowrap }
.proof-table td { font-size: .75rem; color: #526078 }
.proof-table tbody tr:last-child th, .proof-table tbody tr:last-child td { border-bottom: 0 }
.proof-ok { display: inline-block; font-size: .66rem; color: #176247; background: #e8f7f0; border-radius: 999px; padding: 2px 7px; margin-right: 4px }
.proof-pending { display: inline-block; font-size: .66rem; color: #80601a; background: #fff3d2; border-radius: 999px; padding: 2px 7px; margin-right: 4px }
.certificate-boundary { font-size: .94rem; display: grid; grid-template-columns: .85fr 1.15fr; gap: 20px; align-items: start; background: #f8f9fc; border: 1px solid var(--line); border-radius: 18px; padding: 22px }
.certificate-boundary h2 { margin-bottom: 5px }
.certificate-boundary p { font-size: .84rem; line-height: 1.9; margin-top: 5px }
.certificate-links { font-size: .82rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px }
.certificate-links a { font-size: .78rem; color: inherit; text-decoration: none; background: white; border: 1px solid var(--line); border-radius: 11px; padding: 12px }
.certificate-links a:hover { border-color: #bdcbef }
.certificate-links span { display: block; font-size: .65rem; color: var(--blue); font-weight: 700 }
.certificate-links strong { display: block; font-size: .82rem; color: var(--ink); margin-top: 4px }
.certificate-links small { display: block; font-size: .68rem; line-height: 1.65; color: var(--muted); margin-top: 4px }
.trust-source-block { font-size: .9rem }
.trust-scope { font-size: .94rem; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 22px }
.trust-scope > p { font-size: .84rem; line-height: 1.9; color: var(--muted); margin-top: 5px }
.school-trust-index { font-size: .82rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 16px }
.school-trust-index a { display: flex; flex-direction: column; min-height: 154px; padding: 14px; color: inherit; text-decoration: none; background: #f8faff; border: 1px solid #dce4f4; border-radius: 13px }
.school-trust-index a:hover { border-color: #9db2ed; background: #f3f6ff }
.school-trust-index span { font-size: .66rem; color: var(--blue); font-weight: 700 }
.school-trust-index strong { font-size: .94rem; line-height: 1.55; color: var(--ink); margin-top: 6px }
.school-trust-index em { font-size: .7rem; line-height: 1.65; font-style: normal; color: #52637c; margin-top: 5px }
.school-trust-index small { font-size: .66rem; line-height: 1.65; color: var(--muted); margin-top: auto; padding-top: 9px }
.trust-definition-grid-three { font-size: .9rem; grid-template-columns: repeat(3, minmax(0, 1fr)) }
.dossier-head h2 small { font-size: .72rem; color: var(--muted); font-weight: 500; margin-left: 4px }
.dossier-state { flex: 0 0 184px; font-size: .72rem; text-align: right; color: var(--muted); background: #f5f8ff; border: 1px solid #d9e2f7; border-radius: 12px; padding: 11px }
.dossier-state span { display: block; font-size: .65rem; color: var(--blue); font-weight: 700 }
.dossier-state strong { display: block; font-size: .82rem; line-height: 1.55; color: var(--ink); margin-top: 4px }
.dossier-state small { display: block; font-size: .64rem; line-height: 1.55; margin-top: 4px }
.trust-catalog-detail { font-size: .82rem; margin-top: 14px; border: 1px solid #dbe3f3; border-radius: 12px; background: #fbfcff; overflow: hidden }
.trust-catalog-detail summary { font-size: .8rem; font-weight: 650; color: var(--blue); line-height: 1.7; cursor: pointer; padding: 12px 14px }
.trust-catalog-detail summary::marker { color: var(--blue) }
.catalog-levels { font-size: .8rem; display: grid; gap: 9px; padding: 0 14px 13px }
.catalog-level { font-size: .78rem; background: white; border: 1px solid var(--line); border-radius: 10px; padding: 11px 12px }
.catalog-level-head { font-size: .74rem; display: flex; justify-content: space-between; gap: 12px; align-items: baseline }
.catalog-level-head strong { font-size: .82rem; color: var(--ink) }
.catalog-level-head span { font-size: .68rem; color: var(--blue) }
.catalog-level p { font-size: .76rem; line-height: 1.8; margin: 6px 0 0; color: #46546d }
.catalog-level small { display: block; font-size: .66rem; line-height: 1.75; color: var(--muted); margin-top: 5px }
.catalog-boundary { font-size: .68rem !important; line-height: 1.75 !important; color: #6b5320 !important; background: #fff8e6; border-top: 1px solid #f0dfae; margin: 0 !important; padding: 10px 14px }
.official-proof-links { font-size: .8rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px }
.official-proof-links a { display: block; color: inherit; text-decoration: none; background: #f8faff; border: 1px solid #dce4f4; border-radius: 12px; padding: 12px }
.official-proof-links a:hover { border-color: #9db2ed }
.official-proof-links span { display: block; font-size: .65rem; color: var(--blue); font-weight: 700 }
.official-proof-links strong { display: block; font-size: .8rem; line-height: 1.55; color: var(--ink); margin-top: 4px }
.official-proof-links small { display: block; font-size: .66rem; line-height: 1.65; color: var(--muted); margin-top: 4px }
.proof-context { display: inline-block; font-size: .66rem; color: #7a4e14; background: #fff0dc; border-radius: 999px; padding: 2px 7px; margin-right: 4px }
.proof-neutral { display: inline-block; font-size: .66rem; color: #42516a; background: #edf0f5; border-radius: 999px; padding: 2px 7px; margin-right: 4px }
.proof-partial { display: inline-block; font-size: .66rem; color: #3150b9; background: #edf2ff; border-radius: 999px; padding: 2px 7px; margin-right: 4px }
.dossier-check-date { font-size: .68rem !important; line-height: 1.75 !important; color: var(--muted) !important; margin-top: 10px !important }
@media(max-width:900px){ .prov-grid, .school-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) } }
@media(max-width:760px){
  .crumbs { padding-top: 16px }
  .doc { padding-bottom: 28px }
  .doc h1 { font-size: 1.32rem }
  .doc .doc-lead, .doc p, .check-list li { font-size: .9rem; line-height: 1.95 }
  .doc h2 { font-size: 1.05rem }
  .entry-grid { grid-template-columns: 1fr; gap: 12px }
  .prov-grid, .school-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px }
  .fee-table { font-size: .8rem }
  .fee-table th, .fee-table td { padding: 9px 10px }
  .trust-definition { padding: 17px }
  .trust-section-heading { align-items: flex-start; flex-direction: column; gap: 7px }
  .trust-definition-grid, .trust-definition-grid-three, .evidence-grid, .official-media-grid, .certificate-boundary, .certificate-links, .official-proof-links { grid-template-columns: 1fr }
  .dossier-head { flex-direction: column; gap: 10px }
  .dossier-score { flex: none; text-align: left }
  .dossier-state { flex: none; width: 100%; text-align: left }
  .dossier-facts { grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .official-video { grid-column: auto }
  .school-trust-index { grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .school-trust-index a { min-height: 142px }
}
@media(max-width:460px){ .school-trust-index, .dossier-facts { grid-template-columns: 1fr } }
