:root{--sidebar-width:280px;--color-bg:#f8f9fa;--color-surface:#ffffff;--color-sidebar:#f1f3f5;--color-sidebar-hover:#e9ecef;--color-sidebar-active:#d0ebff;--color-border:#dee2e6;--color-text:#212529;--color-text-secondary:#868e96;--color-primary:#228be6;--color-primary-hover:#1c7ed6;--color-danger:#fa5252;--color-danger-hover:#e03131;--color-favorite:#fcc419;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono","Fira Code","Fira Mono",Menlo,Consolas,"DejaVu Sans Mono",monospace;--radius:8px;--radius-sm:4px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;font-family:var(--font-sans);font-size:14px;line-height:1.6;color:var(--color-text);background:var(--color-bg)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.app-layout{overflow:hidden}.app-layout,.sidebar{display:flex;height:100vh}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-sidebar);border-right:1px solid var(--color-border);flex-direction:column}.sidebar-header{padding:16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-title{font-size:16px;font-weight:700;white-space:nowrap}.btn-new{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:20px;cursor:pointer;transition:background .15s;flex-shrink:0}.btn-new:hover{background:var(--color-primary-hover)}.btn-new:disabled{opacity:.5;cursor:not-allowed}.sidebar-content{flex:1 1;overflow-y:auto;padding:4px 8px}.sidebar-actions{display:flex;gap:6px}.directory-item{display:flex;align-items:center;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;gap:4px;transition:background .1s;margin-bottom:1px;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;min-height:32px}.directory-item:hover{background:var(--color-sidebar-hover)}.directory-item.active{background:var(--color-sidebar-active)}.directory-item.drop-inside{background:#bfdbfe!important;outline:2px dashed var(--color-primary);outline-offset:-2px}.directory-item.drop-after:after,.directory-item.drop-before:before{content:"";position:absolute;left:4px;right:4px;height:2px;background:var(--color-primary);border-radius:1px;z-index:10}.directory-item.drop-before:before{top:-1px}.directory-item.drop-after:after{bottom:-1px}.directory-item.depth-0{padding-left:8px}.directory-item.depth-1{padding-left:24px}.directory-item.depth-2{padding-left:40px}.directory-item.depth-3{padding-left:56px}.directory-item.depth-4{padding-left:72px}.directory-item.depth-5{padding-left:88px}.directory-toggle{width:16px;font-size:9px;flex-shrink:0;text-align:center;color:var(--color-text-secondary);cursor:pointer}.directory-icon{font-size:14px;flex-shrink:0;margin-right:2px}.directory-name{flex:1 1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:500}.directory-name:hover{color:var(--color-primary)}.directory-rename-input{flex:1 1;font-size:13px;font-weight:500;border:1px solid var(--color-primary);border-radius:3px;padding:1px 4px;outline:none;background:white;min-width:0}.directory-actions{display:none;gap:2px;flex-shrink:0}.directory-item:hover .directory-actions{display:flex}.dir-btn{background:none;border:none;cursor:pointer;font-size:12px;padding:1px 3px;border-radius:3px;line-height:1;opacity:.6;transition:opacity .1s}.dir-btn:hover{opacity:1;background:rgba(0,0,0,.06)}.dir-btn-danger:hover{color:var(--color-danger)}.root-notes-section{margin-top:4px}.root-notes-divider{font-size:11px;font-weight:600;color:var(--color-text-secondary);padding:6px 8px 2px;text-transform:uppercase;letter-spacing:.3px}.note-list{flex:1 1;overflow-y:auto;padding:8px}.note-item{padding:8px 12px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;transition:background .1s;margin-bottom:1px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.note-item:hover{background:var(--color-sidebar-hover)}.note-item.active{background:var(--color-sidebar-active)}.note-item.dragging{opacity:.4}.note-item.hide{opacity:.2}.note-item-info{flex:1 1;min-width:0}.note-item-title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-item-meta{font-size:11px;margin-top:2px}.note-item-meta,.note-item-star{color:var(--color-text-secondary)}.note-item-star{cursor:pointer;font-size:14px;flex-shrink:0;background:none;border:none;padding:2px;transition:color .1s}.note-item-star.favorited{color:var(--color-favorite)}.note-item-delete{color:var(--color-text-secondary);cursor:pointer;font-size:14px;flex-shrink:0;background:none;border:none;padding:2px;opacity:0;transition:opacity .15s,color .1s}.note-item:hover .note-item-delete{opacity:1}.note-item-delete:hover{color:var(--color-danger)}.note-item.depth-1{padding-left:24px}.note-item.depth-2{padding-left:40px}.note-item.depth-3{padding-left:56px}.note-item.depth-4{padding-left:72px}.note-item.depth-5{padding-left:88px}.drop-indicator{height:2px;background:var(--color-primary);margin:0;border-radius:1px;position:relative;z-index:5}.drop-indicator.before{margin-bottom:-1px}.drop-indicator.after{margin-top:-1px}.dragging{opacity:.4}.empty-state{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-secondary);padding:32px;text-align:center}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.4}.empty-state-title{font-size:16px;font-weight:600;margin-bottom:4px;color:var(--color-text)}.empty-state-desc{font-size:13px;max-width:280px}.main-area{flex:1 1;display:flex;flex-direction:column;height:100vh;overflow:hidden}.editor-toolbar{padding:12px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:12px;background:var(--color-surface)}.editor-title-input{flex:1 1;font-size:18px;font-weight:700;border:none;outline:none;background:transparent;color:var(--color-text);min-width:0}.editor-title-input::placeholder{color:var(--color-text-secondary)}.btn-favorite{background:none;border:none;font-size:22px;cursor:pointer;padding:2px 4px;transition:transform .15s;line-height:1}.btn-favorite:hover{transform:scale(1.15)}.btn-save{padding:6px 16px;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;white-space:nowrap}.btn-save:hover{background:var(--color-primary-hover)}.btn-save:disabled{opacity:.5;cursor:not-allowed}.btn-save.saved{background:#40c057}.editor-split{flex:1 1;display:flex;overflow:hidden}.editor-pane{flex:1 1;display:flex;flex-direction:column;border-right:1px solid var(--color-border)}.editor-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);padding:6px 16px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.editor-uploading{color:var(--color-primary);text-transform:none;letter-spacing:normal;animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.editor-textarea{flex:1 1;width:100%;border:none;outline:none;resize:none;padding:16px;font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--color-text);background:var(--color-surface);-moz-tab-size:2;tab-size:2}.editor-textarea::placeholder{color:#adb5bd}.preview-pane{flex:1 1;display:flex;flex-direction:column;overflow:hidden}.preview-content{flex:1 1;overflow-y:auto;padding:16px 20px;background:var(--color-surface)}.markdown-body h1{font-size:24px;font-weight:700;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.markdown-body h2{font-size:20px;font-weight:700;margin:20px 0 8px}.markdown-body h3{font-size:16px;font-weight:700;margin:16px 0 6px}.markdown-body p{margin:0 0 12px}.markdown-body a{color:var(--color-primary);text-decoration:none}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:700}.markdown-body ol,.markdown-body ul{margin:0 0 12px;padding-left:24px}.markdown-body li{margin-bottom:4px}.markdown-body blockquote{margin:0 0 12px;padding:8px 16px;border-left:4px solid var(--color-primary);background:var(--color-bg);border-radius:var(--radius-sm)}.markdown-body code{font-family:var(--font-mono);font-size:.9em;padding:2px 6px;background:#f1f3f5;border-radius:3px}.markdown-body pre code{background:none;padding:0;font-size:13px;color:inherit}.markdown-body pre{margin:0 0 16px;padding:14px 16px;background:#1e1e2e;color:#cdd6f4;border-radius:var(--radius);overflow-x:auto}.markdown-body table{width:100%;border-collapse:collapse;margin:0 0 16px}.markdown-body td,.markdown-body th{padding:8px 12px;border:1px solid var(--color-border);text-align:left;font-size:13px}.markdown-body th{background:var(--color-bg);font-weight:600}.markdown-body hr{border:none;border-top:1px solid var(--color-border);margin:20px 0}.markdown-body img{max-width:100%;border-radius:var(--radius-sm)}.markdown-body input[type=checkbox]{margin-right:6px}.mermaid-block{padding:16px;overflow-x:auto;display:flex;justify-content:center}.mermaid-block,.mermaid-loading{margin:16px 0;background:#fafafa;border-radius:var(--radius)}.mermaid-loading{padding:32px;text-align:center;color:var(--color-text-secondary);font-size:13px}.mermaid-error{margin:16px 0;padding:12px 16px;background:#fff5f5;border:1px solid #ffc9c9;border-radius:var(--radius)}.mermaid-error-title{font-size:12px;font-weight:700;color:var(--color-danger);margin-bottom:6px}.mermaid-error-pre{font-family:var(--font-mono);font-size:12px;white-space:pre-wrap;margin-bottom:6px;color:#868e96}.mermaid-error-msg{font-size:12px;color:var(--color-danger)}.loading-dots:after{content:"...";animation:dots 1.2s steps(3) infinite}@keyframes dots{0%{content:"."}33%{content:".."}66%{content:"..."}}.error-toast{position:fixed;bottom:20px;right:20px;padding:10px 20px;background:var(--color-danger);color:#fff;border-radius:var(--radius);font-size:13px;box-shadow:0 4px 12px rgba(0,0,0,.15);z-index:1000;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width:768px){.sidebar{width:60px;min-width:60px}.note-item-meta,.note-item-title,.sidebar-title{display:none}.note-item{justify-content:center;padding:10px}.note-item-star{display:none}.editor-split{flex-direction:column}.editor-pane{border-right:none;border-bottom:1px solid var(--color-border);max-height:50%}}