: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{display:flex;height:100vh;overflow:hidden}@media print{.app-layout{display:block;height:auto;overflow:visible}}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-sidebar);border-right:1px solid var(--color-border);display:flex;flex-direction:column;height:100vh}@media print{.editor-label,.editor-pane,.editor-toolbar,.error-toast,.md-toolbar,.mobile-fab,.mobile-menu-btn,.mobile-view-toggle,.resizer,.sidebar,.sidebar-overlay{display:none!important}.app-layout,.editor-split,.main-area,.preview-content,.preview-pane{display:block!important;height:auto!important;width:100%!important;max-width:100%!important;overflow:visible!important;flex:none!important;border:none!important;box-shadow:none!important;min-width:0!important;min-height:0!important}.preview-content{padding:0!important}}.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}.btn-sidebar-close{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:18px;cursor:pointer;flex-shrink:0}.btn-sidebar-close:hover{background:rgba(0,0,0,.08);color:var(--color-text)}.mobile-menu-btn{top:12px;left:12px;width:44px;height:44px;border:none;border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:22px;box-shadow:0 2px 8px rgba(0,0,0,.12)}.mobile-fab,.mobile-menu-btn{display:none;position:fixed;z-index:180;cursor:pointer;align-items:center;justify-content:center;line-height:1}.mobile-fab{bottom:24px;right:24px;width:56px;height:56px;border:none;border-radius:50%;background:var(--color-primary);color:#fff;font-size:28px;box-shadow:0 4px 16px rgba(34,139,230,.35);transition:transform .2s,box-shadow .2s}.mobile-fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(34,139,230,.45)}.mobile-fab:active{transform:scale(.95)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:190;transition:opacity .3s ease}.sidebar-overlay.active{display:block}.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}.note-arrow-spacer{width:16px;flex-shrink:0}.note-type-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}.btn-attach{width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:16px;cursor:pointer;line-height:1}.btn-attach:hover{background:var(--color-bg)}.file-input-hidden{display:none}.confirm-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4)}.confirm-dialog{width:360px;max-width:90vw;padding:24px;border-radius:var(--radius);background:var(--color-surface);box-shadow:0 8px 32px rgba(0,0,0,.18)}.confirm-title{font-size:16px;font-weight:700;color:var(--color-text);margin-bottom:12px}.confirm-message{font-size:14px;color:var(--color-text-secondary);line-height:1.5;margin-bottom:20px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.btn-cancel{padding:6px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:14px;cursor:pointer;transition:background .15s}.btn-cancel:hover{background:var(--color-sidebar-hover)}.btn-danger{padding:6px 16px;border:none;border-radius:var(--radius-sm);background:var(--color-danger);color:#fff;font-size:14px;cursor:pointer;transition:background .15s}.btn-danger:hover{background:var(--color-danger-hover)}.login-page{min-height:100vh;align-items:center;justify-content:center;background:var(--color-bg)}.login-page,.login-panel{display:flex;padding:24px}.login-panel{width:100%;max-width:360px;flex-direction:column;gap:16px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.login-title{margin:0 0 6px;font-size:22px;color:var(--color-text)}.login-subtitle{margin:0;font-size:13px;color:var(--color-text-secondary)}.login-input{height:40px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;outline:none}.login-input:focus{border-color:var(--color-primary)}.login-error{padding:8px 10px;border-radius:var(--radius-sm);background:#fff5f5;color:var(--color-danger);font-size:13px}.login-button{height:40px;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:14px;font-weight:600;cursor:pointer}.login-button:disabled{opacity:.55;cursor:not-allowed}.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,.markdown-body video.markdown-video{max-width:100%;border-radius:var(--radius-sm)}.markdown-body video.markdown-video{width:100%;background:#000;outline:none}.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}}.resizer{flex:0 0 6px;cursor:col-resize;position:relative;z-index:10;background:transparent}.resizer,.resizer:after{transition:background .15s}.resizer:after{content:"";position:absolute;left:2px;top:0;bottom:0;width:2px;background:var(--color-border)}.resizer.resizing:after,.resizer:hover:after{background:var(--color-primary)}.md-toolbar{gap:2px;padding:4px 8px;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-wrap:wrap;flex-shrink:0}.md-toolbar,.md-toolbar button{display:flex;align-items:center}.md-toolbar button{justify-content:center;min-width:30px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);font-size:13px;font-family:var(--font-sans);cursor:pointer;transition:all .1s;padding:0 4px;line-height:1}.md-toolbar button:hover{background:var(--color-sidebar-hover);color:var(--color-text)}.md-toolbar button:active{background:var(--color-sidebar-active)}.md-toolbar button.btn-bold{font-weight:700}.md-toolbar button.btn-italic{font-style:italic}.md-toolbar button.btn-strike{text-decoration:line-through}.md-toolbar .separator{width:1px;height:20px;margin:0 4px;background:var(--color-border);flex-shrink:0}.mobile-view-toggle{display:none;gap:2px;background:var(--color-bg);border-radius:var(--radius-sm);padding:2px}.mobile-view-toggle button{padding:4px 12px;border:none;border-radius:3px;background:transparent;font-size:12px;cursor:pointer;color:var(--color-text-secondary);transition:background .15s,color .15s}.mobile-view-toggle button.active{background:var(--color-surface);color:var(--color-text);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.08)}@media (max-width:768px){.sidebar{position:fixed;top:0;left:-280px;width:280px;min-width:280px;height:100vh;height:100dvh;z-index:200;transition:left .3s ease;box-shadow:none}.sidebar.mobile-open{left:0;box-shadow:4px 0 20px rgba(0,0,0,.15)}.sidebar-header{padding:12px 16px;justify-content:space-between}.btn-sidebar-close{display:flex}.directory-item{min-height:44px;padding:10px 8px}.directory-toggle{width:24px;min-height:24px;display:flex;align-items:center;justify-content:center}.note-item{min-height:44px;padding:10px 12px}.note-item-delete,.note-item-star{min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center}.directory-actions{display:flex}.note-item-delete{opacity:1}.dir-btn{font-size:16px;padding:4px 6px;min-width:32px;min-height:32px}.btn-new{width:40px;height:40px;font-size:22px}.mobile-fab,.mobile-menu-btn{display:flex}.main-area{padding-top:0}.empty-state{padding:48px 24px}.empty-state-icon{font-size:64px;margin-bottom:16px;opacity:.3}.empty-state-title{font-size:18px}.empty-state-desc{font-size:14px;max-width:260px;line-height:1.6}.editor-toolbar{padding:8px 12px 8px 52px;flex-wrap:wrap;gap:6px;min-height:48px}.editor-title-input{font-size:16px;flex:1 1 100%}.btn-favorite{font-size:20px}.btn-save{font-size:12px;padding:5px 12px}.btn-attach{width:36px;height:36px}.mobile-view-toggle{display:flex}.editor-split{flex-direction:column}.editor-split.view-editor .preview-pane,.editor-split.view-preview .editor-pane{display:none}.editor-pane{border-right:none;flex:1 1;max-height:none}.preview-pane{flex:1 1}.preview-content{padding:12px}.markdown-body video.markdown-video{border-radius:var(--radius-sm)}}@media (max-width:400px){.editor-toolbar{padding:6px 8px 6px 48px}.editor-title-input{font-size:15px}.mobile-fab{width:48px;height:48px;font-size:24px;bottom:20px;right:20px}.empty-state{padding:36px 20px}.empty-state-icon{font-size:52px}}