:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color-scheme:dark;--bg:#141618;--side:#191c1f;--panel:#1e2226;--hover:#272c31;--border:#30363c;--text:#e1e6eb;--muted:#89949e;--accent:#9dc7a2;--accent-bg:#293e32;--code:#141719;--danger:#f0a4a4;--shadow:0 22px 90px #0008;--sidebar:274px;font-size:14px}
:root[data-theme=light]{color-scheme:light;--bg:#f9faf9;--side:#f0f3f1;--panel:#fff;--hover:#e7ede8;--border:#d7dfd9;--text:#27352d;--muted:#6b7a70;--accent:#377044;--accent-bg:#e1ede4;--code:#f5f8f5;--danger:#ab3232;--shadow:0 20px 80px #20382028}
*{box-sizing:border-box}body{margin:0;height:100vh;overflow:hidden;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text);padding:8px 12px;cursor:pointer;transition:background .12s}button:hover{background:var(--hover)}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.primary{background:var(--accent);color:#15291a;border-color:var(--accent);font-weight:650}button.danger{color:var(--danger)}button.icon{padding:5px 8px;border:0;font-size:18px;line-height:1.3}.topbar{height:66px;display:flex;align-items:center;padding:0 20px;gap:14px;border-bottom:1px solid var(--border);background:var(--side)}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap;color:var(--text);text-decoration:none;font-size:18px}.brand-symbol{width:29px;height:31px;background:var(--accent-bg);color:var(--accent);border:1px solid #7fa78a50;border-radius:8px;display:grid;place-items:center;font-size:22px}.brand-caption{font-size:12px;color:var(--muted);margin-left:5px}.search-trigger{margin:auto;display:flex;align-items:center;gap:12px;width:min(390px,35vw);color:var(--muted);background:var(--bg);font-size:13px;text-align:left}.search-trigger>span:first-child{font-size:22px;line-height:1}.search-trigger kbd{margin-left:auto;font-size:10px;border:1px solid var(--border);border-radius:4px;padding:2px 5px}.top-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}.shell{height:calc(100vh - 92px);display:flex}#sidebar{width:var(--sidebar);min-width:var(--sidebar);background:var(--side);display:flex;flex-direction:column;overflow:hidden}.sidebar-top{padding:25px 19px 15px;display:flex;align-items:center;justify-content:space-between}.eyebrow,.section-label{font-size:11px;color:var(--muted);letter-spacing:1.5px}.local-dot{font-size:10px;color:var(--accent);border:1px solid #8bae9250;border-radius:4px;padding:2px 5px}.quick-nav{padding:0 10px 18px;border-bottom:1px solid var(--border)}.quick-nav button{display:flex;gap:13px;width:100%;border:0;text-align:left;color:var(--muted);padding:11px 13px;margin:2px 0}.quick-nav button.active{color:var(--accent);background:var(--accent-bg)}.quick-nav span{color:inherit}.section-label{display:flex;align-items:center;justify-content:space-between;padding:17px 17px 9px}.section-label .icon{font-size:16px;padding:0}.project-list{overflow:auto;flex:1;padding:0 9px 15px}.project-row,.tree-row{display:flex;align-items:center;gap:4px;border-radius:5px;min-height:34px;position:relative}.project-row:hover,.tree-row:hover{background:var(--hover)}.project-row.active,.tree-row.active{background:var(--accent-bg)}.project-row .title,.tree-row .title{border:0;flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:8px 3px;background:transparent;font-size:12px}.project-row .title{font-weight:600}.chevron{border:0;padding:3px 4px;font-size:11px;color:var(--muted)}.row-menu{opacity:0;border:0;padding:1px 5px;font-size:16px}.project-row:hover .row-menu,.tree-row:hover .row-menu,.row-menu:focus{opacity:1}.file-icon{font-family:Consolas,monospace;font-size:10px;width:20px;min-width:20px;text-align:center;color:#8eb4d5}.file-icon.folder{color:#c4b58b;font-size:15px}.file-icon.markdown{color:#b4a0d8}.file-icon.image{color:#c7a88c}.file-icon.pdf{color:#d99797}.sidebar-footer{display:flex;gap:9px;align-items:center;padding:17px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.sidebar-footer small{display:block;font-size:10px;margin-top:5px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-footer .icon{margin-left:auto;font-size:14px}.status-dot{width:6px;height:6px;border-radius:100%;background:var(--accent)}#resize{width:4px;cursor:col-resize;background:var(--side);border-right:1px solid var(--border)}#resize:hover{background:var(--accent)}body.sidebar-hidden #sidebar,body.sidebar-hidden #resize{display:none}#main{flex:1;min-width:0;display:flex;flex-direction:column}.tabs{min-height:39px;display:flex;border-bottom:1px solid var(--border);background:var(--side);overflow-x:auto}.tabs:empty{display:none}.tab{display:flex;align-items:center;gap:7px;border-right:1px solid var(--border);padding:0 10px;min-height:39px;color:var(--muted);white-space:nowrap;font-size:12px;cursor:pointer;border-top:2px solid transparent}.tab.active{color:var(--text);background:var(--bg);border-top-color:var(--accent)}.tab button{border:0;padding:0 2px;color:var(--muted)}#workspace{flex:1;min-height:0;overflow:auto;position:relative}.statusbar{height:26px;background:var(--side);border-top:1px solid var(--border);color:var(--muted);font-size:10px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;letter-spacing:.2px}.page{padding:46px 6%;max-width:1500px;margin:auto}.overline{font-size:11px;color:var(--accent);letter-spacing:2px;text-transform:uppercase}.page h1{font-size:30px;letter-spacing:-.8px;font-weight:600;margin:12px 0}.muted{color:var(--muted)}.page-lead{line-height:1.8;color:var(--muted);font-size:13px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.badge{font-size:11px;background:var(--accent-bg);color:var(--accent);padding:4px 8px;border-radius:5px;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:29px 0 34px}.stat{border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:20px 22px}.stat .num{font-size:27px;font-weight:500;margin:12px 0 6px}.stat .label{font-size:11px;color:var(--muted)}.stat .top{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.stat .top span{color:var(--accent)}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0 15px}.section-heading h2{font-size:15px;font-weight:600;margin:0}.section-heading button{border:0;color:var(--muted);font-size:12px;padding:3px}.project-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.project-card{border:1px solid var(--border);border-radius:10px;padding:22px;background:var(--panel);cursor:pointer;position:relative}.project-card:hover{border-color:#859e8c}.project-card .card-icon{background:var(--accent-bg);color:var(--accent);border-radius:7px;width:34px;height:34px;display:grid;place-items:center;font-size:18px}.project-card h3{font-size:15px;margin:18px 0 9px;font-weight:600}.project-card p{font-size:12px;line-height:1.8;color:var(--muted);min-height:22px;margin:0 0 20px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card .meta{font-size:11px;display:flex;gap:8px;align-items:center;color:var(--muted)}.project-card .star{position:absolute;right:16px;top:19px;color:var(--accent)}.tag{font-size:10px;border:1px solid var(--border);padding:2px 6px;border-radius:4px;color:var(--muted)}.empty{padding:55px 22px;text-align:center;border:1px dashed var(--border);border-radius:12px;color:var(--muted);line-height:1.9}.empty strong{display:block;color:var(--text);font-size:17px;font-weight:500;margin:10px 0}.empty .big{font-size:35px;color:var(--accent)}.empty button{margin-top:16px}.list{border:1px solid var(--border);border-radius:9px;overflow:hidden}.list-row{display:flex;gap:13px;align-items:center;padding:14px 17px;border-bottom:1px solid var(--border);cursor:pointer}.list-row:last-child{border:0}.list-row:hover{background:var(--hover)}.list-row .info{flex:1;min-width:0}.list-row strong{font-size:12px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row small{font-size:10px;color:var(--muted);display:block;margin-top:5px}.list-row .file-icon{font-size:12px;width:26px}.list-row .state{font-size:10px;color:var(--muted)}.filter-row{display:flex;gap:10px;margin:20px 0;flex-wrap:wrap}.filter-row select{width:auto;min-width:140px}.reader{height:100%;display:flex;flex-direction:column}.breadcrumbs{font-size:11px;color:var(--muted);padding:14px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;overflow:auto;white-space:nowrap}.breadcrumbs .current{color:var(--text)}.reader-toolbar{padding:10px 18px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);flex-wrap:wrap;font-size:11px}.reader-toolbar button,.reader-toolbar select{font-size:11px;padding:5px 8px}.reader-toolbar select{width:auto}.reader-toolbar .spacer{flex:1}.reader-toolbar input{width:150px;padding:5px 8px;font-size:11px}.reader-body{display:flex;flex:1;min-height:0}.reading-area{flex:1;min-width:0;overflow:auto;position:relative;background:var(--code);scroll-behavior:auto}.code{font-family:Consolas,"Cascadia Code",monospace;font-size:14px;line-height:1.85;tab-size:4;margin:0;padding:20px 0;counter-reset:line}.code .line{display:flex;min-height:1.85em}.code .line:target,.code .line.hit{background:#a8cfa21e}.code .number{flex:0 0 65px;text-align:right;padding-right:22px;color:var(--muted);user-select:none;font-size:11px;opacity:.6}.code .source{white-space:pre;display:block;padding-right:25px;min-width:0}.code.wrap .source{white-space:pre-wrap;overflow-wrap:anywhere;flex:1}.tok-comment{color:#758d78}.tok-string{color:#cfb78b}.tok-keyword{color:#b5a4dd}.tok-number{color:#8bbbd2}.tok-type{color:#87c9b7}mark{background:#c1aa4855;color:inherit;border-radius:2px}.note-panel{width:290px;min-width:220px;border-left:1px solid var(--border);padding:20px;background:var(--side);display:flex;flex-direction:column;gap:15px}.note-panel h3{font-size:13px;font-weight:500;margin:0}.note-panel textarea{flex:1;resize:none;line-height:1.9;font-size:12px;background:transparent;border:1px solid var(--border);min-height:150px}.note-panel small{font-size:10px;color:var(--muted)}.reader-footer{padding:6px 20px;font-size:10px;color:var(--muted);display:flex;gap:18px;border-top:1px solid var(--border)}.paging{display:flex;gap:10px;align-items:center;justify-content:center;padding:20px;font-size:11px;color:var(--muted)}.markdown{padding:32px 7%;font-size:14px;line-height:1.9;max-width:1050px;margin:auto;overflow-wrap:anywhere}.markdown h1,.markdown h2{line-height:1.5;border-bottom:1px solid var(--border);padding-bottom:12px;margin:25px 0 16px}.markdown h1{font-size:28px}.markdown h2{font-size:22px}.markdown h3{font-size:18px}.markdown a{color:var(--accent)}.markdown pre{background:var(--side);padding:15px;border-radius:7px;overflow:auto;border:1px solid var(--border);font-family:Consolas,monospace;font-size:13px}.markdown code{font-family:Consolas,monospace;background:var(--hover);padding:2px 4px;border-radius:3px}.markdown pre code{background:none;padding:0}.markdown table{border-collapse:collapse;width:100%;font-size:12px}.markdown th,.markdown td{padding:8px 12px;border:1px solid var(--border);text-align:left}.markdown th{background:var(--side)}.markdown blockquote{border-left:3px solid var(--accent);padding-left:15px;color:var(--muted);margin-left:0}.markdown img{max-width:100%;border-radius:5px}.image-view{min-height:100%;display:flex;align-items:flex-start;justify-content:center;padding:35px;overflow:auto}.image-view img{max-width:none;object-fit:contain}.pdf-frame{width:100%;height:100%;border:0;background:white}.file-info{padding:70px 30px;max-width:700px;margin:auto;text-align:center;line-height:2}.file-info a{display:inline-block;text-decoration:none;background:var(--accent-bg);color:var(--accent);padding:8px 20px;border-radius:6px;margin:20px}.file-info .big{font-size:50px;color:var(--muted)}dialog{width:min(720px,94vw);max-height:88vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:0;color:var(--text);box-shadow:var(--shadow)}dialog::backdrop{background:#060a0e99;backdrop-filter:blur(4px)}.dialog-head{padding:23px 26px 17px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.dialog-head h2{font-size:17px;margin:0;font-weight:550}.dialog-body{padding:23px 26px}.dialog-foot{padding:16px 26px;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border)}label{display:block;font-size:12px;margin:0 0 16px;color:var(--muted)}input,select,textarea{width:100%;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px;outline:none}label input,label textarea,label select{display:block;margin-top:8px}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{min-height:80px;resize:vertical}input[type=checkbox]{width:auto;display:inline-block;margin-right:7px;accent-color:var(--accent)}.help{color:var(--muted);font-size:11px;line-height:1.9}.notice{background:var(--accent-bg);border:1px solid #91af9830;border-radius:7px;padding:12px 15px;line-height:1.9;font-size:12px;margin:0 0 20px;color:var(--accent)}.notice.error{background:#b347471a;color:var(--danger);border-color:#b3474733}.import-drop{border:1px dashed #799383;border-radius:8px;padding:28px;text-align:center;background:var(--bg);margin:15px 0}.import-drop p{font-size:12px;color:var(--muted)}.import-drop .big{font-size:28px;color:var(--accent)}.import-drop button{margin:0 4px}.progress{height:5px;border-radius:3px;background:var(--hover);overflow:hidden;margin:13px 0}.progress>div{height:100%;background:var(--accent);width:0}.progress-list{max-height:150px;overflow:auto;font-size:11px;color:var(--muted);line-height:1.9}.result{padding:15px 4px;border-bottom:1px solid var(--border);cursor:pointer}.result:hover{background:var(--hover)}.result-title{font-size:13px}.result-path{font-size:10px;color:var(--muted);margin:7px 0}.result pre{white-space:pre-wrap;font-family:Consolas,monospace;font-size:11px;line-height:1.7;color:var(--muted);margin:0}.search-input{font-size:16px}.result-group{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin:20px 0 5px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.settings-grid>div{padding:15px;border:1px solid var(--border);border-radius:7px}.settings-grid strong{display:block;font-weight:500;margin-top:10px}.backup-row{padding:12px 0;border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:center}.backup-row .info{flex:1;min-width:0;overflow-wrap:anywhere}.backup-row small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.backup-row button{font-size:11px;padding:5px 9px}#toast{position:fixed;bottom:45px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:8px;box-shadow:var(--shadow);z-index:100;max-width:90vw;display:none;font-size:12px}#toast.show{display:block}#connection{background:#7c3333;color:white;padding:12px 20px;position:fixed;top:0;left:0;right:0;z-index:200;font-size:13px}#drop-overlay{position:fixed;inset:0;background:#11231de8;z-index:150;border:3px dashed var(--accent);color:var(--accent);place-items:center;pointer-events:none}#drop-overlay:not([hidden]){display:grid}#drop-overlay>div{text-align:center;font-size:50px}#drop-overlay strong,#drop-overlay span{display:block;font-size:22px;margin-top:20px}#drop-overlay span{font-size:13px}.spinner{display:inline-block;width:15px;height:15px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.loading{padding:65px;text-align:center;color:var(--muted)}.text-button{border:0;color:var(--accent);padding:4px;font-size:12px}.inline-actions{display:flex;gap:10px}.project-detail{font-size:12px;color:var(--muted);line-height:1.9}.check-label{display:flex;align-items:center;gap:5px}.check-label input{margin:0}body.resizing{cursor:col-resize;user-select:none}body.resizing iframe{pointer-events:none}@media(max-width:1100px){.brand-caption{display:none}.note-panel{width:245px}.topbar{padding:0 12px;gap:8px}.top-actions{gap:4px}.search-trigger{width:30vw}.page{padding:32px 5%}}@media(max-width:800px){#sidebar{position:absolute;z-index:20;height:calc(100vh - 92px);box-shadow:var(--shadow)}#resize{display:none}.search-trigger{flex:1;width:auto}.search-trigger kbd,.search-trigger span:nth-child(2),.top-actions>button:first-child{display:none}.search-trigger{max-width:60px;justify-content:center;margin-left:auto;margin-right:0}.topbar{gap:8px}.stats{gap:8px}.stat{padding:14px}.page h1{font-size:24px}.note-panel{position:absolute;right:0;bottom:0;top:100px;z-index:10;width:min(320px,90vw);box-shadow:var(--shadow)}.reader-toolbar{gap:5px;padding:8px}.reader-toolbar input{width:100px}.page-heading{align-items:flex-start}.brand{font-size:16px}.top-actions .primary{padding:8px}.project-cards{grid-template-columns:1fr}.reader-toolbar .spacer{display:none}.brand-caption{display:none}}
.pdf-view{padding:25px;display:flex;justify-content:flex-start;min-width:fit-content}.pdf-view canvas{display:block;background:white;box-shadow:0 5px 25px #0006;margin:auto}.pdf-info{position:sticky;top:0;background:var(--side);padding:10px 20px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted);z-index:2}.pdf-info a{color:var(--accent)}
.tabs{height:40px;max-height:40px;flex:0 0 40px}.tab{height:39px;flex-shrink:0}
.tabs{overflow-y:hidden}
