:root{--nav-theme:0 0% 12%;--nav-theme-light:0 0% 32%;--ink:0 0% 10%;--ink-soft:0 0% 38%;--paper:0 0% 99%;--paper-2:0 0% 96%;--line:0 0% 87%;--accent:42 72% 44%;}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--nav-theme:0 0% 92%;--nav-theme-light:0 0% 70%;--ink:0 0% 93%;--ink-soft:0 0% 65%;--paper:0 0% 8%;--paper-2:0 0% 12%;--line:0 0% 24%;--accent:42 78% 62%;}}
:root[data-theme="dark"]{--nav-theme:0 0% 92%;--nav-theme-light:0 0% 70%;--ink:0 0% 93%;--ink-soft:0 0% 65%;--paper:0 0% 8%;--paper-2:0 0% 12%;--line:0 0% 24%;--accent:42 78% 62%;}
/* 框架层样式 —— 主题变量由 build.mjs 从 site.config.json 生成并前置注入 */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  color:hsl(var(--ink));
  background:hsl(var(--paper));
  overflow-x:hidden;
}
img{max-width:100%;height:auto}
a{color:hsl(var(--ink));text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:hsl(var(--accent))}
:focus-visible{outline:2px solid hsl(var(--accent));outline-offset:2px;border-radius:2px}

.wrap{width:100%;max-width:860px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:hsl(var(--paper));padding:10px 14px;border:1px solid hsl(var(--line))}

/* ---------- 头部与导航 ---------- */
.site-head{
  border-bottom:1px solid hsl(var(--line));
  background:hsl(var(--paper));
  position:sticky;top:0;z-index:20;
}
.head-inner{display:flex;align-items:center;gap:14px;min-height:60px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}
.brand-mark{
  width:26px;height:22px;border:2.5px solid hsl(var(--nav-theme));border-radius:5px;
  position:relative;flex:none;
}
.brand-mark::after{
  content:"";position:absolute;inset:0;margin:auto;width:9px;height:9px;
  border:2.5px solid hsl(var(--nav-theme));border-radius:50%;
}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-text b{font-size:16px;letter-spacing:.01em}
.brand-text i{font-style:normal;font-size:11px;color:hsl(var(--ink-soft));text-transform:uppercase;letter-spacing:.09em}

.site-nav{display:flex;gap:2px;flex-wrap:wrap}
.site-nav a{
  padding:7px 11px;border-radius:6px;font-size:14px;text-decoration:none;
  color:hsl(var(--ink-soft));white-space:nowrap;
}
.site-nav a:hover{background:hsl(var(--paper-2));color:hsl(var(--ink))}
.site-nav a[aria-current="page"]{background:hsl(var(--nav-theme));color:hsl(var(--paper))}

.nav-toggle{display:none;background:none;border:1px solid hsl(var(--line));border-radius:6px;width:40px;height:34px;cursor:pointer}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  display:block;width:18px;height:2px;background:hsl(var(--ink));margin:0 auto;position:relative
}
.nav-toggle span::before{content:"";position:absolute;top:-6px}
.nav-toggle span::after{content:"";position:absolute;top:6px}

@media(max-width:760px){
  .nav-toggle{display:block}
  .site-nav{display:none;width:100%;flex-direction:column;padding-bottom:10px}
  .site-nav.open{display:flex}
  .site-nav a{padding:10px 12px}
}

/* ---------- Hero ---------- */
.hero{
  border-bottom:1px solid hsl(var(--line));
  background:hsl(var(--paper-2));
  padding:44px 0 30px;
}
.eyebrow{
  margin:0 0 10px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:hsl(var(--ink-soft));
}
.hero h1{margin:0 0 12px;font-size:clamp(28px,6vw,44px);line-height:1.12;letter-spacing:-.02em}
.lede{margin:0 0 20px;font-size:clamp(16px,2.4vw,18px);color:hsl(var(--ink-soft));max-width:62ch}

.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.tab{
  display:inline-block;padding:9px 15px;border:1px solid hsl(var(--nav-theme));border-radius:999px;
  font-size:14px;text-decoration:none;background:hsl(var(--nav-theme));color:hsl(var(--paper));
}
.tab:hover{background:transparent;color:hsl(var(--ink))}
.tab+.tab{background:transparent;color:hsl(var(--ink));border-color:hsl(var(--line))}
.tab+.tab:hover{border-color:hsl(var(--nav-theme))}

.statbar{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:1px;margin:0;background:hsl(var(--line));border:1px solid hsl(var(--line));border-radius:8px;overflow:hidden;
}
.statbar>div{background:hsl(var(--paper));padding:12px 14px}
.statbar dt{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:hsl(var(--ink-soft))}
.statbar dd{margin:3px 0 0;font-size:14px;font-weight:600}

/* ---------- 正文 ---------- */
.prose{padding:34px 20px 56px}
.prose h1{margin:0 0 10px;font-size:clamp(26px,5vw,36px);line-height:1.18;letter-spacing:-.02em}
.prose h2{margin:38px 0 12px;font-size:clamp(20px,3.4vw,25px);line-height:1.25;letter-spacing:-.01em;
  padding-top:14px;border-top:1px solid hsl(var(--line))}
