:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f3f6;--border:#e2e6eb;--border-strong:#cfd6de;--text:#1c2430;--text-muted:#5d6b7a;--text-faint:#8a97a6;--primary:#0b4f8a;--primary-hover:#0a4576;--primary-soft:#e7f0f9;--danger:#b3261e;--radius:8px;--radius-lg:12px;--sidebar-w:280px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:15px;line-height:1.6}button{font-family:inherit}a{color:var(--primary)}.app{flex-direction:column;height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;height:52px;padding:0 16px;display:flex}.brand{align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.brand .logo{background:var(--primary);color:#fff;border-radius:7px;place-items:center;width:28px;height:28px;font-size:15px;font-weight:700;display:grid}.topbar-search{border:1px solid var(--border);background:var(--surface-2);max-width:420px;height:34px;color:var(--text-faint);border-radius:20px;flex:1;align-items:center;gap:8px;margin:0 auto;padding:0 12px;display:flex}.topbar-search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:14px}.topbar-user{color:var(--text-muted);align-items:center;gap:8px;font-size:14px;display:flex}.avatar{background:var(--primary-soft);width:30px;height:30px;color:var(--primary);border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid}.body{flex:1;min-width:0;min-height:0;display:flex}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-head{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);justify-content:space-between;align-items:center;padding:12px 14px 6px;font-size:11px;display:flex}.sidebar-scroll{flex:1;padding:4px 6px 16px;overflow-y:auto}.tree-row{border-radius:var(--radius);cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:5px 6px;display:flex}.tree-row:hover{background:var(--surface-2)}.tree-row.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.tree-row .twisty{width:18px;height:18px;color:var(--text-faint);border-radius:4px;flex-shrink:0;place-items:center;display:grid}.tree-row .twisty:hover{background:var(--border)}.tree-row .twisty svg{transition:transform .12s}.tree-row .twisty.collapsed svg{transform:rotate(-90deg)}.tree-row .label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tree-row .row-add{opacity:0;color:var(--text-faint);border-radius:4px;place-items:center;width:20px;height:20px;display:grid}.tree-row:hover .row-add{opacity:1}.tree-row .row-add:hover{background:var(--border);color:var(--text)}.tree-row.drop-inside{box-shadow:inset 0 0 0 2px var(--primary)}.tree-row.drop-before{box-shadow:inset 0 2px 0 0 var(--primary)}.tree-row.drop-after{box-shadow:inset 0 -2px 0 0 var(--primary)}.tree-row.dragging{opacity:.4}.tree-empty{color:var(--text-faint);padding:12px;font-size:13px}.main{flex:1 1 0;min-width:0;overflow-y:auto}.page-wrap{max-width:860px;margin:0 auto;padding:24px 36px 80px}.breadcrumb{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.breadcrumb a{color:var(--text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--primary);text-decoration:underline}.breadcrumb .sep{color:var(--text-faint)}.breadcrumb .current{color:var(--text)}.page-header{align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.page-title-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:2px 0;font-size:30px;font-weight:700;line-height:1.25}.page-meta{color:var(--text-muted);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;padding:8px 0 14px;font-size:13px;display:flex}.page-meta .save-state{margin-left:auto}.page-meta .dot{color:var(--text-faint)}.toolbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:8px;padding:6px 0;display:flex;position:sticky;top:0}.tb-btn{width:32px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;display:grid}.tb-btn:hover{background:var(--surface-2);color:var(--text)}.tb-btn.is-active{background:var(--primary-soft);color:var(--primary)}.tb-sep{background:var(--border);width:1px;height:20px;margin:0 4px}.btn{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);height:34px;color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:14px;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary-hover)}.btn.subtle{color:var(--text-muted);border-color:#0000}.btn.subtle:hover{background:var(--surface-2)}.btn.danger{color:var(--danger);border-color:#0000}.btn.danger:hover{background:#fbeceb}.btn:disabled{opacity:.5;cursor:default}.ProseMirror{min-height:320px;color:var(--text);outline:none;font-size:16px}.ProseMirror>*+*{margin-top:.75em}.ProseMirror h1{margin-top:1.2em;font-size:1.7em;font-weight:700}.ProseMirror h2{margin-top:1.1em;font-size:1.4em;font-weight:700}.ProseMirror h3{margin-top:1em;font-size:1.15em;font-weight:600}.ProseMirror ul,.ProseMirror ol{padding-left:1.4em}.ProseMirror code{background:var(--surface-2);border-radius:4px;padding:.15em .35em;font-size:.9em}.ProseMirror pre{color:#e6edf3;border-radius:var(--radius);background:#1e2430;padding:12px 14px;font-family:SFMono-Regular,Consolas,monospace;font-size:.88em;overflow-x:auto}.ProseMirror pre code{color:inherit;background:0 0;padding:0}.ProseMirror blockquote{border-left:3px solid var(--border-strong);color:var(--text-muted);padding-left:14px}.ProseMirror img{border-radius:var(--radius);max-width:100%}.ProseMirror hr{border:none;border-top:1px solid var(--border)}.ProseMirror a{color:var(--primary)}.ProseMirror table{border-collapse:collapse;width:100%;margin:.5em 0}.ProseMirror th,.ProseMirror td{border:1px solid var(--border-strong);text-align:left;padding:6px 10px}.ProseMirror th{background:var(--surface-2);font-weight:600}.ProseMirror ul[data-type=taskList]{padding-left:.2em;list-style:none}.ProseMirror ul[data-type=taskList] li{align-items:flex-start;gap:8px;display:flex}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--text-faint);float:left;pointer-events:none;height:0}.history-panel{border-left:1px solid var(--border);background:var(--surface);flex-shrink:0;width:320px;overflow-y:auto}.history-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;font-weight:600;display:flex}.version-item{border-bottom:1px solid var(--border);cursor:pointer;padding:12px 16px}.version-item:hover{background:var(--surface-2)}.version-item.active{background:var(--primary-soft)}.version-item .v-top{justify-content:space-between;font-size:13px;display:flex}.version-item .v-num{font-weight:600}.version-item .v-meta{color:var(--text-muted);margin-top:2px;font-size:12px}.version-item .v-note{color:var(--text-faint);margin-top:2px;font-size:12px;font-style:italic}.signin{background:var(--bg);place-items:center;height:100vh;display:grid}.signin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center;max-width:360px;padding:36px 40px;box-shadow:0 2px 16px #0000000a}.signin-card .logo{border-radius:12px;width:48px;height:48px;margin:0 auto 16px;font-size:22px}.signin-card h1{margin:0 0 6px;font-size:20px}.signin-card p{color:var(--text-muted);margin:0 0 22px;font-size:14px}.center-muted{height:100%;color:var(--text-faint);place-items:center;display:grid}.icon{width:16px;height:16px;display:inline-block}.search-results{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-height:380px;padding:4px;position:absolute;top:40px;left:0;right:0;overflow-y:auto;box-shadow:0 6px 24px #0000001a}.search-item{cursor:pointer;border-radius:6px;padding:8px 10px}.search-item.active{background:var(--primary-soft)}.search-title{color:var(--text);font-size:14px;font-weight:600}.search-snippet{color:var(--text-muted);margin-top:2px;font-size:12.5px;line-height:1.45}.search-empty{color:var(--text-faint);padding:12px;font-size:13px}.sidebar-section{padding:6px 6px 2px}.sidebar-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:6px;padding:6px 8px 4px;font-size:11px;display:flex}.nav-row{border-radius:var(--radius);cursor:pointer;color:var(--text);align-items:center;gap:8px;padding:5px 8px;font-size:13px;display:flex}.nav-row:hover{background:var(--surface-2)}.nav-row.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav-row .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nav-row .ic{color:var(--text-faint);flex-shrink:0;place-items:center;display:grid}.sidebar-divider{background:var(--border);height:1px;margin:8px 10px}.btn.star.on{color:#d9a200;border-color:#0000}.btn.star{color:var(--text-muted);border-color:#0000}.backlinks{border-top:1px solid var(--border);margin-top:28px;padding-top:16px}.backlinks h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);margin:0 0 8px;font-size:13px}.backlink-item{cursor:pointer;color:var(--primary);border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:14px;display:flex}.backlink-item:hover{background:var(--surface-2)}.picker-backdrop{z-index:50;background:#141c2647;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.picker{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:460px;max-width:92vw;overflow:hidden;box-shadow:0 12px 40px #0000002e}.picker>input{border:none;border-bottom:1px solid var(--border);outline:none;width:100%;height:44px;padding:0 16px;font-size:15px}.picker-list{max-height:320px;padding:6px;overflow-y:auto}.picker-item{cursor:pointer;border-radius:6px;padding:8px 10px}.picker-item:hover,.picker-item.active{background:var(--primary-soft)}.picker-title{font-size:14px;font-weight:500}.picker-path{color:var(--text-muted);font-size:12px}.ProseMirror a[href^="/p/"]{color:var(--primary);border-bottom:1px solid var(--primary-soft);cursor:pointer;text-decoration:none}.toc-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin:4px 0 18px;padding:10px 14px}.toc-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin-bottom:8px;font-size:11px}.toc a{color:var(--text-muted);cursor:pointer;padding:3px 0;font-size:13px;line-height:1.4;text-decoration:none;display:block}.toc a:hover{color:var(--primary)}.toc a.lvl-2{padding-left:12px}.toc a.lvl-3{padding-left:24px;font-size:12.5px}.slash-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:240px;max-height:280px;padding:4px;overflow-y:auto;box-shadow:0 8px 28px #00000029}.slash-item{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:7px 9px;font-size:14px;display:flex}.slash-item.active,.slash-item:hover{background:var(--primary-soft)}.slash-item .si-ic{color:var(--text-muted);place-items:center;width:20px;display:grid}.mention{background:var(--primary-soft);color:var(--primary);border-radius:4px;padding:0 4px;font-weight:500}.tippy-box{box-shadow:none;background:0 0}.tippy-content{padding:0}.menu-dropdown{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:180px;padding:4px;position:absolute;top:30px;box-shadow:0 8px 28px #00000024}.menu-item{cursor:pointer;border-radius:6px;padding:8px 10px;font-size:14px}.menu-item:hover{background:var(--primary-soft);color:var(--primary)}@media print{.topbar,.sidebar,.history-panel,.toolbar,.page-meta,.toc-card,.backlinks{display:none!important}.app,.body,.main{height:auto!important;display:block!important;overflow:visible!important}.page-wrap{max-width:100%;padding:0}body{background:#fff}}
