:root {
  text-autospace: normal;
  --container: 1280px;
  --ink: #0B211F;
  --teal: #0E9E8F;
  --teal-dark: #0B7569;
  --teal-soft: #E6F5F2;
  --muted: #566966;
  --line: #DCE5E3;
  --bg: #FFFFFF;
  --bg-soft: #F6F9F8;
  --amber: #8A5A0B;
  --amber-soft: #FFF4DC;
  --gray-soft: #EEF1F0;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", "微软雅黑", "Noto Sans SC", "Source Han Sans SC", sans-serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: 0;
  text-align: start;
  word-break: normal;
  overflow-wrap: break-word;
  line-break: strict;
}

pre, code, kbd, samp, .mono {
  text-autospace: no-autospace;
  font-variant-numeric: tabular-nums;
}

input, textarea, select { font-size: 16px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, "PingFang SC", "Microsoft YaHei", "微软雅黑", "Noto Sans SC", sans-serif; }

a { color: var(--teal-dark); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }

h1, h2, h3, h4 { font-weight: 700; text-align: start; margin: 0; }
h1 { font-size: 44px; line-height: 1.15; }
h2 { font-size: 28px; line-height: 1.35; }
h3 { font-size: 22px; line-height: 1.45; }
p { margin: 0 0 1.5em; }
p:last-child { margin-bottom: 0; }

.wrap { max-width: var(--container); margin: 0 auto; padding: 0 28px; }
.prose { max-width: 720px; }
.narrow { max-width: 760px; }

.site-head { border-bottom: 1px solid var(--line); background: var(--bg); }
.head-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 18px; padding-bottom: 18px; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: 14px; }
.brand img { display: block; width: 154px; height: auto; }
.brand-sub { font-size: 13px; line-height: 1.65; color: var(--muted); border-left: 1px solid var(--line); padding-left: 14px; }
.site-nav { display: flex; flex-wrap: wrap; gap: 6px; }
.site-nav a { font-size: 15px; padding: 6px 12px; border-radius: 6px; color: var(--ink); }
.site-nav a:hover { background: var(--bg-soft); text-decoration: none; }
.site-nav a[aria-current="page"] { background: var(--teal-soft); color: var(--teal-dark); font-weight: 700; }
.lang-switch { font-size: 14px; padding: 6px 12px; border-radius: 6px; color: var(--muted); border: 1px solid var(--line); margin-left: 4px; white-space: nowrap; }
.lang-switch:hover { background: var(--bg-soft); text-decoration: none; color: var(--teal-dark); border-color: var(--teal); }

.relation { background: var(--teal-soft); border-left: 3px solid var(--teal); padding: 10px 18px; font-size: 15px; line-height: 1.7; color: var(--teal-dark); }

