:root{--paper: #fbfaf6;--paper-sunken: #f3f1ea;--surface: #ffffff;--ink: #2c2b27;--ink-soft: #514f47;--muted: #858275;--line: #e3e0d4;--line-strong: #cfcbbb;--seal: #9c3d2e;--link: #2f5d7c;--link-visited: #5a5480;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, "Courier New", monospace;--header-h: 56px;--sidebar-w: 248px;--toc-w: 210px;--content-w: 720px;--radius: 3px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.75;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5{margin:0;font-weight:700;line-height:1.35;color:var(--ink);letter-spacing:.01em}a{color:var(--link);text-decoration:none;transition:color .12s ease}a:hover{text-decoration:underline;text-underline-offset:3px}a:visited{color:var(--link-visited)}img{max-width:100%}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 18px;font-size:14px;line-height:1.4;border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:#fff;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.btn:hover{background:#000;border-color:#000;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn-ghost:hover{background:var(--paper-sunken);border-color:var(--ink-soft);color:var(--ink)}.btn-danger{background:transparent;color:var(--seal);border-color:var(--seal)}.btn-danger:hover{background:var(--seal);color:#fff}.btn-sm{padding:4px 12px;font-size:13px}.input,.textarea,.select{width:100%;padding:9px 12px;font-size:14.5px;font-family:inherit;line-height:1.6;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);outline:none;transition:border-color .12s ease}.input:focus,.textarea:focus,.select:focus{border-color:var(--ink-soft)}.textarea{resize:vertical;min-height:90px}.field{margin-bottom:18px}.field-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--ink-soft)}.field-hint{margin-top:5px;font-size:12.5px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.tag{display:inline-block;padding:1px 8px;font-size:12px;line-height:1.7;color:var(--ink-soft);background:var(--paper-sunken);border:1px solid var(--line);border-radius:2px}.tag-seal{color:var(--seal);border-color:#e0c5bd;background:#f8f0ed}.public-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--paper-sunken);border-right:1px solid var(--line);padding:26px 22px 40px;position:sticky;top:0;height:100vh;overflow-y:auto}.main-col{flex:1 1 auto;min-width:0;display:flex;justify-content:center;padding:0 48px}.main-col .content-wrap{width:100%;max-width:var(--content-w);padding:40px 0 80px}.main-col .content-wrap.wide{max-width:1010px}.article-layout{display:flex;align-items:flex-start;gap:44px}.mobile-bar{display:none;position:sticky;top:0;z-index:30;height:var(--header-h);align-items:center;gap:12px;padding:0 16px;background:var(--paper);border-bottom:1px solid var(--line)}.menu-toggle{width:34px;height:34px;display:inline-flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:0;cursor:pointer;padding:0 6px}.menu-toggle span{display:block;height:1.5px;background:var(--ink)}.scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#2c2b2773;z-index:40}.brand{display:block;margin-bottom:26px;color:var(--ink)}.brand:hover{text-decoration:none}.brand-seal{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;font-size:16px;font-weight:700;color:#fff;background:var(--seal);border-radius:2px;vertical-align:middle;margin-right:9px;font-family:var(--sans)}.brand-name{font-size:17px;font-weight:700;vertical-align:middle;letter-spacing:.04em}.brand-sub{margin:8px 0 0 39px;font-size:12px;color:var(--muted);letter-spacing:.06em}.side-search{position:relative;margin-bottom:24px}.side-search .input{padding:7px 10px 7px 30px;font-size:13.5px;background:var(--paper)}.side-search:before{content:"";position:absolute;left:10px;top:50%;width:13px;height:13px;margin-top:-7px;border:1.5px solid var(--muted);border-radius:50%}.side-search:after{content:"";position:absolute;left:21px;top:56%;width:7px;height:1.5px;background:var(--muted);transform:rotate(45deg)}.nav-section{margin-bottom:20px}.nav-title{margin:0 0 8px;padding:0 8px;font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.nav-link{display:block;padding:5px 8px;font-size:14px;color:var(--ink-soft);border-left:2px solid transparent;border-radius:0;line-height:1.55;word-break:break-all}.nav-link:hover{color:var(--ink);background:#2c2b270a;text-decoration:none}.nav-link.router-link-exact-active{color:var(--ink);font-weight:600;border-left-color:var(--seal);background:#9c3d2e0f}.nav-sub{padding-left:14px}.side-footer{margin-top:34px;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}.side-footer a{color:var(--muted)}.side-footer a:hover{color:var(--ink)}.breadcrumbs{margin-bottom:22px;font-size:13px;color:var(--muted);line-height:1.6}.breadcrumbs a{color:var(--muted)}.breadcrumbs a:hover{color:var(--ink)}.breadcrumbs .sep{margin:0 7px;color:var(--line-strong)}.breadcrumbs .current{color:var(--ink-soft)}.home-hero{padding:28px 0 30px;border-bottom:1px solid var(--line);margin-bottom:34px}.home-hero h1{font-size:30px;margin-bottom:12px;letter-spacing:.04em}.home-hero .lead{font-size:16px;color:var(--ink-soft);max-width:34em;margin:0 0 22px}.home-search{display:flex;gap:10px;max-width:460px}.home-section{margin-bottom:38px}.home-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.home-section-head h2{font-size:18px;position:relative;padding-left:12px}.home-section-head h2:before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;background:var(--seal)}.home-section-head .count{font-size:13px;color:var(--muted)}.entry-list{list-style:none;margin:0;padding:0}.entry-item{padding:13px 2px;border-bottom:1px dashed var(--line)}.entry-item:last-child{border-bottom:0}.entry-item-title{font-size:15.5px;font-weight:600}.entry-item-sub{font-size:13px;color:var(--muted);margin-left:10px;font-weight:400}.entry-item-summary{margin:4px 0 0;font-size:13.5px;color:var(--ink-soft)}.article-head{margin-bottom:28px}.article-head h1{font-size:28px;margin-bottom:8px}.article-subtitle{font-size:15px;color:var(--muted);margin:0 0 14px;letter-spacing:.03em}.article-meta{font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 0}.article-summary{margin:22px 0 0;padding:14px 18px;font-size:14.5px;color:var(--ink-soft);background:var(--paper-sunken);border-left:3px solid var(--line-strong)}.toc-rail{width:var(--toc-w);flex:0 0 var(--toc-w)}.toc-rail-inner{position:sticky;top:32px;max-height:calc(100vh - 64px);overflow:auto;font-size:13px}.toc-title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.toc-list{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}.toc-list a{display:block;padding:3px 0 3px 13px;color:var(--muted);border-left:2px solid transparent;margin-left:-1px;line-height:1.5}.toc-list a:hover{color:var(--ink);text-decoration:none}.toc-list a.active{color:var(--ink);border-left-color:var(--seal);font-weight:600}.toc-list .toc-l3{padding-left:26px}.markdown-body{font-size:16.5px;line-height:1.9;color:var(--ink);word-break:break-word}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:1.9em 0 .7em;scroll-margin-top:24px}.markdown-body h1{font-size:1.55em}.markdown-body h2{font-size:1.32em;padding-bottom:.32em;border-bottom:1px solid var(--line)}.markdown-body h3{font-size:1.14em}.markdown-body h4{font-size:1.02em}.markdown-body>h2:first-child,.markdown-body>h1:first-child{margin-top:0}.markdown-body p{margin:0 0 1.05em}.markdown-body ul,.markdown-body ol{margin:0 0 1.05em;padding-left:1.7em}.markdown-body li{margin:.3em 0}.markdown-body li>ul,.markdown-body li>ol{margin:.3em 0}.markdown-body blockquote{margin:1.2em 0;padding:.4em 0 .4em 1.1em;color:var(--ink-soft);border-left:3px solid var(--line-strong)}.markdown-body blockquote p:last-child{margin-bottom:0}.markdown-body code{font-family:var(--mono);font-size:.88em;background:var(--paper-sunken);padding:.12em .4em;border-radius:2px}.markdown-body pre{background:#2c2b27;color:#f2f0e8;padding:16px 18px;border-radius:var(--radius);overflow-x:auto;line-height:1.6;font-size:13.5px}.markdown-body pre code{background:none;padding:0;color:inherit}.markdown-body hr{border:0;border-top:1px solid var(--line);margin:2.2em auto;width:120px}.markdown-body img{display:block;margin:1.4em auto;border:1px solid var(--line);border-radius:var(--radius)}.markdown-body table{width:100%;border-collapse:collapse;margin:1.3em 0;font-size:14.5px;display:block;overflow-x:auto}.markdown-body th,.markdown-body td{border:1px solid var(--line);padding:8px 12px;text-align:left}.markdown-body th{background:var(--paper-sunken);font-weight:600}.markdown-body a[href^="/doc/"]:after{content:"文档";display:inline-block;margin-left:5px;padding:0 5px;font-size:11px;line-height:1.7;color:var(--seal);border:1px solid #e0c5bd;border-radius:2px;vertical-align:1px}.search-box{margin-bottom:28px}.result-item{padding:16px 0;border-bottom:1px dashed var(--line)}.result-title{font-size:16.5px;font-weight:600}.result-meta{font-size:12.5px;color:var(--muted);margin:3px 0 6px}.result-snippet{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.75}.result-snippet mark,mark{background:#f5e6c8;color:inherit;padding:0 2px}.empty-hint{padding:48px 0;text-align:center;color:var(--muted);font-size:14.5px}.doc-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:22px;flex-wrap:wrap}.doc-toolbar .doc-name{font-weight:600;font-size:15px}.doc-toolbar .spacer{flex:1}.doc-stage{background:var(--paper-sunken);border:1px solid var(--line);border-radius:var(--radius);padding:24px 16px;min-height:60vh}.pdf-canvas-wrap{display:flex;flex-direction:column;align-items:center;gap:16px}.pdf-page{background:#fff;border:1px solid var(--line-strong);box-shadow:0 1px 3px #2c2b2714}.docx-scroll{overflow:auto}.docx-scroll .docx-page{background:#fff;margin:0 auto 18px;padding:60px 70px;box-shadow:0 1px 3px #2c2b2714;max-width:820px}.status-box{padding:60px 0;text-align:center;color:var(--muted);font-size:14.5px}.status-box.error{color:var(--seal)}.admin-shell{min-height:100vh;display:flex;background:#f6f5f1}.admin-side{width:210px;flex:0 0 210px;background:#2c2b27;color:#cfcbbb;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.admin-brand{padding:22px 20px;font-size:15px;font-weight:700;color:#f2f0e8;letter-spacing:.05em;border-bottom:1px solid #44423b}.admin-nav{flex:1;padding:14px 0;overflow-y:auto}.admin-nav a{display:block;padding:9px 20px;font-size:14px;color:#b8b5a8;border-left:3px solid transparent}.admin-nav a:hover{background:#3a3833;color:#fff;text-decoration:none}.admin-nav a.router-link-exact-active{color:#fff;background:#3a3833;border-left-color:var(--seal)}.admin-side-foot{padding:14px 20px;border-top:1px solid #44423b;font-size:12.5px}.admin-side-foot a{color:#9b988c}.admin-side-foot a:hover{color:#fff}.admin-main{flex:1;min-width:0;display:flex;flex-direction:column}.admin-topbar{height:var(--header-h);background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:14px;position:sticky;top:0;z-index:10}.admin-topbar h1{font-size:16px;flex:1}.admin-body{padding:26px 28px 60px;max-width:1060px;width:100%}.admin-table{width:100%;border-collapse:collapse;background:#fff;font-size:14px}.admin-table th,.admin-table td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table th{font-size:12.5px;color:var(--muted);font-weight:600;background:var(--paper-sunken)}.admin-table tr:hover td{background:#fdfcf8}.row-actions{display:flex;gap:8px;justify-content:flex-end}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:30px}.stat-card{padding:18px 20px}.stat-num{font-size:28px;font-weight:700;line-height:1.2}.stat-label{font-size:13px;color:var(--muted);margin-top:2px}.toolbar-row{display:flex;gap:10px;margin-bottom:18px;align-items:center;flex-wrap:wrap}.toolbar-row .spacer{flex:1}.login-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--paper-sunken);padding:20px}.login-card{width:100%;max-width:360px;padding:36px 34px 30px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.login-card h1{font-size:20px;margin-bottom:4px}.login-card .sub{font-size:13px;color:var(--muted);margin:0 0 24px}.login-error{margin-bottom:14px;padding:9px 12px;font-size:13px;color:var(--seal);background:#f8f0ed;border:1px solid #e0c5bd;border-radius:var(--radius)}.notice-banner{margin-bottom:18px;padding:10px 14px;font-size:13px;color:var(--ink-soft);background:#f5f1e4;border:1px solid #e0d9c2;border-radius:var(--radius)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.media-tile{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.media-thumb{height:130px;display:flex;align-items:center;justify-content:center;background:var(--paper-sunken);overflow:hidden}.media-thumb img{max-height:100%;max-width:100%;object-fit:contain}.media-thumb .doc-badge{font-size:13px;color:var(--ink-soft);text-align:center;padding:10px;word-break:break-all}.media-info{padding:9px 11px;font-size:12.5px}.media-info .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}.media-info .meta{color:var(--muted);margin-bottom:7px}.media-actions{display:flex;gap:6px}.media-actions .btn-sm{padding:3px 9px;font-size:12px}.upload-zone{border:1.5px dashed var(--line-strong);border-radius:var(--radius);padding:30px;text-align:center;color:var(--muted);font-size:14px;background:#fff;cursor:pointer;transition:border-color .12s ease,background .12s ease;margin-bottom:20px}.upload-zone:hover,.upload-zone.dragging{border-color:var(--ink-soft);background:var(--paper);color:var(--ink-soft)}.progress-track{height:4px;background:var(--paper-sunken);border-radius:2px;overflow:hidden;margin-top:8px}.progress-bar{height:100%;background:var(--ink-soft);transition:width .2s ease}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px}.tabs button{padding:8px 18px;font-size:14px;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;color:var(--muted)}.tabs button.active{color:var(--ink);border-bottom-color:var(--seal);font-weight:600}.attach-list{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin-top:10px}.attach-row{display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;border-bottom:1px solid var(--line)}.attach-row:last-child{border-bottom:0}.attach-row .spacer{flex:1}@media (max-width: 1180px){.toc-rail{display:none}}@media (max-width: 880px){.mobile-bar{display:flex}.public-shell{display:block}.sidebar{position:fixed;z-index:50;top:0;left:0;bottom:0;height:100vh;transform:translate(-100%);transition:transform .2s ease;width:260px}.public-shell.sidebar-open .sidebar{transform:translate(0)}.public-shell.sidebar-open .scrim{display:block}.main-col{padding:0 20px}.main-col .content-wrap{padding-top:24px}.home-hero h1{font-size:25px}.article-head h1{font-size:23px}.admin-side{position:fixed;z-index:50;transform:translate(-100%);transition:transform .2s ease}.admin-shell.nav-open .admin-side{transform:translate(0)}.admin-shell.nav-open:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#2c2b2773;z-index:40}.admin-body{padding:20px 16px 50px}.admin-topbar{padding:0 16px}.docx-scroll .docx-page{padding:34px 26px}.doc-stage{padding:14px 8px}}
