/* ZWOPS 文档站 —— 纯静态样式，无任何外部依赖 */
*,*::before,*::after{box-sizing:border-box}
:root{
  --brand:#2563eb; --brand-soft:#dbeafe;
  --bg:#ffffff; --bg-alt:#f7f8fa; --bg-side:#fbfbfc;
  --text:#1f2328; --text-dim:#5b6470; --text-faint:#8b949e;
  --border:#e4e7ec; --border-soft:#eef0f3;
  --code-bg:#f4f5f7; --code-text:#b31d28;
  --pre-bg:#1f2430; --pre-text:#e6e6e6;
  --quote-bg:#f6f8ff; --quote-line:#93b4fd;
  --shadow:0 1px 2px rgba(16,24,40,.06),0 8px 24px rgba(16,24,40,.06);
  --radius:10px;
  --sidebar-w:300px; --onpage-w:220px; --topbar-h:60px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace;
}
html[data-theme="dark"]{
  --brand:#60a5fa; --brand-soft:#1c3050;
  --bg:#14171c; --bg-alt:#191d23; --bg-side:#171b21;
  --text:#e6e8eb; --text-dim:#a7b0bb; --text-faint:#7d8794;
  --border:#2a3038; --border-soft:#232830;
  --code-bg:#21262e; --code-text:#ff9a9a;
  --pre-bg:#0e1116; --pre-text:#dfe3e8;
  --quote-bg:#1a2029; --quote-line:#3b6ea8;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35);
}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topbar-h) + 18px)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);
  font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}

/* ── 顶栏 ───────────────────────────── */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);z-index:60;
  display:flex;align-items:center;gap:12px;padding:0 20px;background:var(--bg);
  border-bottom:1px solid var(--border)}
@supports (backdrop-filter:blur(1px)){
  .topbar{background:rgba(255,255,255,.86);backdrop-filter:saturate(180%) blur(12px)}
  html[data-theme="dark"] .topbar{background:rgba(20,23,28,.86)}
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);
  font-weight:650;font-size:15px;flex:1;min-width:0}
.brand-mark{width:28px;height:28px;border-radius:8px;background:var(--brand);color:#fff;
  display:grid;place-items:center;font-size:12px;font-weight:800;flex:none;letter-spacing:-.02em}
.brand-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar-right{display:flex;align-items:center;gap:8px}
.search-btn{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;
  border:1px solid var(--border);background:var(--bg-alt);color:var(--text-dim);
  border-radius:8px;cursor:pointer;font-size:13px;font-family:var(--font)}
.search-btn:hover{border-color:var(--brand);color:var(--text)}
.search-btn kbd{font-family:var(--mono);font-size:11px;padding:1px 5px;border-radius:4px;
  background:var(--bg);border:1px solid var(--border);color:var(--text-faint)}
.theme-btn,.menu-btn{width:36px;height:36px;border:1px solid var(--border);background:var(--bg-alt);
  color:var(--text-dim);border-radius:8px;cursor:pointer;font-size:15px;line-height:1}
.theme-btn:hover,.menu-btn:hover{border-color:var(--brand);color:var(--text)}
.menu-btn{display:none}

/* ── 布局 ───────────────────────────── */
.layout{display:flex;align-items:flex-start;padding-top:var(--topbar-h)}
.sidebar{position:fixed;top:var(--topbar-h);bottom:0;left:0;width:var(--sidebar-w);
  background:var(--bg-side);border-right:1px solid var(--border);
  overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;
  z-index:50;scrollbar-width:thin}
.side-nav{padding:20px 12px 12px;flex:1}
.side-foot{padding:14px 20px 20px;border-top:1px solid var(--border-soft);
  font-size:11.5px;color:var(--text-faint);display:flex;flex-direction:column;gap:3px}
.side-foot .ver{font-family:var(--mono)}
.content{margin-left:var(--sidebar-w);margin-right:var(--onpage-w);
  flex:1;min-width:0;padding:36px 56px 80px;max-width:1000px}
.onpage{position:fixed;top:var(--topbar-h);right:0;width:var(--onpage-w);
  max-height:calc(100vh - var(--topbar-h));overflow-y:auto;padding:36px 20px 40px 4px;
  font-size:13px;scrollbar-width:thin}
.onpage-title{font-size:11.5px;font-weight:700;letter-spacing:.06em;color:var(--text-faint);
  margin-bottom:10px}