.hero { padding: 64px 0 40px; }
.eyebrow { font-size: 13px; line-height: 1.65; color: var(--muted); margin-bottom: 20px; }
.hero h1 { max-width: 20em; margin-bottom: 28px; }
.lede { font-size: 20px; line-height: 1.7; max-width: 34em; margin-bottom: 28px; }
.cta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.btn { display: inline-block; font-size: 15px; font-weight: 700; min-width: 88px; padding: 11px 22px; border-radius: 8px; border: 1px solid var(--teal); text-align: center; }
.btn-primary { background: var(--teal); color: #FFFFFF; }
.btn-primary:hover { background: var(--teal-dark); border-color: var(--teal-dark); text-decoration: none; }
.btn-ghost { background: var(--bg); color: var(--teal-dark); }
.btn-ghost:hover { background: var(--teal-soft); text-decoration: none; }
.trust { font-size: 15px; line-height: 1.7; color: var(--muted); max-width: 38em; }

.stage { border: 1px solid var(--line); background: var(--bg-soft); border-radius: 10px; padding: 16px 20px; font-size: 15px; line-height: 1.7; margin: 8px 0 56px; }
.stage strong { color: var(--teal-dark); }

.section { padding: 0 0 56px; }
.section > h2 { margin-bottom: 8px; }
.section-intro { color: var(--muted); font-size: 17px; max-width: 38em; margin-bottom: 28px; }

.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.card { border: 1px solid var(--line); border-radius: 12px; padding: 24px 26px; background: var(--bg); }
.card h3 { font-size: 20px; line-height: 1.45; margin-bottom: 10px; }
.card p { font-size: 16px; line-height: 1.75; color: #334743; margin-bottom: 0; }
.card .num { font-size: 13px; line-height: 1.65; color: var(--teal-dark); display: block; margin-bottom: 8px; }
.card a.title { color: var(--ink); }
.card a.title:hover { color: var(--teal-dark); }
.card-meta { font-size: 13px; line-height: 1.65; color: var(--muted); margin-top: 12px; }

.tag { display: inline-block; font-size: 13px; line-height: 1.65; padding: 2px 10px; border-radius: 999px; white-space: nowrap; }
.tag-ok { background: var(--teal-soft); color: var(--teal-dark); }
.tag-src { background: var(--gray-soft); color: var(--muted); }
.tag-todo { background: var(--amber-soft); color: var(--amber); }
.tag-off { background: var(--gray-soft); color: var(--muted); }

.list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.list li { border-bottom: 1px solid var(--line); padding: 16px 4px; display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: baseline; justify-content: space-between; }
.list .li-cat { font-size: 13px; line-height: 1.65; color: var(--muted); min-width: 7em; }
.list .li-main { flex: 1 1 20em; font-size: 17px; }
.list .li-status { font-size: 13px; line-height: 1.65; color: var(--muted); }

.verbar { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13px; line-height: 1.65; color: var(--muted); border-bottom: 1px solid var(--line); padding-bottom: 14px; margin-bottom: 28px; }
.verbar .dot { color: var(--line); }
/* 状态四档：已核验 / 公开资料整理 / 待实测 / 已过期 */
.st{display:inline-block;padding:1px 9px;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em}
.st-ok{background:var(--teal-soft);color:var(--teal-dark)}
.st-src{background:var(--gray-soft);color:var(--muted)}
.st-todo{background:var(--amber-soft);color:var(--amber)}
.st-old{background:#EEEAEA;color:#8A7B7B}
/* 选题正文 */
.topic-body h3{margin:32px 0 10px;font-size:19px}
.tp-h2{margin-top:44px}
.topic-body + .tp-h2{margin-top:40px}
.topic-body p{margin:0 0 16px}
.topic-body ol{margin:0 0 16px;padding-left:22px}
.topic-body ol li{margin:6px 0}
.topic-body .prompt-box{margin:0 0 18px}
.topic-body .prompt-box pre{padding:16px 18px;font-size:.9rem}
.topic-body .notice{margin:0 0 18px}

.page-head { padding: 48px 0 24px; }
.page-head h1 { font-size: 34px; line-height: 1.25; margin-bottom: 16px; }
.page-head .lede { font-size: 18px; margin-bottom: 0; }

.notice { border-left: 3px solid var(--amber); background: var(--amber-soft); color: #6B4708; border-radius: 0 8px 8px 0; padding: 14px 18px; font-size: 15px; line-height: 1.7; margin: 0 0 28px; }
.notice-teal { border-left-color: var(--teal); background: var(--teal-soft); color: var(--teal-dark); }

.prose h2 { margin: 48px 0 16px; }
.prose h3 { margin: 32px 0 12px; }
.prose ul, .prose ol { padding-left: 1.4em; margin: 0 0 1.5em; }
.prose li { margin-bottom: 8px; }
.prose li:last-child { margin-bottom: 0; }

pre { background: var(--bg-soft); border: 1px solid var(--line); border-radius: 8px; padding: 18px 20px; font-size: 14px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: break-word; margin: 0 0 24px; font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", "Noto Sans Mono CJK SC", monospace; }
code { background: var(--gray-soft); border-radius: 4px; padding: 1px 5px; font-size: 0.9em; font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", "Noto Sans Mono CJK SC", monospace; }
pre code { background: none; padding: 0; font-size: 1em; }

table { width: 100%; border-collapse: collapse; font-size: 15px; font-variant-numeric: tabular-nums; margin: 0 0 28px; }
th, td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: start; vertical-align: top; line-height: 1.6; }
th { font-weight: 700; color: var(--muted); background: var(--bg-soft); }
td .num { font-variant-numeric: tabular-nums; }
.table-wrap { overflow-x: auto; }

.kv { border-top: 1px solid var(--line); margin: 0 0 28px; }
.kv div { display: flex; flex-wrap: wrap; gap: 4px 20px; border-bottom: 1px solid var(--line); padding: 12px 4px; font-size: 16px; line-height: 1.7; }
.kv dt { flex: 0 0 9em; color: var(--muted); }
.kv dd { margin: 0; flex: 1 1 20em; }

.checklist { list-style: none; padding: 0; margin: 0 0 24px; }
.checklist li { border-bottom: 1px solid var(--line); padding: 12px 0 12px 34px; position: relative; line-height: 1.7; }
.checklist li::before { content: ""; position: absolute; left: 4px; top: 20px; width: 14px; height: 14px; border: 1px solid var(--teal); border-radius: 3px; }
.checklist li.done::before { background: var(--teal); }
.checklist li.done { color: var(--muted); }

.site-foot { border-top: 1px solid var(--line); margin-top: 32px; padding: 36px 0 48px; font-size: 13px; line-height: 1.7; color: var(--muted); }
.foot-line { font-size: 17px; color: var(--ink); margin-bottom: 14px; }
.foot-nav { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 14px; }
.foot-nav a { font-size: 14px; }
.foot-fine { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 14px; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 768px) {
  body { font-size: 16px; }
  .wrap { padding: 0 20px; }
  h1 { font-size: 32px; }
  .page-head h1 { font-size: 28px; }
  h2 { font-size: 24px; }
  h3 { font-size: 20px; }
  .hero { padding: 40px 0 28px; }
  .lede { font-size: 18px; }
  .grid-2 { grid-template-columns: 1fr; }
  .card { padding: 20px; }
  .section { padding-bottom: 40px; }
  .stage { margin-bottom: 40px; }
  .brand img { width: 132px; }
  .brand-sub { border-left: none; padding-left: 0; }
  .site-nav a { padding: 5px 9px; }
  table { font-size: 14px; }
  th, td { padding: 10px 12px; }
  .kv dt { flex-basis: 100%; }
}

/* API 文档页：示例小标题 */
.sample-cap { font-size: 14px; font-weight: 600; color: var(--muted); margin: 26px 0 8px; }
.section > .wrap > .sample-cap:first-child { margin-top: 0; }
.sample-cap + pre { margin-bottom: 6px; }

/* 技术分组页：节点卡 */
.node-card h3{font-size:1.02rem;margin:0 0 8px}
.node-card h3 a{color:inherit}
.node-card p{margin:0 0 8px;font-size:.92rem;line-height:1.65}
.node-req{font-size:.82rem;color:var(--muted)}
.node-meta{font-size:.8rem;color:var(--muted);margin-bottom:0}

/* DSH 导航 */
.nav-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0 12px}
#nav-sort{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font-size:.9rem;font-family:inherit}
.nav-only{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;color:var(--muted);white-space:nowrap;cursor:pointer}
.nav-only input{width:15px;height:15px;accent-color:var(--teal)}
.nav-chips .chip i{font-style:normal;opacity:.55;margin-left:6px;font-size:.78rem}
.chip-tag{cursor:pointer;font-family:inherit}
.chip.on{background:var(--teal);color:#fff;border-color:var(--teal)}
.chip.on i{opacity:.8}
.chip-clear{background:none;border-style:dashed;color:var(--muted);cursor:pointer;font-family:inherit}
.nav-tags{align-items:center;margin-bottom:4px}
.nav-tag-label{font-size:.82rem;color:var(--muted);margin-right:2px}
#nav-q{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);font-size:.95rem;font-family:inherit}
.nav-hit{font-size:.84rem;color:var(--muted);white-space:nowrap;min-width:5em}
.nav-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.chip{padding:4px 13px;border-radius:999px;background:var(--soft);color:var(--fg);border:1px solid var(--line);font-size:.85rem}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.nav-list{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.nav-link{display:flex;flex-direction:column;gap:4px;height:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow);color:var(--fg)}
.nav-link:hover{border-color:var(--accent)}
.nav-link strong{font-size:.98rem;line-height:1.4}
.nav-host{font-size:.76rem;color:var(--muted);font-family:ui-monospace,Consolas,monospace}
.nav-desc{font-size:.88rem;line-height:1.6;color:var(--fg);opacity:.85}
.nav-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:auto;padding-top:10px}
.mini-tag{font-size:.72rem;color:var(--muted);background:var(--soft);border-radius:6px;padding:1px 7px}
.nav-item.empty{grid-column:1/-1;color:var(--muted);font-size:.9rem;padding:14px 4px}
@media (max-width:760px){
  .nav-list{grid-template-columns:1fr}
  .nav-tools{flex-direction:column;align-items:stretch}
  .nav-hit{min-width:0}
}

/* 窄屏：顶栏项多，隐藏可从页脚进入的三项，避免横向溢出裁切 */
@media (max-width: 560px) {
  .head-inner { gap: 12px; }
  .site-nav { min-width: 0; gap: 2px; }
  .site-nav a { padding: 6px 9px; font-size: 14px; }
  .site-nav a[href$="/compat/"],
  .site-nav a[href$="/fix/"],
  .site-nav a[href$="/community/"] { display: none; }
}

/* 提示词库 */
.pr-list{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pr-card{display:flex;flex-direction:column;gap:6px;height:100%;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow);color:var(--fg)}
.pr-card:hover{border-color:var(--accent)}
.pr-card strong{font-size:1rem;line-height:1.45}
.pr-scene{font-size:.9rem;line-height:1.65;color:var(--fg);opacity:.82}
.pr-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:auto;padding-top:10px}
.pr-item.empty{grid-column:1/-1;color:var(--muted);font-size:.9rem;padding:14px 4px}
.prompt-box{position:relative;margin-top:12px;border:1px solid var(--line);border-radius:14px;background:var(--bg-soft);overflow:hidden}
.prompt-box pre{margin:0;padding:46px 22px 20px;overflow-x:auto;font-size:.94rem;line-height:1.75}
.prompt-box code{font-family:inherit;white-space:pre-wrap;word-break:break-word;letter-spacing:.01em}
.copy-btn{position:absolute;top:10px;right:10px;padding:5px 12px;font-size:.8rem;font-family:inherit;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer}
.copy-btn:hover{border-color:var(--teal);color:var(--teal)}
.copy-btn.on{background:var(--teal);border-color:var(--teal);color:#fff}
.pr-cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.pr-cat-card{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow);color:var(--fg);transition:border-color .15s,transform .15s}
.pr-cat-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.pr-cat-head{display:block;color:inherit;text-decoration:none}
.pr-cat-head:hover strong{color:var(--accent)}
.pr-cat-n{position:absolute;top:16px;right:18px;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pr-cat-card strong{font-size:1.1rem;line-height:1.4;padding-right:52px}
.pr-cat-note{font-size:.88rem;line-height:1.6;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pr-cat-pick{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:3px;border-top:1px dashed var(--line);padding-top:8px}
.pr-cat-pick a{font-size:.85rem;line-height:1.55;color:var(--fg);opacity:.8}
.pr-cat-pick a:hover{opacity:1;color:var(--accent)}
.pr-cat-go{margin-top:auto;padding-top:6px;font-size:.85rem;color:var(--teal);text-decoration:none}
.pr-cat-go:hover{text-decoration:underline}
.crumb{display:flex;gap:8px;align-items:center;font-size:.88rem;color:var(--muted);margin:0 0 10px}
.crumb span{opacity:.5}
.crumb a{color:var(--teal);text-decoration:none}
.pr-cats-inline{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pr-cats-inline a{display:inline-flex;gap:6px;align-items:center;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:.88rem;text-decoration:none;color:var(--fg)}
.pr-cats-inline a:hover{border-color:var(--accent);color:var(--accent)}
.pr-cats-inline i{font-style:normal;font-size:.78rem;color:var(--muted)}
.pr-related{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}
.pr-related a{font-size:.95rem}
@media (max-width:1040px){ .pr-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){
  .pr-list{grid-template-columns:1fr}
  .pr-cat-grid{grid-template-columns:1fr}
  .prompt-box pre{padding:16px 14px;font-size:.9rem}
  .copy-btn{position:static;display:block;width:100%;border-radius:0;border-left:0;border-right:0;border-top:0;padding:8px}
}

.plain-list{list-style:none;margin:0 0 28px;padding:0}
.plain-list li{position:relative;padding:9px 0 9px 20px;line-height:1.7;font-size:.97rem}
.plain-list li::before{content:"";position:absolute;left:4px;top:19px;width:6px;height:6px;border-radius:50%;background:var(--teal);opacity:.55}

.tag-more{display:inline-block;font-size:.85rem}
.tag-more summary{cursor:pointer;color:var(--muted);padding:4px 4px;list-style:none}
.tag-more summary::-webkit-details-marker{display:none}
.tag-more summary::after{content:" ＋"}
.tag-more[open] summary::after{content:" −"}
.tag-more-in{display:inline-flex;flex-wrap:wrap;gap:8px;margin-left:6px}