.prose h3{margin:26px 0 8px;font-size:17px}
.prose h4{margin:20px 0 6px;font-size:15px;color:hsl(var(--ink-soft))}
.prose p{margin:0 0 15px;max-width:70ch}
.prose ul,.prose ol{margin:0 0 16px;padding-left:22px;max-width:70ch}
.prose li{margin-bottom:6px}
.prose hr{border:0;border-top:1px solid hsl(var(--line));margin:32px 0}
.prose blockquote{
  margin:0 0 18px;padding:12px 16px;border-left:3px solid hsl(var(--accent));
  background:hsl(var(--paper-2));border-radius:0 6px 6px 0;
}
.prose blockquote p:last-child{margin-bottom:0}
.prose code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;
  background:hsl(var(--paper-2));padding:1px 5px;border-radius:4px;border:1px solid hsl(var(--line));
}
.meta{font-size:12.5px;color:hsl(var(--ink-soft));margin:0 0 24px}
.unconfirmed{
  font-style:normal;background:hsl(var(--paper-2));border-bottom:1px dotted hsl(var(--ink-soft));
  padding:0 3px;color:hsl(var(--ink-soft));
}

/* 表格：自身横向滚动，页面 body 永不横向滚动 */
.table-wrap{overflow-x:auto;margin:0 0 20px;border:1px solid hsl(var(--line));border-radius:8px}
table{border-collapse:collapse;width:100%;font-size:14px;min-width:420px}
th,td{padding:9px 12px;text-align:left;border-bottom:1px solid hsl(var(--line));vertical-align:top}
th{background:hsl(var(--paper-2));font-weight:600;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}

/* ---------- 导航页卡片 ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:22px 0 8px}
.card{
  display:block;padding:16px 17px;border:1px solid hsl(var(--line));border-radius:10px;
  text-decoration:none;background:hsl(var(--paper));
}
.card:hover{border-color:hsl(var(--nav-theme));background:hsl(var(--paper-2))}
.card h3{margin:0 0 6px;font-size:16px}
.card p{margin:0 0 10px;font-size:13.5px;color:hsl(var(--ink-soft));line-height:1.5}
.card .kw{
  font-size:11px;font-family:ui-monospace,Menlo,monospace;color:hsl(var(--ink-soft));
  border:1px solid hsl(var(--line));border-radius:4px;padding:1px 6px;display:inline-block;
}

/* ---------- 面包屑 / 相关 ---------- */
.crumb{font-size:12.5px;color:hsl(var(--ink-soft));padding-top:16px}
.crumb a{color:hsl(var(--ink-soft));text-decoration:none}
.crumb a:hover{color:hsl(var(--accent));text-decoration:underline}
.crumb .sep{margin:0 7px;opacity:.5}

.related{border-top:1px solid hsl(var(--line));padding:24px 0 44px}
.related h2{margin:0 0 12px;font-size:15px;letter-spacing:.05em;text-transform:uppercase;color:hsl(var(--ink-soft))}
.related ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.related a{display:block;padding:12px 14px;border:1px solid hsl(var(--line));border-radius:8px;text-decoration:none}
.related a:hover{border-color:hsl(var(--nav-theme))}
.related strong{display:block;font-size:14.5px;margin-bottom:3px}
.related span{display:block;font-size:12.5px;color:hsl(var(--ink-soft));line-height:1.45}

/* ---------- 勾选清单组件 ---------- */
.checklist{display:block;border:1px solid hsl(var(--line));border-radius:10px;padding:16px;margin:0 0 22px}
.checklist-bar{height:6px;border-radius:99px;background:hsl(var(--paper-2));overflow:hidden;margin:8px 0 14px}
.checklist-bar i{display:block;height:100%;background:hsl(var(--accent));width:0;transition:width .2s}
.checklist ul{list-style:none;margin:0;padding:0}
.checklist li{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px solid hsl(var(--line))}
.checklist li:last-child{border-bottom:0}
.checklist input{margin-top:4px;flex:none;width:16px;height:16px;accent-color:hsl(var(--accent))}
.checklist .done{text-decoration:line-through;color:hsl(var(--ink-soft))}
.checklist-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.checklist-head strong{font-size:15px}
.checklist-head span{font-size:12.5px;color:hsl(var(--ink-soft));font-variant-numeric:tabular-nums}

/* ---------- 页脚 ---------- */
.site-foot{border-top:1px solid hsl(var(--line));background:hsl(var(--paper-2));padding:34px 0 44px;margin-top:auto}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:28px}
@media(max-width:700px){.foot-grid{grid-template-columns:1fr;gap:22px}}
.site-foot h2{margin:0 0 9px;font-size:12px;letter-spacing:.11em;text-transform:uppercase;color:hsl(var(--ink-soft))}
.site-foot p{margin:0 0 9px;font-size:13px;line-height:1.55;max-width:46ch}
.site-foot .muted{color:hsl(var(--ink-soft));font-size:12px}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{margin-bottom:6px}
.site-foot a{font-size:13.5px;text-decoration:none;color:hsl(var(--ink-soft))}
.site-foot a:hover{color:hsl(var(--accent));text-decoration:underline}
