/* ========================================================================
   分子世界 · 探微寻幽 —— 阅读资料（doc）样式
   配色与讲义一致：深紫 #241042 / 紫 #7a4fc1 / 淡紫白 #f6f4fa
   ======================================================================== */

:root {
  --violet: #4a2d7a;
  --lviolet: #7a4fc1;
  --bg:     #f6f4fa;
  --card:   #ffffff;
  --border: #ded5ec;
  --text:   #241a33;
  --muted:  #6f6584;
  --accent: #7a4fc1;
  --accent-soft: #eae2f8;
  --hero:   #241042;
  --info-bg:#f5f0fd;
  --ok-bg:  #e8f2e3;
  --warn-bg:#ece4fa;
  --mono: "JetBrains Mono", "Fira Code", Consolas, "Courier New", monospace;
}

* { box-sizing: border-box; }

body {
  margin: 0; background: var(--bg); color: var(--text);
  font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", "Microsoft YaHei", sans-serif;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}

/* ---------- 头部 ---------- */
.hero {
  background: linear-gradient(135deg, #241042 0%, #3a2064 100%);
  color: #f6f4fa; padding: 3.2rem 2rem 2.6rem;
}
.hero-inner { max-width: 1180px; margin: 0 auto; }
.hero .crumb { font-size: 13px; color: #b3a8c7; margin-bottom: 14px; }
.hero .crumb a { color: #b3a8c7; text-decoration: none; }
.hero .crumb a:hover { color: var(--accent); }
.hero .crumb .sep { margin: 0 8px; color: #555; }
.hero h1 { font-size: 2.1rem; margin: 0 0 .5rem; font-weight: 800; letter-spacing: .02em; }
.hero .sub { font-size: 1rem; color: #c6bdd6; }
.hero .tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.1rem; }
.hero .tags span {
  background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.3);
  border-radius: 20px; padding: .16em .85em; font-size: .8rem; color: #efece6;
}
.hero .btnline { margin-top: 1.3rem; display: flex; flex-wrap: wrap; gap: .6rem; }
.hero .btnline a {
  display: inline-block; text-decoration: none; font-size: .86rem;
  padding: .45em 1.1em; border-radius: 6px; border: 1px solid var(--accent);
  background: var(--accent); color: #fff;
}
.hero .btnline a.ghost { background: transparent; color: var(--accent); }

/* ---------- 布局：左侧目录 + 正文 ---------- */
.layout { max-width: 1180px; margin: 0 auto; padding: 2.4rem 1.2rem 5rem; display: grid; grid-template-columns: 240px 1fr; gap: 2.6rem; align-items: start; }
@media (max-width: 980px) { .layout { grid-template-columns: 1fr; } }

nav.toc { position: sticky; top: 1.2rem; font-size: .88rem; background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 1.1rem 1.2rem; max-height: calc(100vh - 3rem); overflow-y: auto; }
nav.toc h3 { font-size: .82rem; letter-spacing: .12em; color: var(--muted); text-transform: uppercase; margin: 0 0 .7rem; font-weight: 700; }
nav.toc ol { list-style: none; margin: 0; padding: 0; counter-reset: t; }
nav.toc > ol > li { margin: .3rem 0; }
nav.toc a { color: var(--text); text-decoration: none; display: block; padding: .2rem 0; border-left: 3px solid transparent; padding-left: .55rem; }
nav.toc a:hover { color: var(--accent); border-left-color: var(--accent); }
nav.toc .sub a { font-size: .83rem; color: var(--muted); padding-left: 1.1rem; }
@media (max-width: 980px) { nav.toc { position: static; max-height: none; } }

/* ---------- 章节 ---------- */
section.chap { margin-bottom: 3.4rem; scroll-margin-top: 1rem; }
h2.chap-title {
  font-size: 1.42rem; margin: 0 0 1.2rem; padding: .5rem 0 .5rem 1rem;
  border-left: 6px solid var(--accent); color: var(--hero); line-height: 1.4;
}
h2.chap-title .pp { display: block; font-size: .76rem; font-weight: 400; color: var(--muted); font-family: var(--mono); margin-top: .35rem; letter-spacing: .04em; }
h3.sec-title { font-size: 1.12rem; margin: 2.2rem 0 .9rem; color: #5b3391; }
h3.sec-title .pp { font-size: .75rem; color: var(--muted); font-family: var(--mono); font-weight: 400; margin-left: .5rem; }
h4 { font-size: 1rem; margin: 1.5rem 0 .6rem; color: var(--hero); }
p { margin: .85rem 0; font-size: .99rem; }
ul, ol { padding-left: 1.5rem; }
li { margin: .35rem 0; font-size: .99rem; }
li::marker { color: var(--accent); }
strong { color: #1a1030; }
code { font-family: var(--mono); font-size: .88em; background: #efeaf7; border-radius: 4px; padding: .1em .4em; }

/* ---------- 卡片 / 提示块 ---------- */
.box { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 1.2rem 1.5rem; margin: 1.2rem 0; }
.box.info { background: var(--info-bg); border-color: #d9cbf2; }
.box.ok   { background: var(--ok-bg); border-color: #a9d29a; }
.box.warn { background: var(--warn-bg); border-color: #cdbcea; }
.box .lb { display: inline-block; font-size: .74rem; font-weight: 700; color: #5b3391; letter-spacing: .1em; margin-right: .5rem; }
.box.ok .lb { color: #3d6c2e; }
.box p:first-child { margin-top: 0; }
.box p:last-child { margin-bottom: 0; }

/* ---------- 公式 ---------- */
mjx-container { font-size: 108% !important; }
.fml { background: #fff; border: 1px dashed var(--border); border-radius: 8px; padding: 1rem 1.2rem; margin: 1.1rem 0; overflow-x: auto; text-align: center; }
.fml-note { font-size: .84rem; color: var(--muted); text-align: center; margin-top: .3rem; }
.term { display: inline-block; background: var(--accent-soft); color: #5b3391; border-radius: 4px; padding: 0 .42em; font-weight: 600; }

/* ---------- 表格 ---------- */
table.tbl { width: 100%; border-collapse: collapse; margin: 1.1rem 0; font-size: .92rem; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
table.tbl th, table.tbl td { padding: .55rem .8rem; border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; }
table.tbl th { background: var(--hero); color: #f6f4fa; font-weight: 600; font-size: .87rem; }
table.tbl tr:nth-child(even) td { background: #faf7fe; }
table.tbl tr:hover td { background: #f0e7fd; }
table.tbl td.c, table.tbl th.c { text-align: center; font-family: var(--mono); font-size: .86rem; }
.scroll-x { overflow-x: auto; }

/* ---------- 图片 ---------- */
.figs { display: flex; flex-wrap: wrap; gap: 1.1rem; justify-content: center; margin: 1.3rem 0; }
.figs figure { margin: 0; text-align: center; max-width: 100%; }
.figs img { max-width: 100%; border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.figs figcaption { font-size: .83rem; color: var(--muted); margin-top: .4rem; }
.figs.small img { max-height: 240px; }
.figs.mid img { max-height: 340px; }

/* ---------- 例题 ---------- */
.ex { background: #fff; border: 1px solid var(--border); border-left: 5px solid var(--lviolet); border-radius: 8px; padding: 1.1rem 1.4rem; margin: 1.3rem 0; }
.ex .hd { font-size: .8rem; font-weight: 700; color: #5b3391; letter-spacing: .1em; margin-bottom: .5rem; }
.ex .sol { border-top: 1px dashed var(--border); margin-top: .8rem; padding-top: .6rem; }
.ex .sol .lb { font-size: .78rem; font-weight: 700; color: #3d6c2e; letter-spacing: .1em; }

/* ---------- 页码对照 ---------- */
.ppt-map { font-family: var(--mono); font-size: .85rem; }
.ppt-map a { color: var(--lviolet); text-decoration: none; }
.ppt-map a:hover { text-decoration: underline; }
.ppt-map tr.ins td { background: #f5eefd; }
.ppt-map tr.ins td.c a { color: #4a2d7a; font-weight: 700; }

footer { text-align: center; color: var(--muted); font-size: .84rem; padding: 2rem; border-top: 1px solid var(--border); }

/* ---------- 代码块（LAMMPS 输入脚本 / 命令行） ---------- */
pre {
  font-family: var(--mono); font-size: .84rem; line-height: 1.7;
  background: #f8f6fd; border: 1px solid var(--border);
  border-left: 4px solid var(--accent); border-radius: 8px;
  padding: .9rem 1.1rem; margin: 1.1rem 0; overflow-x: auto;
  color: var(--text); white-space: pre;
}
pre code { background: transparent; padding: 0; font-size: inherit; }
pre .cm { color: #8b7aa8; }
pre .kw { color: #5b3391; font-weight: 700; }

/* 单行 URL / 命令条 */
.urlline {
  font-family: var(--mono); font-size: .88rem; line-height: 1.7;
  background: var(--hero); color: #e9e0f7;
  border-radius: 8px; padding: .6rem 1rem; margin: 1rem 0;
  overflow-x: auto; white-space: nowrap;
}
.urlline a { color: #cbb6f5; text-decoration: none; border-bottom: 1px dashed var(--accent); }
.urlline .lbk { color: #9a86bf; margin-right: .6rem; }

/* 页码对照表里指向插页的行 */
.ppt-map tr.now td { background: #f0e7fd; }

