/* ===================================================================
   GausMap 使用手册 — 文档布局（建立在站点 style.css 的令牌之上）
   三栏：左侧章节树 / 正文 / 右侧本页目录；≤1180 收右栏，≤900 左栏变抽屉
   =================================================================== */
:root{
  --doc-side: 272px;
  --doc-toc: 220px;
  --doc-top: 76px;
  --code-bg: #f3f6fb;
  --tip: #0a8f5a;   --tip-bg: #ecf8f2;
  --note: #0a66ff;  --note-bg: #eef4ff;
  --warn: #b26a00;  --warn-bg: #fff6e6;
  --danger: #c62828; --danger-bg: #fdeeee;
}

/* 文档页顶栏常驻实底：页面底色是白的，透明顶栏会让白字看不见 */
.docs-body .nav{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.docs-body .nav .nav__name{color:var(--ink)}
.docs-body .nav .nav__menu a{color:#3a4456}
.docs-body .nav .nav__menu a:hover,.docs-body .nav .nav__menu a.is-current{color:var(--blue)}
.docs-body .nav .nav__menu a.is-current::after{background:var(--blue)}
.docs-body .nav .nav__cta{color:#fff!important}
.docs-body .nav .nav__console{border-color:rgba(10,102,255,.4)}
.docs-body .nav .nav__toggle span{background:var(--ink)}

.docs-body{background:var(--paper)}
.docs{
  display:grid;grid-template-columns:var(--doc-side) minmax(0,1fr) var(--doc-toc);
  max-width:1440px;margin:0 auto;padding-top:var(--doc-top);min-height:100vh;
}

/* ---------- 左栏 ---------- */
.side{
  position:sticky;top:var(--doc-top);height:calc(100vh - var(--doc-top));overflow-y:auto;
  border-right:1px solid var(--line);padding:22px 14px 40px 22px;background:var(--paper);
  scrollbar-width:thin;
}
.side__brand{display:flex;flex-direction:column;gap:2px;margin:0 0 14px 8px}
.side__brand a{font-weight:800;font-size:15px;color:var(--ink)}
.side__brand span{font-size:12px;color:var(--gray)}
.side__group{margin-bottom:4px}
.side__head{
  all:unset;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;width:100%;
  cursor:pointer;padding:8px 8px;font-size:13px;font-weight:700;color:var(--ink);border-radius:8px;
}
.side__head::after{content:"";width:6px;height:6px;border-right:1.5px solid var(--gray);border-bottom:1.5px solid var(--gray);transform:rotate(-45deg);transition:transform .2s}
.side__group.is-open .side__head::after{transform:rotate(45deg)}
.side__head:hover{background:var(--paper-2)}
.side__head:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.side__group ul{list-style:none;display:none;padding:2px 0 8px}
.side__group.is-open ul{display:block}
.side__group li a{
  display:block;padding:6px 10px 6px 18px;font-size:14px;line-height:1.5;color:#3a4456;border-radius:8px;
  border-left:2px solid transparent;
}
.side__group li a:hover{color:var(--blue);background:var(--paper-2)}
.side__group li a.is-active{color:var(--blue);background:#eef4ff;font-weight:600;border-left-color:var(--blue);border-radius:0 8px 8px 0}

/* 搜索 */
.search{position:relative;margin:0 0 16px}
.search input{
  width:100%;height:38px;border:1px solid var(--line);border-radius:10px;padding:0 12px;
  font:inherit;font-size:14px;background:var(--paper-2);color:var(--ink);outline:none;
}
.search input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(10,102,255,.12)}
.search__results{
  position:absolute;left:0;top:44px;width:min(460px,86vw);max-height:62vh;overflow-y:auto;z-index:20;
  background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px -12px rgba(11,18,32,.25);padding:6px;
}
.search__results a{display:block;padding:9px 11px;border-radius:8px}
.search__results a:hover,.search__results a.is-sel{background:var(--paper-2)}
.search__results b{display:block;font-size:14px;color:var(--ink)}
.search__results small{display:block;font-size:12px;color:var(--gray);line-height:1.55;margin-top:2px}
.search__results mark{background:#fff0b3;color:inherit;border-radius:2px}
.search__empty{padding:12px;font-size:13px;color:var(--gray)}

.side__toggle{display:none}

/* ---------- 正文 ---------- */
.doc{padding:30px 56px 70px;min-width:0}
.crumb{font-size:13px;color:var(--gray);margin-bottom:10px}
.crumb a:hover{color:var(--blue)}
.crumb span{margin:0 7px;opacity:.5}

.prose{max-width:820px;font-size:15.5px;line-height:1.85;color:#1f2838}
.prose h1{font-size:32px;line-height:1.25;font-weight:800;color:var(--ink);letter-spacing:-.01em;margin:0 0 20px}
.prose h2{font-size:23px;line-height:1.35;font-weight:800;color:var(--ink);margin:46px 0 14px;padding-top:14px;border-top:1px solid var(--line)}
.prose h3{font-size:18px;font-weight:700;color:var(--ink);margin:30px 0 10px}
.prose h4{font-size:15.5px;font-weight:700;color:var(--ink);margin:22px 0 8px}
.prose h2,.prose h3,.prose h4{position:relative;scroll-margin-top:92px}
.prose .anchor{position:absolute;left:-22px;opacity:0;color:var(--blue);font-weight:400;transition:opacity .15s}
.prose h2:hover .anchor,.prose h3:hover .anchor,.prose h4:hover .anchor{opacity:.7}
.prose p{margin:0 0 14px}
.prose a{color:var(--blue)}
.prose a:hover{text-decoration:underline}
.prose ul,.prose ol{margin:0 0 14px;padding-left:1.5em}
.prose li{margin:4px 0}
.prose li>ul,.prose li>ol{margin:4px 0 4px}
.prose strong{color:var(--ink)}
.prose hr{border:0;border-top:1px solid var(--line);margin:30px 0}
.prose img{border:1px solid var(--line);border-radius:10px;margin:10px 0 18px}
.prose .fig{margin:14px 0 24px}
.prose .fig img{margin:0;width:100%;box-shadow:0 8px 30px -14px rgba(11,18,32,.35)}
.prose .fig figcaption{font-size:13px;color:var(--gray);margin-top:8px;line-height:1.6}
.prose .fig figcaption .ui{font-size:.92em}
.prose .num{display:inline-block;width:20px;height:20px;border-radius:50%;background:#ff3b30;color:#fff;font:700 12px/20px sans-serif;text-align:center;vertical-align:1px;margin-right:2px}
.prose code{font-family:"JetBrains Mono",Consolas,"SFMono-Regular",monospace;font-size:.88em;background:var(--code-bg);padding:1px 6px;border-radius:5px;color:#16325c}
.prose pre.code{background:#0f1726;color:#dbe6ff;border-radius:12px;padding:16px 18px;overflow-x:auto;margin:0 0 18px;font-size:13.5px;line-height:1.65}
.prose pre.code code{background:none;color:inherit;padding:0;font-size:inherit}
.prose blockquote{border-left:3px solid var(--line);padding:2px 0 2px 16px;color:var(--gray);margin:0 0 14px}
.prose kbd{
  display:inline-block;min-width:22px;padding:0 6px;font:600 12px/20px Consolas,monospace;text-align:center;
  color:var(--ink);background:#fff;border:1px solid #cfd6e3;border-bottom-width:2px;border-radius:5px;vertical-align:1px;
}
.prose .kplus{margin:0 3px;color:var(--gray);font-size:12px}
.prose .ui{
  display:inline;padding:1px 7px;border-radius:6px;background:#eef4ff;color:#0d47b8;font-weight:600;font-size:.94em;white-space:nowrap;
}

/* 表格 */
.table-wrap{overflow-x:auto;margin:0 0 20px;border:1px solid var(--line);border-radius:12px}
.prose table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.65}
.prose th{background:var(--paper-2);text-align:left;font-weight:700;color:var(--ink);white-space:nowrap}
.prose th,.prose td{padding:9px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.prose tbody tr:last-child td{border-bottom:0}
.prose td code{white-space:nowrap}

/* 提示框 */
.callout{border-radius:12px;padding:14px 18px 4px;margin:0 0 20px;border-left:4px solid}
.callout__title{font-weight:800;font-size:14px;margin-bottom:6px!important}
.callout--tip{background:var(--tip-bg);border-color:var(--tip)} .callout--tip .callout__title{color:var(--tip)}
.callout--note,.callout--example{background:var(--note-bg);border-color:var(--note)} .callout--note .callout__title,.callout--example .callout__title{color:var(--note)}
.callout--warn{background:var(--warn-bg);border-color:var(--warn)} .callout--warn .callout__title{color:var(--warn)}
.callout--danger{background:var(--danger-bg);border-color:var(--danger)} .callout--danger .callout__title{color:var(--danger)}
.callout p,.callout ul,.callout ol{font-size:14.5px}

/* 步骤：有序列表的每一项画成带编号圆点的时间线 */
.doc-steps>ol{list-style:none;padding:0;counter-reset:st;margin-bottom:20px}
.doc-steps>ol>li{counter-increment:st;position:relative;padding:0 0 18px 46px;margin:0}
.doc-steps>ol>li::before{
  content:counter(st);position:absolute;left:0;top:1px;width:28px;height:28px;border-radius:50%;
  background:var(--blue);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;
}
.doc-steps>ol>li::after{content:"";position:absolute;left:13.5px;top:34px;bottom:4px;width:1px;background:var(--line)}
.doc-steps>ol>li:last-child::after{display:none}

/* 首页入口卡片 */
.doc-cards>ul{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-bottom:24px}
.doc-cards>ul>li{margin:0;border:1px solid var(--line);border-radius:14px;padding:16px 18px;transition:border-color .2s,box-shadow .2s;font-size:14px;color:var(--gray)}
.doc-cards>ul>li:hover{border-color:rgba(10,102,255,.45);box-shadow:0 10px 30px -18px rgba(10,102,255,.55)}
.doc-cards>ul>li>a:first-child{display:block;font-weight:800;font-size:16px;color:var(--ink);margin-bottom:4px}
.doc-cards>ul>li>a:first-child:hover{color:var(--blue);text-decoration:none}

/* 翻页 */
.pager{max-width:820px;display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:48px}
.pager a{border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-weight:700;color:var(--ink);transition:border-color .2s}
.pager a:hover{border-color:var(--blue);color:var(--blue)}
.pager small{display:block;font-weight:500;font-size:12px;color:var(--gray)}
.pager__next{text-align:right}
.doc__foot{max-width:820px;margin-top:30px;font-size:13px;color:var(--gray)}
.doc__foot a{color:var(--blue)}

/* ---------- 右栏 ---------- */
.toc{position:sticky;top:var(--doc-top);height:calc(100vh - var(--doc-top));overflow-y:auto;padding:34px 18px 40px 6px;scrollbar-width:thin}
.toc__title{font-size:12px;font-weight:800;color:var(--gray);letter-spacing:.08em;margin-bottom:8px}
.toc ul{list-style:none;border-left:1px solid var(--line)}
.toc li a{display:block;font-size:13px;line-height:1.5;padding:4px 0 4px 12px;color:var(--gray);margin-left:-1px;border-left:2px solid transparent}
.toc li.lv3 a{padding-left:24px;font-size:12.5px}
.toc li a:hover{color:var(--ink)}
.toc li a.is-active{color:var(--blue);border-left-color:var(--blue)}

/* ---------- 响应式 ---------- */
@media(max-width:1180px){
  .docs{grid-template-columns:var(--doc-side) minmax(0,1fr)}
  .toc{display:none}
}
@media(max-width:900px){
  .docs{grid-template-columns:minmax(0,1fr)}
  .side{
    position:fixed;left:0;top:var(--doc-top);bottom:0;width:min(300px,86vw);height:auto;z-index:90;
    transform:translateX(-102%);transition:transform .3s var(--ease);box-shadow:0 0 40px rgba(0,0,0,.18);
  }
  .side.is-open{transform:none}
  .side__toggle{
    display:block;position:fixed;left:16px;bottom:18px;z-index:91;border:0;border-radius:999px;cursor:pointer;
    background:var(--ink);color:#fff;font:600 14px var(--font);padding:10px 16px;box-shadow:0 8px 24px rgba(0,0,0,.25);
  }
  .doc{padding:22px 16px 80px}
  .prose h1{font-size:26px}
  .prose h2{font-size:20px}
  .prose .anchor{display:none}
  .pager{grid-template-columns:1fr}
}
@media print{
  .nav,.side,.toc,.side__toggle,.pager,.doc__foot{display:none!important}
  .docs{display:block;padding:0}
  .doc{padding:0}
}
