:root{--bg:#fff;--fg:#16181d;--muted:#59606d;--line:#e3e6ec;--soft:#f5f6f9;--accent:#0b6b5f;--warn-bg:#fff8e6;--warn-line:#e2c46d;--en-bg:#eef6f4;--mirror-bg:#f6f2fb;--nav-w:min(86vw,340px);--r:12px;
--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang HK","PingFang TC","PingFang SC","Microsoft JhengHei","Noto Sans CJK TC","Noto Sans CJK SC","Hiragino Sans GB",Roboto,Arial,sans-serif;
--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Noto Sans Mono CJK TC","MS Gothic",monospace}
html[data-theme=dark]{--bg:#11151a;--fg:#e8ebf1;--muted:#a3abb9;--line:#282e38;--soft:#191d24;--accent:#63c7b8;--warn-bg:#2a2413;--warn-line:#7c651f;--en-bg:#14231f;--mirror-bg:#1d1a25}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:400 16.5px/1.85 var(--sans);overflow-wrap:break-word}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
code{font:13px/1.7 var(--mono);background:var(--soft);padding:.12em .38em;border-radius:5px;overflow-wrap:anywhere}
pre{margin:0;overflow:auto}pre code{background:none;padding:0;font-size:12.6px;white-space:pre}
h1,h2,h3,h4,h5{line-height:1.42;margin:1.75em 0 .55em;font-weight:700}
h2{font-size:1.2em;border-bottom:1px solid var(--line);padding-bottom:.28em}h3{font-size:1.07em}h4,h5{font-size:1em;color:var(--muted)}
.anchor{position:absolute;left:-.85em;top:0;opacity:0;font-weight:400;transition:opacity .15s}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor{opacity:.4}@media (hover:none){.anchor{display:none}}hr{border:0;border-top:1px solid var(--line);margin:2em 0}
ul,ol{padding-left:1.35em;margin:.6em 0}li{margin:.42em 0}ul.nested,ol.nested{margin:.3em 0}
li.todo{list-style:none;position:relative;padding-left:1.65em}li.todo .cbox{position:absolute;left:0;top:.4em;width:1.05em;height:1.05em;border:1.5px solid var(--muted);border-radius:4px}
li.todo.done .cbox{background:var(--accent);border-color:var(--accent)}
.progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);width:0;z-index:60}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top) + 6px) 10px 6px;background:rgba(255,255,255,.86);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--line)}
html[data-theme=dark] .topbar{background:rgba(17,21,26,.86)}
.topbar-title{flex:1;min-width:0;font-size:14.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icon{width:38px;height:34px;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:9px;font-size:17px;line-height:1;flex:none}
.icon:active{transform:scale(.96)}.topbar-actions{display:flex;gap:6px}
[hidden]{display:none!important}
.scrim{position:fixed;inset:0;background:rgba(8,12,18,.44);z-index:55}
.drawer{position:fixed;top:0;bottom:0;left:0;width:var(--nav-w);background:var(--bg);border-right:1px solid var(--line);z-index:56;transform:translateX(-102%);transition:transform .22s ease;overflow:auto;padding:calc(env(safe-area-inset-top) + 10px) 12px calc(env(safe-area-inset-bottom) + 22px)}
body.open .drawer{transform:none}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:15px;margin-bottom:9px}
.notice{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r);padding:9px 11px;font-size:12.8px;line-height:1.7;margin-bottom:13px}
.nav-group{margin-bottom:15px}.nav-group-head{font-size:12px;color:var(--muted);margin-bottom:6px}
.nav ul{list-style:none;margin:0;padding:0}.nav li a{display:flex;justify-content:space-between;gap:9px;padding:9px 10px;border-radius:10px;font-size:14.2px;line-height:1.5;border:1px solid transparent}
.nav li a em{font-style:normal;color:var(--muted);font-size:11.5px;white-space:nowrap}.nav li a.cur{background:var(--soft);border-color:var(--line);font-weight:600}
.drawer-tools{display:flex;flex-direction:column;gap:9px;margin:14px 0 10px;padding-top:12px;border-top:1px solid var(--line)}
.switch{display:flex;align-items:center;gap:8px;font-size:14px}.switch input{width:18px;height:18px;accent-color:var(--accent)}
.ghost{display:block;width:100%;text-align:center;font:inherit;font-size:14px;color:var(--fg);background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:9px 12px;margin:6px 0;text-decoration:none}
main.doc{max-width:74ch;margin:0 auto;padding:14px 15px calc(env(safe-area-inset-bottom) + 50px)}
@media(min-width:920px){main.doc{padding:26px 30px 70px}}
.crumbs{font-size:12.5px;color:var(--muted);display:flex;gap:7px;flex-wrap:wrap;margin:2px 0 10px}.crumbs em{font-style:normal}
.page-title{font-size:1.3em;margin:.1em 0 .5em;line-height:1.36}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:15px}
.chip{font-size:11.5px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 9px;background:var(--bg)}
.chip-long{max-width:100%;white-space:normal;border-radius:9px;line-height:1.6;text-align:left}
.toc{background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin:0 0 20px}
.toc summary{cursor:pointer;font-weight:600;font-size:13px;color:var(--muted)}.toc ol{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:5px}
.toc li{margin:0}.toc a{display:inline-block;padding:3px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:12.6px;line-height:1.5}
.toc .lvl3 a{font-size:11.9px;color:var(--muted)}
.body h2,.body h3{scroll-margin-top:74px}h1,h2,h3,h4{position:relative}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);margin:15px 0;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:13.4px;line-height:1.62}th,td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}
th{background:var(--soft);font-weight:600;white-space:nowrap}tbody tr:nth-child(even){background:rgba(125,135,155,.05)}td code,th code{font-size:12.2px}
.q{margin:15px 0;padding:12px 14px;background:var(--soft);border-left:3px solid var(--line);border-radius:0 var(--r) var(--r) 0}
.q p{margin:0 0 .75em}.q p:last-child{margin:0}
.q.paste{background:var(--en-bg);border-left-color:var(--accent)}.q.note{font-size:14.4px;color:var(--muted)}.q.mirror{background:var(--mirror-bg);border-left-color:#b39ddb}
.blk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.tag{font-size:11.5px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--muted);white-space:nowrap}
.tag-out{color:#0a6b4f;border-color:#9ed3bf;background:#e9f7f1}.tag-in{color:#8a4b10;border-color:#e6c79a;background:#fbf2e4}.tag-idx{color:#2f4bb3;border-color:#b9c5ea;background:#eef1fb}
html[data-theme=dark] .tag-out{background:#122a22;color:#7fdcae;border-color:#2b5546}html[data-theme=dark] .tag-in{background:#2b2113;color:#e6c078;border-color:#5a4626}html[data-theme=dark] .tag-idx{background:#161c2e;color:#a8b8f0;border-color:#33406b}
.copy{font:inherit;font-size:12.4px;padding:4px 11px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;flex:none;cursor:pointer}
.copy.done{background:var(--bg);color:var(--accent)}
.codewrap{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin:15px 0;background:var(--soft)}
p.mirror{background:var(--mirror-bg);border-left:3px solid #b39ddb;padding:11px 13px;border-radius:0 10px 10px 0;margin:15px 0}
p.alert{background:var(--warn-bg);border-left:3px solid var(--warn-line);padding:10px 13px;border-radius:0 10px 10px 0;margin:15px 0}
.repo-path{font-weight:600}.path{display:inline-block;margin-left:4px;font-size:11.6px;color:var(--muted)}.inpage{border-bottom:1px dotted var(--muted)}
body.hide-mirror .mirror{display:none}
body.hide-internal .notice,body.hide-internal p.alert,body.hide-internal .q.note,body.hide-internal .q.mirror,body.hide-internal p.mirror{opacity:.2}
.pagemeta{margin:26px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:12.4px;color:var(--muted)}
.pager{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.pager-item{flex:1;max-width:49%;border:1px solid var(--line);border-radius:var(--r);padding:11px 13px;font-size:13.6px;line-height:1.5;display:flex;flex-direction:column;gap:3px;color:var(--fg)}
.pager-item span{font-size:11.5px;color:var(--muted)}.pager-item.next{text-align:right}
.lede{font-size:16.6px;background:var(--soft);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.card{border:1px solid var(--line);border-radius:var(--r);padding:13px 15px;margin:14px 0}.card h3{margin:.1em 0 .65em}.card ul{margin:0;padding-left:1.25em}.card li{margin:.5em 0;font-size:14.5px;line-height:1.75}
.list li small{display:block;color:var(--muted);font-size:12px;line-height:1.55}
.foot-note{font-size:13.3px;color:var(--muted);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r);padding:11px 13px}
.search{position:fixed;inset:0;z-index:70;background:var(--bg);display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 8px) 12px 0}
.search-box{display:flex;gap:8px;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--line)}.search-box input{flex:1;font:inherit;font-size:16px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--fg);min-width:0}
.search-results{overflow:auto;padding:12px 0 calc(env(safe-area-inset-bottom) + 20px);flex:1}
.hit{display:block;border:1px solid var(--line);border-radius:var(--r);padding:11px 13px;margin-bottom:10px;color:var(--fg)}.hit b{font-size:14.6px;display:block;margin-bottom:3px}
.hit small{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px}.hit .snip{font-size:13px;color:var(--muted);line-height:1.65;display:block}
.hit mark{background:#ffe9a8;color:#16181d;padding:0 2px;border-radius:3px}html[data-theme=dark] .hit mark{background:#6b5310;color:#fff}
.snip{font-size:13.2px;color:var(--muted)}
@media print{.topbar,.drawer,.scrim,.toc,.pager,.search,.progress,.copy,.blk-head,.pagemeta{display:none!important}body{font-size:11pt;line-height:1.62}main.doc{max-width:none;padding:0}.tablewrap{overflow:visible;border:0}.q.paste{background:none;border-left:2px solid #999}a{color:inherit}}