.onpage nav{display:flex;flex-direction:column;gap:1px;border-left:2px solid var(--border-soft)}
.onpage a{color:var(--text-dim);text-decoration:none;padding:3px 0 3px 12px;
  border-left:2px solid transparent;margin-left:-2px;line-height:1.5}
.onpage a:hover{color:var(--text)}
.onpage a.active{color:var(--brand);border-left-color:var(--brand);font-weight:600}
.onpage a.lv3{padding-left:24px;font-size:12.5px}

/* ── 侧边栏顶部：页面菜单 ─────────────── */
.page-nav{display:flex;flex-direction:column;gap:4px;padding:0 0 14px;
  margin-bottom:10px;border-bottom:1px solid var(--border-soft)}
.page-nav:empty{display:none}
.page-nav-item{display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:8px;
  text-decoration:none;color:var(--text);font-weight:620;font-size:13.5px;
  background:var(--bg-alt);transition:background .15s ease,color .15s ease}
.page-nav-item:before{content:"";width:3px;height:14px;border-radius:2px;
  background:var(--border);flex:none}
.page-nav-item:hover{color:var(--brand)}
.page-nav-item.active{background:var(--brand-soft);color:var(--brand)}
.page-nav-item.active:before{background:var(--brand)}

/* ── 侧边栏树 ───────────────────────── */
.side-group{margin-bottom:1px}
.side-l2{display:block;padding:7px 10px;border-radius:7px;color:var(--text);
  text-decoration:none;font-weight:620;font-size:13.5px;line-height:1.5}
.side-l2:hover{background:var(--bg-alt);color:var(--brand)}
.side-l2.active{background:var(--brand-soft);color:var(--brand)}
.side-children{margin:1px 0 6px 8px;padding-left:9px;border-left:1px solid var(--border-soft);
  display:none}
.side-group.open>.side-children{display:block}
.side-l3{display:block;padding:4px 8px;border-radius:6px;color:var(--text-dim);
  text-decoration:none;font-size:13px;line-height:1.55}
.side-l3:hover{background:var(--bg-alt);color:var(--brand)}
.side-l3.active{color:var(--brand);font-weight:600;background:var(--bg-alt)}
.side-l4-wrap{margin-left:6px;padding-left:8px;border-left:1px dashed var(--border);
  display:none}
.side-group.open .side-l4-wrap.show{display:block}
.side-l4{display:block;padding:3px 8px;border-radius:6px;color:var(--text-faint);
  text-decoration:none;font-size:12.5px;line-height:1.5}
.side-l4:hover,.side-l4.active{color:var(--brand)}

/* ── 软件下载清单 ───────────────────── */
.dl-empty{margin:18px 0;padding:16px 18px;border:1px dashed var(--border);
  border-radius:10px;background:var(--bg-alt);color:var(--text-dim);font-size:13.5px;
  line-height:1.7}
.dl-empty code{font-family:var(--mono);font-size:12.5px;background:var(--bg);
  padding:1px 5px;border-radius:4px;border:1px solid var(--border-soft)}
.dl-wrap{margin:10px 0 0}
.dl-group{font-size:16px;font-weight:680;margin:26px 0 8px;padding:0;border:0}
.dl-table{width:100%;border-collapse:collapse;font-size:13.5px;margin:0 0 6px}
.dl-table th{text-align:left;font-weight:620;color:var(--text-dim);font-size:12.5px;
  padding:7px 10px;border-bottom:1px solid var(--border)}
.dl-table td{padding:10px;border-bottom:1px solid var(--border-soft);vertical-align:middle}
.dl-table tr:hover td{background:var(--bg-alt)}
.dl-file .dl-title{display:block;font-weight:620;color:var(--text)}
.dl-file .dl-name{display:block;font-family:var(--mono);font-size:11.5px;
  color:var(--text-faint);margin-top:2px;word-break:break-all}
