/* 正式B版的任务图解与编辑器；文字始终承担完整语义。 */
.handbook-page, .guide-page { overflow-x: visible; }
.app-body > *, .main-column, #document-content, #quick-content, #guide-content,
.doc-section, .document-chapter, .chapter-content, .subsection, .field-grid > *,
.visual-block, .example-panel, .embedded-reference { min-width: 0; max-width: 100%; }
.main-column { width: 100%; }
.document-title, .section-title, .chapter-heading h2, .record-editor, .guide-study,
.matrix-canvas, .support-note, .student-policy-preview { overflow-wrap: anywhere; }
.field input, .field textarea, .field select, .reference-picker { min-width: 0; max-width: 100%; }
.data-table-wrap, .example-content, .precise-source { min-width: 0; max-width: 100%; overflow-x: auto; }
.data-table-wrap { overscroll-behavior-x: contain; }
.data-table td { overflow-wrap: anywhere; }
.section-head { flex-wrap: wrap; gap: 10px; }
.source-section-button { margin-left: auto; padding: 4px 0; border: 0; background: none; color: var(--muted); text-decoration: underline; text-underline-offset: 4px; font-size: 11px; }
.source-section-button:hover { color: var(--brand); }
.source-reference-dialog .dialog { width: min(880px, calc(100vw - 24px)); }
.original-text, .legacy-notes { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 55vh; overflow: auto; font: 13px/1.9 var(--font-sans); }
.source-reference-meta, .editorial-note { color: var(--muted); font-size: 12px; }
.editorial-note { padding-left: 12px; border-left: 3px solid var(--warning); }
.mobile-progress-toggle { display: none; }

.principle-atlas { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
.principle-atlas > article { grid-column: span 2; padding: 18px; background: var(--paper-muted); border-top: 2px solid var(--ink); min-width: 0; }
.principle-atlas > article:nth-child(-n+2) { grid-column: span 3; }
.principle-atlas header small { color: var(--brand); font-size: 11px; letter-spacing: .04em; }
.principle-atlas h4 { margin: 8px 0 16px; font-size: 16px; line-height: 1.5; }
.principle-atlas p { font-size: 12px; color: var(--muted); line-height: 1.8; }
.alignment-cycle { display: grid; grid-template-columns: 1fr 20px 1fr; gap: 8px; position: relative; padding: 10px; border: 1px solid var(--line-strong); border-radius: 16px; }
.alignment-cycle span { padding: 8px; text-align: center; border: 1px solid var(--line); background: white; font-size: 12px; }
.alignment-cycle b { align-self: center; color: var(--brand); }
.alignment-cycle::after { content: "相互回应"; grid-column: 1 / -1; font-size: 10px; color: var(--muted); text-align: center; }
.boundary-window { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.boundary-window span { padding: 18px 8px; text-align: center; font-size: 12px; background: var(--accent-soft); }
.boundary-window span + span { background: var(--brand-soft); border-left: 2px dashed var(--ink); }
.disclosure-tag { border-bottom: 1px solid var(--ink); margin-top: 12px; padding: 9px 0; font-size: 11px; text-align: center; }
.equivalence-fork { text-align: center; font-size: 12px; }
.equivalence-fork > strong { display: block; padding: 7px; background: white; border: 1px solid var(--line); }
.equivalence-fork > div { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 16px 0; position: relative; }
.equivalence-fork > div::before, .equivalence-fork > div::after { content: ""; position: absolute; top: 0; bottom: 0; border-left: 1px solid var(--brand); left: 25%; }
.equivalence-fork > div::after { left: 75%; }
.equivalence-fork span { position: relative; z-index: 1; padding: 8px 3px; background: var(--accent-soft); }
.equivalence-fork small { font-size: 10px; }
.protected-core { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 20px 10px; border: 2px solid var(--ink); border-radius: 50%; outline: 1px dashed var(--line-strong); outline-offset: 4px; margin: 8px 4px 18px; font-size: 12px; }
.protected-core > span { font-weight: 800; color: var(--brand); font-size: 24px; }
.trace-chain { margin: 0; padding: 0; list-style: none; }
.trace-chain li { padding: 7px 8px 7px 22px; border-left: 1px solid var(--ink); position: relative; font-size: 12px; }
.trace-chain li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--brand); position: absolute; left: -4px; top: 14px; }

