:root,[data-theme=light]{--bg-primary: #f5f7fa;--bg-secondary: #ffffff;--bg-tertiary: #eef1f5;--text-primary: #1a1d24;--text-secondary: #5a6270;--text-muted: #8a919c;--accent-cyan: #00b4a0;--accent-magenta: #e91e8c;--status-todo: #4a90e2;--status-progress: #ffb142;--status-done: #4ecb71;--border-color: #dde1e7;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12), 0 2px 4px rgba(0, 0, 0, .08);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .15), 0 8px 16px rgba(0, 0, 0, .1)}[data-theme=dark]{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--text-primary: #f0f6fc;--text-secondary: #8b949e;--text-muted: #6e7681;--accent-cyan: #00d4aa;--accent-magenta: #f778ba;--status-todo: #58a6ff;--status-progress: #ffb142;--status-done: #56d364;--border-color: #30363d;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .6), 0 8px 16px rgba(0, 0, 0, .5)}[data-theme=nord]{--bg-primary: #2e3440;--bg-secondary: #3b4252;--bg-tertiary: #434c5e;--text-primary: #eceff4;--text-secondary: #d8dee9;--text-muted: #a5b1c2;--accent-cyan: #88c0d0;--accent-magenta: #b48ead;--status-todo: #81a1c1;--status-progress: #ebcb8b;--status-done: #a3be8c;--border-color: #4c566a;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 20px 40px rgba(0, 0, 0, .5), 0 8px 16px rgba(0, 0, 0, .4)}[data-theme=sepia]{--bg-primary: #f4f1ea;--bg-secondary: #faf8f4;--bg-tertiary: #ebe7de;--text-primary: #433422;--text-secondary: #6b5d4d;--text-muted: #998a76;--accent-cyan: #2d8a6e;--accent-magenta: #b85c38;--status-todo: #5b8db8;--status-progress: #d4a574;--status-done: #6b9b6e;--border-color: #d8d2c4;--shadow-sm: 0 1px 3px rgba(67, 52, 34, .1), 0 1px 2px rgba(67, 52, 34, .06);--shadow-md: 0 4px 12px rgba(67, 52, 34, .12), 0 2px 4px rgba(67, 52, 34, .08);--shadow-lg: 0 20px 40px rgba(67, 52, 34, .15), 0 8px 16px rgba(67, 52, 34, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow:hidden}.app{display:flex;flex-direction:column;height:100vh}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);z-index:600}.logo{font-weight:800;font-size:20px;display:flex;align-items:center;gap:10px;color:var(--text-primary)}.logo-icon{width:28px;height:28px;background:linear-gradient(135deg,var(--accent-cyan),var(--accent-magenta));border-radius:8px}.view-tabs{display:flex;gap:4px;background:var(--bg-tertiary);padding:4px;border-radius:10px}.tab{padding:8px 18px;background:transparent;border:none;color:var(--text-secondary);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;border-radius:7px;transition:all .2s ease}.tab:hover{color:var(--text-primary);background:#00000008}.tab.active{background:var(--bg-secondary);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow-sm)}.actions{display:flex;gap:8px;align-items:center}#save-text{display:inline-block;min-width:14ch}.project-actions{display:flex;gap:4px}.action-sep{width:1px;height:24px;background:var(--border-color);margin:0 8px}.btn{padding:8px 16px;border:none;border-radius:8px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-icon{padding:8px;background:var(--bg-tertiary);color:var(--text-secondary);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.btn-icon svg{pointer-events:none}.btn-icon:hover{background:var(--border-color);color:var(--text-primary)}.btn-icon.btn-export{color:var(--accent-cyan)}.btn-icon.btn-export:hover{background:#00b4a026}.theme-selector{position:relative}.theme-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);padding:6px;display:none;z-index:1000;min-width:120px}.theme-dropdown.active{display:block}.theme-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .15s}.theme-option:hover{background:var(--bg-tertiary);color:var(--text-primary)}.theme-option.active{color:var(--accent-cyan);font-weight:600}.theme-preview{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-color)}.theme-preview.light{background:linear-gradient(135deg,#fff 50%,#f5f7fa 50%)}.theme-preview.dark{background:linear-gradient(135deg,#161b22 50%,#0d1117 50%)}.user-area{display:flex;align-items:center;gap:8px;margin-left:8px}.user-area.hidden{display:none}.login-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.login-btn:hover{background:var(--accent-cyan);color:#fff;border-color:var(--accent-cyan)}.login-btn svg{width:14px;height:14px}.login-btn.hidden{display:none}.logged-in-area{display:flex;align-items:center;gap:10px}.logged-in-area.hidden{display:none}.offline-indicator{display:flex;align-items:center;padding:4px 10px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:12px;color:#ef4444;font-size:11px;font-weight:500}.offline-indicator.hidden{display:none}.username-display{font-size:13px;font-weight:500;color:var(--text-primary);cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .15s}.username-display:hover{background:var(--hover-bg)}.profile-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--bg-primary)}.profile-screen.hidden{display:none}.profile-container{width:100%;max-width:500px;background:var(--bg-secondary);border-radius:12px;padding:32px;box-shadow:0 4px 20px #00000026}.profile-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.profile-back-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:6px;display:flex;align-items:center;transition:all .15s}.profile-back-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.profile-title{font-size:24px;font-weight:600;color:var(--text-primary);margin:0}.profile-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border-color)}.profile-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.profile-section-title{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.profile-field{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.profile-field-label{font-size:14px;color:var(--text-muted)}.profile-field-value{font-size:14px;color:var(--text-primary);font-weight:500}.profile-btn{padding:10px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;border:none}.profile-btn-primary{background:linear-gradient(135deg,#06b6d4,#3b82f6);color:#fff}.profile-btn-primary:hover{opacity:.9}.profile-btn-primary:disabled{opacity:.5;cursor:not-allowed}.profile-btn-secondary{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.profile-btn-secondary:hover{background:var(--hover-bg)}.profile-btn-secondary:disabled{opacity:.5;cursor:not-allowed}.profile-btn-danger{background:#dc3545;border:1px solid #dc3545;color:#fff}.profile-btn-danger:hover{background:#c82333;border-color:#bd2130}.profile-section-danger{border:1px solid rgba(220,53,69,.3);border-radius:8px;padding:16px;margin-top:16px}.profile-section-danger .profile-section-title{color:#dc3545}.profile-field-hint{font-size:12px;color:var(--text-secondary);margin-top:8px;line-height:1.4}.profile-message{margin-top:8px;padding:8px 12px;font-size:13px;border-radius:4px;background:var(--bg-primary)}.vault-panel{position:fixed;top:0;left:0;width:900px;max-width:95vw;height:100vh;background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:9000;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 20px #00000026}.vault-panel.open{transform:translate(0)}.vault-panel-header{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.vault-panel-title{font-size:15px;font-weight:600;color:var(--text-primary);white-space:nowrap}.vault-header-spacer{flex:1}.vault-search-box{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;width:250px}.vault-search-box:focus-within{border-color:#06b6d4;box-shadow:0 0 0 2px #06b6d41a}.vault-search-icon{color:var(--text-muted);font-size:12px}.vault-search-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-size:13px}.vault-search-input::placeholder{color:var(--text-muted)}.vault-search-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;font-size:12px;line-height:1;display:none}.vault-search-box.has-query .vault-search-clear{display:block}.vault-search-clear:hover{color:var(--text-primary)}.vault-panel-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.vault-panel-close:hover{background:var(--hover-bg);color:var(--text-primary)}.vault-breadcrumbs{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);font-size:12px;overflow:hidden;min-height:36px;box-sizing:border-box}.vault-breadcrumbs-path{display:flex;align-items:center;gap:4px;overflow:hidden;flex:1;min-width:0}.vault-breadcrumb{color:var(--text-muted);cursor:pointer;white-space:nowrap;padding:2px 4px;border-radius:4px;flex-shrink:0}.vault-breadcrumb.ellipsis{cursor:default;position:relative}.vault-breadcrumb.ellipsis:hover:after{content:attr(data-full-path);position:absolute;top:100%;left:0;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:100;box-shadow:0 2px 8px #0003;pointer-events:none}.vault-breadcrumb:hover{color:var(--text-primary);background:var(--hover-bg)}.vault-breadcrumb.current{color:var(--text-primary);cursor:default;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.vault-breadcrumb.current:hover{background:none}.vault-breadcrumb-sep{color:var(--text-muted);font-size:10px;flex-shrink:0}.vault-toolbar{display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0}.vault-toolbar-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 6px;border-radius:4px;font-size:14px}.vault-toolbar-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.vault-folder-badge{font-size:10px;color:var(--text-muted);background:var(--bg-secondary);padding:1px 5px;border-radius:8px;margin-left:auto}.vault-map[data-path]:hover:after{content:attr(data-path);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary);padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:100;box-shadow:0 2px 8px #0003;pointer-events:none}.vault-map{position:relative}.vault-panel-content{flex:1;display:flex;overflow:hidden}.vault-col{display:flex;flex-direction:column;overflow:hidden;position:relative}.vault-col-folders{width:220px;min-width:120px;max-width:400px;background:var(--bg-primary)}.vault-col-files{flex:1;min-width:200px}.vault-col-recent{width:240px;min-width:150px;max-width:400px}.vault-resize-handle{position:absolute;top:0;bottom:0;width:5px;cursor:col-resize;background:transparent;z-index:10;transition:background .15s}.vault-resize-handle:hover,.vault-resize-handle.resizing{background:#06b6d44d}.vault-resize-handle-right{right:-2px;border-right:1px solid var(--border-color)}.vault-resize-handle-left{left:-2px;border-left:1px solid var(--border-color)}.vault-panel-resize{position:absolute;top:0;right:-4px;bottom:0;width:8px;cursor:ew-resize;background:transparent;z-index:10}.vault-panel-resize:hover,.vault-panel-resize.resizing{background:#06b6d44d}.vault-col-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);background:inherit;min-height:36px;box-sizing:border-box}.vault-col-scroll{flex:1;overflow-y:auto;padding:8px}.vault-col-scroll::-webkit-scrollbar{width:6px}.vault-col-scroll::-webkit-scrollbar-track{background:transparent}.vault-col-scroll::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.vault-col-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.vault-col-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px 6px;border-radius:4px;font-size:14px;line-height:1}.vault-col-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.vault-col-footer{border-top:1px solid var(--border-color);padding:12px 8px;background:var(--bg-secondary)}.vault-account-actions{display:flex;flex-direction:column;gap:6px}.vault-account-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;border:none;border-radius:6px;background:var(--hover-bg);color:var(--text-primary);font-size:13px;cursor:pointer;transition:background .15s,opacity .15s;text-align:left}.vault-account-btn:hover{background:var(--accent-color);color:var(--bg-primary)}.vault-account-btn:disabled{opacity:.6;cursor:not-allowed}.vault-account-btn:disabled:hover{background:var(--hover-bg);color:var(--text-primary)}.vault-account-icon{font-size:14px}.vault-account-separator{height:1px;background:var(--border-color);margin:6px 0}.vault-account-btn-danger{color:#ef4444}.vault-account-btn-danger:hover{background:#ef4444;color:#fff}.deletion-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.deletion-modal{background:var(--bg-primary);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.deletion-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.deletion-modal-header h2{margin:0;font-size:18px;color:#ef4444}.deletion-modal-close{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;line-height:1;padding:0}.deletion-modal-close:hover{color:var(--text-primary)}.deletion-modal-content{padding:20px;overflow-y:auto;flex:1}.deletion-warning{display:flex;gap:12px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;margin-bottom:20px}.deletion-warning-icon{font-size:24px;color:#ef4444}.deletion-warning-text strong{color:#ef4444}.deletion-warning-text p{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}.deletion-preview{margin-bottom:20px}.deletion-preview h3{font-size:14px;margin:0 0 12px;color:var(--text-primary)}.deletion-preview-list{list-style:none;padding:0;margin:0}.deletion-preview-list li{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:13px;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.deletion-preview-list li:last-child{border-bottom:none}.deletion-preview-icon{font-size:16px}.deletion-preview-note{font-size:11px;color:var(--text-muted);margin-left:auto}.deletion-export{margin-bottom:20px;padding:16px;background:var(--bg-secondary);border-radius:8px}.deletion-export h3{font-size:14px;margin:0 0 8px;color:var(--text-primary)}.deletion-export p{font-size:13px;color:var(--text-secondary);margin:0 0 12px}.deletion-export-status{font-size:12px;margin-top:8px;color:var(--text-muted)}.deletion-export-status.success{color:#22c55e}.deletion-export-status.error{color:#ef4444}.deletion-confirm{margin-bottom:12px}.deletion-confirm h3{font-size:14px;margin:0 0 8px;color:var(--text-primary)}.deletion-confirm p{font-size:13px;color:var(--text-secondary);margin:0 0 12px}.deletion-input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;box-sizing:border-box}.deletion-input:focus{outline:none;border-color:var(--accent-color)}.deletion-input-hidden{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.deletion-error{color:#ef4444;font-size:12px;margin-top:8px;min-height:16px}.deletion-modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.deletion-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.deletion-btn:disabled{opacity:.6;cursor:not-allowed}.deletion-btn-secondary{background:var(--hover-bg);color:var(--text-primary)}.deletion-btn-secondary:hover:not(:disabled){background:var(--accent-color);color:var(--bg-primary)}.deletion-btn-cancel{background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border-color)}.deletion-btn-cancel:hover:not(:disabled){background:var(--hover-bg)}.deletion-btn-danger{background:#ef4444;color:#fff}.deletion-btn-danger:hover:not(:disabled){background:#dc2626}.vault-folder{margin-bottom:2px}.vault-folder-row{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:6px;cursor:pointer;color:var(--text-primary);font-size:13px;transition:background .15s}.vault-folder-row:hover{background:var(--hover-bg)}.vault-folder-row.selected{background:#06b6d426}.vault-folder-row.drag-over{background:#06b6d440;outline:2px dashed #06b6d4;outline-offset:-2px}.vault-folder-expand{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--text-muted);flex-shrink:0}.vault-folder-icon{font-size:14px;flex-shrink:0}.vault-folder-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-folder-actions{display:none;gap:2px}.vault-folder-row:hover .vault-folder-actions{display:flex}.vault-folder-children{margin-left:12px}.vault-map{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--text-primary);font-size:13px;transition:all .15s;margin-bottom:2px}.vault-map:hover{background:var(--hover-bg)}.vault-map.active{background:linear-gradient(135deg,#06b6d426,#3b82f626);border-left:3px solid #06b6d4;padding-left:7px}.vault-map-icon{font-size:14px;flex-shrink:0}.vault-map-info{flex:1;min-width:0}.vault-map-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-map-meta{font-size:10px;color:var(--text-muted);margin-top:2px}.vault-map-actions{display:none;gap:2px;flex-shrink:0}.vault-map:hover .vault-map-actions{display:flex}.vault-action-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:4px;font-size:12px;line-height:1}.vault-action-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.vault-action-btn.danger:hover{color:#ef4444}.vault-map.dragging{opacity:.4;transform:scale(.98)}.vault-map[draggable=true]{cursor:grab;transition:opacity .15s,transform .15s}.vault-map[draggable=true]:active{cursor:grabbing}body.vault-dragging,body.vault-dragging *{cursor:grabbing!important}body.vault-dragging .vault-folder-row,body.vault-dragging .vault-folder-row.drag-over{cursor:copy!important}.vault-empty{text-align:center;padding:24px 16px;color:var(--text-muted);font-size:12px}.vault-empty-icon{font-size:28px;margin-bottom:8px;opacity:.5}.vault-category-folders{margin-bottom:4px}.vault-category-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;color:var(--text-primary);font-size:13px;font-weight:500;transition:background .15s}.vault-category-row:hover{background:var(--hover-bg)}.vault-category-row.selected{background:#06b6d426}.vault-category-icon{font-size:16px;flex-shrink:0}.vault-category-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vault-folder-separator{height:1px;background:var(--border-color);margin:8px 8px 12px}.vault-sort-bar{display:flex;align-items:center;justify-content:flex-end;padding:4px 10px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.vault-sort-options{display:flex;gap:4px}.vault-sort-btn{padding:4px 10px;font-size:11px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-muted);cursor:pointer;transition:all .15s}.vault-sort-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.vault-sort-btn.active{background:#06b6d426;border-color:#06b6d44d;color:var(--accent-cyan)}.vault-search-scope{display:flex;gap:2px;margin-left:8px}.vault-scope-btn{padding:2px 8px;font-size:10px;background:transparent;border:1px solid var(--border-color);border-radius:3px;color:var(--text-muted);cursor:pointer;transition:all .15s}.vault-scope-btn:first-child{border-radius:3px 0 0 3px}.vault-scope-btn:last-child{border-radius:0 3px 3px 0;margin-left:-1px}.vault-scope-btn:hover{background:var(--hover-bg)}.vault-scope-btn.active{background:#06b6d433;border-color:var(--accent-cyan);color:var(--accent-cyan);z-index:1}.vault-role-badge{font-size:10px;padding:1px 6px;border-radius:3px;font-weight:500;margin-left:6px}.vault-role-viewer{background:#9ca3af33;color:#9ca3af}.vault-role-editor{background:#22c55e33;color:#22c55e}.vault-role-owner{background:#06b6d433;color:#06b6d4}.vault-shared-map,.vault-owned-share{border-left:3px solid transparent}.vault-shared-map{border-left-color:#06b6d480}.vault-owned-share{border-left-color:#22c55e80}.vault-search-share,.vault-search-owned-share{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.vault-search-share:hover,.vault-search-owned-share:hover{background:var(--hover-bg)}.vault-move-modal{position:fixed;inset:0;background:#00000080;z-index:10000;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.vault-move-content{background:var(--bg-secondary);border-radius:12px;width:360px;max-width:90vw;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0000004d;animation:slideUp .2s ease}.vault-move-header{padding:16px 20px;border-bottom:1px solid var(--border-color)}.vault-move-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.vault-move-subtitle{font-size:12px;color:var(--text-muted)}.vault-move-folders{flex:1;overflow-y:auto;padding:12px;max-height:50vh}.vault-move-folders::-webkit-scrollbar{width:6px}.vault-move-folders::-webkit-scrollbar-track{background:transparent}.vault-move-folders::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.vault-move-folders::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.vault-move-folder{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--text-primary);font-size:14px;transition:background .15s}.vault-move-folder:hover{background:var(--hover-bg)}.vault-move-folder.selected{background:#06b6d426;outline:2px solid #06b6d4}.vault-move-folder.current{opacity:.5;cursor:default}.vault-move-folder-icon{font-size:16px}.vault-move-folder-name{flex:1}.vault-move-folder-badge{font-size:10px;color:var(--text-muted);background:var(--bg-primary);padding:2px 8px;border-radius:10px}.vault-move-buttons{padding:16px 20px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:12px}.vault-move-btn{padding:8px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.vault-move-btn-cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-primary)}.vault-move-btn-cancel:hover{background:var(--hover-bg)}.vault-move-btn-move{background:linear-gradient(135deg,#06b6d4,#3b82f6);border:none;color:#fff}.vault-move-btn-move:hover{filter:brightness(1.1)}.vault-move-btn-move:disabled{opacity:.5;cursor:not-allowed}.vault-picker-overlay{position:fixed;inset:0;background:#00000080;z-index:10001;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}.vault-picker-modal{background:var(--bg-secondary);border-radius:12px;width:420px;max-width:90vw;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0006;animation:slideUp .2s ease;border:1px solid var(--border-color)}.vault-picker-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.vault-picker-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.vault-picker-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:4px 8px;border-radius:4px;transition:all .15s}.vault-picker-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.vault-picker-content{flex:1;overflow-y:auto;padding:8px;max-height:50vh}.vault-picker-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;cursor:pointer;transition:all .15s;border:1px solid transparent}.vault-picker-item:hover{background:var(--bg-tertiary);border-color:var(--border-color)}.vault-picker-icon{font-size:20px;flex-shrink:0}.vault-picker-info{flex:1;min-width:0}.vault-picker-name{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vault-picker-meta{font-size:12px;color:var(--text-muted);margin-top:2px;display:flex;align-items:center;gap:8px}.vault-picker-footer{padding:12px 16px;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.vault-picker-btn{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.vault-picker-cancel{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.vault-picker-cancel:hover{background:var(--bg-primary);color:var(--text-primary)}.vault-picker-search{position:relative;padding:0 16px 12px;border-bottom:1px solid var(--border-color)}.vault-picker-search-icon{position:absolute;left:28px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;margin-top:-6px}.vault-picker-search-input{width:100%;padding:10px 12px 10px 36px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s}.vault-picker-search-input:focus{border-color:var(--accent-cyan);box-shadow:0 0 0 3px #06b6d41a}.vault-picker-search-input::placeholder{color:var(--text-muted)}.vault-picker-empty{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:13px}.vault-empty{text-align:center;padding:32px 16px;color:var(--text-muted);font-size:13px}.vault-empty-icon{font-size:32px;margin-bottom:12px;opacity:.5}.vault-overlay{position:fixed;inset:0;background:#0000004d;z-index:8999;opacity:0;pointer-events:none;transition:opacity .25s ease}.vault-overlay.open{opacity:1;pointer-events:auto}.vault-toggle-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:8px;border-radius:6px;display:flex;align-items:center;gap:6px;font-size:13px;transition:all .15s;margin-left:12px}.vault-toggle-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.vault-current-map{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.change-password-modal{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000}.change-password-content{background:var(--bg-secondary);border-radius:12px;padding:24px;width:100%;max-width:400px;position:relative}.change-password-title{font-size:20px;font-weight:600;margin-bottom:20px;color:var(--text-primary)}.change-password-form{display:flex;flex-direction:column;gap:16px}.change-password-form label{font-size:13px;color:var(--text-muted);margin-bottom:4px;display:block}.change-password-form input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px}.change-password-form input:focus{outline:none;border-color:var(--accent-color)}.change-password-error{color:#ef4444;font-size:13px;padding:8px 12px;background:#ef44441a;border-radius:6px}.change-password-error.hidden{display:none}.change-password-success{color:#22c55e;font-size:13px;padding:8px 12px;background:#22c55e1a;border-radius:6px}.change-password-success.hidden{display:none}.change-password-buttons{display:flex;gap:12px;margin-top:8px}.change-password-buttons button{flex:1}.password-requirements{font-size:12px;color:var(--text-muted);margin-top:4px}.logout-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;background:transparent;border:1px solid var(--border-color);border-radius:5px;color:var(--text-muted);font-size:11px;cursor:pointer;transition:all .15s}.logout-btn:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.logout-btn svg{width:12px;height:12px}#save-indicator{font-size:10px;transition:color .3s}#save-indicator.saved{color:#10b981}#save-indicator.saving{color:#f59e0b;animation:pulse 1s infinite}#save-indicator.error{color:#ef4444}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}#presence-users{display:flex;align-items:center;gap:4px;margin-left:8px}#presence-users.hidden,#sync-paused.hidden{display:none}.presence-dot{width:8px;height:8px;border-radius:50%;background:var(--status-progress);border:1px solid var(--bg-secondary);cursor:help}.presence-dot:nth-child(1){background:#3b82f6}.presence-dot:nth-child(2){background:#10b981}.presence-dot:nth-child(3){background:#f59e0b}.presence-dot:nth-child(4){background:#ef4444}.presence-dot:nth-child(5){background:#8b5cf6}.theme-preview.nord{background:linear-gradient(135deg,#3b4252 50%,#2e3440 50%)}.theme-preview.sepia{background:linear-gradient(135deg,#faf8f4 50%,#f4f1ea 50%)}.export-selector{position:relative}.export-dropdown{position:absolute;top:100%;right:0;margin-top:8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);padding:6px;display:none;z-index:1000;min-width:140px}.export-dropdown.active{display:block}.export-option{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .15s;white-space:nowrap}.export-option:hover{background:var(--bg-tertiary);color:var(--text-primary)}.export-option.disabled{opacity:.4;cursor:not-allowed}.export-option.disabled:hover{background:transparent;color:var(--text-secondary)}.btn-primary{background:var(--accent-cyan);color:#fff}.btn-primary:hover{background:#009688;box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background:var(--border-color)}.main{flex:1;display:flex;overflow:hidden;position:relative}.sidebar{width:260px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;transition:width .2s ease,margin-left .2s ease;overflow:hidden}.sidebar.collapsed{width:0;margin-left:-1px;border-right:none}.sidebar-toggle{position:absolute;left:260px;top:50%;transform:translateY(-50%);width:20px;height:40px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-left:none;border-radius:0 6px 6px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:left .2s ease,background .15s ease,opacity .15s ease;z-index:100;opacity:0}.main:hover .sidebar-toggle,.sidebar-toggle:hover{opacity:1}.sidebar-toggle:hover{background:var(--border-color);color:var(--text-primary)}.sidebar.collapsed+.sidebar-toggle{left:0;opacity:1}.sidebar-toggle svg{transition:transform .2s ease}.sidebar.collapsed+.sidebar-toggle svg{transform:rotate(180deg)}.sidebar-title{padding:16px 20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid var(--border-color)}.tree{flex:1;overflow-y:auto;padding:12px}.tree-item{margin-bottom:2px}.sidebar-section{padding:12px 16px}.sidebar-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:10px}.sidebar-option{display:flex;align-items:center;gap:10px;padding:6px 0;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:color .15s ease}.sidebar-option:hover{color:var(--text-primary)}.sidebar-option input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-cyan)}.sidebar-toggle-btn{background:none;border:none;text-align:left;width:100%}.sidebar-toggle-btn .toggle-check{display:inline-block;width:16px;height:16px;border:2px solid var(--text-muted);border-radius:3px;position:relative;flex-shrink:0}.sidebar-toggle-btn[data-checked=true] .toggle-check{background:var(--accent-cyan);border-color:var(--accent-cyan)}.sidebar-toggle-btn[data-checked=true] .toggle-check:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.project-dates{padding:0;display:flex;flex-direction:column;gap:10px}.project-date-field{display:flex;align-items:center;gap:8px}.project-date-field label{font-size:11px;font-weight:500;color:var(--text-muted);width:36px;flex-shrink:0}.project-date-field input[type=date]{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.project-date-field input[type=date]:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 2px #00b4a01a}.sidebar-search{padding:8px 12px;border-bottom:1px solid var(--border-color)}.sidebar-search input{width:100%;padding:8px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-family:inherit}.sidebar-search input:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 2px #00b4a01a}.search-results{max-height:200px;overflow-y:auto;margin-top:6px}.search-results:empty{display:none}.search-result{padding:6px 8px;font-size:12px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:8px}.search-result:hover{background:var(--bg-tertiary)}.search-result-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.search-result-path{color:var(--text-muted);font-size:10px;margin-left:auto}.sidebar-footer{margin-top:auto;border-top:1px solid var(--border-color)}.btn-update-timeline{margin-top:10px;padding:7px 10px;width:100%;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s ease}.btn-update-timeline:hover{background:var(--bg-tertiary);border-color:var(--accent-cyan);color:var(--accent-cyan)}.btn-update-timeline svg{width:12px;height:12px;flex-shrink:0}.tree-node{padding:8px 12px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;transition:all .15s ease}.tree-node:hover{background:var(--bg-tertiary)}.tree-node.selected{background:#00b4a01f;outline:2px solid var(--accent-cyan)}.tree-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.tree-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.tree-count{font-size:11px;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 7px;border-radius:10px;font-weight:600}.tree-children{margin-left:16px;padding-left:12px;border-left:2px solid var(--border-color)}.canvas-wrap{flex:1;position:relative;overflow:hidden;background:var(--bg-primary)}.view{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .3s ease}.view.active{opacity:1;visibility:visible}.bubble-canvas{width:100%;height:100%;cursor:grab;background:radial-gradient(circle at 50% 50%,rgba(0,180,160,.03) 0%,transparent 50%),linear-gradient(90deg,var(--border-color) 1px,transparent 1px) 0 0 / 40px 40px,linear-gradient(var(--border-color) 1px,transparent 1px) 0 0 / 40px 40px}.bubble-canvas:active{cursor:grabbing}.bubble-world{position:absolute;transform-origin:0 0}.bubble-labels{position:absolute;transform-origin:0 0;pointer-events:none;-webkit-user-select:none;user-select:none}.bubble-labels .bubble-label-svg{pointer-events:auto}.bubble-drag{position:absolute;transform-origin:0 0}.bubble-world.smooth-transition{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bubble-world.panning,.mm-world.panning{transition:none}.bubble{position:absolute;left:0;top:0;border-radius:50%;cursor:grab;will-change:transform;-webkit-user-select:none;user-select:none;transition:box-shadow .1s ease-out,border-color .15s ease-out,filter .1s ease-out;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:4px solid;box-shadow:0 2px 10px #00000014}.bubble:hover{box-shadow:0 8px 25px #0003,0 4px 10px #00000026;z-index:10;cursor:grab}.bubble:has(.bubble:hover){box-shadow:0 2px 10px #00000014;z-index:auto}.bubble:active{cursor:grabbing}.bubble.dragging{opacity:.95;box-shadow:0 12px 35px #00000040,0 6px 15px #0003!important;z-index:10000!important;cursor:grabbing}.bubble.drop-target{border-color:var(--accent-cyan)!important;border-width:6px!important;box-shadow:0 0 0 8px #00b4a04d,0 0 0 16px #00b4a01a,0 4px 20px #0000001f!important;animation:dropTargetPulse 1s ease-in-out infinite alternate}@keyframes dropTargetPulse{0%{box-shadow:0 0 0 8px #00b4a04d,0 0 0 16px #00b4a01a,0 4px 20px #0000001f}to{box-shadow:0 0 0 12px #00b4a099,0 0 0 20px #00b4a040,0 8px 30px #0003}}.bubble.eject-hint{border-color:var(--accent-magenta)!important;border-width:4px!important;box-shadow:0 0 0 6px #e91e8c66,0 0 0 12px #e91e8c33,0 8px 30px #0003!important;animation:ejectHintPulse .8s ease-in-out infinite alternate}@keyframes ejectHintPulse{0%{box-shadow:0 0 0 6px #e91e8c66,0 0 0 12px #e91e8c33,0 8px 30px #0003}to{box-shadow:0 0 0 10px #e91e8c80,0 0 0 18px #e91e8c40,0 12px 40px #00000040}}.bubble-label-svg{overflow:visible;z-index:1000;position:relative}.bubble-label-text{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:700;font-size:24px;fill:var(--text-primary);letter-spacing:.5px}.bubble-label-centered{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:600;font-size:12px;color:var(--text-primary);text-align:center;cursor:text;word-break:break-word;padding:8px;line-height:1.3;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.bubble.leaf{background:var(--bubble-fill-color, var(--bg-primary));border-width:3px}.bubble.leaf:hover{filter:brightness(1.08)}.bubble.leaf .bubble-label-centered{color:var(--bubble-text-color, var(--text-primary));text-shadow:0 1px 2px rgba(0,0,0,.1)}.bubble-badge-container{display:flex;justify-content:center;align-items:center;gap:1.5em;margin-top:.3em;width:100%;opacity:0;transition:opacity .15s}.bubble-label-centered{display:flex;flex-direction:column;align-items:center;justify-content:center}.bubble.leaf:hover>.bubble-label-centered>.bubble-badge-container{opacity:1}.bubble:has(.bubble:hover)>.bubble-label-centered>.bubble-badge-container{opacity:0;pointer-events:none}.bubble.leaf.shared>.bubble-label-centered>.bubble-badge-container,.bubble.leaf.collapsed>.bubble-label-centered>.bubble-badge-container{opacity:1}.bubble.leaf.shared:has(.bubble:hover)>.bubble-label-centered>.bubble-badge-container,.bubble.leaf.collapsed:has(.bubble:hover)>.bubble-label-centered>.bubble-badge-container{opacity:0;pointer-events:none}.bubble-badge-container.nonleaf{position:absolute;top:4px;left:50%;transform:translate(-50%);display:flex;justify-content:center;align-items:center;gap:.5em;opacity:0;transition:opacity .15s;z-index:10;pointer-events:auto}.bubble:hover>.bubble-badge-container.nonleaf{opacity:1}.bubble:has(.bubble:hover)>.bubble-badge-container.nonleaf{opacity:0;pointer-events:none}.bubble.shared>.bubble-badge-container.nonleaf,.bubble.collapsed>.bubble-badge-container.nonleaf{opacity:1}.bubble.shared:has(.bubble:hover)>.bubble-badge-container.nonleaf,.bubble.collapsed:has(.bubble:hover)>.bubble-badge-container.nonleaf{opacity:0;pointer-events:none}.bubble-inline-badge{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em;font-size:1em;border-radius:50%;cursor:pointer;transition:transform .15s}.bubble-inline-badge.toggle{background:var(--bg-secondary);border:1px solid var(--border-color)}.bubble-inline-badge:hover{transform:scale(1.15)}.bubble-label-text{cursor:text}.bubble .bubble{border-width:2px;background:var(--bg-primary);box-shadow:0 2px 10px #0000001a;transition:box-shadow .1s ease-out,filter .1s ease-out}.bubble .bubble.leaf{background:var(--bubble-fill-color, var(--bg-primary))}.bubble .bubble:hover{box-shadow:0 8px 25px #0003,0 4px 10px #00000026}.bubble .bubble.leaf:hover{background:var(--bubble-fill-color, var(--bg-primary));filter:brightness(1.08)}.bubble .bubble:has(.bubble:hover){box-shadow:0 2px 10px #0000001a}.bubble .bubble .bubble-label-text,.bubble-leaf-label{font-size:14px;font-weight:700}.b-crumb{color:var(--text-secondary);cursor:pointer;padding:4px 6px;border-radius:4px;font-size:13px;transition:all .15s ease}.b-crumb:hover{background:#00b4a01a;color:var(--text-primary)}.b-crumb.current{color:var(--text-primary);font-weight:600;cursor:default}.b-crumb.current:hover{background:none}.b-crumb-sep{color:var(--text-muted);padding:0 4px;font-size:12px}.bubble[data-status=done],.mm-node[data-status=done],.tree-node[data-status=done],.table-row[data-status=done],.kanban-card[data-status=done]{opacity:.5}.bubble[data-status=done] .bubble-label-text,.mm-node[data-status=done] .mm-title,.tree-node[data-status=done] .tree-name,.table-row[data-status=done] .task-name,.kanban-card[data-status=done] .kanban-card-title{text-decoration:line-through}.controls{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;gap:4px;z-index:50}.ctrl-btn{width:40px;height:40px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-size:18px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;box-shadow:var(--shadow-sm)}.ctrl-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-cyan)}.zoom-lvl{text-align:center;font-size:11px;font-weight:600;color:var(--text-secondary);padding:4px;background:var(--bg-secondary);border-radius:6px}.breadcrumb{position:absolute;top:16px;left:16px;display:flex;align-items:center;gap:8px;z-index:50;background:var(--bg-secondary);padding:10px 16px;border-radius:12px;border:1px solid var(--border-color);font-size:13px;box-shadow:var(--shadow-md)}.view-indicator{padding:4px 10px;background:var(--accent-cyan);color:#fff;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-right:4px}.crumb{color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:500;transition:color .15s ease}.crumb:hover{color:var(--accent-cyan)}.crumb.current{color:var(--text-primary);font-weight:700;cursor:default}.crumb-dot{width:8px;height:8px;border-radius:50%}.crumb-sep{color:var(--text-muted)}.hint{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--bg-secondary);border:1px solid var(--border-color);padding:12px 24px;border-radius:12px;font-size:13px;font-weight:500;color:var(--text-secondary);z-index:200;opacity:0;transition:opacity .3s ease;pointer-events:none;box-shadow:var(--shadow-lg)}.hint.visible{opacity:1}.shortcut-help{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:transparent;padding:6px 12px;border-radius:6px;font-size:11px;color:var(--text-muted);z-index:50;opacity:.4;transition:all .2s ease}.shortcut-help:hover,.shortcut-help.dragging{opacity:1;background:var(--bg-secondary);box-shadow:0 2px 8px #0000001a;color:var(--text-primary)}.shortcut-help kbd{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:3px;padding:1px 5px;font-family:inherit;font-size:10px;font-weight:600;color:var(--text-secondary);opacity:.8}.mm-canvas{position:relative;width:100%;height:100%;overflow:hidden;cursor:grab;background:radial-gradient(circle at 50% 50%,rgba(0,180,160,.03) 0%,transparent 50%),linear-gradient(90deg,var(--border-color) 1px,transparent 1px) 0 0 / 40px 40px,linear-gradient(var(--border-color) 1px,transparent 1px) 0 0 / 40px 40px}.mm-canvas:active{cursor:grabbing}.mm-world{position:absolute;transform-origin:0 0;transition:transform .12s ease-out}.mm-svg{position:absolute;overflow:visible;pointer-events:none}.mm-path{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.8;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));transition:all .2s ease}.mm-path:hover{stroke-width:4;opacity:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.mm-path.root-connection{stroke-width:4;opacity:.9}.mm-node{position:absolute;border-radius:25px;padding:10px 22px;cursor:pointer;border:2.5px solid rgba(255,255,255,.9);box-shadow:0 4px 12px #0000001f,0 2px 4px #00000014;transition:transform .15s ease,box-shadow .15s ease,border-width .15s ease;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mm-node:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 8px 24px #0000002e,0 4px 8px #0000001f;border-width:3px;z-index:10}.mm-node.dragging{opacity:.95;transform:scale(1.1) rotate(2deg);box-shadow:0 16px 48px #00000040;z-index:10000}.mm-node.drop-target{border-color:var(--accent-cyan);border-width:4px;box-shadow:0 0 0 6px #00b4a040,var(--shadow-lg)}.mm-node.reorder-above:before,.mm-node.reorder-below:after{content:"";position:absolute;left:-10px;right:-10px;height:4px;background:var(--accent-cyan);border-radius:2px;box-shadow:0 0 8px #00b4a080}.mm-node.reorder-above:before{top:-12px}.mm-node.reorder-below:after{bottom:-12px}.mm-title{font-weight:600;font-size:13px;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4),0 2px 6px rgba(0,0,0,.2);max-width:220px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.4;text-align:center;word-wrap:break-word}.mm-toggle{position:absolute;top:-12px;right:-12px;width:27px;height:27px;font-size:16px;background:#ffffffe6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;cursor:pointer;z-index:10;transition:background .2s ease}.mm-toggle:hover{background:#fff}.mm-node.mm-left .mm-toggle{right:auto;left:-12px}.mm-node.root{padding:14px 30px;border-width:3.5px;box-shadow:0 6px 20px #0000002e,0 3px 8px #0000001f}.mm-node.root:hover{box-shadow:0 10px 32px #0000003d,0 5px 12px #00000029}.mm-node.root .mm-title{font-size:16px;font-weight:700;max-width:280px;-webkit-line-clamp:2}.mm-node.leaf{padding:8px 18px;border-width:2px;opacity:.96}.mm-node.leaf .mm-title{font-weight:500;font-size:12px;max-width:200px}.mm-shared-badge{position:absolute;top:-8px;right:-8px;font-size:12px;z-index:10;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.kanban-shared-badge{margin-right:4px;font-size:11px}.table-shared-badge{margin-right:6px;font-size:12px}.gantt-shared-badge{margin-right:4px;font-size:11px}.bubble-shared-badge{position:absolute;top:4px;right:4px;font-size:14px;z-index:10;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}#gantt-view{display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden;min-height:0}.gantt-scale-container{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);gap:16px}.gantt-scale-container .breadcrumb{position:static;margin:0;flex-shrink:0;padding:8px 14px;box-shadow:none;border:1px solid var(--border-color)}.gantt-zoom-hint{font-size:10px;color:var(--text-muted);padding:4px 10px;opacity:.7}.gantt-controls{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px}.gantt-add-btn{padding:4px 12px;font-size:11px;background:var(--accent-cyan);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;white-space:nowrap}.gantt-add-btn:hover{background:var(--accent-cyan-hover)}.gantt-duration{font-size:11px;color:var(--text-muted);padding:4px 10px;background:var(--bg-tertiary);border-radius:4px}.gantt-level-select{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted)}.gantt-level-select select{padding:4px 8px;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);border-radius:4px;font-size:11px;font-family:inherit;cursor:pointer}.gantt-level-select select:focus{outline:none;border-color:var(--accent-cyan)}.gantt-container{flex:1;display:flex;overflow:hidden;min-height:0}.gantt-labels{width:280px;min-width:280px;display:flex;flex-direction:column;border-right:1px solid var(--border-color);background:var(--bg-secondary);z-index:10;min-height:0}.gantt-labels-head{height:45px;padding:0 20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);flex-shrink:0;display:flex;align-items:center;box-sizing:border-box}.gantt-labels-body{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.gantt-labels-body::-webkit-scrollbar{width:6px}.gantt-labels-body::-webkit-scrollbar-track{background:var(--bg-tertiary)}.gantt-labels-body::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.gantt-label-row{padding:0 20px;border-bottom:1px solid var(--border-color);font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:10px;height:45px;min-height:45px;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background .15s ease}.gantt-label-row:hover{background:#00b4a014}.gantt-label-row.selected{background:#00b4a026;border-left:3px solid var(--accent-cyan)}.gantt-label-row.group{font-weight:700;color:var(--text-primary);background:var(--bg-tertiary)}.gantt-label-row.dragging{opacity:.5;background:var(--bg-tertiary)}.gantt-label-row.drag-over{border-top:2px solid var(--accent-cyan)}.gantt-label-row.drag-over-child{background:#00b4a026}.gantt-drag-handle{cursor:grab;color:var(--text-muted);opacity:.3;font-size:11px;letter-spacing:-2px;-webkit-user-select:none;user-select:none;transition:opacity .15s;margin-right:-4px}.gantt-label-row:hover .gantt-drag-handle{opacity:1}.gantt-drag-handle:active{cursor:grabbing}.gantt-label-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.gantt-label-row.done{opacity:.7}.gantt-label-row.done .gantt-label-name{text-decoration:line-through;color:var(--text-muted)}.gantt-timeline-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.gantt-timeline-header{display:flex;flex-direction:column;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);overflow-x:auto;flex-shrink:0;box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none}.gantt-timeline-header::-webkit-scrollbar{display:none}.gantt-timeline-body{flex:1;overflow:auto;min-height:0}.gantt-timeline-body::-webkit-scrollbar{width:8px;height:8px}.gantt-timeline-body::-webkit-scrollbar-track{background:var(--bg-tertiary)}.gantt-timeline-body::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.gantt-timeline-body::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.gantt-days{min-width:max-content;position:relative;padding:0;margin:0}.gantt-timeline-scroll{min-width:max-content;position:relative}.gantt-weekend-overlay{position:absolute;top:0;bottom:0;background:#00000008;pointer-events:none;z-index:1}.gantt-timeline-row{display:flex;height:24px;border-bottom:none;background:var(--bg-tertiary);flex-shrink:0;position:relative}.gantt-timeline-row.hidden{display:none}.gantt-timeline-cell{padding:0;text-align:center;font-size:10px;font-weight:600;color:var(--text-secondary);border-right:none;box-sizing:border-box;flex-shrink:0;display:flex;align-items:center;justify-content:center;position:relative;overflow:visible}.gantt-timeline-cell .sticky-label{position:sticky;left:10px;background:inherit;padding:0 6px;z-index:2;white-space:nowrap}.gantt-timeline-cell:has(.sticky-label){justify-content:flex-start}.gantt-timeline-row.years .gantt-timeline-cell .sticky-label{background:#00b4a014}.gantt-timeline-row.quarters .gantt-timeline-cell .sticky-label{background:#00b4a00f}.gantt-timeline-row.months .gantt-timeline-cell .sticky-label{background:#00b4a00d}.gantt-timeline-row.weeks .gantt-timeline-cell .sticky-label,.gantt-timeline-row.days .gantt-timeline-cell .sticky-label{background:var(--bg-tertiary)}.gantt-timeline-row.years .gantt-timeline-cell{background:#00b4a014;color:var(--accent-cyan);font-weight:700;border-right:none}.gantt-timeline-row.quarters .gantt-timeline-cell{background:#00b4a00f;color:var(--accent-cyan);font-weight:600;border-right:none}.gantt-timeline-row.months .gantt-timeline-cell{background:#00b4a00d;color:var(--text-primary);font-weight:600;border-right:none}.gantt-timeline-row.weeks .gantt-timeline-cell{color:var(--text-secondary)}.gantt-timeline-row.days .gantt-timeline-cell{font-weight:600}.gantt-timeline-row.days .gantt-timeline-cell.weekend{background:#00000008;color:var(--text-muted);opacity:.5}.gantt-timeline-row.days .gantt-timeline-cell.today{background:#00b4a01a;color:var(--accent-cyan)}.gantt-row{position:relative;height:45px;min-height:45px;border-bottom:1px solid var(--border-color);box-sizing:border-box;z-index:2}.gantt-grid-line{position:absolute;top:0;bottom:0;width:1px;background:var(--border-color);pointer-events:none;z-index:1}.gantt-grid-line.month-boundary{width:1px;background:var(--text-muted);opacity:.5}.gantt-bar{position:absolute;top:50%;transform:translateY(-50%);height:24px;border-radius:12px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .15s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;z-index:3;padding:0 8px;z-index:2}.gantt-bar:hover{transform:translateY(-50%) scaleY(1.2);z-index:3}.gantt-bar.group-bar{position:relative}.gantt-bar.group-bar:before{content:"";position:absolute;inset:0;background:#ffffff59;border-radius:inherit;pointer-events:none}.gantt-bar.not-editable{cursor:default;position:relative}.gantt-bar.not-editable:before{content:"";position:absolute;inset:0;background:#ffffff80;border-radius:inherit;pointer-events:none}.gantt-bar.not-editable:hover{transform:translateY(-50%)}.gantt-bar.editable{cursor:grab}.gantt-bar.dragging{opacity:.8;cursor:grabbing;transform:translateY(-50%) scaleY(1.1)}.gantt-bar-label{flex:1;overflow:hidden;text-overflow:ellipsis;text-align:center}.gantt-resize-handle{position:absolute;top:0;bottom:0;width:8px;background:#ffffff80;cursor:ew-resize;opacity:0;transition:opacity .15s}.gantt-bar:hover .gantt-resize-handle{opacity:1}.gantt-resize-left{left:0;border-radius:12px 0 0 12px}.gantt-resize-right{right:0;border-radius:0 12px 12px 0}.gantt-bar.group-bar .gantt-resize-handle{background:#ffffffb3}.gantt-bar[data-status=done]{background:#9ca3af!important;opacity:.65}.gantt-bar[data-status=done] .gantt-bar-label{text-decoration:line-through;opacity:.9}.gantt-row[data-status=done]{background:#9ca3af14}#table-view{display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden}.table-container{flex:1;overflow:auto;padding:20px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;padding:12px 16px;background:var(--bg-tertiary);border-bottom:2px solid var(--border-color);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);position:sticky;top:0;z-index:10}.data-table td{padding:10px 16px;border-bottom:1px solid var(--border-color);vertical-align:middle}.data-table tbody tr:hover{background:var(--bg-tertiary)}.data-table .col-name{min-width:200px}.data-table .col-start,.data-table .col-end{width:130px}.data-table .col-duration{width:80px;text-align:center}.data-table .col-notes{min-width:150px;max-width:300px}.data-table .col-actions{width:50px;text-align:center}.table-notes{font-size:12px;color:var(--text-secondary);cursor:pointer;display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-notes:hover{color:var(--text-primary)}.notes-placeholder{color:var(--text-muted)}.table-row-group td{background:#00b4a00d;font-weight:600}.table-row-group td:first-child{position:relative}.table-name-cell{display:flex;align-items:center;gap:10px}.table-drag-handle{cursor:grab;color:var(--text-muted);opacity:.4;font-size:12px;letter-spacing:-2px;-webkit-user-select:none;user-select:none;transition:opacity .15s}.data-table tr:hover .table-drag-handle{opacity:1}.table-drag-handle:active{cursor:grabbing}.data-table tr.dragging{opacity:.5;background:var(--bg-tertiary)}.data-table tr.drag-over{border-top:2px solid var(--accent-cyan)}.data-table tr.drag-over-child{background:#00b4a01a}.table-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.table-name{flex:1;cursor:text}.table-indent{display:inline-block}.table-date-input{width:130px;padding:6px 10px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:13px;font-family:inherit}.table-date-input:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 3px #00b4a01a}.table-date-input:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.table-date-input[readonly],.table-date-readonly{background:var(--bg-secondary);color:var(--text-secondary);cursor:default;font-style:italic;opacity:.8}.table-date-input[readonly]:focus{border-color:var(--border-color);box-shadow:none}.table-duration{font-size:12px;color:var(--text-muted);font-weight:500}.table-delete-btn{width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:6px;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.table-delete-btn:hover{background:#ef44441a;color:#ef4444}.table-add-row{margin-top:12px}.table-add-btn{padding:8px 16px;background:var(--bg-tertiary);border:1px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s ease}.table-add-btn:hover{background:var(--border-color);border-style:solid;color:var(--text-primary)}#kanban-view{display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden;position:relative;height:100%}.kanban-board{flex:1;display:flex;gap:16px;padding:70px 16px 16px;overflow-x:auto;height:100%;box-sizing:border-box}.kanban-column{flex:1;min-width:280px;background:var(--bg-tertiary);border-radius:12px;display:flex;flex-direction:column;height:100%;overflow:hidden}.kanban-column-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border-color)}.kanban-column-title{font-weight:600;font-size:14px;color:var(--text-primary)}.kanban-column-count{background:var(--bg-secondary);color:var(--text-muted);font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px}.kanban-cards{flex:1;padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;-webkit-user-select:none;user-select:none}.kanban-cards.drag-over{background:#00b4a026;outline:2px dashed var(--accent-cyan)}.kanban-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:12px;cursor:grab;transition:all .15s ease;border-left:3px solid;-webkit-user-select:none;user-select:none}.kanban-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.kanban-card.dragging{opacity:.3;cursor:grabbing}.kanban-ghost{background:var(--bg-primary);border:1px solid var(--accent-cyan);border-radius:8px;cursor:grabbing}.kanban-card-title{font-weight:500;font-size:13px;color:var(--text-primary);margin-bottom:6px}.kanban-card-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted)}.kanban-card-dates{display:flex;align-items:center;gap:4px}.kanban-card-parent{opacity:.7}.kanban-empty{text-align:center;padding:24px;color:var(--text-muted);font-size:13px}#dashboard-view{display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden;padding:16px;height:100%}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:16px;max-width:100%;margin:0;width:100%;height:100%;overflow:hidden}@media(max-width:1200px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.dashboard-grid{grid-template-columns:1fr}}.dash-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;padding:16px;min-height:0;display:flex;flex-direction:column;overflow:hidden}.dash-card-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.dash-overview-content{display:flex;gap:16px;align-items:center}.dash-chart-section{flex:0 0 auto}.dash-chart-section .dash-pie{width:90px;height:90px}.dash-chart-section .dash-pie-center{width:45px;height:45px}.dash-stats-section{flex:1;display:flex;flex-direction:column;gap:6px}.dash-stat-row{display:flex;justify-content:space-between;align-items:center;padding:5px 8px;border-radius:6px;background:var(--bg-secondary)}.dash-stat-row .dash-stat-label{font-size:12px;color:var(--text-secondary)}.dash-stat-row .dash-stat-value{font-size:15px;font-weight:600;color:var(--text-primary)}.dash-stat-row.done{border-left:3px solid #22c55e}.dash-stat-row.in-progress{border-left:3px solid #3b82f6}.dash-stat-row.todo{border-left:3px solid #94a3b8}.dash-stats-section .dash-completion,.dash-completion{margin-top:8px}.dash-completion-bar{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.dash-completion-fill{height:100%;background:linear-gradient(90deg,var(--accent-cyan),#00d4aa);border-radius:4px;transition:width .5s ease}.dash-completion-text{font-size:12px;color:var(--text-muted);margin-top:8px;text-align:center}.dash-upcoming-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.dash-upcoming-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-secondary);border-radius:6px;border-left:3px solid}.dash-upcoming-date{font-size:10px;color:var(--text-muted);min-width:65px}.dash-upcoming-date.overdue{color:#ef4444;font-weight:600}.dash-upcoming-date.today{color:var(--accent-cyan);font-weight:600}.dash-upcoming-name{flex:1;font-size:13px;color:var(--text-primary)}.dash-upcoming-status{font-size:10px;padding:2px 8px;border-radius:10px;background:var(--bg-tertiary);color:var(--text-muted)}.dash-upcoming-status.done{background:#22c55e1a;color:#22c55e}.dash-upcoming-status.in-progress{background:#3b82f61a;color:#3b82f6}.dash-wp-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;flex:1}.dash-wp-item{display:flex;flex-direction:column;gap:5px}.dash-wp-header{display:flex;justify-content:space-between;align-items:center}.dash-wp-name{font-size:12px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:7px}.dash-wp-dot{width:7px;height:7px;border-radius:50%}.dash-wp-percent{font-size:11px;color:var(--text-muted)}.dash-wp-bar{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.dash-wp-fill{height:100%;border-radius:3px;transition:width .4s ease}.dash-inprogress-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.dash-inprogress-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg-secondary);border-radius:6px;border-left:3px solid;cursor:pointer;transition:background .15s ease}.dash-inprogress-item:hover{background:var(--bg-tertiary)}.dash-inprogress-name{flex:1;font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-inprogress-date{font-size:11px;color:var(--text-muted)}.dash-status-dist{display:flex;flex-direction:column;gap:12px;padding:8px 0}.dash-status-row{display:flex;align-items:center;gap:12px}.dash-status-label{font-size:12px;color:var(--text-secondary);min-width:80px}.dash-status-bar-container{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.dash-status-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}.dash-status-bar-fill.done{background:#22c55e}.dash-status-bar-fill.in-progress{background:#3b82f6}.dash-status-bar-fill.todo{background:#64748b}.dash-status-count{font-size:12px;font-weight:600;color:var(--text-primary);min-width:30px;text-align:right}.dash-chart{display:flex;align-items:center;justify-content:center;gap:30px;padding:20px}.dash-pie{width:120px;height:120px;border-radius:50%;position:relative}.dash-pie-empty{background:var(--bg-tertiary)}.dash-pie-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;background:var(--bg-primary);border-radius:50%}.dash-legend{display:flex;flex-direction:column;gap:10px}.dash-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.dash-legend-color{width:12px;height:12px;border-radius:3px}.dash-empty{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.dashboard-container{display:grid;grid-template-columns:1fr 420px;gap:16px;height:100%;max-width:100%;margin:0;width:100%}@media(max-width:1400px){.dashboard-container{grid-template-columns:1fr 380px}}@media(max-width:1200px){.dashboard-container{grid-template-columns:1fr}.notes-panel{max-height:500px}}.notes-overlay{position:absolute;top:74px;right:10px;bottom:10px;width:420px;min-width:300px;max-width:80vw;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-md);transform:translate(calc(100% + 32px));transition:transform .3s ease;z-index:500;display:flex;flex-direction:column;overflow:hidden}.notes-overlay.resizing{transition:none}.notes-resize-handle{position:absolute;left:0;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:10;background:transparent}.notes-resize-handle:hover,.notes-resize-handle.active{background:var(--accent-cyan);opacity:.5}.notes-overlay.active{transform:translate(0)}.notes-overlay.focused{border-color:var(--accent-cyan);box-shadow:var(--shadow-md),0 0 0 1px var(--accent-cyan)}.notes-overlay .notes-panel{flex:1;border:none;border-radius:0;height:100%}.notes-overlay .notes-header{position:relative}.notes-overlay .notes-close-btn{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.notes-overlay .notes-close-btn:hover{color:var(--text-primary)}#notes-view{display:flex;background:var(--bg-secondary)}.notes-full-container{display:flex;width:100%;height:100%}.notes-full-sidebar{width:320px;min-width:320px;background:var(--bg-primary);border-right:3px solid var(--border-color);box-shadow:4px 0 6px -1px #0000001a;display:flex;flex-direction:column}.notes-full-header{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.notes-full-header h2{margin:0;font-size:13px;font-weight:600;color:var(--text-primary);flex:1}.notes-full-list{flex:1;overflow-y:auto;padding:0}.notes-full-editor{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);margin:16px;border-radius:12px;border:1px solid var(--border-color);overflow:hidden}.notes-full-body{flex:1;min-height:0}.notes-full-body .notes-textarea,.notes-full-body .notes-preview{height:100%}.notes-panel{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.notes-header{display:flex;align-items:center;gap:12px;padding:10px 56px 10px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.notes-title{font-size:13px;font-weight:600;color:var(--text-primary);flex:1}.notes-btn{padding:8px 14px;background:var(--accent-cyan);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s}.notes-btn:hover{opacity:.9;transform:translateY(-1px)}.notes-btn-icon{padding:8px 12px;font-size:16px;display:flex;align-items:center;justify-content:center;min-width:40px}.notes-btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.notes-btn-secondary:hover{background:var(--bg-secondary);border-color:var(--accent-cyan)}.notes-btn-danger{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.notes-btn-danger:hover{background:#ef4444;color:#fff}.notes-delete-modal{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.notes-delete-modal.active{display:flex}.notes-delete-modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px;max-width:400px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.notes-delete-modal-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.notes-delete-modal-message{font-size:14px;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.notes-delete-modal-actions{display:flex;gap:12px;justify-content:flex-end}.notes-delete-modal-btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.notes-delete-modal-btn-cancel{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.notes-delete-modal-btn-cancel:hover{background:var(--bg-primary)}.notes-delete-modal-btn-confirm{background:#ef4444;color:#fff}.notes-delete-modal-btn-confirm:hover{background:#dc2626}.notes-list{flex:0 0 auto;max-height:200px;overflow-y:auto;background:var(--bg-primary);border-bottom:3px solid var(--border-color);box-shadow:0 4px 6px -1px #0000001a}.notes-list-item{display:flex;align-items:center;gap:12px;padding:12px 20px;cursor:pointer;border-bottom:1px solid var(--border-color);transition:background .15s;position:relative}.notes-list-item:last-child{border-bottom:none}.notes-list-item:hover{background:var(--bg-tertiary)}.notes-list-item.active{background:var(--bg-tertiary);border-left:3px solid var(--accent-cyan)}.notes-list-icon{margin-right:10px;opacity:.6}.notes-list-info{flex:1;min-width:0}.notes-list-delete{opacity:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:4px;font-size:18px;line-height:1;transition:all .15s ease;flex-shrink:0}.notes-list-item:hover .notes-list-delete{opacity:1}.notes-list-delete:hover{background:#ef44441a;color:#ef4444}.notes-list-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notes-list-date{font-size:10px;color:var(--text-muted);margin-top:2px}.notes-list-empty{padding:24px 20px;text-align:center;color:var(--text-muted);font-size:13px}.notes-editor{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg-secondary)}.notes-editor-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.notes-title-input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-weight:500}.notes-title-input:focus{border-color:var(--accent-cyan);outline:none}.notes-metadata{padding:8px 16px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);font-size:11px;color:var(--text-muted);min-height:32px}.notes-metadata:empty{display:none}.notes-meta-date{display:flex;align-items:center;gap:4px}.notes-meta-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.notes-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;font-size:11px;color:var(--text-primary);transition:all .15s ease}.notes-tag:hover{background:var(--bg-tertiary);border-color:var(--accent-cyan)}.notes-tag-text{cursor:pointer}.notes-tag-text:hover{color:var(--accent-cyan)}.notes-tag-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;transition:all .15s ease}.notes-tag-remove:hover{background:#ef44441a;color:#ef4444;border-color:var(--accent-cyan)}.notes-tag:before{content:"🏷";font-size:10px}.notes-editor-actions{display:flex;gap:8px}.notes-editor-body{flex:1;display:flex;flex-direction:column;position:relative;min-height:0}.notes-textarea{flex:1;width:100%;padding:20px;border:none;background:var(--bg-primary);color:var(--text-primary);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;line-height:1.6;resize:none;box-sizing:border-box}.notes-textarea:focus{outline:none}.notes-textarea::placeholder{color:var(--text-muted)}.notes-preview{display:none;flex:1;padding:20px;overflow-y:auto;background:var(--bg-primary);color:var(--text-primary);font-size:13px;line-height:1.6}.notes-preview.active{display:block}.notes-preview h1{font-size:24px;margin:0 0 16px;border-bottom:1px solid var(--border-color);padding-bottom:8px}.notes-preview h2{font-size:20px;margin:20px 0 12px}.notes-preview h3{font-size:16px;margin:16px 0 8px}.notes-preview p{margin:0 0 12px}.notes-preview ul,.notes-preview ol{margin:0 0 12px;padding-left:24px}.notes-preview li{margin:4px 0}.notes-preview code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-family:monospace;font-size:12px}.notes-preview pre{background:var(--bg-tertiary);padding:12px;border-radius:8px;overflow-x:auto;margin:0 0 12px}.notes-preview pre code{background:none;padding:0}.notes-preview blockquote{border-left:3px solid var(--accent-cyan);padding-left:12px;margin:0 0 12px;color:var(--text-muted)}.notes-preview a{color:var(--accent-cyan)}.notes-preview hr{border:none;border-top:1px solid var(--border-color);margin:16px 0}.notes-preview input[type=checkbox]{margin-right:8px}.notes-editor-footer{padding:10px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.notes-status{font-size:11px;color:var(--text-muted)}.modal-bg{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s ease}.modal-bg.active{opacity:1;visibility:visible}.modal{background:var(--bg-secondary);border-radius:16px;padding:28px;width:100%;max-width:400px;transform:translateY(20px) scale(.95);transition:transform .3s ease;box-shadow:var(--shadow-lg)}.modal-bg.active .modal{transform:translateY(0) scale(1)}.modal-title{font-weight:700;font-size:18px;margin-bottom:20px;color:var(--text-primary)}.field{margin-bottom:16px}.field-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:6px}.field-input{width:100%;padding:10px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:14px;transition:border-color .15s ease}.field-input:focus{outline:none;border-color:var(--accent-cyan)}.field-textarea{min-height:80px;resize:vertical;font-family:inherit;line-height:1.5}.status-badges{display:flex;gap:8px}.status-badge{flex:1;padding:10px 14px;border:2px solid transparent;border-radius:8px;background:var(--bg-tertiary);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;font-family:inherit}.status-badge:hover{background:var(--bg-primary);border-color:var(--border-color)}.status-badge.active{font-weight:600;border-width:2px}.status-badge[data-status=todo].active{background:#4a90e21f;color:var(--status-todo);border-color:var(--status-todo)}.status-badge[data-status=in-progress].active{background:#ffb1421f;color:var(--status-progress);border-color:var(--status-progress)}.status-badge[data-status=done].active{background:#4ecb711f;color:var(--status-done);border-color:var(--status-done)}.field-row{display:flex;gap:12px}.field-row .field{flex:1}.field-input[type=date]{position:relative;z-index:101}.field-input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}.field-input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.colors{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.color-opt{width:28px;height:28px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all .15s ease;box-shadow:var(--shadow-sm)}.color-opt:hover{transform:scale(1.15)}.color-opt.selected{border-color:var(--text-primary);transform:scale(1.15)}.modal-btns{display:flex;gap:10px;margin-top:24px}.modal-btns .btn{flex:1;padding:12px}.ctx{position:fixed;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:6px 0;min-width:160px;z-index:2000;display:none;box-shadow:var(--shadow-lg)}.ctx.active{display:block}.ctx-item{padding:10px 16px;font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:10px;color:var(--text-primary);transition:background .1s ease}.ctx-item:hover{background:var(--bg-tertiary)}.ctx-item.danger{color:var(--accent-magenta)}.ctx-sep{height:1px;background:var(--border-color);margin:6px 0}.color-picker{position:fixed;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:16px;min-width:240px;z-index:2001;display:none;box-shadow:var(--shadow-lg);cursor:default}.color-picker-header{display:flex;justify-content:space-between;align-items:center;cursor:move;margin:-16px -16px 12px;padding:12px 16px;border-bottom:1px solid var(--border-color);border-radius:12px 12px 0 0;background:var(--bg-tertiary)}.color-picker-close{width:24px;height:24px;border:none;background:none;cursor:pointer;font-size:18px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;border-radius:4px}.color-picker-close:hover{background:var(--bg-primary);color:var(--text-primary)}.color-picker.active{display:block}.shortcuts-modal{position:fixed;inset:0;background:#00000080;display:none;align-items:center;justify-content:center;z-index:3000}.shortcuts-modal.active{display:flex}.shortcuts-content{background:var(--bg-secondary);border-radius:16px;padding:24px;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.shortcuts-title{font-size:18px;font-weight:700;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.shortcuts-section{margin-bottom:16px}.shortcuts-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px}.shortcut-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border-color)}.shortcut-row:last-child{border-bottom:none}.shortcut-keys{display:flex;gap:4px}.shortcut-key{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;padding:2px 8px;font-size:12px;font-family:monospace;color:var(--text-primary)}.shortcut-desc{color:var(--text-secondary);font-size:13px}.color-picker-title{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.color-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.color-swatch{width:32px;height:32px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .15s,border-color .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:var(--text-primary)}.color-theme-selector{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.color-theme-btn{padding:4px 10px;font-size:11px;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:all .15s}.color-theme-btn:hover{border-color:var(--accent-cyan);color:var(--text-primary)}.color-theme-btn.active{background:var(--accent-cyan);border-color:var(--accent-cyan);color:#fff}.apply-theme-btn{width:100%;margin-bottom:12px;padding:6px 10px;font-size:11px;background:var(--bg-tertiary);color:var(--text-secondary)}.apply-theme-btn:hover{background:var(--accent-cyan);color:#fff}.color-custom{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border-color);margin-bottom:12px}.color-custom label{font-size:12px;color:var(--text-secondary)}.color-custom input[type=color]{width:60px;height:30px;border:none;border-radius:6px;cursor:pointer;background:none}.color-custom input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-custom input[type=color]::-webkit-color-swatch{border-radius:4px;border:1px solid var(--border-color)}.color-actions{display:flex;gap:8px}.color-btn{flex:1;padding:8px 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;background:var(--accent-cyan);color:#fff;transition:opacity .15s}.color-btn:hover{opacity:.9}.color-btn.secondary{background:var(--bg-tertiary);color:var(--text-primary)}.color-children-option{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);margin-bottom:12px;cursor:pointer}.color-children-option input{accent-color:var(--accent-cyan)}.empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--text-muted)}.empty-title{font-weight:700;font-size:16px;color:var(--text-secondary);margin-bottom:8px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.inline-edit-input{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-secondary);color:var(--text-primary)}.tree-name,.mm-title,.gantt-label-name,.bubble-label-text{cursor:text}.gantt-label-name{flex:1;overflow:hidden;text-overflow:ellipsis}.nc-modal-bg{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .2s ease;overflow-y:auto;padding:20px}.nc-modal-bg.active{opacity:1;visibility:visible}.nc-modal{background:var(--bg-secondary);border-radius:16px;padding:24px;width:100%;max-width:600px;box-shadow:var(--shadow-lg);transform:translateY(20px);transition:transform .2s ease;max-height:90vh;overflow-y:auto;margin:auto}.nc-modal-bg.active .nc-modal{transform:translateY(0)}.nc-modal-title{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.nc-modal-subtitle{font-size:13px;color:var(--text-muted);margin-bottom:20px}.nc-calendars-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.nc-calendar-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;padding:16px;position:relative}.nc-calendar-item.has-error{border-color:#ef444480}.nc-calendar-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.nc-calendar-color{width:32px;height:32px;border-radius:8px;border:none;cursor:pointer;padding:0}.nc-calendar-name-input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-weight:600;font-family:inherit}.nc-calendar-name-input:focus{outline:none;border-color:var(--accent-cyan)}.nc-calendar-delete{padding:6px;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:6px;transition:all .15s ease}.nc-calendar-delete:hover{background:#ef44441a;color:#ef4444}.nc-calendar-type-tabs{display:flex;gap:4px;margin-bottom:12px;background:var(--bg-tertiary);padding:4px;border-radius:8px}.nc-calendar-type-tab{flex:1;padding:8px 12px;border:none;background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;border-radius:6px;transition:all .15s ease;font-family:inherit}.nc-calendar-type-tab.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.nc-calendar-fields{display:none}.nc-calendar-fields.active{display:block}.nc-field{margin-bottom:12px}.nc-field:last-child{margin-bottom:0}.nc-field label{display:block;font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:4px;text-transform:uppercase;letter-spacing:.3px}.nc-field input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:13px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.nc-field input:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 3px #00b4a01a}.nc-field input::placeholder{color:var(--text-muted)}.nc-field-hint{font-size:10px;color:var(--text-muted);margin-top:4px}.nc-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.nc-calendar-status{margin-top:12px;padding:8px 12px;border-radius:6px;font-size:11px;display:none}.nc-calendar-status.success{display:block;background:#22c55e1a;color:#22c55e}.nc-calendar-status.error{display:block;background:#ef44441a;color:#ef4444}.nc-calendar-status.testing{display:block;background:var(--bg-tertiary);color:var(--text-secondary)}.nc-add-calendar-btn{width:100%;padding:14px;border:2px dashed var(--border-color);border-radius:10px;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}.nc-add-calendar-btn:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#00b4a00d}.nc-modal-btns{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.nc-modal-btns .btn{flex:1}.nc-proxy-section{margin-bottom:20px;padding:16px;background:var(--bg-primary);border-radius:10px;border:1px solid var(--border-color)}.nc-proxy-section-title{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;display:flex;align-items:center;gap:6px}.nc-proxy-section .nc-field{margin-bottom:0}.dash-calendar-config-btn{padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;gap:6px}.dash-calendar-config-btn:hover{background:var(--bg-primary);color:var(--text-primary);border-color:var(--accent-cyan)}.dash-calendar-config-btn svg{width:14px;height:14px}.dash-calendar-setup{text-align:center;padding:40px 20px}.dash-calendar-setup-icon{font-size:48px;margin-bottom:16px;opacity:.3;color:var(--text-muted)}.dash-calendar-setup-icon svg{width:48px;height:48px;stroke:var(--text-muted)}.dash-calendar-setup p{margin:0 0 16px;color:var(--text-muted);font-size:13px}.dash-calendar-setup-btn{padding:10px 20px;background:var(--accent-cyan);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.dash-calendar-setup-btn:hover{background:#009688}.dash-calendar-loading{text-align:center;padding:40px 20px;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:16px}.dash-calendar-events{display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1}#nc-calendar-content{display:flex;flex-direction:column;overflow-y:auto;flex:1;min-height:0}.dash-calendar-day{border-bottom:1px solid var(--border-color);padding-bottom:12px}.dash-calendar-day:last-child{border-bottom:none;padding-bottom:0}.dash-calendar-day.is-today .dash-calendar-day-title{color:var(--accent-cyan)}.dash-calendar-day-title{font-size:12px;font-weight:700;color:var(--text-primary);margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;text-transform:uppercase;letter-spacing:.5px}.dash-calendar-day-title .day-name{font-weight:700}.dash-calendar-day-title .day-date{font-size:11px;font-weight:500;opacity:.7}.dash-calendar-event-list{display:flex;flex-direction:column;gap:8px}.dash-calendar-event{padding:10px 12px;background:var(--bg-tertiary);border-radius:8px;border-left:3px solid var(--accent-cyan);display:flex;gap:12px;align-items:flex-start;transition:all .15s ease}.dash-calendar-event:hover{background:var(--bg-primary);transform:translate(2px)}.dash-calendar-event-time{font-size:11px;color:var(--accent-cyan);font-weight:600;white-space:nowrap;min-width:60px}.dash-calendar-event-time.all-day{color:var(--text-muted)}.dash-calendar-event-details{flex:1;min-width:0}.dash-calendar-event-title{font-size:13px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-calendar-empty{text-align:center;padding:12px;color:var(--text-muted);font-size:12px;font-style:italic}.dash-calendar-error{padding:10px 12px;background:#ef44441a;border-radius:6px;color:#ef4444;font-size:11px}.auth-screen,.projects-screen{position:fixed;inset:0;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;z-index:10000}.auth-screen.hidden,.projects-screen.hidden,.app.hidden{display:none}.auth-box{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:40px;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo-icon{width:64px;height:64px;background:linear-gradient(135deg,#06b6d4,#3b82f6);border-radius:50%;margin:0 auto 16px;position:relative}.auth-logo-icon:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:3px solid white;border-radius:50%}.auth-logo-icon:after{content:"";position:absolute;top:12px;left:50%;transform:translate(-50%);width:8px;height:8px;background:#fff;border-radius:50%}.auth-logo h1{font-size:24px;font-weight:700;color:var(--text-primary);margin:0}.auth-logo p{color:var(--text-muted);margin:8px 0 0;font-size:14px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-input{padding:12px 16px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;outline:none;transition:border-color .2s}.auth-input:focus{border-color:var(--accent-cyan)}.auth-btn{padding:12px 24px;background:linear-gradient(135deg,#06b6d4,#3b82f6);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;margin-top:24px;color:var(--text-muted);font-size:14px}.auth-switch a{color:var(--accent-cyan);cursor:pointer;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-error{background:#ef44441a;color:#ef4444;padding:12px;border-radius:8px;font-size:13px;text-align:center}.auth-error.hidden{display:none}.recovery-modal{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:20000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.recovery-modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;padding:32px;max-width:500px;width:90%;box-shadow:var(--shadow-lg)}.recovery-modal-content h2{margin:0 0 16px;font-size:20px;color:var(--text-primary);text-align:center}.recovery-warning{background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px;color:var(--text-secondary);line-height:1.5}.recovery-warning strong{color:#f59e0b}.recovery-words{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.recovery-word{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;font-family:monospace;font-size:14px;color:var(--text-primary)}.word-num{color:var(--text-muted);font-size:11px;margin-right:6px}.recovery-actions{display:flex;flex-direction:column;gap:16px;align-items:center}.recovery-confirm{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-secondary);cursor:pointer}.recovery-confirm input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-cyan)}.recovery-actions .btn{min-width:180px}.unlock-modal{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:20000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.unlock-modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:16px;padding:32px;max-width:450px;width:90%;box-shadow:var(--shadow-lg);position:relative}.unlock-close-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:var(--bg-tertiary);color:var(--text-secondary);font-size:20px;line-height:1;border-radius:8px;cursor:pointer;transition:all .2s}.unlock-close-btn:hover{background:var(--border-color);color:var(--text-primary)}.unlock-modal-content h2{margin:0 0 8px;font-size:20px;color:var(--text-primary);text-align:center}.unlock-modal-content p{margin:0 0 24px;font-size:14px;color:var(--text-muted);text-align:center}.unlock-tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--bg-tertiary);border-radius:8px;padding:4px}.unlock-tab{flex:1;padding:10px;background:transparent;border:none;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.unlock-tab.active{background:var(--bg-secondary);color:var(--text-primary);box-shadow:var(--shadow-sm)}.unlock-form{display:flex;flex-direction:column;gap:16px}.unlock-form textarea{padding:12px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-family:monospace;resize:none;min-height:80px}.unlock-form textarea:focus{outline:none;border-color:var(--accent-cyan)}.unlock-error{background:#ef44441a;color:#ef4444;padding:10px;border-radius:6px;font-size:13px;text-align:center}.unlock-error.hidden{display:none}.projects-box{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:32px;width:100%;max-width:600px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.projects-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.projects-header h2{font-size:20px;font-weight:600;margin:0}.projects-user{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:13px}.projects-logout{color:var(--accent-cyan);cursor:pointer;text-decoration:none}.projects-logout:hover{text-decoration:underline}.projects-actions{display:flex;gap:12px;margin-bottom:20px}.projects-new-btn{padding:10px 20px;background:linear-gradient(135deg,#06b6d4,#3b82f6);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.projects-new-btn:hover{opacity:.9}.projects-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.project-item{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .15s}.project-item:hover{border-color:var(--accent-cyan);box-shadow:var(--shadow-sm)}.project-info{flex:1}.project-name{font-weight:600;font-size:14px;color:var(--text-primary)}.project-date{font-size:12px;color:var(--text-muted);margin-top:4px}.project-delete{padding:6px 12px;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);font-size:12px;cursor:pointer;opacity:0;transition:all .15s}.project-item:hover .project-delete{opacity:1}.project-delete:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.projects-empty{text-align:center;padding:40px;color:var(--text-muted)}.orbital-modal{display:none;position:fixed;inset:0;z-index:10000;align-items:center;justify-content:center}.orbital-modal.active{display:flex}.orbital-modal .modal-backdrop{position:absolute;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.orbital-modal .modal-content{position:relative;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 20px 60px #0006;min-width:400px;max-width:500px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.orbital-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.orbital-modal .modal-title{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.orbital-modal .modal-close{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .15s}.orbital-modal .modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.orbital-modal .modal-body{padding:20px;overflow-y:auto;flex:1}.orbital-modal .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.orbital-modal .modal-btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;border:1px solid transparent}.orbital-modal .modal-btn-primary{background:var(--accent-cyan);color:#fff;border-color:var(--accent-cyan)}.orbital-modal .modal-btn-primary:hover{background:#0891b2;border-color:#0891b2}.orbital-modal .modal-btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border-color:var(--border-color)}.orbital-modal .modal-btn-secondary:hover{background:var(--bg-hover);color:var(--text-primary)}.orbital-modal .modal-btn-danger{background:#dc2626;color:#fff;border-color:#dc2626}.orbital-modal .modal-btn-danger:hover{background:#b91c1c;border-color:#b91c1c}.share-modal-content .share-description{color:var(--text-secondary);font-size:14px;margin-bottom:20px;line-height:1.5}.share-modal-content .form-group{margin-bottom:16px}.share-modal-content .form-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.share-modal-content .form-input,.share-modal-content .form-select{width:100%;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;font-size:14px;color:var(--text-primary);transition:border-color .15s}.share-modal-content .form-input:focus,.share-modal-content .form-select:focus{outline:none;border-color:var(--accent-cyan);box-shadow:0 0 0 3px #06b6d41a}.share-modal-content .form-input::placeholder{color:var(--text-muted)}.share-modal-content .form-hint{font-size:12px;margin-top:6px;color:var(--text-muted)}.share-modal-content .form-hint.hint-success{color:#10b981}.share-modal-content .form-hint.hint-error{color:#ef4444}.share-modal-content .share-error,.manage-share-content .share-error{display:none;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:10px 12px;color:#ef4444;font-size:13px;margin-top:12px}.manage-share-content .share-info{background:var(--bg-primary);border-radius:8px;padding:12px 16px;margin-bottom:20px}.manage-share-content .share-info p{margin:4px 0;font-size:14px;color:var(--text-secondary)}.manage-share-content .share-info strong{color:var(--text-primary)}.manage-share-content .permissions-section{margin-bottom:24px}.manage-share-content .permissions-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.manage-share-content .permissions-list{background:var(--bg-primary);border-radius:8px;overflow:hidden}.manage-share-content .permission-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color)}.manage-share-content .permission-item:last-child{border-bottom:none}.manage-share-content .permission-user{font-weight:500;color:var(--text-primary)}.manage-share-content .permission-actions{display:flex;align-items:center;gap:8px}.manage-share-content .permission-actions select{padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;font-size:13px;color:var(--text-primary)}.manage-share-content .permission-actions button{padding:6px 10px;background:transparent;border:1px solid var(--border-color);border-radius:4px;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.manage-share-content .permission-actions button:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.manage-share-content .invite-section{background:var(--bg-primary);border-radius:8px;padding:16px;margin-bottom:24px}.manage-share-content .invite-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.manage-share-content .invite-form{display:flex;gap:8px;align-items:flex-end}.manage-share-content .invite-form input,.manage-share-content .invite-form select{flex:1;padding:8px 12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:14px;color:var(--text-primary)}.manage-share-content .invite-form input:focus,.manage-share-content .invite-form select:focus{outline:none;border-color:var(--accent-cyan)}.manage-share-content .invite-form button{padding:8px 16px;white-space:nowrap}.manage-share-content .danger-section{background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:16px}.manage-share-content .danger-section h3{font-size:14px;font-weight:600;color:#ef4444;margin:0 0 12px}.manage-share-content .danger-warning{font-size:13px;color:var(--text-muted);margin:8px 0 0}.modal-invitations .modal-content{max-width:500px}.invitations-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.invitation-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:16px;display:flex;gap:16px;align-items:flex-start;transition:border-color .15s,box-shadow .15s}.invitation-item:hover{border-color:var(--accent-cyan);box-shadow:0 2px 8px #06b6d41a}.invitation-item.accepted{opacity:.6;border-color:#22c55e}.invitation-icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,var(--accent-cyan) 0%,#3b82f6 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0}.invitation-icon svg{width:22px;height:22px;stroke:#fff}.invitation-info{flex:1;min-width:0}.invitation-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invitation-details{font-size:13px;color:var(--text-secondary);margin:0 0 4px}.invitation-details strong{color:var(--text-primary)}.invitation-role{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#06b6d426;color:var(--accent-cyan);margin-left:4px}.invitation-date{font-size:12px;color:var(--text-muted);margin:0}.invitation-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.invitation-actions button{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;min-width:90px}.invitation-actions button:disabled{opacity:.6;cursor:not-allowed}.btn-accept{background:var(--accent-cyan);border:none;color:#fff}.btn-accept:hover:not(:disabled){background:#0891b2;transform:translateY(-1px)}.btn-decline{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.btn-decline:hover:not(:disabled){background:#ef44441a;border-color:#ef4444;color:#ef4444}.status-accepted{color:#22c55e;font-size:13px;font-weight:500;text-align:center;padding:8px}.notifications-section,.invitations-section{margin-bottom:16px}.section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.notification-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;padding:16px;display:flex;gap:16px;align-items:flex-start;margin-bottom:12px;transition:border-color .15s,box-shadow .15s}.notification-item:last-child{margin-bottom:0}.notification-item:hover{border-color:var(--accent-orange);box-shadow:0 2px 8px #fb923c1a}.notification-item.share_revoked{border-left:3px solid #f97316}.notification-icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#f97316,#ea580c);display:flex;align-items:center;justify-content:center;flex-shrink:0}.notification-icon svg{width:22px;height:22px;stroke:#fff}.notification-info{flex:1;min-width:0}.notification-title{font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-message{font-size:13px;color:var(--text-secondary);margin:0 0 4px}.notification-date{font-size:12px;color:var(--text-muted);margin:0}.notification-actions{flex-shrink:0}.btn-dismiss{width:32px;height:32px;border-radius:6px;border:1px solid var(--border-color);background:transparent;color:var(--text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-dismiss:hover:not(:disabled){background:#ef44441a;border-color:#ef4444;color:#ef4444}.btn-dismiss:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state svg{width:64px;height:64px;margin-bottom:16px;opacity:.4;stroke:var(--text-muted)}.empty-state p{font-size:15px;color:var(--text-secondary);margin:0 0 4px}.empty-state span{font-size:13px}.share-node-info{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-primary);border-radius:10px;margin-bottom:20px}.share-node-icon{width:40px;height:40px;border-radius:10px;flex-shrink:0}.share-node-details{display:flex;flex-direction:column;gap:2px;min-width:0}.share-node-name{font-size:15px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-node-meta{font-size:12px;color:var(--text-muted)}.share-form{display:flex;flex-direction:column;gap:16px}.share-form .form-row{display:flex;gap:12px}.share-form .form-group-half{flex:1}.share-form label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.input-with-icon{position:relative}.input-with-icon .input-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:14px}.permission-legend{display:flex;flex-direction:column;gap:6px;padding:12px;background:var(--bg-primary);border-radius:8px;font-size:12px;color:var(--text-muted)}.permission-legend .legend-item strong{color:var(--text-secondary)}.share-status-header{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#06b6d414,#3b82f614);border:1px solid rgba(6,182,212,.2);border-radius:12px;margin-bottom:20px}.share-status-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:12px;color:var(--accent-cyan);flex-shrink:0}.share-status-icon.owner{background:linear-gradient(135deg,var(--accent-cyan) 0%,#3b82f6 100%);color:#fff}.share-status-details{flex:1;min-width:0}.share-status-details .share-title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-meta{display:flex;align-items:center;gap:8px}.share-role-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.share-role-badge.owner{background:linear-gradient(135deg,var(--accent-cyan) 0%,#3b82f6 100%);color:#fff}.share-role-badge.admin{background:#8b5cf626;color:#8b5cf6}.share-role-badge.editor{background:#22c55e26;color:#22c55e}.share-role-badge.viewer{background:#6b728026;color:#6b7280}.share-info-content{padding:4px 0}.share-info-details{background:var(--bg-primary);border-radius:10px;padding:12px 16px;margin-bottom:16px}.share-info-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.share-info-row:not(:last-child){border-bottom:1px solid var(--border-color)}.share-info-label{font-size:13px;color:var(--text-secondary)}.share-info-value{font-size:13px;font-weight:500;color:var(--text-primary)}.share-info-note{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#06b6d41a;border-radius:8px;font-size:12px;color:var(--text-secondary);line-height:1.5}.share-info-note svg{flex-shrink:0;margin-top:1px;color:var(--accent-cyan)}.role-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.role-badge.role-viewer{background:#6b728026;color:#6b7280}.role-badge.role-editor{background:#22c55e26;color:#22c55e}.role-badge.role-admin{background:#a855f726;color:#a855f7}.status-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600}.status-badge.status-active{background:#22c55e26;color:#22c55e}.share-owner{font-size:12px;color:var(--text-muted)}.manage-share-content .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.manage-share-content .section-header h4{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0}.permission-count{font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px}.invite-section{background:var(--bg-primary);border-radius:10px;padding:16px;margin-bottom:20px}.invite-input-group{display:flex;gap:8px;align-items:center}.invite-input-group .form-input{flex:2}.invite-input-group .form-select{flex:1;min-width:100px}.btn-invite{display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--accent-cyan);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-invite:hover{background:#0891b2}.btn-invite svg{flex-shrink:0}.permissions-section{margin-bottom:20px}.permissions-list{background:var(--bg-primary);border-radius:10px;overflow:hidden}.permission-item{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);transition:background .15s}.permission-item:last-child{border-bottom:none}.permission-item:hover{background:var(--bg-secondary)}.permission-user{display:flex;align-items:center;gap:10px}.permission-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent-cyan) 0%,#3b82f6 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.permission-username{font-size:14px;font-weight:500;color:var(--text-primary)}.permission-actions{display:flex;align-items:center;gap:8px}.permission-role{padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;color:var(--text-primary);cursor:pointer}.permission-role:focus{outline:none;border-color:var(--accent-cyan)}.permission-role:disabled{opacity:.6;cursor:not-allowed}.btn-remove-user{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s}.btn-remove-user:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.permission-role-label{padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;color:var(--text-muted)}.btn-promote-editor{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s}.btn-promote-editor:hover{background:#10b9811a;border-color:#10b981;color:#10b981}.pending-invitations-section{margin-top:16px}.pending-invitation .permission-avatar.pending{background:linear-gradient(135deg,#f59e0b,#d97706);opacity:.8}.permission-role-label.pending{background:#f59e0b1a;border-color:#f59e0b4d;color:#f59e0b;font-style:italic}.btn-cancel-invite{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s}.btn-cancel-invite:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.empty-permissions{text-align:center;padding:32px 20px;color:var(--text-muted)}.empty-permissions svg{margin-bottom:12px;opacity:.4}.empty-permissions p{font-size:14px;font-weight:500;color:var(--text-secondary);margin:0 0 4px}.empty-permissions span{font-size:12px}.danger-section{background:#ef44440d;border:1px solid rgba(239,68,68,.15);border-radius:10px;padding:16px;margin-top:20px}.danger-section .section-header h4{color:#ef4444}.danger-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.danger-info strong{display:block;font-size:14px;color:var(--text-primary);margin-bottom:4px}.danger-info p{font-size:12px;color:var(--text-muted);margin:0}.btn-danger{padding:8px 16px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-danger:hover{background:#dc2626}.mm-shared-badge{position:absolute;top:-10px;right:-10px;width:24px;height:24px;font-size:14px;z-index:10;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:50%;border:2px solid var(--accent-cyan);transition:transform .15s,box-shadow .15s}.mm-shared-badge:hover{transform:scale(1.15);box-shadow:0 0 0 4px #06b6d433}.bubble-shared-badge{position:absolute;bottom:-8px;right:50%;transform:translate(50%);width:22px;height:22px;font-size:12px;z-index:10;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:50%;border:2px solid var(--accent-cyan);opacity:0;transition:transform .15s,box-shadow .15s,opacity .15s}.bubble:hover>.bubble-shared-badge,.bubble.shared>.bubble-shared-badge{opacity:1}.bubble-shared-badge:hover{transform:translate(50%) scale(1.15);box-shadow:0 0 0 4px #06b6d433}.tree-shared-icon{font-size:12px;cursor:pointer;transition:transform .15s}.tree-shared-icon:hover{transform:scale(1.2)}.mm-node .mm-toggle{opacity:0;transition:opacity .15s}.mm-node:hover .mm-toggle,.mm-node.collapsed .mm-toggle{opacity:1}.mm-node .mm-shared-badge{right:auto;left:-10px;opacity:0;transition:opacity .15s}.mm-node:hover .mm-shared-badge,.mm-node .mm-shared-badge.shared{opacity:1}.mm-node.mm-left .mm-shared-badge{left:auto;right:-10px}.bubble-toggle{opacity:0;transition:opacity .15s}.bubble:hover>.bubble-toggle{opacity:1}.bubble.collapsed>.bubble-toggle{opacity:1}.bubble-toggle{position:absolute;top:-9px;right:-9px;width:30px;height:30px;font-size:1.2em;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text-primary);cursor:pointer;z-index:15;transition:background .15s,border-color .15s}.bubble-toggle:hover{background:var(--bg-tertiary);border-color:var(--accent-cyan)}.gantt-label-row .gantt-collapse-toggle{opacity:0;transition:opacity .15s}.gantt-label-row:hover .gantt-collapse-toggle,.gantt-label-row.collapsed .gantt-collapse-toggle{opacity:1}.gantt-collapse-toggle{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--text-secondary);cursor:pointer;margin-right:4px;border-radius:3px;background:var(--bg-tertiary)}.gantt-collapse-toggle:hover{background:var(--accent-cyan);color:#fff}.tree-node .tree-collapse-toggle{opacity:0;transition:opacity .15s}.tree-node:hover .tree-collapse-toggle{opacity:1}.tree-item.collapsed>.tree-node .tree-collapse-toggle{opacity:1}.tree-collapse-toggle{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--text-secondary);cursor:pointer;margin-right:4px;border-radius:3px;flex-shrink:0}.tree-collapse-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.context-menu{position:fixed;z-index:10001;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);min-width:180px;padding:6px 0;font-size:13px}.context-menu-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;color:var(--text-primary);transition:background .15s}.context-menu-item:hover{background:var(--bg-tertiary)}.context-menu-icon{display:flex;align-items:center;justify-content:center;width:18px;font-size:14px;color:var(--text-secondary)}.context-menu-separator{height:1px;background:var(--border-color);margin:6px 0}.context-menu-item.danger{color:var(--accent-magenta)}.context-menu-item.danger:hover{background:#e91e8c1a}.update-banner{position:fixed;top:0;left:0;right:0;padding:12px 20px;background:var(--accent-cyan);color:#fff;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 16px;z-index:10001;transform:translateY(-100%);transition:transform .3s ease;font-size:14px;font-weight:500;text-align:center}.update-banner.visible{transform:translateY(0)}.update-banner.hidden{display:none}.update-banner.level-2{background:var(--accent-cyan)}.update-banner.level-3{background:var(--accent-magenta)}.update-banner-btn{padding:6px 14px;border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;transition:opacity .2s}.update-banner-btn:hover{opacity:.9}#update-banner-refresh{background:#fff;color:var(--accent-cyan)}.update-banner.level-2 #update-banner-refresh{color:var(--accent-magenta)}.update-banner-dismiss{background:#fff3;color:#fff}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:10000;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);color:var(--text-primary);font-size:14px;opacity:0;transform:translateY(20px);transition:opacity .3s,transform .3s;pointer-events:auto}.toast-visible{opacity:1;transform:translateY(0)}.toast-hiding{opacity:0;transform:translateY(-10px)}.toast-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.toast-message{flex:1}.toast-info .toast-icon{color:#3b82f6}.toast-warning .toast-icon{color:#f59e0b}.toast-error .toast-icon{color:#ef4444}.toast-success .toast-icon{color:#22c55e}.read-only-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:4px;color:#f59e0b;font-size:12px;font-weight:500;margin-left:12px}.read-only-badge svg{width:14px;height:14px}body.read-only-mode .sidebar-node:hover{cursor:default}body.read-only-mode .tree-node-actions{display:none}
