/* ═══════════════════════════════════════════════════════════════
   教程页共享样式（doc/ 下四页共用）
   ───────────────────────────────────────────────────────────────
   和 browse.css 同一套配色变量，任何一处改主色全站跟着变。
   教程页是长文阅读场景，所以刻意做了两件列表页不需要的事：
     · 正文 max-width 收窄到 760px（一行太长会读丢行）
     · 代码块支持一键复制，路径类内容占多数
   ═══════════════════════════════════════════════════════════════ */

:root{
  --bg:#070A11;
  --card:rgba(255,255,255,.033);
  --card-hi:rgba(255,255,255,.058);
  --line:rgba(255,255,255,.085);
  --line-hi:rgba(255,255,255,.16);
  --fg:#E9EFFA;
  --fg2:#A7B4CC;
  --fg3:#6E7C96;
  --blue:#4C8DFF;
  --violet:#8B5CF6;
  --mint:#2FE0A8;
  --amber:#FFC24B;
  --red:#FF6B6B;
  --r:16px;
  --max:1120px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--fg);font-family:var(--font);
  font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased;min-height:100vh;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(900px 480px at 12% -6%, rgba(76,141,255,.10), transparent 60%),
    radial-gradient(760px 420px at 88% -4%, rgba(139,92,246,.08), transparent 58%);
}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{width:min(var(--max),calc(100% - 36px));margin:0 auto;position:relative;z-index:1}

/* ── 顶栏 ── */
.topbar{
  position:sticky;top:0;z-index:50;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  background:rgba(7,10,17,.84);border-bottom:1px solid var(--line);
}
.topbar-in{
  width:min(var(--max),calc(100% - 36px));margin:0 auto;
  height:58px;display:flex;align-items:center;gap:18px;
}
.logo{display:flex;align-items:center;gap:9px;font-weight:800;font-size:15px;color:var(--fg);text-decoration:none}
.logo:hover{text-decoration:none}
.logo-mark{
  width:25px;height:25px;border-radius:8px;display:block;flex:0 0 auto;
  /* 图标文件自带蓝紫渐变底，不要再叠背景/文字样式 */
  object-fit:cover;
}
.topnav{display:flex;gap:3px}
.topnav a{
  padding:5px 11px;border-radius:8px;font-size:13.2px;color:var(--fg2);text-decoration:none;
  transition:background .15s,color .15s;
}
.topnav a:hover{background:var(--card-hi);color:var(--fg);text-decoration:none}
.topnav a.on{background:var(--card-hi);color:var(--fg);font-weight:650}
.crumb{margin-left:auto;font-size:12.4px;color:var(--fg3)}
.crumb a{color:var(--fg3);text-decoration:none}
.crumb a:hover{color:var(--fg2)}

/* ── 正文卡片 ── */
.doc{padding:34px 0 70px}
.doc-card{
  background:var(--card);border:1px solid var(--line);border-radius:20px;
  padding:38px 42px 44px;
}
.doc-body{max-width:768px}

h1{font-size:clamp(25px,3.4vw,33px);font-weight:800;letter-spacing:-1px;line-height:1.28;margin-bottom:12px}
h1 em{font-style:normal;color:var(--blue)}
.lead{color:var(--fg2);font-size:14.8px;margin-bottom:8px}

h2{
  font-size:20px;font-weight:750;letter-spacing:-.4px;line-height:1.35;
  margin:40px 0 14px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:10px;
}
h2:first-of-type{border-top:0;padding-top:0;margin-top:30px}
h2 .n{
  flex-shrink:0;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;
  background:rgba(76,141,255,.14);border:1px solid rgba(76,141,255,.3);
  color:var(--blue);font-size:12px;font-weight:800;
}
h3{font-size:15.6px;font-weight:700;margin:24px 0 9px;letter-spacing:-.15px}
p{color:var(--fg2);margin-bottom:12px}
p b,li b{color:var(--fg);font-weight:650}
strong{color:var(--fg)}

ul,ol{margin:0 0 14px;padding-left:22px;color:var(--fg2)}
li{margin-bottom:7px}
li::marker{color:var(--fg3)}

/* 行内代码 */
code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12.8px;padding:1.5px 5px;border-radius:5px;
  background:rgba(255,255,255,.07);color:#BFD4FF;word-break:break-all;
}

/* 代码块 */
.code{
  position:relative;margin:0 0 14px;border-radius:11px;
  background:rgba(0,0,0,.42);border:1px solid var(--line);
}
.code pre{
  margin:0;padding:13px 46px 13px 15px;overflow-x:auto;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:12.7px;line-height:1.72;color:#C9D8F0;
  white-space:pre-wrap;word-break:break-all;
}
.cp{
  position:absolute;right:8px;top:8px;padding:3px 9px;border-radius:6px;cursor:pointer;
  background:rgba(255,255,255,.08);border:1px solid var(--line);
  color:var(--fg3);font-size:11.4px;font-family:inherit;transition:.15s;
}
.cp:hover{background:rgba(255,255,255,.14);color:var(--fg)}
.cp.ok{color:var(--mint);border-color:rgba(47,224,168,.4)}

