/* iframe 外壳样式：左侧固定导航（上=全站书/章树，下=本页 TOC），右侧 iframe 占满。
   内容页本身零改动；这里只画外壳。 */
:root {
  --snav-w: 300px;
  --snav-bg: #f6f2e9;
  --snav-ink: #1f2933;
  --snav-muted: #667085;
  --snav-accent: #0b6e8a;
  --snav-accent-dark: #0d4757;
  --snav-border: #dbd7cf;
  --snav-soft: #eef7f9;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", Arial, sans-serif;
  color: var(--snav-ink); background: #f4f1e8;
}

/* 左栏 */
.shell-nav {
  position: fixed; top: 0; left: 0; bottom: 0; z-index: 1000;
  width: var(--snav-w); display: flex; flex-direction: column;
  background: var(--snav-bg); border-right: 1px solid var(--snav-border);
  box-shadow: 1px 0 14px rgba(15, 23, 42, 0.05); font-size: 14px; line-height: 1.5;
}
.shell-nav__brand { padding: 16px 18px; border-bottom: 1px solid var(--snav-border); flex: 0 0 auto; }
.shell-nav__brand a { color: var(--snav-accent-dark); font-weight: 800; font-size: 15px; text-decoration: none; }
.shell-nav__brand a:hover { color: var(--snav-accent); }

/* 上半：书/章树（按黄金分割为较小的上半 ≈38.2%，过长则自身滚动）*/
.shell-nav__books { flex: 1 1 0; min-height: 0; overflow-y: auto; padding: 8px 0; scrollbar-width: thin; }
.shell-nav__book-title {
  display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 16px;
  border: 0; background: none; cursor: pointer; font: inherit; font-weight: 700;
  font-size: 13.5px; color: var(--snav-ink); text-align: left;
}
.shell-nav__book-title:hover { color: var(--snav-accent); background: var(--snav-soft); }
.shell-nav__caret {
  width: 0; height: 0; flex: 0 0 auto; opacity: 0.6;
  border-left: 5px solid currentColor; border-top: 4px solid transparent; border-bottom: 4px solid transparent;
  transition: transform 0.15s ease;
}
.shell-nav__book.is-open .shell-nav__caret { transform: rotate(90deg); }
.shell-nav__pages { list-style: none; margin: 0 0 4px; padding: 0; display: none; }
.shell-nav__book.is-open .shell-nav__pages { display: block; }
.shell-nav__pages a {
  display: block; padding: 5px 16px 5px 30px; color: var(--snav-muted);
  text-decoration: none; font-size: 12.8px; border-left: 2px solid transparent; cursor: pointer;
}
.shell-nav__pages a:hover { color: var(--snav-accent); background: var(--snav-soft); }
.shell-nav__pages a.is-current {
  color: var(--snav-accent); background: var(--snav-soft);
  border-left-color: var(--snav-accent); font-weight: 700;
}

/* 下半：本页 TOC（按黄金分割为较大的下半 ≈61.8%；标题常驻）*/
.shell-nav__toc {
  flex: 1.618 1 0; min-height: 0; overflow-y: auto;
  border-top: 1px solid var(--snav-border); padding: 0 16px 16px; scrollbar-width: thin;
}
.shell-nav__toc:empty { display: none; }
.shell-nav__toc-title {
  position: sticky; top: 0; z-index: 1; background: var(--snav-bg);
  font-size: 12px; font-weight: 800; letter-spacing: 0.06em; color: var(--snav-accent);
  padding: 12px 0 8px;
}
.shell-nav__toc ul { list-style: none; margin: 0; padding: 0; }
.shell-nav__toc a {
  display: block; padding: 3px 8px; color: var(--snav-muted); text-decoration: none;
  font-size: 12.5px; border-left: 2px solid transparent; border-radius: 0 3px 3px 0; cursor: pointer;
}
.shell-nav__toc a:hover { color: var(--snav-accent); background: var(--snav-soft); }
.shell-nav__toc a.is-active { color: var(--snav-accent); background: var(--snav-soft); border-left-color: var(--snav-accent); font-weight: 700; }
.shell-nav__toc .lvl-h3 a { padding-left: 20px; font-size: 12px; }

/* 右侧 iframe */
.shell-main { margin-left: var(--snav-w); height: 100vh; }
.shell-reader { display: block; width: 100%; height: 100%; border: 0; background: #fff; }

/* 移动端：抽屉 */
.shell-toggle {
  display: none; position: fixed; left: 14px; bottom: 18px; z-index: 1050;
  padding: 9px 15px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--snav-accent); color: #fff; font-size: 14px; font-weight: 700;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.25);
}
.shell-backdrop { display: none; }
@media (max-width: 980px) {
  .shell-nav { transform: translateX(-100%); transition: transform 0.22s ease; box-shadow: 0 12px 32px rgba(15,23,42,0.18); }
  body.nav-open .shell-nav { transform: none; }
  .shell-main { margin-left: 0; }
  .shell-toggle { display: inline-block; }
  body.nav-open .shell-backdrop { display: block; position: fixed; inset: 0; z-index: 999; background: rgba(15,23,42,0.35); }
}
