/**
 * 解析 MD 的通用样式：管理端与用户端共用
 * 不包含 admin 等业务前缀，仅使用 neo-md-* 类名。
 * 左侧目录区域与中间内容区域的 padding/margin/行距 完全独立，互不影响；
 * admin.css 不应再对 neo-md-* 设置 padding/margin，以免影响本文件对 paper 布局的控制。
 *
 * 使用方式：挂载点 class="neo-md-root"，其下 .neo-md-chapter-tree（目录）、.neo-md-content-area > .neo-md-content-body（内容）。
 *
 * 布局变量：一级～四级章节标题、章节内容均可在 .neo-md-root 上覆盖以下变量以定制
 *   标题：--neo-md-h1-font-family / --neo-md-h1-font-size / --neo-md-h1-padding-top / --neo-md-h1-padding-bottom（h2/h3/h4 同理）
 *   章节内容：--neo-md-content-font-family / --neo-md-content-font-size / --neo-md-content-padding-top / --neo-md-content-padding-bottom
 *   图片编号：--neo-md-figcaption-font-family / --neo-md-figcaption-font-size
 *   表题：--neo-md-table-caption-font-family / --neo-md-table-caption-font-size
 *        --neo-md-table-caption-padding-top / --neo-md-table-caption-padding-bottom
 *   代码块：--neo-md-code-font-family / --neo-md-code-font-size / --neo-md-code-bg / --neo-md-code-border
 *          --neo-md-code-line-no-bg / --neo-md-code-line-no-color（行号列背景与文字色）
 */

/* =============================================================================
   左侧目录区域（仅目录区：容器 padding、目录项 padding/margin/行距）
   与中间内容区完全独立，修改此处不影响内容区
   ============================================================================= */
