/* ==========================================================================
   KimiVPN — deepdoc.css
   深度指南页(handbook.html)专属样式:文档头部 / 章节节奏 / 协议卡 /
   术语表 / 延伸链接。所有颜色与圆角一律引用 base.css 的 :root 令牌。
   ========================================================================== */

/* ---------- 文档外壳 ---------- */
.doc{
  display:block;
  padding-top:40px;
  padding-bottom:8px;
  max-width:var(--maxw);
}
.doc > * + *{margin-top:28px}

/* ---------- 文档头部 ---------- */
.doc-head{
  padding:34px 36px 30px;
  background:linear-gradient(160deg,var(--panel) 0%,var(--panel-3) 100%);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-panel);
  position:relative;
  overflow-x:clip;
}
.doc-head::before{
  content:"";
  position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent-soft));
}
.doc-kicker{
  display:inline-flex;align-items:center;
  min-height:28px;padding:0 12px;
  border-radius:var(--r-pill);
  background:var(--accent-tint);color:var(--accent);
  font-family:var(--font-mono);font-size:11.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
}
.doc-head h1{
  margin-top:16px;
  font-size:48px;
  line-height:1.14;
  letter-spacing:-.03em;
  max-width:760px;
}
.doc-lede{
  margin-top:18px;
  max-width:720px;
  font-size:17px;
  line-height:1.8;
  color:var(--muted);
}
.doc-meta{
  display:flex;flex-wrap:wrap;gap:10px 26px;
  margin-top:22px;padding-top:18px;
  border-top:1px solid var(--border);
  font-family:var(--font-mono);font-size:12px;color:var(--muted);
}
.doc-meta span{display:inline-flex;align-items:center;gap:8px}
.doc-meta i{
  width:6px;height:6px;border-radius:50%;flex-shrink:0;
  background:var(--accent-soft);
}

/* ---------- 章节 ---------- */
.doc-sec{padding-top:8px}
.doc-sec + .doc-sec{
  padding-top:44px;
  border-top:1px solid var(--border-soft);
}
.doc-sec > h2{
  font-size:34px;
  line-height:1.22;
  letter-spacing:-.025em;
  max-width:820px;
}
.doc-sec > h2 + *{margin-top:18px}
.doc-sec h3{
  font-size:20px;
  margin-top:34px;
  padding-left:14px;
  position:relative;
}
.doc-sec h3::before{
  content:"";
  position:absolute;left:0;top:6px;bottom:6px;width:3px;
  border-radius:3px;
  background:linear-gradient(180deg,var(--accent),var(--accent-soft));
}
.doc-sec h3 + *{margin-top:12px}
.doc-sec .data-table{font-size:14px;min-width:680px}
.doc-sec pre{margin-top:16px}
.doc-sec .callout{margin-top:22px}
.doc-sec .table-scroll{margin-top:18px}

/* 章节内的普通段落与列表节奏 */
.doc-sec p + p{margin-top:14px}
.doc-sec p + ul,.doc-sec p + ol,
.doc-sec ul + p,.doc-sec ol + p{margin-top:14px}
.doc-sec ul + ul,.doc-sec ol + ol{margin-top:12px}
.doc-sec ul,.doc-sec ol{margin-top:14px}

/* ---------- 协议卡网格 ---------- */
.proto-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-top:24px;
}
.proto-card{
  display:flex;flex-direction:column;gap:8px;
  padding:20px;
  background:var(--panel);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-soft);
  min-width:0;
  transition:transform .15s ease,box-shadow .15s ease;
}
.proto-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-panel)}
.proto-name{
  font-family:var(--font-display);
  font-weight:800;font-size:17px;letter-spacing:-.02em;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.proto-tag{
  display:inline-flex;align-self:flex-start;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:3px 10px;border-radius:var(--r-pill);
  background:var(--accent-tint);color:var(--accent);
  font-family:var(--font-mono);font-size:11px;font-weight:600;
}
.proto-card p{
  font-size:14px;line-height:1.7;color:var(--muted);
  margin-top:2px;
}

/* ---------- 术语表 ---------- */
.glossary{
  display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);
  gap:0 28px;
  margin-top:20px;
  background:var(--panel);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-soft);
  padding:8px 24px;
}
.glossary dt{
  padding:14px 0;
  font-family:var(--font-display);
  font-weight:700;font-size:15px;
  color:var(--accent);
  border-top:1px solid var(--border-soft);
  word-break:keep-all;
}
.glossary dd{
  margin:0;
  padding:14px 0;
  font-size:14.5px;line-height:1.75;color:var(--muted);
  border-top:1px solid var(--border-soft);
}
.glossary dt:first-of-type,
.glossary dt:first-of-type + dd{border-top:0}

/* ---------- 延伸链接 ---------- */
.doc-links{display:grid;gap:10px;margin-top:18px}
.doc-links li{
  display:flex;gap:10px;align-items:flex-start;
  padding:14px 18px;
  background:var(--panel);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-soft);
  font-size:14.5px;line-height:1.7;color:var(--muted);
  min-width:0;
}
.doc-links li::before{
  content:"";
  width:6px;height:6px;border-radius:50%;flex-shrink:0;
  margin-top:9px;
  background:var(--accent-soft);
}
.doc-links a{
  flex:none;
  color:var(--accent);font-weight:700;
  text-decoration:underline;text-underline-offset:3px;
}
.doc-links a:hover{color:var(--accent-dark)}

/* ---------- 响应式 ---------- */
@media (max-width:1024px){
  .doc-head h1{font-size:40px}
  .doc-sec > h2{font-size:29px}
  .proto-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .glossary{grid-template-columns:minmax(0,1fr);padding:4px 20px}
  .glossary dt{padding-bottom:2px;border-top:1px solid var(--border-soft)}
  .glossary dd{padding-top:6px;border-top:0}
  .glossary dt:first-of-type{border-top:0}
}
@media (max-width:768px){
  .doc{padding-top:24px}
  .doc-head{padding:26px 22px 24px}
  .doc-head h1{font-size:31px;line-height:1.18}
  .doc-lede{font-size:15.5px}
  .doc-sec > h2{font-size:25px}
  .doc-sec h3{font-size:18px;margin-top:28px}
  .doc-sec + .doc-sec{padding-top:34px}
  .proto-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:640px){
  .doc-head h1{font-size:27px}
  .doc-head{padding:22px 18px 20px}
  .doc-sec > h2{font-size:23px}
  .proto-card{padding:16px}
}
@media (prefers-reduced-motion:reduce){
  .proto-card:hover{transform:none}
}