.record-workspace { display: grid; grid-template-columns: 180px minmax(0,1fr); border: 1px solid var(--line); margin: 18px 0; }
.record-list { display: flex; flex-direction: column; padding: 10px; gap: 7px; border-right: 1px solid var(--line); background: var(--paper-muted); max-height: 650px; overflow-y: auto; }
.record-list > button:not(.btn) { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 4px 8px; text-align: left; padding: 11px 8px; border: 1px solid transparent; border-left: 3px solid transparent; background: transparent; color: var(--ink-soft); }
.record-list > button[aria-pressed="true"] { background: white; border-color: var(--line); border-left-color: var(--brand); }
.record-list > button > b { color: var(--brand); font-size: 11px; }
.record-list > button > span { font-size: 12px; overflow-wrap: anywhere; }
.record-list > button > small { grid-column: 2; color: var(--muted); }
.record-editor { padding: 22px; min-width: 0; }
.record-editor > header, .evaluation-record > header, .tool-record > header { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.record-editor h4, .record-editor h3, .evaluation-record h4, .tool-record h4 { margin: 0; font-size: 16px; }
.record-editor h5 { margin: 25px 0 12px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; }
.evaluation-records, .tool-records, .readiness-cards { display: grid; gap: 18px; }
.evaluation-record, .tool-record, .readiness-cards > article { padding: 22px; border: 1px solid var(--line); background: var(--paper); min-width: 0; }
.reference-picker { border: 0; margin: 18px 0; padding: 0; }
.reference-picker legend { font-size: 12px; font-weight: 700; margin-bottom: 8px; }
.reference-picker label { display: flex; align-items: baseline; gap: 8px; padding: 6px 0; font-size: 12px; }
.reference-picker input { accent-color: var(--brand); flex: 0 0 auto; }
.reference-picker b { display: inline-block; min-width: 24px; margin-right: 5px; color: var(--brand); }
.reference-warning { padding: 9px; background: var(--warning-soft); color: var(--warning); font-size: 12px; }
.matrix-canvas { display: grid; gap: 14px; }
.matrix-canvas > article { border: 1px solid var(--line); padding: 16px; min-width: 0; }
.matrix-canvas header { display: flex; align-items: baseline; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 12px; }
.matrix-canvas header > b { background: var(--brand-soft); padding: 3px 8px; color: var(--brand); flex-shrink: 0; }
.matrix-canvas header > strong { font-size: 13px; }
.matrix-branches { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 14px 0; }
.matrix-branches > a { padding: 8px 10px; border-left: 2px solid var(--accent); background: var(--paper-muted); font-size: 12px; }
.matrix-branches small { display: block; color: var(--muted); }
.matrix-canvas footer { display: flex; flex-wrap: wrap; gap: 8px; font-size: 11px; color: var(--muted); }
.matrix-canvas footer > span { padding: 2px 8px; border: 1px solid var(--line); }
.matrix-canvas details { margin-top: 10px; font-size: 12px; }
.matrix-canvas summary { cursor: pointer; }
.student-policy-preview { padding: 22px; border-left: 4px solid var(--brand); background: var(--paper-muted); margin: 20px 0; }
.student-policy-preview small { color: var(--brand); text-transform: uppercase; letter-spacing: .1em; }
.student-policy-preview h4 { margin: 10px 0; }
.student-policy-preview dl { display: grid; grid-template-columns: 70px minmax(0,1fr); gap: 9px 14px; font-size: 12px; border-top: 1px solid var(--line); padding-top: 14px; }
.student-policy-preview dd { margin: 0; }
.communication-timeline { border-left: 1px solid var(--ink); margin-left: 7px; padding-left: 25px; }
.communication-timeline > article { position: relative; padding-bottom: 24px; }
.communication-timeline > article::before { content: ""; position: absolute; left: -30px; top: 7px; width: 8px; height: 8px; background: var(--brand); border-radius: 50%; }
.communication-timeline small { color: var(--muted); margin-right: 12px; }
.communication-timeline .field { margin-top: 10px; }
.co-build-paths, .equivalence-caption { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; font-size: 12px; }
.co-build-paths > span, .equivalence-caption > span { padding: 14px; background: var(--paper-muted); border-top: 2px solid var(--accent); }
.equivalence-caption { grid-template-columns: 1fr; text-align: center; }
.readiness-cards h4 { font-size: 14px; margin-top: 0; }
.support-note { margin-bottom: 0; padding: 10px; background: var(--accent-soft); font-size: 12px; }
.scale-legend { color: var(--muted); font-size: 12px; }
.survey-question-list { padding: 0; list-style: none; }
.survey-question-list > li { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.survey-question-list > li > span { font-size: 22px; color: var(--brand); min-width: 30px; }
.survey-question-list strong { font-size: 13px; }
.survey-question-list p { color: var(--muted); font-size: 12px; }
.support-reference { padding-left: 20px; }
.support-reference li { padding: 8px 0; }
.version-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 22px 0; }
.version-comparison > a { display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--line); font-size: 12px; text-decoration: none; }
.version-comparison span { margin-top: 8px; color: var(--muted); }
.resource-purpose { font-size: 12px; }
.compact-role-map { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin: 20px 0; }
.compact-role-map article { padding: 14px; border: 1px solid var(--line); }
.compact-role-map b { font-size: 22px; color: var(--brand); }
.compact-role-map article > div { display: flex; flex-direction: column; gap: 7px; padding: 12px 0; font-size: 12px; }
.compact-role-map small { font-size: 10px; color: var(--muted); }
.safety-boundary { margin: 18px 0; border: 1px solid var(--danger); border-left-width: 4px; padding: 16px; font-size: 12px; }
.safety-boundary span { display: inline-block; border: 1px solid var(--line); padding: 5px 9px; margin: 8px 6px 0 0; }
.safety-boundary p { margin-bottom: 0; }
.weight-bar > span { min-width: 0; }
.weight-segment-0 { background: #8f1d2c; }.weight-segment-1 { background: #0f6f68; }.weight-segment-2 { background: #80634b; }.weight-segment-3 { background: #555f76; }
.check-locate { font-size: 11px; }
.attachment-task-map { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.attachment-task-map > section { padding: 14px; border: 1px solid var(--line); }
.attachment-task-map a { display: inline-block; margin: 4px 8px 4px 0; }
.issue-links { list-style: none; padding: 3px 0 0; margin: 0; }
.progress-list .issue-links li { display: block; }
.progress-list > li > div { min-width: 0; }
.issue-links button { font-size: 10px; text-align: left; color: var(--warning); padding: 3px 0; border: 0; background: transparent; }
.progress-list > li { align-items: flex-start; }
.progress-list a { color: inherit; text-decoration: none; }
.progress-list a:hover { text-decoration: underline; }
#progress-check-kinds, #quick-check-kinds { margin: 16px 0; padding: 12px 0; border-top: 1px solid var(--line); font-size: 11px; }
#progress-check-kinds small, #quick-check-kinds small { color: var(--muted); line-height: 1.6; }

.guide-study { margin: 26px 0; padding: 24px 0; border-top: 1px solid var(--ink); }
.guide-study > header small { color: var(--brand); font-size: 10px; letter-spacing: .06em; }
.guide-study > header h3 { margin: 8px 0 22px; font-size: 20px; line-height: 1.6; }
.guide-study h4 { font-size: 14px; margin: 0 0 12px; }
.guide-process { display: grid; grid-template-columns: repeat(auto-fit,minmax(125px,1fr)); padding: 0; margin: 16px 0; list-style: none; counter-reset: guide-step; }
.guide-process > li { position: relative; display: flex; flex-direction: column; gap: 9px; padding: 14px; border-top: 2px solid var(--brand); border-right: 1px solid var(--line); background: var(--paper-muted); font-size: 12px; min-width: 0; counter-increment: guide-step; }
.guide-process > li::before { content: counter(guide-step,decimal-leading-zero); color: var(--brand); font-size: 10px; }
.guide-process > li:not(:last-child)::after { content: "→"; position: absolute; right: -8px; top: 6px; color: var(--brand); z-index: 1; background: white; }
.guide-process span { color: var(--muted); }
.study-boundary { border-left: 3px solid var(--accent); padding: 9px 14px; background: var(--accent-soft); font-size: 12px; }
.guide-role-split { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.guide-role-split > section { padding: 20px; min-width: 0; }
.guide-role-split > section + section { border-left: 1px solid var(--line); background: var(--paper-muted); }
.guide-role-split ul { padding-left: 17px; font-size: 12px; }
.guide-role-split li { margin: 9px 0; }
.guide-purpose-map, .service-map { border: 1px solid var(--line); padding: 20px; text-align: center; }
.guide-purpose-map > strong, .service-map > strong { display: inline-block; padding: 10px 16px; background: var(--ink); color: white; }
.guide-purpose-map > div, .service-map > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; }
.guide-purpose-map span, .service-map span { display: block; padding: 12px; border: 1px solid var(--line); font-size: 12px; }
.guide-purpose-map footer { margin-top: 16px; color: var(--muted); }
.guide-principle-wheel { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 10px; }
.guide-principle-wheel > strong { grid-column: 1 / -1; padding: 15px; background: var(--ink); color: white; text-align: center; }
.guide-principle-wheel > article { display: flex; flex-direction: column; gap: 10px; border-bottom: 2px solid var(--brand); padding: 14px 8px; background: var(--paper-muted); font-size: 12px; }
.guide-principle-wheel b { color: var(--brand); font-size: 22px; }
.guide-principle-wheel span { font-size: 11px; }
.governance-triad { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.governance-triad article { border-top: 2px solid var(--brand); padding: 16px; background: var(--paper-muted); font-size: 12px; }
.curriculum-map, .quality-map { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.curriculum-map > details, .quality-map > details { border: 1px solid var(--line); padding: 14px; min-width: 0; }
.curriculum-map summary, .quality-map summary { display: flex; align-items: baseline; gap: 10px; cursor: pointer; }
.curriculum-map summary > b, .quality-map summary > b { color: var(--brand); font-size: 23px; }
.curriculum-map summary > small, .quality-map summary > small { margin-left: auto; font-size: 10px; color: var(--muted); }
.curriculum-map ol, .quality-map ol { padding-left: 17px; font-size: 12px; }
.curriculum-map li { margin-left: calc(var(--outline-depth,0) * 12px); }
.quality-map li { padding-bottom: 12px; }
.quality-map li a { display: block; font-size: 10px; margin-top: 4px; }
.reference-check { display: flex; gap: 12px; align-items: flex-start; margin: 14px 0; font-size: 12px; }
.reference-check input { margin-top: 5px; accent-color: var(--brand); }
.guide-role-tabs, .rubric-dimensions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.guide-role-tabs button[aria-pressed="true"], .rubric-dimensions button[aria-pressed="true"] { background: var(--brand); color: white; }
.rubric-comparison > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); }
.rubric-comparison article { padding: 16px; border-right: 1px solid var(--line); font-size: 12px; }
.rubric-comparison b { font-size: 24px; color: var(--brand); }
.policy-clause-map { display: grid; gap: 12px; }
.policy-clause-map details { padding: 16px; border-left: 3px solid var(--brand); background: var(--paper-muted); }
.policy-clause-map summary { cursor: pointer; font-weight: 700; font-size: 14px; }
.policy-clause-map p { font-size: 12px; }
.thesis-gate { padding: 18px; border: 2px solid var(--brand); margin-bottom: 16px; font-size: 13px; }
.thesis-exceptions { margin: 16px 0; padding: 18px; background: var(--warning-soft); border-left: 3px solid var(--warning); font-size: 12px; }
.tool-category-comparison { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.tool-category-comparison article { border: 1px solid var(--line); padding: 20px; }
.tool-category-comparison article > div { font-size: 12px; }
.tool-category-comparison small { color: var(--muted); }
.tool-category-comparison footer { padding-top: 12px; border-top: 1px solid var(--line); color: var(--warning); font-size: 12px; }
.precise-source { border: 1px solid var(--line); padding: 14px; margin-bottom: 22px; font-size: 12px; }
.precise-source > summary { cursor: pointer; color: var(--muted); }
.precise-source[open] > summary { margin-bottom: 20px; }

@media (max-width:1280px) {
  .mobile-progress-toggle { display: inline-flex; padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 4px; background: var(--paper); color: var(--ink); font-size: 12px; }
  .handbook-page .progress-rail.is-open { display: block; position: fixed; inset: 74px 12px 16px auto; z-index: 70; width: min(340px,calc(100vw - 24px)); max-height: none; overflow: auto; box-shadow: var(--shadow); }
}
@media (max-width:900px) {
  .handbook-page .app-body, .guide-page .app-body { display: block; padding: 12px; }
  .handbook-page .sidebar, .guide-page .sidebar { width: auto; max-width: 100%; }
  .guide-page .attachment-index, .guide-page .document-chapter { margin-left: 16px; margin-right: 16px; }
}
@media (max-width:760px) {
  .handbook-page .route-scroll { overflow: visible; }
  .handbook-page .route-map { min-width: 0; width: auto; grid-template-columns: 1fr; }
  .handbook-page .route-map li, .handbook-page .route-map a { min-width: 0; max-width: 100%; }
  .principle-atlas { grid-template-columns: 1fr; }
  .principle-atlas > article, .principle-atlas > article:nth-child(-n+2) { grid-column: 1; }
  .record-workspace { grid-template-columns: 1fr; }
  .record-list { flex-direction: row; max-height: none; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .record-list > button { flex: 0 0 145px; }
  .record-editor, .evaluation-record, .tool-record, .readiness-cards > article { padding: 16px; }
  .matrix-branches, .version-comparison, .attachment-task-map, .co-build-paths { grid-template-columns: 1fr; }
  .compact-role-map { grid-template-columns: 1fr 1fr; }
  .guide-role-split, .governance-triad, .curriculum-map, .quality-map, .tool-category-comparison { grid-template-columns: 1fr; }
  .guide-role-split > section + section { border-left: 0; border-top: 1px solid var(--line); }
  .guide-process { grid-template-columns: 1fr; border-left: 2px solid var(--brand); }
  .guide-process > li { border-top: 0; border-bottom: 1px solid var(--line); }
  .guide-process > li:not(:last-child)::after { content: "↓"; right: 14px; top: auto; bottom: -10px; }
  .guide-principle-wheel { grid-template-columns: 1fr; }
  .guide-principle-wheel > article { display: grid; grid-template-columns: 28px 1fr; border-bottom-width: 1px; }
  .guide-principle-wheel span { grid-column: 2; }
  .guide-purpose-map > div, .service-map > div { grid-template-columns: 1fr; }
  .rubric-comparison > div { grid-template-columns: 1fr 1fr; }
  .guide-study > header h3 { font-size: 18px; }
  .topbar-actions { gap: 5px; }
  .topbar-actions > .btn, .mobile-progress-toggle { padding: 7px 9px; min-width: 0; }
  .brand-title { font-size: 12px; }
  .brand-mark { display: none; }
  .progress-card { padding: 16px; }
  .student-policy-preview dl { grid-template-columns: 1fr; gap: 3px; }
  .student-policy-preview dd { margin-bottom: 10px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.teacher-check-list { display: grid; gap: 0; border: 1px solid var(--line); }
.teacher-check-list > label { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); font-size: 13px; cursor: pointer; }
.teacher-check-list > label:last-child { border-bottom: 0; }
.teacher-check-list input { margin-top: 4px; flex-shrink: 0; accent-color: var(--brand); }
.check-cell { position: relative; }

#quick-progress-list > li { display: block; }
#quick-progress-list > li > a { display: flex; justify-content: space-between; gap: 8px; }
#quick-progress-list > li > a small { color: var(--muted); font-size: 10px; }
.progress-drawer-close { display: none; }
@media (max-width:1280px) { .progress-drawer-close { display: block; margin: 0 0 14px auto; } }
