.modal-overlay{z-index:1000;background:#0000004d;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg);border-radius:var(--radius-lg);width:90%;max-width:640px;max-height:80vh;padding:24px;overflow-y:auto;box-shadow:0 8px 32px #0000001f}.sidebar{width:var(--sidebar-width);border-right:.5px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;height:100%;display:flex}.sidebar-logo{color:var(--text-primary);padding:14px 16px 10px;font-size:14px;font-weight:500}.sidebar-logo-dim{color:var(--text-muted);font-weight:400}.sidebar-tabs{border:.5px solid #ddd;border-radius:6px;margin:0 8px 6px;display:flex;overflow:hidden}.sidebar-tab{text-align:center;color:var(--text-secondary);background:0 0;border:none;flex:1;padding:5px 0;font-size:12px;font-weight:400}.sidebar-tab--active{color:var(--text-primary);background:#fff;font-weight:500}.sidebar-projects{flex:1;padding:2px 0;overflow-y:auto}.sidebar-project{color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:7px;margin:1px 6px;padding:5px 8px;font-size:12.5px;font-weight:400;display:flex}.sidebar-project:hover{background:var(--bg-hover)}.sidebar-project--active{color:var(--text-primary);background:#fff;font-weight:500}.sidebar-project-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.sidebar-project-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar-project-count{color:var(--text-dim);margin-left:auto;font-size:10px}.sidebar-project-delete{color:var(--text-dim);opacity:0;cursor:pointer;padding:0 2px;font-size:14px;line-height:1}.sidebar-project:hover .sidebar-project-delete{opacity:1}.sidebar-project-delete:hover{color:#e53935}.sidebar-trash-count{background:var(--bg-hover);color:var(--text-muted);border-radius:8px;margin-left:4px;padding:1px 5px;font-size:10px}.sidebar-add-project{color:var(--text-muted);cursor:pointer;opacity:.7;margin:4px 6px;padding:5px 14px;font-size:12px}.sidebar-add-project:hover{opacity:1}.sidebar-bottom{border-top:.5px solid var(--border);margin-top:auto;padding:6px}.sidebar-bottom-item{color:var(--text-secondary);cursor:pointer;border-radius:6px;align-items:center;gap:7px;padding:6px 8px;font-size:12.5px;display:flex}.sidebar-bottom-item:hover{background:var(--bg-hover)}.sidebar-save-status{color:var(--text-muted);text-align:center;padding:4px 8px;font-size:11px;transition:opacity .3s}.sidebar-save-status--fade{animation:2s ease-out forwards save-fade}@keyframes save-fade{0%,70%{opacity:1}to{opacity:0}}.sidebar-auth{border-top:.5px solid var(--border);margin-top:4px;padding-top:4px}.sidebar-auth-loading{color:var(--text-dim);padding:6px 8px;font-size:11px}.sidebar-login-btn{background:var(--bg-hover);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;border:none;border-radius:6px;padding:7px 8px;font-size:12.5px;transition:background .15s}.sidebar-login-btn:hover{color:var(--text-primary);background:#e8e8e8}.sidebar-user{align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.sidebar-user-avatar{border-radius:50%;flex-shrink:0;width:20px;height:20px}.sidebar-user-email{text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);flex:1;font-size:11px;overflow:hidden}.sidebar-logout-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:11px}.sidebar-logout-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.status-icon{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:8px;display:flex}.status-icon--root{width:15px;height:15px;margin-top:3px}.status-icon--child{width:13px;height:13px;margin-top:3px;font-size:7px}.status-icon--none{background:0 0;border:1.5px dashed #ccc}.status-icon--question{border:1.5px solid var(--question-border);color:var(--question-text);background:0 0}.status-icon--waiting{border:1.5px solid var(--waiting-border);background:var(--waiting-bg);color:var(--waiting-text)}.status-icon--done{border:1.5px solid var(--done-border);background:var(--done-bg);color:var(--done-text)}.status-icon--pending_archive{color:#aaa;background:0 0;border:1.5px solid #ddd}.status-icon--archived{display:none}.main-panel{flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.main-header{border-bottom:.5px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:11px 18px;display:flex}.main-header-title{font-size:13px;font-weight:500}.main-header-date{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.granularity-toggle{border:.5px solid #ddd;border-radius:5px;margin-left:auto;display:inline-flex;overflow:hidden}.granularity-btn{color:var(--text-secondary);background:0 0;border:none;padding:3px 9px;font-size:11px;font-weight:400}.granularity-btn--active{background:var(--bg-hover);color:var(--text-primary);font-weight:500}.main-body{flex-direction:column;flex:1;gap:16px;padding:14px 18px;display:flex;overflow-y:auto}.project-section{margin-bottom:8px}.project-section-header{letter-spacing:.05em;text-transform:uppercase;color:#999;align-items:center;gap:6px;margin-bottom:2px;font-size:11px;font-weight:500;display:flex}.project-section-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.project-section-status-toggle{color:var(--text-dim);opacity:0;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:2px;padding:2px 6px;font-size:12px;line-height:1;transition:opacity .15s}.project-section-header:hover .project-section-status-toggle{opacity:.5}.project-section-status-toggle:hover{background:var(--bg-hover);opacity:1!important}.project-section-status-toggle--active{opacity:.35}.project-section-header:hover .project-section-status-toggle--active{opacity:.6}.project-section-add{color:var(--text-muted);opacity:0;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:12px;transition:opacity .15s}.project-section-label:hover .project-section-add{opacity:1}.project-section-label{color:var(--text-muted);letter-spacing:.04em;align-items:center;gap:4px;margin-top:8px;margin-bottom:4px;font-size:10.5px;font-weight:500;display:flex}.project-section-tasks{flex-direction:column;display:flex}.project-section-empty{color:var(--text-dim);cursor:pointer;padding:8px 4px;font-size:12px}.status-block{border-bottom:.5px solid var(--border);margin-bottom:4px;padding:4px 0 8px}.status-block--readonly{background:var(--bg-secondary);border-bottom:none;border-radius:6px;margin-bottom:8px;padding:8px 11px}.status-block-label{color:var(--text-muted);letter-spacing:.04em;margin-bottom:3px;font-size:10.5px;font-weight:500}.status-block-text{color:var(--text-secondary);border-radius:4px;outline:none;min-height:20px;padding:2px 4px;font-size:12.5px;line-height:1.55}.status-block-text:hover{background:var(--bg-hover)}.status-block-text:empty:before{content:attr(data-placeholder);color:var(--text-dim)}.task-row{cursor:default;border-radius:5px;flex-wrap:wrap;align-items:center;gap:3px;padding:2px 4px;display:flex;position:relative}.task-row--hovered{background:var(--bg-hover)}.task-drag-handle{color:var(--text-dim);text-align:center;opacity:0;cursor:grab;-webkit-user-select:none;user-select:none;width:12px;padding-top:3px;font-size:10px}.task-row--hovered .task-drag-handle{opacity:1}.task-expand-btn{color:var(--text-dim);opacity:0;cursor:pointer;-webkit-user-select:none;user-select:none;width:11px;padding-top:3px;font-size:9px;transition:transform .15s}.task-expand-btn--visible{opacity:0}.task-row--hovered .task-expand-btn--visible{opacity:1}.task-expand-btn--expanded{transform:rotate(90deg)}.task-title{color:var(--text-secondary);word-break:break-word;outline:none;min-width:0;padding:2px 4px;font-size:13px;line-height:1.5}.task-inline-steps{display:contents}.task-step-adder{align-items:center;gap:3px;display:inline-flex}.task-step-adder--hidden{display:none}.task-title--muted{color:var(--text-muted)}.task-title--pending{color:#bbb;-webkit-text-decoration:line-through #ddd;text-decoration:line-through #ddd}.task-title a,.note-block a,.status-block-text a,.step-pill-text a{color:#1e88e5;cursor:pointer;-webkit-text-decoration:underline #1e88e544;text-decoration:underline #1e88e544}.task-title a:hover,.note-block a:hover,.status-block-text a:hover,.step-pill-text a:hover{text-decoration-color:#1e88e5}.task-date{color:var(--text-dim);font-size:10px;font-family:var(--font-mono);flex-shrink:0;padding-top:4px}.task-completed-date{font-family:var(--font-mono);color:#bbb;white-space:nowrap;flex-shrink:0;margin-left:4px;padding-top:5px;font-size:10px}.task-actions{flex-shrink:0;gap:2px;padding-top:3px;display:flex;position:relative}.task-actions--hidden{display:none}.task-action-btn{color:var(--text-muted);border:.5px dashed var(--border-medium);border-radius:var(--radius-pill);white-space:nowrap;cursor:pointer;background:0 0;padding:1px 6px;font-size:10px}.task-action-btn:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.task-action-btn--menu{letter-spacing:-1px}.task-menu{background:var(--bg);border:.5px solid var(--border);border-radius:var(--radius-md);z-index:100;min-width:120px;padding:4px;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #00000014}.task-menu-item{cursor:pointer;color:var(--text-primary);border-radius:4px;padding:5px 10px;font-size:12px}.task-menu-item:hover{background:var(--bg-hover)}.task-menu-item--danger{color:#e53935}.task-menu-divider{background:var(--border);height:.5px;margin:3px 0}.task-children{border-left:1.5px solid var(--border);flex-direction:column;margin-top:1px;margin-left:11px;padding-left:24px;display:flex}.steps-row{flex-wrap:wrap;align-items:center;gap:4px 0;padding:4px 0 2px;display:flex}.step-pill{border:.5px solid var(--border-medium);border-radius:var(--radius-pill);white-space:nowrap;cursor:pointer;background:#fff;flex-shrink:0;align-items:center;gap:3px;padding:2px 8px;font-size:12px;display:flex}.step-pill--done{background:var(--bg-hover);color:var(--text-muted)}.step-pill-done-text{text-decoration:line-through}.step-pill--progress{border-color:var(--waiting-border);color:var(--waiting-text)}.step-pill--todo{color:var(--text-secondary);border-style:dashed}.step-pill--question{border-color:var(--question-border);color:var(--question-text)}.step-pill--summary{color:var(--text-muted);background:0 0;border-style:dashed}.step-pill--add{color:var(--text-muted);border-style:dashed;padding:1px 6px;font-size:10px}.step-pill--add:hover{border-color:var(--text-secondary);color:var(--text-secondary)}.step-pill--hoverable{position:relative}.step-pill-status{cursor:pointer;justify-content:center;align-items:center;min-width:10px;min-height:14px;display:inline-flex}.step-pill-delete{color:var(--text-dim);cursor:pointer;opacity:0;margin-left:2px;font-size:12px;line-height:1}.step-pill--hoverable:hover .step-pill-delete{opacity:1}.step-pill-delete:hover{color:#e53935}.step-pill-icon{font-size:9px}.step-pill--todo .step-pill-icon{color:#ccc}.step-pill-text{outline:none;min-width:1ch}.step-pill-sep{color:#ddd;margin:0 1px}.step-pill-date{font-family:var(--font-mono);color:#bbb;font-size:9.5px}.step-arrow{color:var(--text-dim);flex-shrink:0;padding:0 3px;font-size:10px}.steps-toggle-btn{color:#bbb;cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0;font-size:11px;text-decoration:underline}.steps-toggle-btn:hover{color:var(--text-secondary)}.steps-expanded{flex-direction:column;gap:4px;display:flex}.steps-nested{flex-wrap:wrap;align-items:center;gap:4px 0;padding:2px 0 2px 12px;display:flex}.steps-nested-label{color:var(--text-muted);white-space:nowrap;margin-right:4px;font-size:10px}.step-add-input{border:.5px solid var(--border-medium);border-radius:var(--radius-pill);outline:none;width:80px;padding:2px 8px;font-size:11px}.note-block{background:var(--bg-secondary);color:#888;border-left:2px solid var(--border-medium);cursor:text;border-radius:5px;outline:none;margin:2px 0;padding:5px 9px;font-size:12px;line-height:1.55}.code-block{background:var(--bg-secondary);color:#888;border-left:2px solid var(--border-medium);font-size:12px;line-height:1.55;font-family:var(--font-mono);cursor:text;white-space:pre-wrap;border-radius:5px;outline:none;margin:2px 0;padding:5px 9px}.inline-add-input{border:.5px solid var(--border-medium);border-radius:var(--radius-md);outline:none;width:100%;margin:2px 0;padding:4px 8px;font-size:12.5px}.inline-add-textarea{border:.5px solid var(--border-medium);border-radius:var(--radius-md);resize:vertical;outline:none;width:100%;min-height:48px;margin:2px 0;padding:6px 8px;font-family:inherit;font-size:12px}.drop-indicator-line{pointer-events:none;z-index:50;background:#4a90d9;height:2px;transition:top 80ms,left 80ms;position:absolute;right:4px}.drop-indicator-line:before{content:"";background:#4a90d9;border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.task-item--drag-source{opacity:.2;pointer-events:none}.drag-preview{opacity:.9;background:#fff;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:8px;max-width:300px;padding:6px 12px;font-size:13px;display:flex;box-shadow:0 4px 12px #0000001f}.drag-preview-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.drag-preview-child-count{color:#999;white-space:nowrap;flex-shrink:0;font-size:11px}.format-toolbar{border-bottom:.5px solid var(--border);flex-shrink:0;align-items:center;gap:2px;padding:4px 8px;display:flex}.format-toolbar-group{position:relative}.format-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-direction:column;align-items:center;gap:1px;padding:3px 7px;font-size:12px;display:flex}.format-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.format-btn--disabled{opacity:.35;pointer-events:none}.format-btn-icon{font-size:12px;font-weight:600}.format-btn-icon--bg{background:#fff9c4;border-radius:2px;padding:0 3px}.format-btn-color-bar{background:var(--text-primary);border-radius:1px;width:12px;height:2px}.format-dropdown{border:.5px solid var(--border-medium);z-index:200;background:#fff;border-radius:6px;min-width:90px;margin-top:4px;padding:4px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000014}.format-dropdown--link{align-items:center;gap:4px;min-width:220px;padding:6px;display:flex}.format-color-item{cursor:pointer;color:var(--text-secondary);border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:flex}.format-color-item:hover{background:var(--bg-hover)}.format-color-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.format-link-input{border:.5px solid var(--border-medium);border-radius:4px;outline:none;flex:1;padding:4px 8px;font-size:11px}.format-link-confirm{color:var(--done-text);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 6px;font-size:11px}.format-link-confirm:hover{background:var(--done-bg)}.format-link-remove{color:#e53935;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 6px;font-size:11px}.format-link-remove:hover{background:#fef0f0}.history-view{height:100%;display:flex}.history-left{border-right:.5px solid var(--border);background:var(--bg-surface);flex-direction:column;flex-shrink:0;width:210px;display:flex}.history-search-wrapper{border-bottom:.5px solid var(--border);padding:9px}.history-search{border:.5px solid var(--border-medium);width:100%;color:var(--text-primary);background:#fff;border-radius:6px;outline:none;padding:5px 9px;font-size:12px}.history-project-list{flex:1;padding:6px;overflow-y:auto}.history-category-label{color:#bbb;letter-spacing:.1em;text-transform:uppercase;padding:7px 7px 3px;font-size:9px;font-weight:500}.history-project-item{cursor:pointer;border-radius:6px;align-items:center;gap:7px;margin-bottom:1px;padding:6px 8px;display:flex}.history-project-item:hover{background:var(--bg-hover)}.history-project-item--active{background:#fff;font-weight:500}.history-project-item-info{flex:1;min-width:0}.history-project-item-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.history-project-item-meta{color:var(--text-muted);font-size:10px}.history-archived-tag{color:#bbb;border-radius:var(--radius-pill);border:.5px dashed #ddd;flex-shrink:0;padding:1px 5px;font-size:10px}.history-right{flex-direction:column;flex:1;display:flex;overflow:hidden}.history-right-header{border-bottom:.5px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:11px 16px;display:flex}.history-right-body{flex-direction:column;flex:1;gap:4px;padding:12px 16px;display:flex;overflow-y:auto}.history-task-wrapper{position:relative}.history-delete-btn{color:var(--text-dim);border:.5px solid var(--border-medium);border-radius:var(--radius-pill);cursor:pointer;opacity:0;background:0 0;padding:1px 8px;font-size:10px;transition:opacity .15s;position:absolute;top:4px;right:4px}.history-task-wrapper:hover .history-delete-btn{opacity:1}.history-delete-btn:hover{color:#e53935;border-color:#e53935}.trash-view{padding:18px}.trash-header{margin-bottom:4px;font-size:13px;font-weight:500}.trash-hint{color:var(--text-muted);margin-bottom:14px;font-size:11px}.trash-list{flex-direction:column;gap:2px;display:flex}.trash-item{border-radius:6px;align-items:center;gap:8px;padding:7px 8px;display:flex}.trash-item:hover{background:var(--bg-hover)}.trash-item-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.trash-item-name{color:var(--text-secondary);flex:1;font-size:12.5px}.trash-item-days{color:var(--text-muted);flex-shrink:0;font-size:10px}.trash-item-btn{border-radius:var(--radius-pill);border:.5px solid var(--border-medium);cursor:pointer;color:var(--text-secondary);background:0 0;padding:2px 8px;font-size:10px}.trash-item-btn:hover{background:var(--bg-hover)}.trash-item-btn--delete{color:#e53935;border-color:#e5393544}.trash-item-btn--delete:hover{background:#fef0f0}.trash-empty{flex-direction:column;justify-content:center;align-items:center;gap:6px;height:200px;display:flex}.trash-empty-text{color:var(--text-muted);font-size:13px}.trash-empty-hint{color:var(--text-dim);font-size:11px}:root{--bg:#fff;--bg-surface:#fafafa;--bg-hover:#f5f5f5;--bg-secondary:#f7f7f7;--border:#ebebeb;--border-light:#f0f0f0;--border-medium:#e0e0e0;--text-primary:#111;--text-secondary:#777;--text-muted:#aaa;--text-dim:#ccc;--waiting-bg:#fff3e0;--waiting-border:#f0a020;--waiting-text:#b05a00;--done-bg:#eaf3de;--done-border:#8bc34a;--done-text:#3b6d11;--question-border:#aaa;--question-text:#888;--sidebar-width:196px;--radius-sm:4px;--radius-md:6px;--radius-lg:12px;--radius-pill:20px;--font:-apple-system, "Noto Sans SC", system-ui, sans-serif;--font-mono:"SF Mono", "Fira Code", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font);color:var(--text-primary);background:var(--bg);font-size:13px;line-height:1.5}button{cursor:pointer;font-family:inherit}input{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ccc}.app-root{height:100%;display:flex;overflow:hidden}.app-main{flex:1;min-width:0;height:100%;overflow:hidden}
