/* ============================================================
   layout_L2.css — 长文型变体 L2「左侧吸顶目录」布局层
   ------------------------------------------------------------
   渲染结构（shared-tools/layout_engine.render_L2_top_toc 输出）：
     <div class="l2-wrap container">
       <aside class="l2-toc"><h3>本文目录</h3><ol>…</ol></aside>
       <div class="main-content">{body}</div>
     </div>
   本层只做布局：左列目录吸顶 + 右列正文流式滚动。
   颜色/字体/圆角全部继承 global.css 变量，零硬编码。
   ============================================================ */

.l2-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 24px 24px 56px;
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  gap: 36px;
  align-items: start; /* 关键：目录列不被拉伸，sticky 才能跟随滚动 */
}

.l2-wrap .main-content {
  min-width: 0; /* 防止长表格/长链接撑破右列 */
}

/* ── 左侧目录：吸顶 + 超高时独立滚动 ── */
.l2-toc {
  position: sticky;
  top: 80px;                          /* 高于导航 64px，保证不被遮挡 */
  max-height: calc(100vh - 100px);    /* 视口内留出上下余量 */
  overflow-y: auto;                   /* 目录过长时内部滚动 */
  overscroll-behavior: contain;
  margin: 0;
  padding: 16px 14px;
  background: var(--blue-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-lg);
  scrollbar-width: thin;
}

.l2-toc::-webkit-scrollbar { width: 6px; }
.l2-toc::-webkit-scrollbar-thumb {
  background: var(--gray-200);
  border-radius: 3px;
}

.l2-toc h3 {
  font-size: 14px;
  font-weight: 800;
  color: var(--gray-900);
  margin: 0 0 10px;
}

/* 目录项：单列 + 数字编号 */
.l2-toc ol {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: l2toc;
  display: block;
}

.l2-toc li {
  counter-increment: l2toc;
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 13px;
  line-height: 1.5;
  margin-bottom: 6px;
}

.l2-toc li::before {
  content: counter(l2toc);
  flex: 0 0 auto;
  display: inline-flex;
  width: 18px;
  height: 18px;
  margin-top: 1px;
  background: var(--blue);
  color: var(--white);
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
  align-items: center;
  justify-content: center;
}

.l2-toc a {
  color: var(--gray-700);
  text-decoration: none;
  display: inline-block;
  padding: 1px 4px;
  border-radius: 6px;
  transition: color .15s, background .15s;
}

.l2-toc a:hover {
  color: var(--blue);
  background: var(--white);
}

/* ── 响应式：窄屏目录回到正文上方，取消吸顶 ── */
@media (max-width: 1024px) {
  .l2-wrap {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-top: 20px;
  }
  .l2-toc {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
  }
  .l2-toc ol {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 20px;
  }
}

@media (max-width: 640px) {
  .l2-toc ol {
    grid-template-columns: 1fr;
  }
}