.neo-md-root .neo-md-chapter-tree {
    padding: 12px;
    margin-top: 0;
    margin-bottom: 0;
    font-size: 15px;
}
.neo-md-root .neo-md-chapter-tree .neo-md-chapter-item {
    padding: 6px 8px;
    margin: 0;
    cursor: pointer;
    border-radius: 2px;
    line-height: 1.5;
    font-size: 15px;
}
.neo-md-root .neo-md-chapter-tree .neo-md-chapter-item.neo-md-level-1 { font-weight: 600; }
.neo-md-root .neo-md-chapter-tree .neo-md-chapter-item.neo-md-level-2 { font-weight: normal; padding-left: 14px; }
.neo-md-root .neo-md-chapter-tree .neo-md-chapter-item.neo-md-level-3 { font-weight: normal; padding-left: 20px; }
.neo-md-root .neo-md-chapter-tree .neo-md-chapter-item:hover { background: var(--bg-hover, #f0f0f0); }
.neo-md-root .neo-md-chapter-tree .neo-md-chapter-item.active { background: var(--primary-blue, #0067b8); color: #fff; }

/* =============================================================================
   中间内容区域（仅内容区：容器 padding、正文/标题/章节块 margin/行距）
   与左侧目录区完全独立，修改此处不影响目录区
   ============================================================================= */
/* 一级～四级章节标题的布局变量（可在 .neo-md-root 上覆盖） */
.neo-md-root {
    --neo-md-h1-font-family: SimSun, 宋体, serif;
    --neo-md-h1-font-size: 18pt;
    --neo-md-h1-padding-top: 19px;
    --neo-md-h1-padding-bottom: 4px;
    --neo-md-h2-font-family: SimSun, 宋体, serif;
    --neo-md-h2-font-size: 16pt;
    --neo-md-h2-padding-top: 4px;
    --neo-md-h2-padding-bottom: 4px;
    --neo-md-h3-font-family: SimSun, 宋体, serif;
    --neo-md-h3-font-size: 14pt;
    --neo-md-h3-padding-top: 4px;
    --neo-md-h3-padding-bottom: 4px;
    --neo-md-h4-font-family: SimSun, 宋体, serif;
    --neo-md-h4-font-size: 12pt;
    --neo-md-h4-padding-top: 4px;
    --neo-md-h4-padding-bottom: 4px;
    /* 章节内容（正文段落） */
    --neo-md-content-font-family: SimSun, 宋体, serif;
    --neo-md-content-font-size: 14pt;
    --neo-md-content-padding-top: 10px;
    --neo-md-content-padding-bottom: 10px;
    /* 图片编号（图1、图2…），比正文小一号；仅通用。文档产品弹窗内字号由 admin.css 单独控制 */
    --neo-md-figcaption-font-family: SimSun, 宋体, serif;
    --neo-md-figcaption-font-size: 11pt;
    /* 表题（表号与表名，如「表B-1 各方法…」） */
    --neo-md-table-caption-font-family: SimSun, 宋体, serif;
    --neo-md-table-caption-font-size: 12pt;
    --neo-md-table-caption-padding-top: 25px;
    --neo-md-table-caption-padding-bottom: 4px;
    /* 代码/伪代码块：12px，小于正文。后台由 admin.css 覆盖；用户端内容区/阅读流均为此值 */
    --neo-md-code-font-family: Consolas, "Liberation Mono", Menlo, monospace;
    --neo-md-code-font-size: 12px;
    --neo-md-code-bg: #f5f5f5;
    --neo-md-code-border: #e0e0e0;
    --neo-md-code-line-no-bg: #e8e8e8;
    --neo-md-code-line-no-color: #666;
}
.neo-md-root .neo-md-content-area {
    padding: 16px 24px;
    box-sizing: border-box;
}
.neo-md-root .neo-md-content-area,
.neo-md-root .neo-md-content-area .neo-md-content-body {
    font-family: var(--neo-md-content-font-family);
    font-size: var(--neo-md-content-font-size);
    line-height: 1.5;
    word-break: break-word;
}
.neo-md-root .neo-md-content-area .neo-md-content-body {
    margin: 0;
    padding: 0;
}
/* 章节块：灰底、紧凑上下 padding，避免灰条上下出现大片白隙 */
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    background-color: var(--neo-md-block-bg, #f8f9fa);
    padding-top: 4px !important;
    padding-bottom: 4px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box;
}
/* 去掉块内空行产生的 br，避免标题下方“太大的间隙” */
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block br {
    display: none;
}
/* 段落行间距（上/下）：仅作用于章节正文段落，使用变量 */
.neo-md-root .neo-md-content-area .neo-md-content-body p {
    margin: 2px 0 !important;
    padding-top: var(--neo-md-content-padding-top);
    padding-bottom: var(--neo-md-content-padding-bottom);
    font-size: var(--neo-md-content-font-size);
    line-height: 1.5;
    font-family: var(--neo-md-content-font-family);
}
/* 标题：margin 为 0，行高收紧；字体/字号/上下间距使用变量 */
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block h1,
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block h2,
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block h3,
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block h4,
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block h5,
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block h6 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    line-height: 1.25 !important;
}
/* 文档标题（仅正文区展示，不进入左侧目录）：黑体、与一级标题同字号同字重 */
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-doc-title-wrap,
.neo-md-read-flow .neo-md-doc-title-wrap {
    margin-top: 0;
    margin-bottom: 12px;
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
}
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-doc-title,
.neo-md-read-flow .neo-md-doc-title {
    font-family: SimHei, 黑体, "Microsoft YaHei", "微软雅黑", sans-serif;
    font-size: var(--neo-md-h1-font-size, 18pt);
    font-weight: 800;
    line-height: 1.25;
    margin: 0;
    padding-top: var(--neo-md-h1-padding-top, 19px);
    padding-bottom: var(--neo-md-h1-padding-bottom, 4px);
    text-align: center;
}

/* 一级标题使用支持多字重的无衬线体，font-weight: 800 才能明显加重（SimSun/宋体仅常规字重） */
.neo-md-root .neo-md-content-area .neo-md-content-body h1 {
    font-family: "Microsoft YaHei", "微软雅黑", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
    font-size: var(--neo-md-h1-font-size);
    padding-top: var(--neo-md-h1-padding-top);
    padding-bottom: var(--neo-md-h1-padding-bottom);
    font-weight: 800;
}
.neo-md-root .neo-md-content-area .neo-md-content-body h2 {
    font-family: var(--neo-md-h2-font-family);
    font-size: var(--neo-md-h2-font-size);
    padding-top: var(--neo-md-h2-padding-top);
    padding-bottom: var(--neo-md-h2-padding-bottom);
    font-weight: bold;
}
.neo-md-root .neo-md-content-area .neo-md-content-body h3 {
    font-family: var(--neo-md-h3-font-family);
    font-size: var(--neo-md-h3-font-size);
    padding-top: var(--neo-md-h3-padding-top);
    padding-bottom: var(--neo-md-h3-padding-bottom);
    font-weight: bold;
}
.neo-md-root .neo-md-content-area .neo-md-content-body h4,
.neo-md-root .neo-md-content-area .neo-md-content-body h5,
.neo-md-root .neo-md-content-area .neo-md-content-body h6 {
    font-family: var(--neo-md-h4-font-family);
    font-size: var(--neo-md-h4-font-size);
    padding-top: var(--neo-md-h4-padding-top);
    padding-bottom: var(--neo-md-h4-padding-bottom);
    font-weight: bold;
}
.neo-md-root .neo-md-content-area img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}
/* 文档规范图号：图片与图例居中，使用变量字体与字号（图例小一号） */
.neo-md-root .neo-md-content-area .neo-md-figure {
    margin: 1em 0;
    text-align: center;
}
.neo-md-root .neo-md-content-area .neo-md-figure img {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}
.neo-md-root .neo-md-content-area .neo-md-figcaption {
    font-family: var(--neo-md-figcaption-font-family);
    font-size: var(--neo-md-figcaption-font-size);
    text-align: center;
    margin-top: 8px;
    color: #333;
}
/* 代码/伪代码块：左列行号、右列代码，双背景（通用内容区正常字号；缩小仅文档产品弹窗内见下方 .admin-paper-modal / .author-paper-modal） */
.neo-md-content-area .neo-md-pre,
.neo-md-root .neo-md-content-area .neo-md-pre {
    margin: 0.8em 0;
    display: flex;
    border: 1px solid var(--neo-md-code-border, #e0e0e0);
    border-radius: 4px;
    overflow: hidden;
    box-sizing: border-box;
    font-family: var(--neo-md-code-font-family, Consolas, "Liberation Mono", Menlo, monospace);
    font-size: var(--neo-md-code-font-size, 12px);
    line-height: 1.5;
}
.neo-md-content-area .neo-md-code-line-nos,
.neo-md-root .neo-md-content-area .neo-md-code-line-nos {
    flex-shrink: 0;
    min-width: 2.5em;
    padding: 10px 8px 10px 12px;
    background-color: var(--neo-md-code-line-no-bg, #e8e8e8);
    color: var(--neo-md-code-line-no-color, #666);
    text-align: right;
    white-space: pre;
    user-select: none;
    border-right: 1px solid var(--neo-md-code-border, #e0e0e0);
}
.neo-md-content-area .neo-md-pre .neo-md-code,
.neo-md-root .neo-md-content-area .neo-md-pre .neo-md-code {
    flex: 1;
    margin: 0;
    padding: 10px 12px 10px 10px;
    background-color: var(--neo-md-code-bg, #f5f5f5);
    color: #333;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-x: auto;
}

/* 表题（表格上方的表号与表名）：专用字体、字号、上下留白，且必须居中；选择器需高于 .neo-md-content-body p 才能生效 */
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block p.neo-md-table-caption {
    font-family: var(--neo-md-table-caption-font-family, SimSun, 宋体, serif);
    font-size: var(--neo-md-figcaption-font-size, 12pt) !important;
    padding-top: var(--neo-md-table-caption-padding-top, 25px);
    padding-bottom: var(--neo-md-table-caption-padding-bottom, 4px);
    text-align: center !important;
    text-align-last: center !important;
    margin: 0 !important;
    color: #333;
}

/* GFM 表格：宽度 80%、居中、边框（通用内容区正常字号、表头左对齐；缩小+表头居中仅文档产品弹窗内见下方 .admin-paper-modal / .author-paper-modal） */
.neo-md-content-area .neo-md-table,
.neo-md-root .neo-md-content-area .neo-md-table {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
    border-collapse: collapse;
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    padding-bottom: 15px;
    font-size: var(--neo-md-content-font-size, 14pt);
    font-family: var(--neo-md-content-font-family, SimSun, 宋体, serif);
}
/* 表题正下方的表格：缩小上边距 */
.neo-md-content-area .neo-md-content-body .neo-md-chapter-block p.neo-md-table-caption + .neo-md-table,
.neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-chapter-block p.neo-md-table-caption + .neo-md-table {
    margin-top: 4px;
}
.neo-md-content-area .neo-md-table th,
.neo-md-content-area .neo-md-table td,
.neo-md-root .neo-md-content-area .neo-md-table th,
.neo-md-root .neo-md-content-area .neo-md-table td {
    border: 1px solid var(--neo-md-code-border, #e0e0e0);
    padding: 6px 10px;
    text-align: left;
    vertical-align: top;
}
.neo-md-content-area .neo-md-table thead th,
.neo-md-root .neo-md-content-area .neo-md-table thead th {
    background-color: var(--neo-md-code-line-no-bg, #e8e8e8);
    font-weight: 600;
    text-align: left;
}
/* 数字类列：由 neo_markdown 渲染时根据单元格内容动态添加 .neo-md-table-num，整列居中对齐 */
.neo-md-content-area .neo-md-table th.neo-md-table-num,
.neo-md-content-area .neo-md-table td.neo-md-table-num,
.neo-md-root .neo-md-content-area .neo-md-table th.neo-md-table-num,
.neo-md-root .neo-md-content-area .neo-md-table td.neo-md-table-num {
    text-align: center;
}
.neo-md-content-area .neo-md-table tbody tr:nth-child(even),
.neo-md-root .neo-md-content-area .neo-md-table tbody tr:nth-child(even) {
    background-color: rgba(0, 0, 0, 0.02);
}

/* 文档产品弹窗：正文字号与左侧目录项（含二级）同为 15px；三级标题=正文；二级+2px、一级再+2px；一至三级标题微软雅黑/黑体，正文宋体（管理端 .admin-paper-modal，创客端 .author-paper-modal） */
.admin-paper-modal .neo-md-root,
.author-paper-modal .neo-md-root {
    --neo-paper-modal-body-size: 15px;
    --neo-md-heading-font: "Microsoft YaHei", "微软雅黑", SimHei, 黑体, "Heiti SC", "PingFang SC", sans-serif;
    --neo-md-h1-font-size: calc(var(--neo-paper-modal-body-size) + 4px);
    --neo-md-h1-font-family: var(--neo-md-heading-font);
    --neo-md-h2-font-size: calc(var(--neo-paper-modal-body-size) + 2px);
    --neo-md-h2-font-family: var(--neo-md-heading-font);
    --neo-md-h3-font-size: var(--neo-paper-modal-body-size);
    --neo-md-h3-font-family: var(--neo-md-heading-font);
    --neo-md-h4-font-size: var(--neo-paper-modal-body-size);
    --neo-md-h4-font-family: SimSun, 宋体, NSimSun, STSong, serif;
    --neo-md-content-font-size: var(--neo-paper-modal-body-size);
    --neo-md-content-font-family: SimSun, 宋体, NSimSun, STSong, serif;
    --neo-md-code-font-size: 12px;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body {
    font-size: var(--neo-paper-modal-body-size) !important;
    font-family: var(--neo-md-content-font-family) !important;
}
.admin-paper-modal .neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-doc-title,
.author-paper-modal .neo-md-root .neo-md-content-area .neo-md-content-body .neo-md-doc-title {
    font-family: var(--neo-md-heading-font) !important;
    font-size: var(--neo-md-h1-font-size) !important;
}
.admin-paper-modal .neo-md-root .neo-md-content-area .neo-md-content-body h1,
.author-paper-modal .neo-md-root .neo-md-content-area .neo-md-content-body h1 {
    font-family: var(--neo-md-h1-font-family) !important;
    font-size: var(--neo-md-h1-font-size) !important;
    font-weight: 700 !important;
}
.admin-paper-modal .neo-md-root .neo-md-content-area .neo-md-content-body h2,
.author-paper-modal .neo-md-root .neo-md-content-area .neo-md-content-body h2 {
    font-family: var(--neo-md-h2-font-family) !important;
    font-size: var(--neo-md-h2-font-size) !important;
    font-weight: 700 !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block h3,
.admin-paper-modal .neo-md-root .neo-md-content-area.admin-paper-md-content .neo-md-content-body h3,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block h3,
.author-paper-modal .neo-md-root .neo-md-content-area.author-paper-md-content .neo-md-content-body h3 {
    font-family: var(--neo-md-h3-font-family) !important;
    font-size: var(--neo-md-h3-font-size) !important;
    font-weight: 700 !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block h1,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block h1 {
    font-size: var(--neo-md-h1-font-size) !important;
    font-family: var(--neo-md-h1-font-family) !important;
    font-weight: 700 !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block h2,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block h2 {
    font-size: var(--neo-md-h2-font-size) !important;
    font-family: var(--neo-md-h2-font-family) !important;
    font-weight: 700 !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block h4,
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block h5,
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block h6,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block h4,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block h5,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block h6 {
    font-size: var(--neo-paper-modal-body-size) !important;
    font-family: SimSun, 宋体, NSimSun, STSong, serif !important;
    font-weight: 600 !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block p,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block p {
    font-size: var(--neo-paper-modal-body-size) !important;
    font-family: SimSun, 宋体, NSimSun, STSong, serif !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-content-body .neo-md-chapter-block p.neo-md-table-caption,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-content-body .neo-md-chapter-block p.neo-md-table-caption {
    font-size: 12.5pt !important;
    text-align: center !important;
    text-align-last: center !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-table,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-table {
    width: 80% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: var(--neo-paper-modal-body-size, 15px) !important;
    font-family: SimSun, 宋体, NSimSun, STSong, serif;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-table thead th,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-table thead th {
    font-size: var(--neo-paper-modal-body-size, 15px) !important;
    text-align: center !important;
}
.admin-paper-modal .neo-md-content-area.admin-paper-md-content .neo-md-pre,
.author-paper-modal .neo-md-content-area.author-paper-md-content .neo-md-pre {
    font-size: var(--neo-md-code-font-size) !important;
}

/* =============================================================================
   阅读版弹框（左目录、右 A4 纸式内容，右上角打印/关闭）
   管理端与用户端共用，类名统一为 neo-md-read-*
   ============================================================================= */
/* 阅读弹窗挂载在 body 下，不在 .neo-md-root 内，需在此定义图例/代码/表格变量以便 var() 生效 */
.neo-md-read-popup {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.75);
    z-index: 10002;
    align-items: center;
    justify-content: center;
    padding: 0;
    box-sizing: border-box;
    --neo-md-figcaption-font-family: SimSun, 宋体, serif;
    --neo-md-figcaption-font-size: calc(11pt - 1px);
    --neo-md-content-font-size: 15px;
    --neo-md-code-font-family: Consolas, "Liberation Mono", Menlo, monospace;
    --neo-md-code-font-size: 12px;
    --neo-md-code-bg: #f5f5f5;
    --neo-md-code-border: #e0e0e0;
    --neo-md-code-line-no-bg: #e8e8e8;
    --neo-md-code-line-no-color: #666;
    --neo-md-table-caption-font-family: SimSun, 宋体, serif;
    --neo-md-table-caption-font-size: 12pt;
    --neo-md-table-caption-padding-top: 25px;
    --neo-md-table-caption-padding-bottom: 4px;
}
.neo-md-read-popup.neo-md-read-popup-open {
    display: flex;
}
.neo-md-read-popup-inner {
    background: #fff;
    border-radius: 4px;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}
.neo-md-read-header {
    display: flex;
    align-items: stretch;
    flex-shrink: 0;
    padding: 12px 16px;
    border-bottom: 1px solid #e0e0e0;
    background: #fafafa;
    position: relative;
}
.neo-md-read-header-spacer {
    width: 340px;
    min-width: 340px;
    flex-shrink: 0;
    box-sizing: border-box;
}
/* 占满目录右侧整列，按钮 absolute 的参照，避免 max-width:800px 居中条导致图标贴在「白区」右缘而非列右缘 */
.neo-md-read-header-right {
    flex: 1 1 0;
    min-width: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.neo-md-read-header-main {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 800px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    min-height: 44px;
    box-sizing: border-box;
}
.neo-md-read-header-main .neo-md-read-title {
    display: block;
    width: 100%;
    margin: 0;
    box-sizing: border-box;
    font-size: 18px;
    font-weight: 600;
    color: #262626;
    text-align: center;
    padding-left: 88px;
    padding-right: 88px;
}
.neo-md-read-header-right .neo-md-read-header-actions {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
}
.neo-md-read-title {
    font-size: 18px;
    font-weight: 600;
    color: #262626;
}
/* 打印时显示的页眉/页脚（屏幕不显示），仅挂在阅读弹层内，避免影响末级 /paper/read 页 */
.neo-md-read-popup .neo-md-read-print-header,
.neo-md-read-popup .neo-md-read-print-footer {
    display: none;
}
.neo-md-read-print,
.neo-md-read-close {
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #505050;
}
.neo-md-read-print:hover,
.neo-md-read-close:hover {
    background: #e5e5e5;
    color: #262626;
}
.neo-md-read-print svg,
.neo-md-read-close svg {
    width: 24px;
    height: 24px;
}
.neo-md-read-body {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    overflow: hidden;
}
/* 左侧目录可折叠、可拖拽调整宽度（与 loongstar/admin 文档产品右侧折叠条一致） */
.neo-md-read-toc-wrap {
    flex-shrink: 0;
    width: 300px;
    min-width: 0;
    max-width: none;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: width 0.2s ease;
    overflow: hidden;
}
.neo-md-read-toc-wrap.neo-md-read-toc-dragging {
    transition: none !important;
}
.neo-md-read-toc-wrap.neo-md-read-toc-collapsed {
    width: 0 !important;
    min-width: 0 !important;
}
.neo-md-read-toc-wrap .neo-md-read-toc {
    flex: 1;
    min-height: 0;
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 12px 8px;
    font-size: 14px;
}
/* 与 loongstar/admin.html #admin-sidebar-toggle-btn 同结构（admin-sidebar-edge-stack / grip / triangle），未加载 admin.css 时仍可见 */
.neo-md-read-toc-toggle-wrap {
    box-sizing: border-box;
    width: 18px;
    min-width: 18px;
    flex-shrink: 0;
    align-self: stretch;
    height: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;
    border: 0 solid transparent;
    border-left: 1px solid #ececec;
    border-right-width: 0;
    border-top-width: 0;
    border-bottom-width: 0;
    font: inherit;
    color: #9a9a9a;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #fafafa;
    cursor: ew-resize;
    position: relative;
    z-index: 5;
    outline: none;
    box-shadow: none;
    border-radius: 0;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    -webkit-user-select: none;
    touch-action: none;
    appearance: none;
    -webkit-appearance: none;
}
.neo-md-read-toc-toggle-wrap::-moz-focus-inner {
    border: 0;
    padding: 0;
}
.neo-md-read-toc-toggle-wrap:focus:not(:focus-visible) {
    outline: none;
}
.neo-md-read-toc-toggle-wrap.toc-collapsed {
    cursor: pointer;
}
.neo-md-read-toc-toggle-wrap:hover {
    color: #6e6e6e;
    background: #f3f3f3;
}
.neo-md-read-toc-toggle-wrap:active {
    background: #ececec;
}
.neo-md-read-toc-toggle-wrap.neo-md-read-toc-rail-pressed {
    color: #6e6e6e;
    background: #ececec;
}
.neo-md-read-toc-toggle-wrap:focus-visible {
    outline: 2px solid #0067b8;
    outline-offset: -2px;
    z-index: 6;
}
.neo-md-read-toc-toggle-wrap .admin-sidebar-edge-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    pointer-events: none;
    flex-shrink: 0;
}
.neo-md-read-toc-toggle-wrap .admin-sidebar-grip-dots {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.neo-md-read-toc-toggle-wrap .admin-sidebar-grip-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 2px;
}
.neo-md-read-toc-toggle-wrap .admin-sidebar-grip-dot {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    flex-shrink: 0;
    background: radial-gradient(circle at 30% 28%, #ffffff 0%, #dadada 42%, #9a9a9a 88%, #7a7a7a 100%);
    box-shadow:
        0 1px 1px rgba(0, 0, 0, 0.2),
        inset 0 0.5px 1px rgba(255, 255, 255, 0.9);
}
.neo-md-read-toc-toggle-wrap:hover .admin-sidebar-grip-dot {
    background: radial-gradient(circle at 30% 28%, #ffffff 0%, #e4e4e4 42%, #a2a2a2 88%, #828282 100%);
    box-shadow:
        0 1px 1px rgba(0, 0, 0, 0.16),
        inset 0 0.5px 1px rgba(255, 255, 255, 0.95);
}
.neo-md-read-toc-toggle-wrap:active .admin-sidebar-grip-dot {
    background: radial-gradient(circle at 32% 32%, #e8e8e8 0%, #c8c8c8 50%, #888888 100%);
    box-shadow:
        0 0.5px 0.5px rgba(0, 0, 0, 0.18),
        inset 0 1px 2px rgba(0, 0, 0, 0.12);
}
.neo-md-read-toc-toggle-wrap .admin-sidebar-triangle {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    pointer-events: none;
    user-select: none;
}
.neo-md-read-toc-toggle-wrap .admin-sidebar-triangle svg {
    display: block;
    flex-shrink: 0;
    width: calc(100% - 2px);
    max-width: 100%;
    aspect-ratio: 8 / 12;
    height: auto;
    max-height: 40px;
}
.neo-md-read-toc {
    width: 100%;
    box-sizing: border-box;
}
.neo-md-read-toc-item {
    padding: 6px 10px;
    cursor: pointer;
    color: #262626;
    border-radius: 4px;
    white-space: nowrap;
}
.neo-md-read-toc-item:hover {
    background: #e5e5e5;
}
.neo-md-read-toc-item.active {
    background: rgba(0, 103, 184, 0.1);
    color: #0067b8;
}
.neo-md-read-toc-level1 { font-weight: 600; }
.neo-md-read-toc-level2 { padding-left: 16px; font-size: 14px; color: #505050; }
.neo-md-read-main {
    flex: 1;
    min-width: 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: #e8e8e8;
    display: flex;
    justify-content: center;
    padding: 24px 144px;
}
.neo-md-read-pages {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    gap: 24px;
    padding-bottom: 24px;
    box-sizing: border-box;
}
/* 预览单页外层：预留 132% 空间（原 110% 再扩大 20%），内层 A4 放大 132% 显示（页面与字体同步放大） */
.neo-md-read-page-wrap {
    width: 277.2mm;
    height: 392.04mm;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    box-sizing: border-box;
}
.neo-md-read-page-wrap .neo-md-read-page {
    transform: scale(1.32);
    transform-origin: top center;
}
/* 单流排版：所有章节在一个可滚动流内，不拆页；132% 缩放与多页一致 */
.neo-md-read-flow-wrap {
    width: 277.2mm;
    min-height: 392.04mm;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    box-sizing: border-box;
}
.neo-md-read-flow-wrap .neo-md-read-flow {
    transform: scale(1.32);
    transform-origin: top center;
}
.neo-md-read-flow {
    width: 210mm;
    min-height: 297mm;
    padding: 2cm;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
    font-family: SimSun, 宋体, serif;
    font-size: 15px;
    line-height: 1.5;
    color: #262626;
}
/* 单流内章节块：与后台预览一致，一级 18px、二级 16px、三级 15px 黑体，正文 15px 宋体 */
.neo-md-read-flow .neo-md-read-chapter-block-level1 { margin: 0 !important; padding: 9pt 0 !important; padding-left: 10px !important; padding-right: 10px !important; box-sizing: border-box; break-inside: avoid; text-align: left; }
.neo-md-read-flow .neo-md-read-chapter-block-level1 h1 { font-size: 18px; font-family: SimHei, 黑体, "Heiti SC", sans-serif; font-weight: 700; line-height: 1.5; margin: 0 !important; text-align: left; }
.neo-md-read-flow .neo-md-read-chapter-block-level2 { margin: 0 !important; padding: 6pt 0 !important; padding-left: 10px !important; padding-right: 10px !important; box-sizing: border-box; break-inside: avoid; }
.neo-md-read-flow .neo-md-read-chapter-block-level2 h2 { font-size: 16px; font-family: SimHei, 黑体, "Heiti SC", sans-serif; font-weight: 700; line-height: 1.5; margin: 0 !important; }
.neo-md-read-flow .neo-md-read-chapter-block-level3 { margin: 0 !important; padding: 3pt 0 !important; padding-left: 10px !important; padding-right: 10px !important; box-sizing: border-box; break-inside: avoid; }
.neo-md-read-flow .neo-md-read-chapter-block-level3 h3 { font-size: 15px; font-family: SimHei, 黑体, "Heiti SC", sans-serif; font-weight: 700; line-height: 1.5; margin: 0 !important; }
.neo-md-read-flow .neo-md-read-chapter-block:not([class*="level"]) { margin: 0 !important; padding: 4px 10px !important; box-sizing: border-box; break-inside: avoid; }
.neo-md-read-flow .neo-md-read-chapter-block br { display: none; }
.neo-md-read-flow .neo-md-read-chapter-block h1,
.neo-md-read-flow .neo-md-read-chapter-block h2,
.neo-md-read-flow .neo-md-read-chapter-block h3,
.neo-md-read-flow .neo-md-read-chapter-block h4,
.neo-md-read-flow .neo-md-read-chapter-block h5,
.neo-md-read-flow .neo-md-read-chapter-block h6 { margin: 0 !important; line-height: 1.5 !important; text-align: left; }
/* 篇名与章节标题：勿用 break-all 式折断；中文按语义换行，英文在词间换行 */
.neo-md-read-flow .neo-md-doc-title,
.neo-md-read-flow .neo-md-read-chapter-block h1,
.neo-md-read-flow .neo-md-read-chapter-block h2,
.neo-md-read-flow .neo-md-read-chapter-block h3,
.neo-md-read-flow .neo-md-read-chapter-block h4,
.neo-md-read-flow .neo-md-read-chapter-block h5,
.neo-md-read-flow .neo-md-read-chapter-block h6 {
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: manual;
}
.neo-md-read-flow .neo-md-read-chapter-block p { font-size: 15px; font-family: SimSun, 宋体, serif; line-height: 1.5; margin: 12pt 0 !important; text-align: justify; text-align-last: left; }
/* 阅读版：最后一章（参考文献）内容比正文小 2px */
.neo-md-read-flow .neo-md-read-chapter-block:last-child { font-size: 14px; }
.neo-md-read-flow .neo-md-read-chapter-block:last-child p { font-size: 14px !important; }
.neo-md-read-flow .neo-md-read-chapter-block:last-child .neo-md-table { font-size: 13px !important; }
.neo-md-read-flow .neo-md-read-chapter-block:last-child .neo-md-pre { font-size: 12px !important; }
.neo-md-read-flow .neo-md-read-chapter-block:last-child p.neo-md-table-caption { font-size: 12px !important; }
/* 阅读版：图片与图例居中，图例小一号 */
.neo-md-read-flow .neo-md-figure { margin: 1em 0; text-align: center; }
.neo-md-read-flow .neo-md-figure img { display: block; max-width: 100%; height: auto; margin-left: auto; margin-right: auto; }
.neo-md-read-flow .neo-md-figcaption { font-family: var(--neo-md-figcaption-font-family); font-size: var(--neo-md-figcaption-font-size); text-align: center; margin-top: 8px; color: #333; }
/* 阅读版（点击标题弹框 + 用户端 paper/read）：代码/伪代码 12px */
.neo-md-read-flow .neo-md-pre {
    margin: 0.8em 0;
    display: flex;
    border: 1px solid var(--neo-md-code-border, #e0e0e0);
    border-radius: 4px;
    overflow: hidden;
    box-sizing: border-box;
    font-family: var(--neo-md-code-font-family, Consolas, "Liberation Mono", Menlo, monospace);
    font-size: var(--neo-md-code-font-size, 12px) !important;
    line-height: 1.5;
}
.neo-md-read-flow .neo-md-code-line-nos {
    flex-shrink: 0;
    min-width: 2.5em;
    padding: 10px 8px 10px 12px;
    background-color: var(--neo-md-code-line-no-bg, #e8e8e8);
    color: var(--neo-md-code-line-no-color, #666);
    text-align: right;
    white-space: pre;
    user-select: none;
    border-right: 1px solid var(--neo-md-code-border, #e0e0e0);
}
.neo-md-read-flow .neo-md-pre .neo-md-code {
    flex: 1;
    margin: 0;
    padding: 10px 12px 10px 10px;
    background-color: var(--neo-md-code-bg, #f5f5f5);
    color: #333;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-x: auto;
}
/* 阅读版：表题（表格上方表号与表名）比正文小 2px，居中 */
.neo-md-read-flow .neo-md-read-chapter-block p.neo-md-table-caption {
    font-family: var(--neo-md-table-caption-font-family);
    font-size: 14px !important;
    padding-top: var(--neo-md-table-caption-padding-top);
    padding-bottom: var(--neo-md-table-caption-padding-bottom);
    text-align: center !important;
    text-align-last: center !important;
    margin: 0 !important;
    color: #333;
}
/* 阅读版：GFM 表格比正文小 1px，整体居中 */
.neo-md-read-flow .neo-md-table {
    width: 80% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border-collapse: collapse;
    margin-top: 0.8em;
    margin-bottom: 0.8em;
    padding-bottom: 15px;
    font-size: 15px !important;
    font-family: SimSun, 宋体, serif;
}
.neo-md-read-flow .neo-md-read-chapter-block p.neo-md-table-caption + .neo-md-table {
    margin-top: 4px;
}
.neo-md-read-flow .neo-md-table th,
.neo-md-read-flow .neo-md-table td {
    border: 1px solid var(--neo-md-code-border, #e0e0e0);
    padding: 6px 10px;
    text-align: left;
    vertical-align: top;
}
.neo-md-read-flow .neo-md-table thead th {
    background-color: var(--neo-md-code-line-no-bg, #e8e8e8);
    font-weight: 600;
    font-size: 15px !important;
    font-family: SimSun, 宋体, serif;
    text-align: center !important;
}
.neo-md-read-flow .neo-md-table th.neo-md-table-num,
.neo-md-read-flow .neo-md-table td.neo-md-table-num {
    text-align: center;
}
.neo-md-read-flow .neo-md-table tbody tr:nth-child(even) {
    background-color: rgba(0, 0, 0, 0.02);
}
/* 单页：A4 固定 210mm×297mm（多页模式保留样式供打印等），页边距 2cm */
.neo-md-read-page {
    width: 210mm;
    height: 297mm;
    min-height: 297mm;
    padding: 2cm;
    background: #fff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
/* 内容区（页边距内）：页眉区 淡蓝 */
.neo-md-read-page-header {
    flex-shrink: 0;
    height: 24px;
    min-height: 24px;
    margin-bottom: 8px;
    background: #e8f4fc;
    box-sizing: border-box;
}
/* 内容区：正文区 淡米色，字体 12pt 行距 1.5；底部留白足够大，避免最后一行被裁切或压住 */
.neo-md-read-page-content {
    flex: 1;
    min-height: 0;
    overflow: hidden;
    padding: 0 8px 24px;
    background: #fffef8;
    font-family: SimSun, 宋体, serif;
    font-size: 15px;
    line-height: 1.5;
    color: #262626;
    box-sizing: border-box;
}
/* 一级章节：18px 黑体加粗，与用户端阅读/后台预览一致 */
.neo-md-read-page-content .neo-md-read-chapter-block-level1 {
    margin: 0 !important;
    padding: 9pt 0 !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box;
    page-break-inside: avoid;
    text-align: left;
}
.neo-md-read-page-content .neo-md-read-chapter-block-level1 h1 {
    font-size: 18px;
    font-family: SimHei, 黑体, "Heiti SC", sans-serif;
    font-weight: 700;
    line-height: 1.5;
    margin: 0 !important;
    text-align: left;
}
/* 二级章节：16px 黑体加粗 */
.neo-md-read-page-content .neo-md-read-chapter-block-level2 {
    margin: 0 !important;
    padding: 6pt 0 !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box;
    page-break-inside: avoid;
}
.neo-md-read-page-content .neo-md-read-chapter-block-level2 h2 {
    font-size: 16px;
    font-family: SimHei, 黑体, "Heiti SC", sans-serif;
    font-weight: 700;
    line-height: 1.5;
    margin: 0 !important;
}
/* 三级章节：15px 黑体加粗 */
.neo-md-read-page-content .neo-md-read-chapter-block-level3 {
    margin: 0 !important;
    padding: 3pt 0 !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    box-sizing: border-box;
    page-break-inside: avoid;
}
.neo-md-read-page-content .neo-md-read-chapter-block-level3 h3 {
    font-size: 15px;
    font-family: SimHei, 黑体, "Heiti SC", sans-serif;
    font-weight: 700;
    line-height: 1.5;
    margin: 0 !important;
}
/* 其他章节块（无 level 类） */
.neo-md-read-page-content .neo-md-read-chapter-block:not([class*="level"]) {
    margin: 0 !important;
    padding: 4px 10px !important;
    box-sizing: border-box;
    page-break-inside: avoid;
}
.neo-md-read-page-content .neo-md-read-chapter-block br {
    display: none;
}
.neo-md-read-page-content .neo-md-read-chapter-block h1,
.neo-md-read-page-content .neo-md-read-chapter-block h2,
.neo-md-read-page-content .neo-md-read-chapter-block h3,
.neo-md-read-page-content .neo-md-read-chapter-block h4,
.neo-md-read-page-content .neo-md-read-chapter-block h5,
.neo-md-read-page-content .neo-md-read-chapter-block h6 {
    margin: 0 !important;
    line-height: 1.5 !important;
    text-align: left;
}
/* 正文段落：15px 宋体，段前段后 12pt；两端对齐，最后一行左对齐 */
.neo-md-read-page-content .neo-md-read-chapter-block p {
    font-size: 15px;
    font-family: SimSun, 宋体, serif;
    line-height: 1.5;
    margin: 12pt 0 !important;
    text-align: justify;
    text-align-last: left;
}
/* 内容区：页脚区 淡灰，10pt，顶线与页码间隔 4px；与正文区间隙 35px（再下移 15px） */
.neo-md-read-page-footer {
    flex-shrink: 0;
    min-height: 32px;
    height: 40px;
    margin-top: 35px;
    padding: 4px 8px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: SimSun, 宋体, serif;
    font-size: 10pt;
    color: #666;
    background: #f5f5f8;
    border-top: 1px solid #e0e0e0;
    box-sizing: border-box;
}
.neo-md-read-page-footer-note {
    flex: 1;
}
.neo-md-read-page-footer-num {
    flex-shrink: 0;
}
@media print {
    @page {
        size: A4;
        margin: 2cm;
    }
    /* 末级文档页 body.paper-doc-body 不参与全局隐藏，避免与模板 print 规则叠加重算、PDF 空白 */
    body:not(.paper-doc-body) * { visibility: hidden; }
    .neo-md-read-popup,
    .neo-md-read-popup * { visibility: visible; }
    /* 默认页眉页脚：每页顶部显示标题、底部显示站点，避免依赖浏览器打印对话框勾选 */
    .neo-md-read-popup .neo-md-read-print-header,
    .neo-md-read-popup .neo-md-read-print-footer {
        display: block !important;
        visibility: visible;
        position: fixed;
        left: 0;
        right: 0;
        padding: 0 2cm;
        font-size: 10pt;
        line-height: 1.3;
        color: #333;
        background: #fff;
    }
    .neo-md-read-popup .neo-md-read-print-header {
        top: 0;
        height: 1.5cm;
        line-height: 1.5cm;
        border-bottom: 1px solid #999;
    }
    .neo-md-read-popup .neo-md-read-print-footer {
        bottom: 0;
        height: 1.5cm;
        line-height: 1.5cm;
        border-top: 1px solid #999;
    }
    .neo-md-read-popup {
        position: absolute;
        left: 0;
        top: 0;
        right: 0;
        bottom: auto;
        width: 100%;
        min-height: 100%;
        background: #fff;
        padding: 0;
        display: block;
        overflow: visible;
    }
    .neo-md-read-popup-inner {
        max-width: none;
        width: 100%;
        height: auto !important;
        min-height: 0;
        overflow: visible !important;
        box-shadow: none;
    }
    .neo-md-read-header { display: none; }
    .neo-md-read-toc-wrap,
    .neo-md-read-toc-toggle-wrap,
    .neo-md-read-toc { display: none !important; }
    .neo-md-read-body {
        display: block !important;
        overflow: visible !important;
        height: auto !important;
    }
    .neo-md-read-main {
        overflow: visible !important;
        height: auto !important;
        padding: 0;
        background: #fff;
    }
    .neo-md-read-pages {
        box-shadow: none;
        width: 100%;
        min-height: 0;
        gap: 0;
        padding: 0;
    }
    /* 单流排版打印：一级另起一页且整块不拆；二/三级可续排填满当前页，减少半页空白 */
    .neo-md-read-flow-wrap { width: 100%; min-height: 0; transform: none !important; }
    .neo-md-read-flow-wrap .neo-md-read-flow { transform: none !important; width: 100%; min-height: 0; box-shadow: none; }
    .neo-md-read-flow { padding: 0; }
    .neo-md-read-flow .neo-md-read-chapter-block-level1 { break-before: page; page-break-before: always; break-inside: avoid; page-break-inside: avoid; }
    .neo-md-read-flow .neo-md-read-chapter-block-level1:first-child { break-before: auto; page-break-before: auto; }
    /* 仅一级块不拆页；二/三级块允许跨页，以便半页时下一节接排不空白 */
    .neo-md-read-flow .neo-md-read-chapter-block-level2,
    .neo-md-read-flow .neo-md-read-chapter-block-level3,
    .neo-md-read-flow .neo-md-read-chapter-block:not([class*="level"]) { break-inside: auto; page-break-inside: auto; }
    .neo-md-read-flow .neo-md-table,
    .neo-md-read-flow .neo-md-pre,
    .neo-md-read-flow .neo-md-figure { break-inside: avoid; page-break-inside: avoid; }
    /* 表注与紧跟的表格不拆成两页：表格前不插分页 */
    .neo-md-read-flow .neo-md-read-chapter-block p.neo-md-table-caption + .neo-md-table { break-before: avoid; page-break-before: avoid; }
    /* 兼容旧多页结构 */
    .neo-md-read-page {
        width: 100%;
        height: auto;
        min-height: 0;
        padding: 2cm;
        box-shadow: none;
        page-break-after: always;
    }
    .neo-md-read-page-header,
    .neo-md-read-page-content,
    .neo-md-read-page-footer { background: #fff !important; }
    .neo-md-read-page:last-child { page-break-after: auto; }
    .neo-md-read-page-content { padding: 0 8px; overflow: visible !important; }
    .neo-md-read-page-footer { border-top: 1px solid #ccc; }
    /*
     * 末级页动态拉文（Lib_PaperStatic::buildReadDynamicMountHtml）：屏幕用 .paper-read-pages-scroll 内层滚动。
     * 打印时若保留 overflow-y:auto + flex:1 + min-height:0，Chrome/Edge 等常只印滚动视口内一截甚至空白（与是否分段加载无关）。
     * 旧版静态片段无此壳，故「以前能印、现在不行」多由此回归。
     */
    body.paper-doc-body .paper-read-main-stack,
    body.paper-doc-body .paper-read-pages-scroll {
        display: block !important;
        flex: none !important;
        align-self: stretch !important;
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
    }
}

/* 仅动态拉文（带 .paper-read-layout-dynamic）：内层滚动；勿作用于旧静态片段以免 main 无法滚动 */
.paper-preview-fragment.paper-read-layout-dynamic.neo-md-read-body .neo-md-read-right-scroll {
    padding-bottom: 0;
    scroll-padding-bottom: 0;
}
.paper-preview-fragment.paper-read-layout-dynamic.neo-md-read-body .neo-md-read-main {
    overflow-y: hidden;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    padding: 0;
}
.paper-preview-fragment.paper-read-layout-dynamic .paper-read-main-stack {
    flex: 1 1 0;
    min-height: 0;
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    box-sizing: border-box;
}
.paper-preview-fragment.paper-read-layout-dynamic .paper-read-pages-scroll {
    flex: 1 1 0;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    box-sizing: border-box;
    position: relative;
}
/* 首屏：正文白区上沿距滚动视口上沿 15px 露灰，下沿贴滚动视口下沿不露灰；
   滑到底：白区下沿距视口下沿 15px 露灰，上沿贴视口上沿不露灰（由 margin + min-height 保证） */
.paper-preview-fragment.paper-read-layout-dynamic .paper-read-pages-scroll .neo-md-read-pages {
    box-sizing: border-box;
    margin-top: 15px;
    margin-bottom: 15px;
    padding: 0;
    align-self: center;
    flex: 0 0 auto;
    width: 100%;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    background-color: #fff;
    min-height: calc(100% - 15px);
}
/*
 * 动态阅读进度条：fixed 贴视口底；用 margin auto 水平居中（避免与内部动画 transform 叠加歧义），
 * 内部行/文案/轨道相对条宽居中（否则继承后台 flex:1 文案会像贴左）。
 * 管理端 .admin-paper-preview-*，创客端 .author-paper-preview-*。
 */
.paper-preview-fragment.paper-read-layout-dynamic .paper-read-progress-floating:is(.admin-paper-preview-subsequent-loading, .author-paper-preview-subsequent-loading) {
    position: fixed;
    /* 水平中心由 paper_read_dynamic 按 .neo-md-read-main 的 getBoundingClientRect 写入 left(px)+translateX(-50%)；未跑 JS 前回退视口居中 */
    left: 50%;
    right: auto;
    margin-left: 0;
    margin-right: 0;
    transform: translateX(-50%);
    bottom: max(10px, env(safe-area-inset-bottom, 0px));
    z-index: 10020;
    align-self: center;
    width: min(92vw, 400px);
    max-width: 400px;
    margin-top: 0;
    padding: 12px 10px 14px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    background: linear-gradient(to top, #e8e8e8 0%, #e8e8e8 55%, rgba(232, 232, 232, 0.92) 82%, rgba(232, 232, 232, 0.65) 100%);
    border-top: none;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.08);
    border-radius: 10px 10px 0 0;
    pointer-events: none;
}
.paper-preview-fragment.paper-read-layout-dynamic .paper-read-progress-floating:is(.admin-paper-preview-subsequent-loading, .author-paper-preview-subsequent-loading) :is(.admin-paper-preview-subsequent-loading-row1, .author-paper-preview-subsequent-loading-row1) {
    justify-content: center;
    flex-wrap: wrap;
    width: 100%;
}
.paper-preview-fragment.paper-read-layout-dynamic .paper-read-progress-floating:is(.admin-paper-preview-subsequent-loading, .author-paper-preview-subsequent-loading) :is(.admin-paper-preview-subsequent-loading-text, .author-paper-preview-subsequent-loading-text) {
    flex: 0 1 auto;
    text-align: center;
}
.paper-preview-fragment.paper-read-layout-dynamic .paper-read-progress-floating:is(.admin-paper-preview-subsequent-loading, .author-paper-preview-subsequent-loading) :is(.admin-paper-preview-subsequent-loading-track, .author-paper-preview-subsequent-loading-track) {
    width: 100%;
    max-width: 100%;
}
.paper-preview-fragment :is(.admin-paper-preview-subsequent-loading, .author-paper-preview-subsequent-loading) {
    max-width: none;
    width: 100%;
    box-sizing: border-box;
}
/* 动态阅读：与 fixed 条宽度一致 */
.paper-preview-fragment :is(.admin-paper-preview-subsequent-loading, .author-paper-preview-subsequent-loading).paper-read-progress-floating {
    width: min(92vw, 400px);
    max-width: 400px;
}
.paper-preview-fragment :is(.admin-paper-preview-subsequent-loading-progress, .author-paper-preview-subsequent-loading-progress):empty {
    display: none;
}
/* 获取元数据阶段：不确定进度（管理端无此态）；滑块从轨道左缘起算，避免首帧/往返时视觉上「从中间开始」 */
.paper-preview-fragment :is(.admin-paper-preview-subsequent-loading-track, .author-paper-preview-subsequent-loading-track).paper-read-progress-track--indeterminate :is(.admin-paper-preview-subsequent-loading-fill, .author-paper-preview-subsequent-loading-fill) {
    width: 36% !important;
    transform-origin: left center;
    animation: paper-read-progress-indet 1.2s ease-in-out infinite alternate;
    transition: none;
}
.paper-preview-fragment :is(.admin-paper-preview-subsequent-loading-track, .author-paper-preview-subsequent-loading-track).paper-read-progress-track--indeterminate :is(.admin-paper-preview-subsequent-loading-fill, .author-paper-preview-subsequent-loading-fill)::after {
    animation: neo-paper-progress-gloss 1.4s ease-in-out infinite;
}
/* translateX 百分比相对滑块自身宽度：轨道宽约 100%，滑块宽 36%，右缘贴轨右需再平移约 (100-36)/36*100% ≈ 178% */
@keyframes paper-read-progress-indet {
    0% { transform: translateX(0); }
    100% { transform: translateX(178%); }
}
@keyframes neo-paper-progress-gloss {
    0%,
    100% {
        background-position: 130% 0;
    }
    50% {
        background-position: -30% 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    .paper-preview-fragment :is(.admin-paper-preview-subsequent-loading-track, .author-paper-preview-subsequent-loading-track).paper-read-progress-track--indeterminate :is(.admin-paper-preview-subsequent-loading-fill, .author-paper-preview-subsequent-loading-fill) {
        animation: none;
        width: 36% !important;
        margin-left: 0;
        transform: none;
        opacity: 0.85;
    }
}
@media print {
    .paper-preview-fragment :is(.admin-paper-preview-subsequent-loading, .author-paper-preview-subsequent-loading) {
        display: none !important;
    }
}