.dl-desc{color:var(--text-dim);line-height:1.6}
.dl-nod{color:var(--text-faint)}
.dl-size,.dl-date{white-space:nowrap;color:var(--text-dim);font-size:12.5px}
.dl-act{text-align:right;white-space:nowrap}
.dl-btn{display:inline-block;padding:5px 13px;border-radius:7px;text-decoration:none;
  font-size:12.5px;font-weight:620;color:#fff;background:var(--brand)}
.dl-btn:hover{opacity:.88}
.dl-foot{margin:14px 0 0;font-size:12.5px;color:var(--text-faint)}
@media(max-width:760px){
  .dl-table thead{display:none}
  .dl-table td{display:block;border:0;padding:2px 0}
  .dl-table tr{display:block;padding:12px 0;border-bottom:1px solid var(--border-soft)}
  .dl-act{text-align:left;padding-top:8px}
}

/* ── 正文 ───────────────────────────── */
.md{font-size:15px}
.md h1{font-size:30px;line-height:1.3;margin:0 0 8px;font-weight:750;letter-spacing:-.01em}
.md h1+blockquote{margin-top:14px}
.md h2{font-size:23px;line-height:1.35;margin:52px 0 14px;padding-top:18px;
  border-top:1px solid var(--border-soft);font-weight:700;letter-spacing:-.005em}
.md h3{font-size:18px;margin:34px 0 10px;font-weight:680}
.md h4{font-size:15.5px;margin:26px 0 8px;font-weight:680;color:var(--text)}
.md h5,.md h6{font-size:14px;margin:20px 0 6px;font-weight:680;color:var(--text-dim)}
.md p{margin:12px 0}
.md a{color:var(--brand);text-decoration:none;border-bottom:1px solid transparent}
.md a:hover{border-bottom-color:var(--brand)}
.md strong{font-weight:680}
.md ul,.md ol{margin:12px 0;padding-left:24px}
.md li{margin:5px 0}
.md li>ul,.md li>ol{margin:5px 0}
.md hr{border:0;border-top:1px solid var(--border);margin:40px 0}
.md blockquote{margin:16px 0;padding:12px 16px;background:var(--quote-bg);
  border-left:3px solid var(--quote-line);border-radius:0 8px 8px 0;color:var(--text-dim)}
.md blockquote p{margin:6px 0}
.md blockquote> :first-child{margin-top:0}
.md blockquote> :last-child{margin-bottom:0}
.md blockquote blockquote{margin:8px 0;background:transparent;border-left-color:var(--border)}
.md :not(pre)>code{font-family:var(--mono);font-size:.875em;padding:2px 6px;
  border-radius:5px;background:var(--code-bg);color:var(--code-text);word-break:break-word}
.md pre{margin:16px 0;padding:16px 18px;background:var(--pre-bg);color:var(--pre-text);
  border-radius:var(--radius);overflow-x:auto;font-size:13px;line-height:1.65}
.md pre code{font-family:var(--mono);background:none;color:inherit;padding:0;font-size:inherit}
.md table{width:100%;border-collapse:collapse;margin:18px 0;font-size:13.5px;
  display:block;overflow-x:auto}
.md table thead th{background:var(--bg-alt);font-weight:680;text-align:left;white-space:nowrap}
.md th,.md td{border:1px solid var(--border);padding:8px 12px;vertical-align:top}
.md tbody tr:nth-child(even){background:var(--bg-alt)}
.md img{max-width:100%;border-radius:8px}
.md kbd{font-family:var(--mono);font-size:12px;padding:2px 6px;border:1px solid var(--border);
  border-bottom-width:2px;border-radius:5px;background:var(--bg-alt)}
.page-foot{margin-top:72px;padding-top:20px;border-top:1px solid var(--border);
  font-size:12.5px;color:var(--text-faint);display:flex;justify-content:space-between;
  gap:16px;flex-wrap:wrap}

/* ── 代码高亮 ───────────────────────── */
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.md pre .hll { background-color: #ffffcc }
.md pre { background: #f8f8f8; }
.md pre .c { color: #3D7B7B; font-style: italic } /* Comment */
.md pre .err { border: 1px solid #F00 } /* Error */
.md pre .k { color: #008000; font-weight: bold } /* Keyword */
.md pre .o { color: #666 } /* Operator */
.md pre .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
.md pre .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
.md pre .cp { color: #9C6500 } /* Comment.Preproc */
.md pre .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
.md pre .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
.md pre .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
.md pre .gd { color: #A00000 } /* Generic.Deleted */
.md pre .ge { font-style: italic } /* Generic.Emph */
.md pre .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.md pre .gr { color: #E40000 } /* Generic.Error */
.md pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.md pre .gi { color: #008400 } /* Generic.Inserted */
.md pre .go { color: #717171 } /* Generic.Output */
.md pre .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.md pre .gs { font-weight: bold } /* Generic.Strong */
.md pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.md pre .gt { color: #04D } /* Generic.Traceback */
.md pre .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.md pre .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.md pre .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.md pre .kp { color: #008000 } /* Keyword.Pseudo */
.md pre .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.md pre .kt { color: #B00040 } /* Keyword.Type */
.md pre .m { color: #666 } /* Literal.Number */
.md pre .s { color: #BA2121 } /* Literal.String */
.md pre .na { color: #687822 } /* Name.Attribute */
.md pre .nb { color: #008000 } /* Name.Builtin */
.md pre .nc { color: #00F; font-weight: bold } /* Name.Class */
.md pre .no { color: #800 } /* Name.Constant */
.md pre .nd { color: #A2F } /* Name.Decorator */
.md pre .ni { color: #717171; font-weight: bold } /* Name.Entity */
.md pre .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
.md pre .nf { color: #00F } /* Name.Function */
.md pre .nl { color: #767600 } /* Name.Label */
.md pre .nn { color: #00F; font-weight: bold } /* Name.Namespace */
.md pre .nt { color: #008000; font-weight: bold } /* Name.Tag */
.md pre .nv { color: #19177C } /* Name.Variable */
.md pre .ow { color: #A2F; font-weight: bold } /* Operator.Word */
.md pre .w { color: #BBB } /* Text.Whitespace */
.md pre .mb { color: #666 } /* Literal.Number.Bin */
.md pre .mf { color: #666 } /* Literal.Number.Float */
.md pre .mh { color: #666 } /* Literal.Number.Hex */
.md pre .mi { color: #666 } /* Literal.Number.Integer */
.md pre .mo { color: #666 } /* Literal.Number.Oct */
.md pre .sa { color: #BA2121 } /* Literal.String.Affix */
.md pre .sb { color: #BA2121 } /* Literal.String.Backtick */
.md pre .sc { color: #BA2121 } /* Literal.String.Char */
.md pre .dl { color: #BA2121 } /* Literal.String.Delimiter */
.md pre .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.md pre .s2 { color: #BA2121 } /* Literal.String.Double */
.md pre .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
.md pre .sh { color: #BA2121 } /* Literal.String.Heredoc */
.md pre .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
.md pre .sx { color: #008000 } /* Literal.String.Other */
.md pre .sr { color: #A45A77 } /* Literal.String.Regex */
.md pre .s1 { color: #BA2121 } /* Literal.String.Single */
.md pre .ss { color: #19177C } /* Literal.String.Symbol */
.md pre .bp { color: #008000 } /* Name.Builtin.Pseudo */
.md pre .fm { color: #00F } /* Name.Function.Magic */
.md pre .vc { color: #19177C } /* Name.Variable.Class */
.md pre .vg { color: #19177C } /* Name.Variable.Global */
.md pre .vi { color: #19177C } /* Name.Variable.Instance */
.md pre .vm { color: #19177C } /* Name.Variable.Magic */
.md pre .il { color: #666 } /* Literal.Number.Integer.Long */
html[data-theme="dark"] .md pre{background:var(--pre-bg)}
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
html[data-theme="dark"] .md pre .hll { background-color: #49483e }
html[data-theme="dark"] .md pre { background: #272822; color: #F8F8F2 }
html[data-theme="dark"] .md pre .c { color: #959077 } /* Comment */
html[data-theme="dark"] .md pre .err { color: #ED007E; background-color: #1E0010 } /* Error */
html[data-theme="dark"] .md pre .esc { color: #F8F8F2 } /* Escape */
html[data-theme="dark"] .md pre .g { color: #F8F8F2 } /* Generic */
html[data-theme="dark"] .md pre .k { color: #66D9EF } /* Keyword */
html[data-theme="dark"] .md pre .l { color: #AE81FF } /* Literal */
html[data-theme="dark"] .md pre .n { color: #F8F8F2 } /* Name */
html[data-theme="dark"] .md pre .o { color: #FF4689 } /* Operator */
html[data-theme="dark"] .md pre .x { color: #F8F8F2 } /* Other */
html[data-theme="dark"] .md pre .p { color: #F8F8F2 } /* Punctuation */
html[data-theme="dark"] .md pre .ch { color: #959077 } /* Comment.Hashbang */
html[data-theme="dark"] .md pre .cm { color: #959077 } /* Comment.Multiline */
html[data-theme="dark"] .md pre .cp { color: #959077 } /* Comment.Preproc */
html[data-theme="dark"] .md pre .cpf { color: #959077 } /* Comment.PreprocFile */
html[data-theme="dark"] .md pre .c1 { color: #959077 } /* Comment.Single */
html[data-theme="dark"] .md pre .cs { color: #959077 } /* Comment.Special */
html[data-theme="dark"] .md pre .gd { color: #FF4689 } /* Generic.Deleted */
html[data-theme="dark"] .md pre .ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */
html[data-theme="dark"] .md pre .ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
html[data-theme="dark"] .md pre .gr { color: #FF4689 } /* Generic.Error */
html[data-theme="dark"] .md pre .gh { color: #F8F8F2 } /* Generic.Heading */
html[data-theme="dark"] .md pre .gi { color: #A6E22E } /* Generic.Inserted */
html[data-theme="dark"] .md pre .go { color: #66D9EF } /* Generic.Output */
html[data-theme="dark"] .md pre .gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */
html[data-theme="dark"] .md pre .gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */
html[data-theme="dark"] .md pre .gu { color: #959077 } /* Generic.Subheading */
html[data-theme="dark"] .md pre .gt { color: #66D9EF } /* Generic.Traceback */
html[data-theme="dark"] .md pre .kc { color: #66D9EF } /* Keyword.Constant */
html[data-theme="dark"] .md pre .kd { color: #66D9EF } /* Keyword.Declaration */
html[data-theme="dark"] .md pre .kn { color: #FF4689 } /* Keyword.Namespace */
html[data-theme="dark"] .md pre .kp { color: #66D9EF } /* Keyword.Pseudo */
html[data-theme="dark"] .md pre .kr { color: #66D9EF } /* Keyword.Reserved */
html[data-theme="dark"] .md pre .kt { color: #66D9EF } /* Keyword.Type */
html[data-theme="dark"] .md pre .ld { color: #E6DB74 } /* Literal.Date */
html[data-theme="dark"] .md pre .m { color: #AE81FF } /* Literal.Number */
html[data-theme="dark"] .md pre .s { color: #E6DB74 } /* Literal.String */
html[data-theme="dark"] .md pre .na { color: #A6E22E } /* Name.Attribute */
html[data-theme="dark"] .md pre .nb { color: #A6E22E } /* Name.Builtin */
html[data-theme="dark"] .md pre .nc { color: #A6E22E } /* Name.Class */
html[data-theme="dark"] .md pre .no { color: #66D9EF } /* Name.Constant */
html[data-theme="dark"] .md pre .nd { color: #A6E22E } /* Name.Decorator */
html[data-theme="dark"] .md pre .ni { color: #F8F8F2 } /* Name.Entity */
html[data-theme="dark"] .md pre .ne { color: #A6E22E } /* Name.Exception */
html[data-theme="dark"] .md pre .nf { color: #A6E22E } /* Name.Function */
html[data-theme="dark"] .md pre .nl { color: #F8F8F2 } /* Name.Label */
html[data-theme="dark"] .md pre .nn { color: #F8F8F2 } /* Name.Namespace */
html[data-theme="dark"] .md pre .nx { color: #A6E22E } /* Name.Other */
html[data-theme="dark"] .md pre .py { color: #F8F8F2 } /* Name.Property */
html[data-theme="dark"] .md pre .nt { color: #FF4689 } /* Name.Tag */
html[data-theme="dark"] .md pre .nv { color: #F8F8F2 } /* Name.Variable */
html[data-theme="dark"] .md pre .ow { color: #FF4689 } /* Operator.Word */
html[data-theme="dark"] .md pre .pm { color: #F8F8F2 } /* Punctuation.Marker */
html[data-theme="dark"] .md pre .w { color: #F8F8F2 } /* Text.Whitespace */
html[data-theme="dark"] .md pre .mb { color: #AE81FF } /* Literal.Number.Bin */
html[data-theme="dark"] .md pre .mf { color: #AE81FF } /* Literal.Number.Float */
html[data-theme="dark"] .md pre .mh { color: #AE81FF } /* Literal.Number.Hex */
html[data-theme="dark"] .md pre .mi { color: #AE81FF } /* Literal.Number.Integer */
html[data-theme="dark"] .md pre .mo { color: #AE81FF } /* Literal.Number.Oct */
html[data-theme="dark"] .md pre .sa { color: #E6DB74 } /* Literal.String.Affix */
html[data-theme="dark"] .md pre .sb { color: #E6DB74 } /* Literal.String.Backtick */
html[data-theme="dark"] .md pre .sc { color: #E6DB74 } /* Literal.String.Char */
html[data-theme="dark"] .md pre .dl { color: #E6DB74 } /* Literal.String.Delimiter */
html[data-theme="dark"] .md pre .sd { color: #E6DB74 } /* Literal.String.Doc */
html[data-theme="dark"] .md pre .s2 { color: #E6DB74 } /* Literal.String.Double */
html[data-theme="dark"] .md pre .se { color: #AE81FF } /* Literal.String.Escape */
html[data-theme="dark"] .md pre .sh { color: #E6DB74 } /* Literal.String.Heredoc */
html[data-theme="dark"] .md pre .si { color: #E6DB74 } /* Literal.String.Interpol */
html[data-theme="dark"] .md pre .sx { color: #E6DB74 } /* Literal.String.Other */
html[data-theme="dark"] .md pre .sr { color: #E6DB74 } /* Literal.String.Regex */
html[data-theme="dark"] .md pre .s1 { color: #E6DB74 } /* Literal.String.Single */
html[data-theme="dark"] .md pre .ss { color: #E6DB74 } /* Literal.String.Symbol */
html[data-theme="dark"] .md pre .bp { color: #A6E22E } /* Name.Builtin.Pseudo */
html[data-theme="dark"] .md pre .fm { color: #A6E22E } /* Name.Function.Magic */
html[data-theme="dark"] .md pre .vc { color: #F8F8F2 } /* Name.Variable.Class */
html[data-theme="dark"] .md pre .vg { color: #F8F8F2 } /* Name.Variable.Global */
html[data-theme="dark"] .md pre .vi { color: #F8F8F2 } /* Name.Variable.Instance */
html[data-theme="dark"] .md pre .vm { color: #F8F8F2 } /* Name.Variable.Magic */
html[data-theme="dark"] .md pre .il { color: #AE81FF } /* Literal.Number.Integer.Long */

/* ── 搜索 ───────────────────────────── */
.search-modal{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;z-index:100;display:flex;
  flex-direction:column;align-items:center;padding-top:11vh;background:rgba(15,18,23,.5)}
.search-modal[hidden]{display:none}
.search-box{width:min(680px,92vw);display:flex;flex-direction:column;gap:6px}
.search-box input{width:100%;height:52px;padding:0 18px;font-size:16px;font-family:var(--font);
  border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);
  box-shadow:var(--shadow);outline:none}
.search-box input:focus{border-color:var(--brand)}
.search-hint{font-size:12px;color:#e6e8eb;text-align:right;opacity:.75}
.search-results{width:min(680px,92vw);margin-top:10px;background:var(--bg);
  border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);
  max-height:56vh;overflow-y:auto}
.search-results:empty{display:none}
.sr-item{display:block;padding:11px 16px;text-decoration:none;color:var(--text);
  border-bottom:1px solid var(--border-soft);cursor:pointer}
.sr-item:last-child{border-bottom:0}
.sr-item:hover,.sr-item.sel{background:var(--bg-alt)}
.sr-title{font-weight:620;font-size:14px;display:flex;align-items:center;gap:8px}
.sr-badge{font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:4px;
  background:var(--brand-soft);color:var(--brand);flex:none}
.sr-text{font-size:12.5px;color:var(--text-faint);margin-top:3px;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.sr-text mark{background:#fff2a8;color:inherit;padding:0 1px;border-radius:2px}
html[data-theme="dark"] .sr-text mark{background:#5c4a00;color:#ffe9a8}
.sr-empty{padding:22px 16px;text-align:center;color:var(--text-faint);font-size:13.5px}
.overlay{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;background:rgba(15,18,23,.4);z-index:45}
.overlay[hidden]{display:none}

/* ── 响应式 / 打印 ──────────────────── */
@media (max-width:1240px){.onpage{display:none}.content{margin-right:0}}
@media (max-width:900px){
  .menu-btn{display:block}
  .search-btn span{display:none}
  .brand-text{display:none}
  .sidebar{transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--shadow)}
  .sidebar.open{transform:none}
  .content{margin-left:0;padding:24px 20px 64px}
}
@media print{
  .topbar,.sidebar,.onpage,.page-foot{display:none}
  .content{margin:0;padding:0;max-width:none}
  .md pre{background:#f5f5f5;color:#000;border:1px solid #ddd}
}
