/* ============================================================
 * part-site-article-body-css.css
 * V1.78.0 · #813-X 从内联 <style> 抽离（原位置：app/Site/Partial/article_body_css.php）
 *
 * 为什么抽出来：项目红线「视图里禁止内联 <style>，一律抽成 CSS 类」。
 *   内联块的三个实际问题：① 每页重复下载、无法缓存；② CSP 下要额外放行；
 *   ③ 同一段样式散落在 PHP 里，改色要满仓库找。
 * 本文件由脚本按原块顺序原样搬迁，规则与选择器未作任何改动。
 * ============================================================ */

.article-body, .dv-content, .dv-faq-a {
  color: #334155;
  font-size: 16px;
  line-height: 1.9;
  word-break: break-word;
}
.article-body p, .dv-content p, .dv-faq-a p { margin: 0 0 18px; }
.article-body h1, .dv-content h1, .dv-faq-a h1 {
  font-size: 24px; font-weight: 700; color: #0f172a; margin: 32px 0 16px; line-height: 1.35;
}
.article-body h2, .dv-content h2, .dv-faq-a h2 {
  font-size: 21px; font-weight: 700; color: #0f172a; margin: 32px 0 14px;
  padding-left: 14px; border-left: 4px solid var(--primary); line-height: 1.4;
}
.article-body h3, .dv-content h3, .dv-faq-a h3 {
  font-size: 18px; font-weight: 600; color: #1e293b; margin: 26px 0 12px; line-height: 1.45;
}
.article-body h4, .article-body h5, .article-body h6,
.dv-content h4, .dv-content h5, .dv-content h6,
.dv-faq-a h4, .dv-faq-a h5, .dv-faq-a h6 {
  font-weight: 600; color: #1e293b; margin: 22px 0 10px;
}
.article-body strong, .dv-content strong, .dv-faq-a strong { color: #0f172a; font-weight: 700; }
.article-body em, .dv-content em, .dv-faq-a em { color: #475569; }
.article-body a, .dv-content a, .dv-faq-a a {
  color: var(--primary); text-decoration: underline; text-underline-offset: 3px;
}
.article-body a:hover, .dv-content a:hover, .dv-faq-a a:hover { color: var(--primary-dark); }

/* 引用块 */
.article-body blockquote, .dv-content blockquote, .dv-faq-a blockquote {
  margin: 20px 0; padding: 14px 20px;
  border-left: 4px solid var(--primary);
  background: var(--surface);
  border-radius: 0 10px 10px 0;
  color: #475569; font-size: 15px;
}
.article-body blockquote p, .dv-content blockquote p, .dv-faq-a blockquote p { margin: 0; }

/* 代码块 */
.article-body pre, .dv-content pre, .dv-faq-a pre {
  background: #0f172a; color: #e2e8f0;
  padding: 18px 20px; border-radius: 10px;
  overflow-x: auto; margin: 20px 0;
  font-family: "SFMono-Regular", "JetBrains Mono", Consolas, "Liberation Mono", monospace;
  font-size: 13.5px; line-height: 1.7;
}
.article-body code, .dv-content code, .dv-faq-a code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  background: var(--surface); color: #b91c1c;
  padding: 2px 6px; border-radius: 4px; font-size: 13px;
}
.article-body pre code, .dv-content pre code, .dv-faq-a pre code {
  background: transparent; color: inherit; padding: 0; font-size: inherit;
}

/* 列表 */
.article-body ul, .article-body ol, .dv-content ul, .dv-content ol, .dv-faq-a ul, .dv-faq-a ol {
  margin: 0 0 18px; padding-left: 26px;
}
.article-body li, .dv-content li, .dv-faq-a li { margin: 8px 0; line-height: 1.85; }
.article-body ul li::marker, .dv-content ul li::marker, .dv-faq-a ul li::marker { color: var(--primary); }
.article-body ol li::marker, .dv-content ol li::marker, .dv-faq-a ol li::marker { color: var(--primary); font-weight: 600; }

/* 表格（响应式横向滚动 + 斑马纹） */
.article-body table, .dv-content table, .dv-faq-a table {
  width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14.5px;
}
.article-body thead th, .dv-content thead th, .dv-faq-a thead th {
  background: var(--surface); color: #0f172a; font-weight: 600;
  text-align: left; padding: 12px 14px; border-bottom: 2px solid var(--border);
}
.article-body tbody td, .dv-content tbody td, .dv-faq-a tbody td {
  padding: 12px 14px; border-bottom: 1px solid var(--border); color: #334155;
}
.article-body tbody tr:nth-child(even),
.dv-content tbody tr:nth-child(even),
.dv-faq-a tbody tr:nth-child(even) { background: #f8fafc; }
/* 窄屏让表格可横向滚动 */
.article-body table, .dv-content table, .dv-faq-a table { display: block; overflow-x: auto; white-space: nowrap; }

/* 图片 / figure / 分隔线 */
.article-body img, .dv-content img, .dv-faq-a img {
  max-width: 100%; height: auto; border-radius: 10px;
  margin: 18px auto; box-shadow: 0 6px 20px rgba(15,23,42,.08);
}
.article-body figure, .dv-content figure, .dv-faq-a figure {
  margin: 24px 0; text-align: center;
}
.article-body hr, .dv-content hr, .dv-faq-a hr {
  border: 0; height: 1px; background: var(--border); margin: 32px 0;
}
