*{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--color-bg: #ffffff;--color-text: #1d1d1f;--color-text-secondary: #515154;--color-muted: #86868b;--color-primary: #ec4899;--color-primary-hover: #db2777;--color-primary-light: rgba(236, 72, 153, .08);--color-success: #34c759;--color-border: #e8e8ed;--color-border-light: #f5f5f7;--inline-code-bg: #f5f5f7;--inline-code-color: #ff2d55;--inline-code-border: transparent;--search-highlight-bg: #ffe4e6;--search-highlight-color: #be185d;--color-sidebar-bg: #ffffff;--color-hover: #f5f5f7;--color-tag-bg: #f0f0f3;--color-header-bg: rgba(255, 255, 255, .8);--color-header-text: #1d1d1f;--color-scrollbar-thumb: #c7c7cc;--color-scrollbar-thumb-hover: #aeaeb2;--color-page-bg: #ffffff;--color-shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);--color-shadow-md: 0 4px 16px rgba(0, 0, 0, .06);--color-shadow-lg: 0 8px 32px rgba(0, 0, 0, .08);--color-shadow-edge: 1px 0 0 var(--color-border);--color-code-bg: #f5f5f7;--color-code-border: #d2d2d7;--color-code-header: #e8e8ed;--color-code-gutter: #86868b;--color-code-lang: #6e6e73;--color-code-btn: #1d1d1f;--color-code-btn-bg: #e8e8ed;--color-code-btn-hover: #d2d2d7;--hl-base: #1d1d1f;--hl-keyword: #ff2d55;--hl-title: #af52de;--hl-constant: #007aff;--hl-string: #34c759;--hl-builtin: #ff9500;--hl-comment: #86868b;--hl-tag: #34c759;--hl-section: #007aff;--hl-bullet: #ff9500;--hl-addition: #34c759;--hl-addition-bg: #e8f9ed;--hl-deletion: #ff3b30;--hl-deletion-bg: #ffebeb;--header-height: 56px;--sidebar-width: 280px;--toc-width: 240px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--color-info: #007aff;--color-info-light: #e8f0ff;--color-danger: #ff3b30;--color-danger-light: #ffe8ec;--color-warning: #ff9500;--color-warning-light: #fff8ed;--color-warning-text: #92400e}:root[data-theme=dark]{color-scheme:dark;--color-bg: #1c1c1e;--color-text: #f5f5f7;--color-text-secondary: #98989d;--color-muted: #636366;--color-border: #2c2c2e;--color-border-light: #242426;--color-success: #30d158;--color-sidebar-bg: #1c1c1e;--color-hover: #2c2c2e;--color-tag-bg: #2c2c2e;--color-header-bg: rgba(28, 28, 30, .8);--color-header-text: #f5f5f7;--color-scrollbar-thumb: #48484a;--color-scrollbar-thumb-hover: #636366;--color-page-bg: #1c1c1e;--color-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--color-shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--color-shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--color-shadow-edge: 1px 0 0 var(--color-border);--color-primary: #ff6b9d;--color-primary-hover: #ff8fb3;--color-primary-light: rgba(255, 107, 157, .12);--color-code-bg: #1c1c1e;--color-code-border: #3a3a3c;--color-code-header: #2c2c2e;--color-code-gutter: #636366;--color-code-lang: #8e8e93;--color-code-btn: #f5f5f7;--color-code-btn-bg: #2c2c2e;--color-code-btn-hover: #3a3a3c;--inline-code-bg: #2c2c2e;--inline-code-color: #ff6b9d;--inline-code-border: #3a3a3c;--search-highlight-bg: #4a1942;--search-highlight-color: #ff8fb3;--hl-base: #f5f5f7;--hl-keyword: #ff6b9d;--hl-title: #c77dff;--hl-constant: #64d2ff;--hl-string: #30d158;--hl-builtin: #ff9f0a;--hl-comment: #636366;--hl-tag: #30d158;--hl-section: #64d2ff;--hl-bullet: #ff9f0a;--hl-addition: #30d158;--hl-addition-bg: #0f3d1e;--hl-deletion: #ff453a;--hl-deletion-bg: #4a0e0e;--color-info: #64d2ff;--color-info-light: rgba(100, 210, 255, .15);--color-danger: #ff453a;--color-danger-light: rgba(255, 69, 58, .15);--color-warning: #ffd60a;--color-warning-light: rgba(255, 214, 10, .12);--color-warning-text: #ffd60a}html,body,#app{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:var(--color-text);background:var(--color-page-bg);font-size:15px;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}*{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:transparent}.app{min-height:100%;display:flex;flex-direction:column}.header{height:var(--header-height);flex-shrink:0;display:flex;align-items:center;padding:0 24px;background:var(--color-header-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);color:var(--color-header-text);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.header-brand{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600;min-width:0;white-space:nowrap;color:var(--color-text);text-decoration:none;transition:color .2s}.header-brand:hover{color:var(--color-primary)}.header-logo{flex-shrink:0;display:flex;align-items:center;justify-content:center}.header-logo svg{width:24px;height:24px;color:var(--color-primary)}.header-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.02em}.header-nav{margin-left:auto;display:flex;align-items:center;gap:2px}.header-link{color:var(--color-text-secondary);text-decoration:none;font-size:14px;font-weight:500;padding:6px 12px;border-radius:var(--radius-sm);transition:all .2s;background:none;border:none;font:inherit;cursor:pointer}.header-link:hover{color:var(--color-primary);background:var(--color-primary-light)}.header-auth{flex-shrink:0;display:flex;align-items:center;gap:8px;margin-left:16px;padding-left:16px;border-left:1px solid var(--color-border);white-space:nowrap}.user-menu{position:relative;flex-shrink:0}.user-menu-trigger{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border:none;border-radius:20px;background:transparent;color:var(--color-text);font-size:14px;cursor:pointer;transition:background .2s}.user-menu-trigger:hover,.user-menu-trigger.is-open{background:var(--color-hover)}.user-menu-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.9;font-weight:500}.user-menu-chevron{width:14px;height:14px;opacity:.5;transition:transform .2s}.user-menu-chevron.is-up{transform:rotate(180deg)}.user-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;flex-shrink:0}.user-avatar img{width:100%;height:100%;display:block;object-fit:cover}.user-avatar-sm{width:28px;height:28px}.user-avatar-lg{width:52px;height:52px;box-shadow:0 0 0 3px var(--color-tag-bg)}.user-avatar-fallback{background:var(--color-primary);color:#fff;font-weight:600;-webkit-user-select:none;user-select:none}.user-avatar-sm.user-avatar-fallback{font-size:12px}.user-avatar-lg.user-avatar-fallback{font-size:22px}.user-card{position:absolute;top:calc(100% + 12px);right:0;width:260px;padding:16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--color-shadow-md);z-index:1000;outline:none;transform-origin:top right}.user-card:before{content:"";position:absolute;top:-7px;right:22px;width:12px;height:12px;background:var(--color-bg);border-left:1px solid var(--color-border);border-top:1px solid var(--color-border);transform:rotate(45deg)}.user-card-head{display:flex;align-items:center;gap:12px}.user-card-id{flex:1;min-width:0}.user-card-name-row{display:flex;align-items:center;gap:8px}.user-card-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;color:var(--color-text)}.user-card-role{flex-shrink:0;padding:2px 8px;border-radius:999px;font-size:11px;line-height:1.5;color:var(--color-primary);background:var(--color-primary-light);font-weight:500}.user-card-login{margin-top:4px;font-size:12px;color:var(--color-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card-divider{height:1px;margin:14px 0;background:var(--color-border)}.user-card-actions{display:flex;justify-content:space-around}.user-action{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 12px;border-radius:10px;text-decoration:none}.user-action-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .2s}.user-action:hover .user-action-icon{transform:translateY(-2px)}.user-action-icon svg{width:20px;height:20px}.user-action-icon-blue{background:var(--color-info-light);color:var(--color-info)}.user-action-icon-red{background:var(--color-danger-light);color:var(--color-danger)}.user-action-label{font-size:12px;font-weight:500}.user-action-label-blue{color:var(--color-info)}.user-action-label-red{color:var(--color-danger)}.user-card-enter-active,.user-card-leave-active{transition:opacity .2s ease,transform .2s ease}.user-card-enter-from,.user-card-leave-to{opacity:0;transform:translateY(-6px) scale(.97)}@media (max-width: 600px){.user-menu-name{display:none}}.header-nav-probe{position:absolute;visibility:hidden;pointer-events:none;display:flex;align-items:center;gap:16px}.header-drop{position:relative}.header-drop-btn{background:none;border:none;padding:6px 12px;border-radius:var(--radius-sm);font:inherit;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all .2s}.header-drop-btn:hover{color:var(--color-primary);background:var(--color-primary-light)}.header-drop-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:140px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--color-shadow-md);padding:6px;z-index:60}.header-drop-item{display:block;padding:8px 12px;border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none;font-size:14px;white-space:nowrap;transition:background .2s,color .2s}.header-drop-item:hover{background:var(--color-hover);color:var(--color-primary)}.app-footer{margin:auto -24px 0;border-top:1px solid var(--color-border);background:var(--color-bg);padding:28px 0 36px;text-align:center;font-size:13px;color:var(--color-text-secondary);line-height:1.8}.footer-link{color:var(--color-primary);font-weight:600;text-decoration:none}.footer-link:hover{text-decoration:underline}.footer-beian{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 16px;font-size:12px;color:var(--color-text-secondary)}.footer-beian a{display:inline-flex;align-items:center;color:var(--color-text-secondary);text-decoration:none;transition:color .2s}.footer-beian a:hover{color:var(--color-primary)}.footer-beian img{width:15px;height:auto;flex-shrink:0}.menu-btn{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;margin-right:12px;background:transparent;border:none;cursor:pointer;padding:0;border-radius:var(--radius-sm);transition:background .2s}.menu-btn:hover{background:var(--color-hover)}.menu-btn span{display:block;width:18px;height:2px;background:var(--color-text);margin:0 auto;border-radius:1px}.app-body{flex:1;display:flex;align-items:stretch;min-width:0}.app-main{flex:1;min-width:0;padding:40px 32px 0;position:relative;display:flex;flex-direction:column;gap:48px}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar-bg);border-right:1px solid var(--color-border);padding:20px 0;flex-shrink:0;position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));overflow-y:auto;transition:width .25s ease}.sidebar.collapsed{width:0;overflow:hidden;border-right:none}.sidebar-empty{padding:16px 20px;color:var(--color-muted)}.sidebar-toggle{width:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));background:transparent;border:none;cursor:pointer;color:var(--color-muted);transition:color .2s,background .2s;-webkit-user-select:none;user-select:none}.sidebar-toggle:hover{color:var(--color-primary);background:var(--color-hover)}.sidebar-toggle svg{width:16px;height:16px;flex-shrink:0}:root.resizing .sidebar{transition:none}:root.resizing body{-webkit-user-select:none;user-select:none}.sidebar-search{position:relative;padding:0 16px 16px;border-bottom:1px solid var(--color-border);margin-bottom:16px}.search-input-wrap{position:relative;display:flex;align-items:center}.search-input-wrap svg{position:absolute;left:12px;width:15px;height:15px;color:var(--color-muted);pointer-events:none}.search-input-wrap input{width:100%;height:36px;padding:0 34px 0 36px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-hover);font-size:14px;color:var(--color-text);outline:none;transition:all .2s}.search-input-wrap input::placeholder{color:var(--color-muted);font-size:13px}.search-input-wrap input:focus{border-color:var(--color-primary);background:var(--color-bg);box-shadow:0 0 0 3px var(--color-primary-light)}.search-clear{position:absolute;right:8px;width:20px;height:20px;line-height:19px;text-align:center;border-radius:50%;color:var(--color-muted);font-size:15px;cursor:pointer;-webkit-user-select:none;user-select:none}.search-clear:hover{background:var(--color-hover);color:var(--color-text)}.search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--color-shadow-md);z-index:40;max-height:52vh;overflow-y:auto}.search-status{padding:14px 12px;font-size:13px;color:var(--color-muted);text-align:center}.search-result{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--color-border-light);transition:background .2s}.search-result:last-child{border-bottom:none}.search-result:hover{background:var(--color-hover)}.search-result-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--color-text)}.search-result-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-cat{flex-shrink:0;margin-left:auto;font-size:11px;font-weight:400;color:var(--color-muted);background:var(--color-tag-bg);border-radius:8px;padding:1px 8px;line-height:18px}.search-result-snippet{margin-top:2px;font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result mark{background:var(--search-highlight-bg);color:var(--search-highlight-color);padding:0 1px;border-radius:2px}.search-highlight{background:var(--search-highlight-bg);color:var(--search-highlight-color);padding:0 1px;border-radius:2px}.cat{margin-bottom:4px}.cat-title{display:flex;align-items:center;padding:9px 16px;cursor:pointer;font-weight:600;font-size:14px;-webkit-user-select:none;user-select:none;color:var(--color-text);transition:background .2s}.cat-title:hover{background:var(--color-hover)}.cat-arrow{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:6px;color:var(--color-muted);transition:transform .2s}.cat-arrow svg{display:block;width:9px;height:9px;fill:currentColor}.cat-arrow.collapsed{transform:rotate(-90deg)}.cat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-count{flex-shrink:0;font-size:12px;color:var(--color-muted);background:var(--color-tag-bg);border-radius:10px;padding:1px 8px;line-height:18px;margin-left:8px}.cat-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s cubic-bezier(.4,0,.2,1)}.cat-body.open{grid-template-rows:1fr}.cat-body .file-list{min-height:0;overflow:hidden}.file-list{list-style:none}.file-item{display:flex;align-items:center;gap:6px;padding:7px 16px 7px var(--file-indent, 40px);cursor:pointer;font-size:14px;color:var(--color-text-secondary);border-left:3px solid transparent;transition:all .2s}.file-item:hover{color:var(--color-primary);background:var(--color-hover)}.file-item.active{color:var(--color-primary);font-weight:600;background:var(--color-primary-light);border-left-color:var(--color-primary)}.file-item-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item-ext{flex-shrink:0;display:inline-flex;align-items:center;color:var(--color-muted)}.file-item-ext svg{width:13px;height:13px}.file-item:hover .file-item-ext,.file-item.active .file-item-ext{color:var(--color-primary)}.doc-layout{display:flex;gap:48px;align-items:flex-start;width:100%;max-width:1200px;margin:0 auto;min-width:0}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.doc-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;background:#fff9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--color-muted);font-size:14px}.doc-loading-center{position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}:root[data-theme=dark] .doc-loading-overlay{background:#1c1c1e99}.overlay-fade-enter-active,.overlay-fade-leave-active{transition:opacity .25s ease}.overlay-fade-enter-from,.overlay-fade-leave-to{opacity:0}.doc-layout.doc-fade-in{animation:doc-fade-in .3s ease}@keyframes doc-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.progress-bar{position:fixed;top:0;left:0;height:3px;z-index:60;background:var(--color-primary);transition:width .2s ease}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}.doc-layout.doc-fade-in{animation:none}.overlay-fade-enter-active,.overlay-fade-leave-active,.modal-fade-enter-active,.modal-fade-leave-active,.toast-enter-active,.toast-leave-active,.toast-move,.toc-children,.toc-arrow{transition:none}}.doc-article{flex:1;min-width:0;max-width:100%;overflow:hidden;background:transparent;padding:0}.doc-article>h1:first-child{font-size:36px;font-weight:700;margin-top:0;margin-bottom:8px;letter-spacing:-.02em}.doc-article>p:first-of-type{font-size:16px;color:var(--color-text-secondary);margin-bottom:28px;line-height:1.6}.doc-article h1,.doc-article h2,.doc-article h3,.doc-article h4,.doc-article h5,.doc-article h6{color:var(--color-text);font-weight:700;line-height:1.3;margin-top:32px;margin-bottom:16px;letter-spacing:-.02em}.doc-article h1:first-child,.doc-article h2:first-child,.doc-article h3:first-child{margin-top:0}.doc-article h1{font-size:28px}.doc-article h2{font-size:24px}.doc-article h3{font-size:20px}.doc-article h4{font-size:17px}.doc-article h5{font-size:16px}.doc-article h6{font-size:15px}.doc-article p{margin-bottom:16px;color:var(--color-text)}.doc-article a{color:var(--color-primary);text-decoration:none;transition:all .2s}.doc-article a:hover{text-decoration:underline}.doc-article strong,.doc-article b{font-weight:600;color:var(--color-text)}.doc-article em,.doc-article i{font-style:italic}.doc-article del,.doc-article s{text-decoration:line-through;opacity:.7}.doc-article code{background:var(--inline-code-bg);color:var(--inline-code-color);padding:2px 6px;border-radius:5px;font-size:.9em;font-family:SF Mono,Fira Code,Menlo,Consolas,monospace}.doc-article pre{background:var(--color-code-bg);border:1px solid var(--color-code-border);border-radius:var(--radius-md);padding:16px;overflow-x:auto;margin-bottom:16px;line-height:1.6}.doc-article pre code{background:none;padding:0;border-radius:0;font-size:14px;color:var(--hl-base)}.doc-article blockquote{border-left:3px solid var(--color-primary);padding:12px 16px;margin:16px 0;background:var(--color-primary-light);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--color-text-secondary)}.doc-article blockquote p{margin-bottom:0}.doc-article ul,.doc-article ol{margin-bottom:16px;padding-left:24px}.doc-article ul{list-style:disc}.doc-article ol{list-style:decimal}.doc-article li{margin-bottom:8px}.doc-article li ul,.doc-article li ol{margin-top:8px;margin-bottom:0}.doc-article img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:16px 0;cursor:zoom-in}.doc-article hr{border:none;border-top:1px solid var(--color-border);margin:32px 0}.doc-article table{width:100%;border-collapse:collapse;margin-bottom:16px;font-size:14px}.doc-article th,.doc-article td{padding:10px 14px;border:1px solid var(--color-border);text-align:left}.doc-article th{background:var(--color-hover);font-weight:600}.doc-article tr:nth-child(2n){background:var(--color-border-light)}.doc-title{font-size:28px;font-weight:700;margin-bottom:24px;color:var(--color-text);letter-spacing:-.02em}.doc-placeholder{padding:60px 0;text-align:center;color:var(--color-muted)}.not-found{padding:72px 0;text-align:center}.not-found-code{font-size:72px;font-weight:700;color:var(--color-primary);line-height:1}.not-found-title{font-size:20px;letter-spacing:3px;color:var(--color-muted);margin:8px 0 16px}.not-found-desc{color:var(--color-muted);margin-bottom:28px}.not-found-btn{display:inline-block;padding:9px 26px;border:1px solid var(--color-primary);border-radius:var(--radius-md);color:var(--color-primary);text-decoration:none;font-size:14px;transition:all .2s}.not-found-btn:hover{background:var(--color-primary);color:#fff}.doc-nav{margin-top:64px;padding-top:24px;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;gap:16px}.nav-btn{cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg);padding:10px 20px;border-radius:var(--radius-md);font-size:14px;color:var(--color-text);transition:all .2s;display:inline-flex;align-items:center;max-width:48%;min-width:0;text-decoration:none}.nav-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.nav-btn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-btn-link{width:13px;height:13px;flex-shrink:0;margin-left:5px;color:var(--color-primary)}.doc-toc{width:var(--toc-width);flex-shrink:0;position:sticky;top:calc(var(--header-height) + 40px);max-height:calc(100vh - var(--header-height) - 80px);overflow-y:auto;font-size:14px;background:transparent;z-index:5;border-left:1px solid var(--color-border);padding-left:24px}.toc-title{font-size:13px;font-weight:600;color:var(--color-muted);margin-bottom:16px;padding:0;text-transform:uppercase;letter-spacing:.05em}.toc-list{list-style:none;padding:0;margin:0}.toc-node{margin:0}.toc-row{display:flex;align-items:center;gap:5px;padding:6px 0;cursor:pointer;color:var(--color-text-secondary);line-height:1.5;transition:color .2s}.toc-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toc-row:hover{color:var(--color-primary)}.toc-row.active{color:var(--color-primary);font-weight:600}.toc-level-1 .toc-row{padding-left:0}.toc-level-2 .toc-row{padding-left:16px}.toc-level-3 .toc-row{padding-left:32px}.toc-level-4 .toc-row{padding-left:48px}.toc-level-5 .toc-row{padding-left:64px}.toc-level-6 .toc-row{padding-left:80px}.toc-arrow{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;border:none;background:none;padding:0;cursor:pointer;color:var(--color-muted);transition:transform .2s}.toc-arrow svg{display:block;width:9px;height:9px;fill:currentColor}.toc-arrow.collapsed{transform:rotate(-90deg)}.toc-arrow-ghost{width:14px;flex-shrink:0}.toc-children{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s cubic-bezier(.4,0,.2,1)}.toc-children.open{grid-template-rows:1fr}.toc-children>ul{min-height:0;overflow:hidden}@media (max-width: 1280px){.doc-toc{width:200px;padding-left:20px}.doc-layout{gap:32px}}@media (max-width: 1024px){.doc-toc{display:none}.doc-layout{gap:0}}@media (max-width: 768px){.menu-btn{display:flex}.sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;height:auto;width:280px;transform:translate(-100%);transition:transform .25s ease;z-index:200;box-shadow:2px 0 12px #0000001a}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:none}.sidebar.collapsed{width:280px;overflow-y:auto;border-right:1px solid var(--color-border)}.sidebar-overlay{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background:#0006;z-index:199}.app-main{padding:24px 20px 0}.doc-layout{gap:0;min-width:0}.app-footer{margin-left:-20px;margin-right:-20px}.doc-toc{display:none}.doc-title{font-size:22px}.header{padding:0 16px}.header-nav{gap:2px}.header-auth{margin-left:8px;padding-left:8px}.doc-article>h1:first-child{font-size:26px}.doc-article>p:first-of-type{font-size:15px}.doc-article h1{font-size:24px}.doc-article h2{font-size:21px}.doc-article h3{font-size:18px}}.theme-toggle{position:fixed;right:24px;bottom:24px;width:44px;height:44px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--color-shadow-md);z-index:90;transition:all .2s}.theme-toggle:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0000001f}.theme-toggle svg{width:20px;height:20px}::view-transition-old(root){animation:none}::view-transition-new(root){animation:vt-reveal .55s ease-out both}@keyframes vt-reveal{0%{clip-path:circle(0 at var(--vt-x) var(--vt-y))}to{clip-path:circle(var(--vt-r) at var(--vt-x) var(--vt-y))}}@media (max-width: 768px){.theme-toggle{right:16px;bottom:16px;width:40px;height:40px}}.redirect-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:24px;z-index:120}.redirect-dialog{width:min(460px,100%);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 14px 44px #0000002e;padding:32px 28px 28px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.redirect-icon{width:52px;height:52px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center}.redirect-icon.safe{background:var(--color-success)}.redirect-icon svg{width:26px;height:26px}.redirect-title{font-size:17px;font-weight:600;color:var(--color-text)}.redirect-url{max-width:100%;font-size:13px;color:var(--color-primary);word-break:break-all;background:var(--color-hover);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 14px;line-height:1.5}.redirect-hint{font-size:13px;color:var(--color-muted);margin:0}.redirect-btns{display:flex;gap:12px;margin-top:8px}.redirect-btn{padding:10px 28px;border-radius:var(--radius-md);font-size:14px;border:1px solid var(--color-border);background:transparent;color:var(--color-text);cursor:pointer;transition:all .2s}.redirect-btn:hover{background:var(--color-hover)}.redirect-btn.ok{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.redirect-btn.ok:hover{background:var(--color-primary-hover)}.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .2s ease}.modal-fade-enter-active .redirect-dialog,.modal-fade-leave-active .redirect-dialog{transition:transform .2s ease}.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}.modal-fade-enter-from .redirect-dialog,.modal-fade-leave-to .redirect-dialog{transform:scale(.94) translateY(8px)}.toast-stack{position:fixed;top:calc(var(--header-height) + 16px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:130;pointer-events:none}.toast-item{background:var(--color-text);color:var(--color-bg);font-size:14px;padding:10px 20px;border-radius:var(--radius-md);box-shadow:var(--color-shadow-md);white-space:nowrap}.toast-item+.toast-item{margin-top:8px}.toast-enter-active,.toast-leave-active{transition:opacity .25s ease,transform .25s ease}.toast-move{transition:transform .25s ease}.toast-enter-from{opacity:0;transform:translateY(-10px)}.toast-leave-to{opacity:0;transform:translateY(12px)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:100;cursor:zoom-out;animation:lightbox-fade .18s ease-out}.lightbox-stage{line-height:0;animation:lightbox-pop .22s cubic-bezier(.2,.8,.2,1)}.lightbox-img{display:block;max-width:90vw;max-height:90vh;object-fit:contain;transition:transform .1s ease-out;cursor:grab;-webkit-user-select:none;user-select:none}.lightbox-img:active{cursor:grabbing}.lightbox-close{position:absolute;top:16px;right:20px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#ffffff1f;color:#fff;font-size:26px;line-height:1;cursor:pointer;z-index:1;transition:background .2s}.lightbox-close:hover{background:#ffffff47}.lightbox-hint{position:absolute;bottom:24px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:13px;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes lightbox-fade{0%{opacity:0}to{opacity:1}}@keyframes lightbox-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.protected-notice{display:flex;align-items:flex-start;gap:10px;margin-bottom:24px;padding:14px 16px;border:1px solid var(--color-warning);border-radius:var(--radius-md);background:var(--color-warning-light);color:var(--color-warning-text);font-size:14px;line-height:1.65}.protected-notice-icon{flex-shrink:0;width:18px;height:18px;margin-top:2px;color:var(--color-warning)}.protected-notice-text{flex:1;min-width:0}.protected-notice-close{flex-shrink:0;width:24px;height:24px;padding:0;border:none;border-radius:50%;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer;opacity:.6;transition:opacity .2s,background .2s}.protected-notice-close:hover{opacity:1;background:#92400e1a}.file-item-pdf-badge{flex-shrink:0;padding:1px 6px;border-radius:4px;background:var(--color-danger-light);color:var(--color-danger);font-size:10px;font-weight:600;line-height:1.5}.pdf-layout{display:flex;flex-direction:column;width:100%;max-width:1180px;margin:0 auto;min-width:0}.pdf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.pdf-toolbar-title{min-width:0;font-size:16px;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-toolbar-actions{flex-shrink:0;display:flex;gap:8px}.pdf-toolbar-btn{padding:6px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:13px;transition:all .2s;cursor:pointer}.pdf-toolbar-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}.pdf-frame-wrap{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg)}.pdf-frame{display:block;width:100%;height:calc(100vh - var(--header-height) - 170px);min-height:480px;border:none}.pdf-frame-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#ffffffd9;color:var(--color-muted);font-size:14px}:root[data-theme=dark] .pdf-frame-loading{background:#1c1c1ed9}.pdf-fallback{margin:10px 2px 0;font-size:13px;color:var(--color-text-secondary)}.pdf-fallback a{color:var(--color-primary)}.pdf-layout .doc-nav{margin-top:26px}.doc-password-wrap{width:100%;max-width:1180px;margin:0 auto;min-width:0;display:flex;justify-content:center;padding:90px 20px 40px}.doc-password-card{width:100%;max-width:360px;padding:40px 32px 32px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--color-shadow-md);text-align:center}.doc-password-icon{width:56px;height:56px;margin:0 auto 20px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light);color:var(--color-primary)}.doc-password-icon svg{width:28px;height:28px}.doc-password-title{margin:0 0 8px;font-size:19px;font-weight:600;color:var(--color-text);word-break:break-all}.doc-password-hint{margin:0 0 24px;font-size:14px;color:var(--color-text-secondary)}.doc-password-input{width:100%;height:42px;padding:0 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);font-size:14px;color:var(--color-text);outline:none;transition:all .2s}.doc-password-input::placeholder{color:var(--color-muted)}.doc-password-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.doc-password-error{margin-top:10px;font-size:13px;color:var(--color-danger)}.doc-password-cooldown{margin-top:10px;font-size:13px;color:var(--color-warning)}.doc-password-btn{width:100%;height:42px;margin-top:20px;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.doc-password-btn:hover:not(:disabled){background:var(--color-primary-hover)}.doc-password-btn:disabled{cursor:not-allowed;opacity:.5}.markdown-body{font-size:15.5px;line-height:1.8;color:var(--color-text);word-wrap:break-word;overflow-wrap:break-word}.markdown-body h1{font-size:28px;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.markdown-body h2{font-size:22px;margin:36px 0 16px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.markdown-body h3{font-size:18px;margin:30px 0 12px}.markdown-body h4{font-size:16px;margin:26px 0 10px}.markdown-body p{margin:16px 0}.markdown-body ul,.markdown-body ol{margin:16px 0;padding-left:28px}.markdown-body li{margin:8px 0}.markdown-body ul.contains-task-list{list-style:none;padding-left:8px}.markdown-body ul.contains-task-list .task-list-item{list-style:none;display:flex;align-items:baseline;gap:10px;line-height:1.7}.markdown-body .task-list-item-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:16px;height:16px;margin:0;align-self:baseline;transform:translateY(2px);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:4px;cursor:default;position:relative}.markdown-body .task-list-item-checkbox:checked{background:var(--color-success);border-color:var(--color-success)}.markdown-body .task-list-item-checkbox:checked:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.markdown-body .task-list-item>p{margin:0}.markdown-body .task-list-item-done{color:var(--color-muted);text-decoration:line-through}.markdown-body blockquote{margin:16px 0;padding:10px 16px;border-left:4px solid var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg));color:var(--color-text-secondary);border-radius:0 4px 4px 0}.markdown-body blockquote p{margin:6px 0}.markdown-body code{background:var(--inline-code-bg);color:var(--inline-code-color);padding:2px 6px;border-radius:4px;font-size:.88em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;box-shadow:inset 0 0 0 1px var(--inline-code-border)}.code-block{margin:18px 0;border-radius:8px;overflow:hidden;background:var(--color-code-bg);border:1px solid var(--color-code-border)}.code-header{display:flex;justify-content:space-between;align-items:center;padding:6px 14px;background:var(--color-code-header);border-bottom:1px solid var(--color-code-border)}.code-lang{font-size:12px;color:var(--color-code-lang);text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none}.code-copy{font-size:12px;color:var(--color-code-btn);background:var(--color-code-btn-bg);border:1px solid var(--color-code-border);border-radius:4px;padding:3px 10px;cursor:pointer;transition:all .15s}.code-copy:hover{background:var(--color-code-btn-hover);color:var(--color-code-btn)}.code-content{display:flex;overflow:hidden}.code-gutter{flex-shrink:0;padding:12px 10px 12px 14px;text-align:right;color:var(--color-code-gutter);background:var(--color-code-bg);font-size:13.5px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:1.6;white-space:pre;-webkit-user-select:none;user-select:none}.markdown-body pre.hljs{margin:0;flex:1;min-width:0;overflow-x:auto;padding:12px 14px;background:var(--color-code-bg);color:var(--hl-base);border-radius:0;line-height:1.6}.markdown-body pre.hljs code{display:block;font-size:13.5px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;line-height:1.6;background:transparent;padding:0;color:var(--hl-base);box-shadow:none}.markdown-body .hljs-doctag,.markdown-body .hljs-keyword,.markdown-body .hljs-meta .hljs-keyword,.markdown-body .hljs-template-tag,.markdown-body .hljs-template-variable,.markdown-body .hljs-type,.markdown-body .hljs-variable.language_{color:var(--hl-keyword)}.markdown-body .hljs-title,.markdown-body .hljs-title.class_,.markdown-body .hljs-title.class_.inherited__,.markdown-body .hljs-title.function_{color:var(--hl-title)}.markdown-body .hljs-attr,.markdown-body .hljs-attribute,.markdown-body .hljs-literal,.markdown-body .hljs-meta,.markdown-body .hljs-number,.markdown-body .hljs-operator,.markdown-body .hljs-variable,.markdown-body .hljs-selector-attr,.markdown-body .hljs-selector-class,.markdown-body .hljs-selector-id{color:var(--hl-constant)}.markdown-body .hljs-regexp,.markdown-body .hljs-string,.markdown-body .hljs-meta .hljs-string{color:var(--hl-string)}.markdown-body .hljs-built_in,.markdown-body .hljs-symbol{color:var(--hl-builtin)}.markdown-body .hljs-comment,.markdown-body .hljs-code,.markdown-body .hljs-formula{color:var(--hl-comment)}.markdown-body .hljs-name,.markdown-body .hljs-quote,.markdown-body .hljs-selector-tag,.markdown-body .hljs-selector-pseudo{color:var(--hl-tag)}.markdown-body .hljs-subst,.markdown-body .hljs-emphasis,.markdown-body .hljs-strong{color:var(--hl-base)}.markdown-body .hljs-section{color:var(--hl-section);font-weight:700}.markdown-body .hljs-bullet{color:var(--hl-bullet)}.markdown-body .hljs-emphasis{font-style:italic}.markdown-body .hljs-strong{font-weight:700}.markdown-body .hljs-addition{color:var(--hl-addition);background-color:var(--hl-addition-bg)}.markdown-body .hljs-deletion{color:var(--hl-deletion);background-color:var(--hl-deletion-bg)}.markdown-body img{max-width:100%;height:auto;display:block;margin:16px auto;border-radius:6px}.markdown-body a{color:var(--color-primary);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body table{border-collapse:collapse;margin:16px 0;display:block;width:max-content;max-width:100%;overflow:auto}.markdown-body th,.markdown-body td{border:1px solid var(--color-border);padding:8px 12px}.markdown-body th{background:var(--color-tag-bg)}.markdown-body hr{border:none;border-top:1px solid var(--color-border);margin:24px 0}
