/* 全站侧边栏目录（TOC）——桌面侧边栏 + 移动端折叠按钮 */
.toc-rail{
  position:fixed;top:104px;left:16px;width:238px;max-height:calc(100vh - 148px);
  overflow-y:auto;background:rgba(247,245,239,.97);border:1px solid #E2DCC8;
  border-radius:14px;padding:14px 10px 12px;z-index:900;
  font-family:"Noto Sans SC",system-ui,-apple-system,sans-serif;
  box-shadow:0 6px 24px rgba(46,75,61,.10);
  scrollbar-width:thin;scrollbar-color:#C9C0A8 transparent;
}
.toc-rail::-webkit-scrollbar{width:5px;}
.toc-rail::-webkit-scrollbar-thumb{background:#C9C0A8;border-radius:4px;}
.toc-head{
  font-size:12.5px;font-weight:700;color:#2E4B3D;letter-spacing:.5px;
  display:flex;align-items:center;gap:8px;padding:2px 44px 10px 10px;
  border-bottom:1px solid #EFE9D8;margin-bottom:8px;
}
.toc-head svg{width:15px;height:15px;stroke:#B98A2F;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;}
.toc-rail nav ul{list-style:none;margin:0;padding:0;}
.toc-rail nav > ul > li{margin:1px 0;}
.toc-rail nav a{
  display:block;padding:4.5px 10px;border-radius:8px;font-size:13px;color:#3E5A4C;
  text-decoration:none;line-height:1.55;transition:background .15s,color .15s;
}
.toc-rail nav a:hover{background:#EFEBDC;color:#2E4B3D;}
.toc-rail nav a.active{background:#2E4B3D;color:#F7F5EF;font-weight:600;}
.toc-rail nav ul ul a{padding-left:24px;font-size:12.3px;color:#6B7F73;border-left:1px solid #E7E1CC;margin-left:10px;border-radius:0 8px 8px 0;}
.toc-rail nav ul ul a:hover{color:#2E4B3D;background:#EFEBDC;}
.toc-rail nav ul ul a.active{background:#2E4B3D;color:#F7F5EF;}

/* 滚动锚点偏移（顶部导航高度） */
.chapter,.module,.chapter h3.sec,.module h3.sec{scroll-margin-top:102px;}

/* 移动端：折叠成按钮 + 抽屉 */
.toc-fab{
  display:none;position:fixed;left:16px;bottom:16px;width:48px;height:48px;
  border-radius:14px;background:#2E4B3D;border:1px solid #B98A2F;
  box-shadow:0 8px 24px rgba(46,75,61,.35);z-index:950;cursor:pointer;
  align-items:center;justify-content:center;padding:0;
}
.toc-fab svg{width:22px;height:22px;stroke:#F7F5EF;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.toc-fab:hover{background:#38594A;}
.toc-fab .fab-dot{position:absolute;top:-4px;right:-4px;width:18px;height:18px;border-radius:50%;background:#B98A2F;color:#2E4B3D;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid #F7F5EF;}
.toc-mask{display:none;position:fixed;inset:0;background:rgba(20,30,24,.45);z-index:955;}
.toc-close{
  display:flex;position:absolute;top:8px;right:8px;width:26px;height:26px;padding:0;
  border:none;background:transparent;border-radius:8px;cursor:pointer;
  align-items:center;justify-content:center;color:#7a7a72;transition:background .15s,color .15s;
}
.toc-close:hover{background:#EFEBDC;color:#2E4B3D;}
.toc-close svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}

/* 用户主动隐藏目录：无论桌面/移动端，rail 隐藏，FAB 显示 */
body.toc-hidden .toc-rail{display:none !important;}
body.toc-hidden .toc-fab{display:flex;}

@media (max-width:1280px){
  .toc-rail{display:none;}
  .toc-fab{display:flex;}
  .toc-mask{display:none;}
  body.toc-open .toc-mask{display:block;}
  body.toc-open .toc-rail{
    display:block;position:fixed;top:0;right:0;bottom:0;width:min(300px,84vw);
    max-height:none;border-radius:0;border:none;border-left:1px solid #E2DCC8;
    z-index:960;overflow-y:auto;padding:58px 12px 24px;box-shadow:-8px 0 30px rgba(46,75,61,.25);
  }
  body.toc-open .toc-close{display:flex;}
  body.toc-open{overflow:hidden;}
}
@media (max-width:480px){
  .toc-fab{bottom:14px;right:12px;}
}

/* ===== 面包屑导航条（楼层式，与数学 .floor-crumb 统一） ===== */
.crumb-bar{
  max-width:960px;margin:0 auto;padding:14px 24px 0;
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;
  font-family:"Noto Sans SC","PingFang SC",system-ui,sans-serif;font-size:12.5px;
  background:transparent;border-bottom:none;
}
.crumb-bar::before{
  content:"楼层：";font-size:12px;font-weight:700;color:#5E635B;
  letter-spacing:1px;margin-right:4px;
}
.crumb-path{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;}
.crumb-path a{
  color:#2E4B3D;text-decoration:none;font-weight:500;
  padding:4px 11px;border-radius:6px;font-size:12.5px;
  background:#E5ECE7;border:1px solid #C9D9CE;transition:all .2s;
}
.crumb-path a:hover{background:#2E4B3D;color:#F7F5EF;border-color:#2E4B3D;}
.crumb-sep{color:#DCD7C8;font-size:12px;font-weight:400;margin:0;}
.crumb-cur{
  color:#F3E9D3;font-weight:700;white-space:nowrap;
  padding:4px 11px;border-radius:6px;font-size:12.5px;
  background:#2E4B3D;
}
@media (max-width:640px){
  .crumb-bar{padding:10px 16px 0;font-size:12px;}
}


/* ===== 移动端响应式增强（2026-09-24 追加） ===== */
/* ==========================================================================
   EGC 全站移动端响应式片段（通用，注入到无公共 CSS 页面时包裹在
   <style id="egc-mobile-css">…</style> 中；追加到公共 CSS 文件时直接使用）
   目标：≤900px 平板竖屏 / ≤600px 手机 / ≤420px 小屏手机
   原则：内容不被遮挡、元素不过小（可点 ≥44px）、关键交互可用
   ========================================================================== */

/* 防止横向溢出：所有媒体内先收口 */
@media (max-width: 900px){
  html, body { max-width: 100vw; overflow-x: hidden; }
  img, svg, video, canvas { max-width: 100%; height: auto; }
  /* 两列/三列/四列网格降为单列 */
  .duo, .plan, .nf-grid, .grid-2, .grid-3, .cols, .principles, .hero-principles {
    grid-template-columns: 1fr !important;
  }
  .matrix { grid-template-columns: repeat(2, 1fr) !important; }
  /* 主区 padding 收窄 */
  .main { padding: 0 20px 100px !important; }
  .wrap, .container, .page, .content { padding-left: 18px !important; padding-right: 18px !important; }
  /* 面包屑/顶栏允许换行 */
  .crumb-bar, .topnav, .site-nav, .egc-breadcrumb { flex-wrap: wrap !important; }
  /* 表格横向滚动兜底 */
  table { max-width: 100%; }
  .table-wrap, .egc-table-wrap, .table-scroll { overflow-x: auto !important; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 600px){
  html, body { max-width: 100vw; overflow-x: hidden; font-size: 15px; }
  body { line-height: 1.7; }

  /* 字号下限：保证可读 */
  h1 { font-size: 22px !important; line-height: 1.35 !important; }
  h2 { font-size: 19px !important; line-height: 1.4 !important; }
  h3 { font-size: 16px !important; line-height: 1.45 !important; }
  h4, h5, h6 { font-size: 15px !important; }
  p, li, td, th, dd, dt { font-size: 15px !important; }

  /* 首屏大标题收敛 */
  .hero h1, .ch-title { font-size: 26px !important; }
  .hero { padding-top: 48px !important; }
  .lead-q p, .lead, .intro { font-size: 15.5px !important; line-height: 1.75 !important; }

  /* 容器 padding 进一步收窄 */
  .main { padding: 0 14px 90px !important; }
  .wrap, .container, .page, .content { padding-left: 14px !important; padding-right: 14px !important; }
  .ex-block, .quiz, .plan .step, .duo .col, .card { padding: 14px !important; }

  /* 所有网格强制单列 */
  .duo, .plan, .nf-grid, .grid-2, .grid-3, .grid-4, .cols, .principles,
  .hero-principles, .matrix, .card-grid, .cards {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  /* 表格：未包裹的也可横向滚 */
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
  .table-wrap, .egc-table-wrap { padding: 0; }

  /* 可点区域 ≥44px */
  a, button, .btn, .quiz-opt, .side-nav a, .toc-rail nav a, .topnav a,
  .nu-btn, .nu-link, .action-btn, [role="button"] {
    min-height: 44px;
  }
  .quiz-opt, .btn, .action-btn { padding: 12px 14px !important; }

  /* 图片/视频/SVG 不溢出 */
  img, svg, video, canvas, iframe { max-width: 100% !important; height: auto !important; }
  /* 思维导图等大 SVG 给个安全高度 */
  svg.mindmap, .mindmap svg, #mindmap svg, .diagram svg { max-height: 70vh; }

  /* 面包屑换行、不省略过多 */
  .crumb-bar { padding: 6px 12px !important; font-size: 12.5px !important; }
  .crumb-cur { max-width: 60vw !important; }
  .topnav { padding: 8px 12px !important; gap: 8px !important; }

  /* 底部三栏导航（若存在）堆叠为竖排 */
  .foot-nav, .footer-nav, .bottom-nav { flex-direction: column !important; gap: 8px !important; }

  /* 代码块横向滚动 */
  pre, code { white-space: pre-wrap; word-break: break-word; }
  pre { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* 弹层/抽屉全宽 */
  .modal, .dialog, .popup { max-width: 100vw !important; width: 100% !important; }

  /* 时间轴/流程节点纵向排列 */
  .rl-axis, .timeline { display: block !important; border: none !important; height: auto !important; }
}

@media (max-width: 420px){
  html, body { font-size: 14.5px; }
  h1 { font-size: 21px !important; }
  h2 { font-size: 18px !important; }
  .hero h1, .ch-title { font-size: 23px !important; }
  .main { padding: 0 10px 80px !important; }
  .wrap, .container, .page, .content { padding-left: 10px !important; padding-right: 10px !important; }
  .matrix { grid-template-columns: 1fr !important; }
}

/* 面包屑统一：不换行，左对齐，有内边距 */
.crumb-bar{display:flex !important;align-items:center !important;flex-wrap:nowrap !important;padding:7px 16px !important;}
.crumb-path{display:flex !important;align-items:center !important;flex-wrap:nowrap !important;white-space:nowrap !important;overflow:hidden !important;}
.crumb-cur{max-width:none !important;overflow:visible !important;text-overflow:clip !important;}
@media (max-width: 768px){
  .site-nav{padding-left:10px !important;padding-right:10px !important;}
}

.crumb-bar{padding-left:16px !important;padding-right:16px !important;}


/* ===== 全局导航规范 ===== */
@media (max-width: 768px){
  .site-nav{padding:8px 10px !important;gap:8px !important;}
  .site-nav .nav-hamburger{display:flex !important;}
  .site-nav .nav-links{display:none !important;}
  .site-nav.nav-open .nav-links{
    display:flex !important;position:absolute;top:100%;left:0;right:0;
    background:#2E4B3D;flex-direction:column;gap:6px;padding:12px;
    border-top:1px solid rgba(247,245,239,.15);z-index:9999;
  }
  .site-nav.nav-open .nav-links a{width:100%;text-align:center;padding:10px !important;}
}
@media (min-width: 769px){
  .site-nav .nav-hamburger{display:none !important;}
  .site-nav .nav-links{display:flex !important;}
}

@media (max-width: 768px){
  .site-nav{justify-content:flex-start !important;}
}

/* ===== 汉堡按钮基础样式 ===== */
.nav-hamburger{display:none;background:none;border:1px solid rgba(247,245,239,.3);color:#F7F5EF;border-radius:6px;width:38px;height:38px;align-items:center;justify-content:center;cursor:pointer;padding:0;flex:0 0 auto;}
.nav-hamburger svg{width:20px;height:20px;}

/* 手机端：汉堡显示，导航链接隐藏 */
@media (max-width: 768px){
  .site-nav{justify-content:flex-start !important;padding-left:10px !important;padding-right:10px !important;gap:8px !important;}
  .site-nav .nav-hamburger{display:flex !important;margin-left:0 !important;}
  .site-nav .nav-links{display:none !important;}
  .site-nav.nav-open .nav-links{
    display:flex !important;position:absolute;top:100%;left:0;right:0;
    background:#2E4B3D;flex-direction:column;gap:6px;padding:12px;
    border-top:1px solid rgba(247,245,239,.15);z-index:9999;
  }
  .site-nav.nav-open .nav-links a{width:100%;text-align:center;padding:10px !important;}
}
/* PC端：汉堡隐藏，导航显示 */
@media (min-width: 769px){
  .site-nav .nav-hamburger{display:none !important;}
  .site-nav .nav-links{display:flex !important;}
}
