/* ========================================================================
   大学物理 · 第12章 气体动理论 —— 阅读资料（doc）样式
   配色与讲义一致：深色 #1a1a1a / 橙 #EA7600 / 暖白 #f5f4f0
   ======================================================================== */

:root {
  --blue:   #1a4f7a;
  --lblue:  #2d7cc1;
  --bg:     #f5f4f0;
  --card:   #ffffff;
  --border: #d8d5cc;
  --text:   #1a1a1a;
  --muted:  #6b6b6b;
  --accent: #EA7600;
  --accent-soft: #fde2c8;
  --hero:   #1a1a1a;
  --info-bg:#fff6ec;
  --ok-bg:  #e8f2e3;
  --warn-bg:#fde9d6;
  --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, #1a1a1a 0%, #2b2b2b 100%);
  color: #f5f4f0; padding: 3.2rem 2rem 2.6rem;
}
.hero-inner { max-width: 1180px; margin: 0 auto; }
.hero .crumb { font-size: 13px; color: #a9a49c; margin-bottom: 14px; }
.hero .crumb a { color: #a9a49c; 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: #c8c5be; }
.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: #a85800; }
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: #111; }
code { font-family: var(--mono); font-size: .88em; background: #efece4; 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: #f0cf9f; }
.box.ok   { background: var(--ok-bg); border-color: #a9d29a; }
.box.warn { background: var(--warn-bg); border-color: #e2b183; }
.box .lb { display: inline-block; font-size: .74rem; font-weight: 700; color: #a85800; 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: #a85800; 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: #f5f4f0; font-weight: 600; font-size: .87rem; }
table.tbl tr:nth-child(even) td { background: #faf8f3; }
table.tbl tr:hover td { background: #fff2e0; }
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(--lblue); border-radius: 8px; padding: 1.1rem 1.4rem; margin: 1.3rem 0; }
.ex .hd { font-size: .8rem; font-weight: 700; color: #1e40af; 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(--lblue); text-decoration: none; }
.ppt-map a:hover { text-decoration: underline; }
.ppt-map tr.ins td { background: #fff5e8; }
.ppt-map tr.ins td.c a { color: #b25a00; font-weight: 700; }

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