/* 提示条 */
.note{
  display:flex;gap:11px;padding:13px 15px;border-radius:11px;margin:0 0 16px;
  font-size:13.6px;line-height:1.72;
  background:rgba(76,141,255,.08);border:1px solid rgba(76,141,255,.22);
  color:#C4D6F5;
}
.note .ic{flex-shrink:0;font-weight:800;color:var(--blue)}
.note.warn{background:rgba(255,194,75,.075);border-color:rgba(255,194,75,.25);color:#F0DCB0}
.note.warn .ic{color:var(--amber)}
.note.danger{background:rgba(255,107,107,.075);border-color:rgba(255,107,107,.26);color:#F5C2C2}
.note.danger .ic{color:var(--red)}
.note b{color:#fff}

/* 表格 */
.tbl-wrap{overflow-x:auto;margin:0 0 16px;border-radius:11px;border:1px solid var(--line)}
table{width:100%;border-collapse:collapse;font-size:13.2px;min-width:420px}
th{
  text-align:left;padding:10px 13px;background:rgba(255,255,255,.04);
  color:var(--fg2);font-weight:700;font-size:12.4px;letter-spacing:.2px;
  border-bottom:1px solid var(--line);white-space:nowrap;
}
td{padding:9px 13px;border-bottom:1px solid rgba(255,255,255,.045);color:var(--fg2)}
tr:last-child td{border-bottom:0}
td b{color:var(--fg)}
.ok{color:var(--mint);font-weight:700}
.no{color:var(--red);font-weight:700}

/* 平台切换标签 */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}
.tab{
  padding:6px 14px;border-radius:9px;font-size:13.2px;cursor:pointer;
  background:rgba(255,255,255,.045);border:1px solid var(--line);
  color:var(--fg2);font-family:inherit;transition:.15s;
}
.tab:hover{border-color:var(--line-hi);color:var(--fg)}
.tab.on{background:rgba(76,141,255,.16);border-color:rgba(76,141,255,.42);color:#fff;font-weight:650}
.pane{display:none}
.pane.on{display:block}

/* 导航卡片（目录页） */
.cards{display:grid;grid-template-columns:1fr;gap:12px;margin:22px 0 6px}
.ncard{
  display:flex;gap:14px;padding:17px 18px;border-radius:14px;
  background:var(--card);border:1px solid var(--line);
  transition:transform .18s,border-color .18s,background .18s;
  text-decoration:none;color:inherit;
}
.ncard:hover{transform:translateY(-2px);border-color:var(--line-hi);background:var(--card-hi);text-decoration:none}
.ncard-ic{
  width:38px;height:38px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;
  background:rgba(76,141,255,.13);color:var(--blue);font-size:17px;
}
.ncard-b{flex:1;min-width:0}
.ncard-t{font-size:15px;font-weight:700;letter-spacing:-.2px;margin-bottom:3px;display:flex;align-items:center;gap:8px}
.ncard-t .badge{
  font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:5px;
  background:rgba(47,224,168,.13);color:var(--mint);border:1px solid rgba(47,224,168,.28);
}
.ncard-d{font-size:12.9px;color:var(--fg3);line-height:1.65}
.ncard-go{color:var(--fg3);font-size:16px;align-self:center;flex-shrink:0}

/* 底部翻页 */
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:40px;padding-top:22px;border-top:1px solid var(--line)}
.pager a{
  font-size:13.4px;color:var(--fg2);text-decoration:none;
  padding:8px 14px;border-radius:9px;background:var(--card);border:1px solid var(--line);
  transition:.15s;
}
.pager a:hover{background:var(--card-hi);color:var(--fg);text-decoration:none;border-color:var(--line-hi)}

/* ── 手机端 ── */
@media(max-width:760px){
  .doc{padding:20px 0 50px}
  .doc-card{padding:22px 18px 30px;border-radius:16px}
  /* 原来直接隐藏导航，手机上只能靠浏览器返回键在页面间走。
     改成第二行横向滚动，和首页/资源页保持一致。 */
  .topbar-in{flex-wrap:wrap;height:auto;padding-top:9px;row-gap:0}
  .topnav{
    display:flex;order:3;width:100%;gap:2px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    padding:0 18px 8px;margin:0 -18px;scrollbar-width:none;
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 24px),transparent 100%);
    mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 24px),transparent 100%);
  }
  .topnav::-webkit-scrollbar{display:none}
  .topnav a{padding:5px 9px;font-size:12.6px;white-space:nowrap;flex-shrink:0}
  .crumb{margin-left:auto;font-size:11.6px}
  h2{font-size:18px;margin:30px 0 12px;padding-top:18px}
  h3{font-size:14.8px}
  .code pre{font-size:11.9px;padding:11px 42px 11px 12px}
  .note{font-size:13px;padding:11px 12px}
  .ncard{padding:14px 14px;gap:11px}
  .ncard-t{font-size:14.2px}
  .ncard-d{font-size:12.3px}
  .pager{flex-direction:column}
  .pager a{text-align:center}
}
