:root{--bg:#fff;--text:#222;--muted:#777;--line:#e8e8e8;--blue:#0b45d9;--title-blue:#001aff;--panel:#fff;--soft:#f7f8fa;--header-bg:#fff;--input-bg:#fff}
html[data-theme=dark]{--bg:#181a1d;--text:#e8e8e8;--muted:#a5a8ad;--line:#2f3338;--blue:#8ab4ff;--title-blue:#6f8cff;--panel:#202225;--soft:#282b30;--header-bg:#1f2224;--input-bg:#202225}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC",Arial,sans-serif;font-size:16px;line-height:1.72}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
.topbar{height:56px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--header-bg);z-index:10}
.header-inner{max-width:min(1820px,98vw);margin:0 auto;height:100%;display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:16px;padding:0 10px}.site-title a{font-size:22px;font-weight:800;color:var(--title-blue);text-decoration:none;font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;text-shadow:0 1px 2px rgba(21,0,255,.1)}.header-left{display:flex;align-items:center;gap:12px}.header-link{color:var(--text);text-decoration:none}.header-center{display:flex;justify-content:center}.search-box{width:100%;max-width:640px}.search-box input{width:100%;height:34px;border:1px solid var(--line);border-radius:6px;padding:0 14px;background:var(--input-bg);color:var(--text)}.search-box input::placeholder{color:var(--muted)}.header-right{display:flex;justify-content:flex-end;gap:12px;align-items:center;margin-right:40px}.theme-toggle{width:auto;height:auto;border:0;border-radius:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.theme-toggle:focus{outline:none}.toggle-icon{width:20px;height:20px;display:inline-block;background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g stroke="%23000" stroke-width="2" fill="none" stroke-linecap="round"><circle cx="12" cy="12" r="4"/><path d="M12 3v2M12 19v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M3 12h2M19 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></g></svg>')}html[data-theme=dark] .toggle-icon{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" stroke="%23fff" stroke-width="2" fill="none"/></svg>')}
.site-shell{display:grid;grid-template-columns:350px minmax(0,1fr) 300px;gap:16px;max-width:1800px;margin:0 auto;padding:16px 20px}
.panel-card,.main-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px}.main-panel{padding:0;min-height:80vh}.panel-title{height:50px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 16px}.panel-title strong{font-size:18px}.panel-menu{margin-left:auto;border:0;background:transparent;font-size:20px}
.left-panel,.right-panel{position:sticky;top:72px;align-self:start}.right-panel{display:flex;flex-direction:column;gap:16px}
.category-tree{padding:12px 12px 18px}.cat-node{margin:2px 0}.cat-node summary,.cat-leaf{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px}.cat-node summary{cursor:pointer;list-style:none}.cat-node summary::-webkit-details-marker{display:none}.cat-node.has-children>summary::before{content:"›";color:#777;font-weight:700;width:10px}.cat-node.has-children[open]>summary::before{content:"⌄"}.cat-leaf::before{content:"";width:10px}.cat-node summary:hover,.cat-leaf:hover{background:var(--soft)}.cat-node summary a,.cat-leaf a{color:#333;flex:1}.cat-node summary span,.cat-leaf span{font-size:12px;color:#777;background:#f2f3f5;border-radius:12px;padding:1px 7px}.cat-children{padding-left:18px;border-left:1px solid #eee;margin-left:12px}
.post-list{padding:0 10px}.post-card{display:grid;grid-template-columns:164px 1fr;gap:18px;padding:17px 0;border-bottom:1px solid #eee}.thumb img{width:164px;height:104px;object-fit:cover;border-radius:2px;background:#f2f3f5}.post-card h2{font-size:19px;margin:0 0 5px;line-height:1.35}.site-title a:link,.site-title a:visited,.post-card h2 a:link,.post-card h2 a:visited,.post-card h2 a:hover,.post-card h2 a:active{color:var(--title-blue)}.post-card p{margin:0 0 7px;color:#666;line-height:1.62}.meta,.article-meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px;color:#666}
.pagination{display:flex;gap:8px;justify-content:center;align-items:center;padding:22px}.pagination a,.pagination span{border:1px solid var(--line);padding:6px 11px;border-radius:5px;color:#333;line-height:1.4}.pagination span{border-color:transparent}.pagination .active{background:#2d9cdb;color:white;border-color:#2d9cdb}
.article{padding:24px 22px 48px}.article-header h1{font-size:34px;margin:0 0 28px;line-height:1.25}.article-content{margin-top:32px}.article-content h1{display:none}.article-content h2{font-size:25px;margin:28px 0 14px}.article-content h3{font-size:21px;margin:24px 0 12px}.article-content img{display:block;max-width:min(100%,860px);height:auto;margin:14px auto}.article-content pre{overflow:auto;background:#f6f6f6;padding:18px;border-radius:0}.article-content code{font-family:"SFMono-Regular",Consolas,monospace;font-size:.92em}.article-content table{display:block;overflow:auto;border-collapse:collapse}.article-content th,.article-content td{border:1px solid #ddd;padding:6px 10px}
.article-content .katex-display{overflow-x:auto;overflow-y:hidden;max-width:100%;padding:8px 0}.article-content .katex{font-size:1.08em}
.about-page{padding:28px 28px 48px}.about-header{border-bottom:1px solid var(--line);padding-bottom:20px}.about-header h1{font-size:34px;line-height:1.25;margin:0}.about-body{max-width:780px;padding-top:28px}.about-copy{font-size:16px;line-height:1.9}.about-copy p{margin:0 0 16px}
.comments-panel{margin-top:36px;border-top:1px solid var(--line);padding-top:22px}.comments-panel h2{font-size:22px;margin:0 0 16px}.waline-loading{color:var(--muted);font-size:14px;padding:12px 0}
.toc-card .toc{padding:12px 16px;max-height:calc(100vh - 150px);overflow:auto}.toc ul{list-style:none;padding-left:0}.toc li{margin:4px 0}.toc a{color:#777}.toc a:hover{color:var(--blue)}.toc>nav>ul{counter-reset:toc1}.toc>nav>ul>li{counter-increment:toc1;counter-reset:toc2}.toc>nav>ul>li>a::before{content:counter(toc1) ". ";color:#999}.toc>nav>ul>li>ul{padding-left:18px}.toc>nav>ul>li>ul>li{counter-increment:toc2;counter-reset:toc3}.toc>nav>ul>li>ul>li>a::before{content:counter(toc1) "." counter(toc2) ". ";color:#999}.toc>nav>ul>li>ul>li>ul{padding-left:18px}.toc>nav>ul>li>ul>li>ul>li{counter-increment:toc3}.toc>nav>ul>li>ul>li>ul>li>a::before{content:counter(toc1) "." counter(toc2) "." counter(toc3) ". ";color:#999}
.profile-card{text-align:center;padding:12px}.profile-cover{width:100%;height:150px;object-fit:cover;border-radius:6px}.profile-card h2{font-size:28px;margin:8px 0}.profile-card h2 span{font-size:12px;color:white;background:#31d179;border-radius:10px;padding:2px 8px}.profile-card p{color:#777}.stats{display:flex;justify-content:center;gap:54px}.stats small{display:block;color:#777}.stats strong{font-size:20px}
.qrcode-card{padding:18px;text-align:center}.qrcode-card img{width:220px;max-width:100%}.qrcode-card p{color:#777;margin:8px 0 0}.recent-card h3{margin:0;padding:14px 16px;border-bottom:1px solid var(--line)}.mini-post{display:grid;grid-template-columns:72px 1fr;grid-template-rows:auto auto;gap:2px 10px;padding:10px 16px;border-bottom:1px dashed #eee}.mini-post img{width:72px;height:48px;object-fit:cover;grid-row:1/3}.mini-post span{font-size:14px;line-height:1.4;color:var(--title-blue)}.mini-post time{font-size:12px;color:#777}
.list-page{padding:22px}.list-page h1{margin-top:0}
@media (max-width:1100px){.topbar{height:auto}.header-inner{grid-template-columns:1fr;gap:8px;padding:10px 16px}.header-center{justify-content:stretch}.header-right{justify-content:flex-start;margin-right:0}.site-shell{grid-template-columns:1fr;padding:12px}.left-panel,.right-panel{position:static}.post-card{grid-template-columns:110px 1fr}.thumb img{width:110px;height:76px}.article-header h1,.about-header h1{font-size:28px}}
