*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;min-height:100vh;user-select:none;-webkit-user-select:none;-webkit-font-smoothing:antialiased;overflow:hidden}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.app-layout{display:flex;height:100vh;width:100%}.sidebar{width:200px;background:#f5f5f5;color:#333;border-right:1px solid #ddd;display:flex;flex-direction:column;padding:0;flex-shrink:0;-webkit-user-select:none;user-select:none}.project-switcher{height:44px;box-sizing:border-box;padding:0 8px;background:#fff;border-bottom:1px solid #ddd;display:flex;align-items:center}.project-selector-btn{width:100%;background:transparent;border:1px solid #ddd;border-radius:6px;padding:6px 10px;font-size:.82rem;font-weight:500;color:#333;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:6px;text-align:left;transition:background .15s}.project-selector-btn:hover{background:#ececec}.project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{color:#999;flex-shrink:0;display:flex;align-items:center;opacity:.7}.project-dropdown{position:fixed;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 16px #00000026;z-index:2000;min-width:180px;padding:5px}.project-dropdown-item{padding:7px 10px 7px 28px;border-radius:5px;cursor:pointer;font-size:.82rem;color:#333;position:relative}.project-dropdown-item:hover{background:#f5f5f5}.project-dropdown-item.active:before{content:"✓";position:absolute;left:10px;font-weight:700;font-size:.75rem;color:#333}.project-dropdown-separator{height:1px;background:#eee;margin:4px 0}.project-dropdown-add{padding:7px 10px;border-radius:5px;cursor:pointer;font-size:.82rem;color:#555;display:flex;align-items:center;gap:6px;background:none;border:none;width:100%;text-align:left}.project-dropdown-add:hover{background:#f5f5f5}.sidebar-menu{flex:1;padding:10px 0 0;overflow-y:auto;-webkit-user-select:none;user-select:none}.sidebar-item{padding:9px 8px;margin:3px 8px;cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:300;border-radius:6px;background:transparent;border:none;color:#333;width:calc(100% - 16px);text-align:left}.sidebar-item svg{width:18px;height:18px;flex-shrink:0}.sidebar-item .chevron svg{width:10px;height:6px}.sidebar-item:hover{background:#ececec}.sidebar-item.active{background:#e0e0e0;color:#333}.sidebar-item.empty{color:#bbb}.sidebar-item.empty:hover{background:#ececec}.sidebar-item.empty .sidebar-item-count{display:none}.sidebar-item-label{flex:1}.sidebar-item-count{margin-left:auto;font-size:.7rem;color:#333;background:#e0e0e0;padding:1px 6px;border-radius:10px;min-width:18px;height:18px;line-height:16px;text-align:center;flex-shrink:0}.sidebar-unread-badge{font-size:.65rem;font-weight:700;color:#fff;background:#ff7070;padding:1px 6px;border-radius:10px;min-width:18px;height:18px;line-height:16px;text-align:center;flex-shrink:0}.sidebar-separator{height:1px;background:#ddd;margin:14px 16px 8px}.sidebar-staff-heading{font-size:.68rem;font-weight:600;color:#aaa;letter-spacing:.06em;text-transform:uppercase;padding:14px 16px 4px}.sidebar-tags-chevron{transition:transform .18s ease}.sidebar-tags-chevron.open{transform:rotate(180deg)}.sidebar-item--tag-sub{padding:4px 8px 4px 32px;margin:1px 8px;font-size:.82rem;color:#555}.sidebar-item--tag-sub:hover{background:#ececec}.sidebar-dev-badge{text-align:center;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#fff;background:#e53e3e;padding:5px 0;margin:auto 8px 8px;border-radius:6px}.right-section{display:flex;flex:1;overflow:hidden}.task-list-pane{width:700px;min-width:200px;max-width:1200px;background:#fff;display:flex;flex-direction:column;flex-shrink:0;position:relative;height:100%}.resize-handle{position:absolute;right:-2px;top:0;bottom:0;width:4px;cursor:col-resize;z-index:10}.resize-handle:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:#ddd;transform:translate(-50%);transition:background .2s,width .2s}.resize-handle:hover:before{background:#667eea;width:2px}.resize-handle:active:before{background:#667eea;width:3px}body.resizing,body.resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.list-toolbar{background:#fff;border-bottom:1px solid #ddd;padding:0 10px 0 6px;height:44px;box-sizing:border-box;display:flex;align-items:center;gap:6px;flex-shrink:0}.detail-toolbar{background:#fff;border-bottom:1px solid #ddd;padding:0 10px;height:44px;box-sizing:border-box;display:flex;align-items:center;gap:6px;flex-shrink:0}.toolbar-spacer{flex:1}.toolbar-btn{background:transparent;color:#666;border:none;border-radius:6px;width:36px;height:36px;font-size:1.8rem;font-weight:200;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0}.toolbar-btn:hover:not(:disabled){background:#f8f8f8;color:#444}.toolbar-btn:disabled{color:#ccc;cursor:default}.toolbar-btn:disabled:hover{background:transparent}.toolbar-btn svg{width:.95rem;height:.95rem}.toolbar-btn-trash svg{width:1.15rem;height:1.15rem}.search-container{display:flex;align-items:center;position:relative}.search-input{padding:6px 28px 6px 12px;border:1px solid #ddd;border-radius:18px;font-size:.8rem;outline:none;width:210px;transition:border-color .2s;background:#fff;color:#333}.search-input:focus{border-color:#007aff}.search-clear-btn{position:absolute;right:6px;background:transparent;border:none;color:#999;cursor:pointer;padding:2px;display:none;align-items:center;justify-content:center;border-radius:50%;width:18px;height:18px;font-size:13px;line-height:1}.search-clear-btn:hover{background:#f0f0f0;color:#666}.search-container.has-text .search-clear-btn{display:flex}.task-list-container{flex:1;overflow-y:auto}.list-empty{padding:40px 20px;text-align:center;color:#999;font-size:.9rem}.task-list-item{height:53px;padding:0 20px;margin-top:-1px;border-top:1px solid #eee;border-bottom:1px solid #eee;cursor:pointer;background:#fff;-webkit-user-select:none;user-select:none;display:flex;align-items:center}.task-list-item.selected,.task-list-item.multi-selected{background:#edeef0;border-top-color:#e2e2e2;border-bottom-color:#e2e2e2;position:relative;z-index:1}.task-list-item:hover{background:#f8f9fa}.task-list-item.selected,.task-list-item.multi-selected{background:#edeef0}.task-list-item-header{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.task-list-item-time{font-size:.65rem;color:#999;margin-left:6px;flex-shrink:0;white-space:nowrap}.task-number{font-size:.8rem;font-weight:350;color:#000;flex-shrink:0;margin-right:2px}.task-title-header .task-number,.task-detail-scroll .task-number{font-size:.95rem;font-weight:450;color:#000;user-select:text;-webkit-user-select:text;flex-shrink:0}.task-list-item-title{font-size:.8rem;color:#000;font-weight:350;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.task-list-item-placeholder{color:#999}.task-done-checkbox{width:13px;height:13px;min-width:13px;cursor:pointer;appearance:none;-webkit-appearance:none;border:1px solid #c0c0c0;border-radius:50%;background:#fff;display:grid;place-items:center;flex-shrink:0;transition:border-color .15s,background .15s}.task-done-checkbox:hover{border-color:#888}.task-done-checkbox:checked{border-color:#2ecc71;background:#2ecc71}.task-done-checkbox:checked:after{content:"";width:3px;height:6px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg);margin-top:-1px}.task-list-item-meta{display:flex;align-items:center;gap:6px;margin-bottom:4px}.task-list-category-badge{font-size:.65rem;padding:2px 8px;border-radius:10px;white-space:nowrap;font-weight:400;flex-shrink:0}.cat-open{background:#dcf5e8;color:#1a8a52}.cat-closed{background:#e4e4e4;color:#555}.cat-future{background:#e8deff;color:#5b3fa8}.cat-cancelled{background:#efefef;color:#bbb}.cat-feedback{background:#fde8cc;color:#a0520a}.cat-trash{background:#fdd8d8;color:#b33}.task-list-tag-count,.task-list-step-count,.task-list-message-count,.task-list-attachment-count,.task-list-note-count{font-size:.65rem;color:#555;white-space:nowrap;display:inline-flex;flex-direction:column;align-items:center;gap:3px;margin-left:6px}.task-list-unread-badge{font-size:.62rem;font-weight:700;color:#fff;background:#ff7070;padding:1px 5px;border-radius:9px;margin-left:3px;white-space:nowrap}.task-list-message-count .task-list-unread-badge{margin-left:0}.task-detail-pane{flex:1;background:#fff;display:flex;flex-direction:column;overflow:hidden}.task-detail-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#999;font-size:1.1rem}.task-detail-scroll{flex:1;min-height:0;overflow-y:auto;padding:20px 50px 24px;position:relative}.task-title-header{padding:6px 50px 5px;border-bottom:1px solid #eee;flex-shrink:0}.task-tag-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:4px 0 6px;color:#bbb}.task-tag-chip{display:inline-flex;align-items:center;gap:3px;background:#f0f0f0;color:#555;font-size:.72rem;padding:2px 7px 2px 8px;border-radius:20px;white-space:nowrap}.task-tag-chip-remove{background:transparent;border:none;padding:0;cursor:pointer;color:#aaa;display:flex;align-items:center;line-height:1}.task-tag-chip-remove:hover{color:#555}.task-tag-add-btn{background:transparent;border:1px dashed #ccc;color:#aaa;font-size:.72rem;padding:2px 8px;border-radius:20px;cursor:pointer;transition:border-color .15s,color .15s}.task-tag-add-btn:hover{border-color:#999;color:#666}.task-tag-input{border:1px dashed #999;border-radius:20px;outline:none;font-size:.72rem;padding:2px 10px;color:#333;background:#fff;width:90px;font-family:inherit}.task-tag-input-wrap{position:relative;display:inline-flex;align-items:center}.tag-suggestions{position:absolute;top:calc(100% + 4px);left:0;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 14px #0000001f;z-index:3000;padding:4px;min-width:130px;max-height:180px;overflow-y:auto}.tag-suggestion-item{display:block;width:100%;text-align:left;background:transparent;border:none;padding:5px 10px;font-size:.78rem;color:#333;border-radius:5px;cursor:pointer;white-space:nowrap}.tag-suggestion-item:hover{background:#f4f4f4}.tag-suggestion-item--active{background:#f0f0f0}.task-tabs{display:flex;gap:0;padding:0 50px;border-bottom:1px solid #eee;flex-shrink:0}.task-tab{background:transparent;border:none;border-bottom:2px solid transparent;padding:12px 24px;margin-bottom:-1px;font-size:.78rem;font-weight:500;color:#999;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:color .15s,border-color .15s}.task-tab:hover{color:#555}.task-tab--active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.task-tab-badge{background:#e8e8e8;color:#555;font-size:.68rem;padding:1px 5px;border-radius:9px;font-weight:600}.task-tab--active .task-tab-badge{background:#dde1fb;color:#667eea}.task-tab-unread-badge{background:#ff7070;color:#fff;font-size:.65rem;padding:1px 5px;border-radius:9px;font-weight:700}.task-title-row{display:flex;align-items:center;gap:10px;margin-bottom:0}.task-title{flex:1;font-size:.95rem;font-weight:450;line-height:1.6;background:transparent;outline:none;border:none;padding:8px 0;color:#000;user-select:text;-webkit-user-select:text}.task-title::placeholder{color:#999}.task-meta-row{display:none}.task-detail-timestamps{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.task-time{font-size:.75rem;color:#999}.category-select{appearance:none;border:1px solid #d6dcff;background:#fff;padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:500;color:#667eea;cursor:pointer;outline:none}.category-select:focus{border-color:#667eea}.task-body{min-height:20px;outline:none;font-size:.85rem;line-height:1.6;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;word-wrap:break-word;margin-bottom:4px;user-select:text;-webkit-user-select:text}.task-body *{font-family:inherit;font-size:inherit}.task-body img{max-width:100%;height:auto;display:block}.task-body img.img--selected{outline:1px solid #667eea;outline-offset:0}.task-body--drag-over{outline:2px dashed #667eea;outline-offset:2px;background:#f0f2ff}.task-body p{margin:0 0 .5em}.task-body p:last-child{margin-bottom:0}.task-body ul,.task-body ol{margin:.4em 0 .4em 1.4em;padding:0}.task-body li{margin-bottom:.2em}.task-body strong,.task-body b{font-weight:600}.task-body em,.task-body i{font-style:italic}.task-body a{color:#667eea;text-decoration:underline}.task-body h1,.task-body h2,.task-body h3{font-weight:600;margin:.6em 0 .3em;line-height:1.3}.task-body h1{font-size:1.1em}.task-body h2{font-size:1em}.task-body h3{font-size:.95em}.task-body blockquote{border-left:3px solid #ddd;margin:.4em 0 .4em .5em;padding-left:.8em;color:#666}.task-body code{font-family:monospace;background:#f4f4f4;padding:.1em .3em;border-radius:3px;font-size:.9em}.task-body pre{background:#f4f4f4;padding:.6em .8em;border-radius:4px;overflow-x:auto}.task-body pre code{background:none;padding:0}.task-body:empty:before{content:attr(data-placeholder);color:#999;pointer-events:none}.task-tab-section{padding-top:0}.steps-heading{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.steps-heading-count{font-weight:400;color:#888}.steps-list{position:relative;margin-bottom:4px}.step{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #e8e8e8}.step:last-child{border-bottom:1px solid #e8e8e8}.step-handle{cursor:grab;color:#666;font-size:.9rem;user-select:none;-webkit-user-select:none;line-height:1;padding:0 2px;flex-shrink:0}.step-handle:active{cursor:grabbing}.step-handle:hover{color:#333}.step.selected{background:#f5f5f5}.step-drop-indicator{position:absolute;left:0;right:0;height:2px;background:#667eea;pointer-events:none;z-index:10}.step-checkbox{width:13px;height:13px;min-width:13px;cursor:pointer;appearance:none;-webkit-appearance:none;border:1px solid #c0c0c0;border-radius:50%;background:#fff;display:grid;place-items:center;flex-shrink:0;transition:border-color .15s,background .15s}.step-checkbox:hover{border-color:#888}.step-checkbox:checked{border-color:#2ecc71;background:#2ecc71}.step-checkbox:checked:after{content:"";width:3px;height:6px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(45deg);margin-top:-1px}.step-text-input{flex:1;font-size:.82rem;color:#333;border:none;outline:none;background:transparent;font-family:inherit;resize:none;overflow:hidden;line-height:1.5;min-height:1.5em;padding:0}.step.done .step-text-input{text-decoration:line-through;color:#999}.step-delete{background:transparent;color:#999;border:none;padding:3px 6px;cursor:pointer;transition:color .1s;display:flex;align-items:center}.step-delete:hover{color:#667eea}.add-step-btn{background:transparent;color:#667eea;border:none;padding:6px 8px;font-size:.82rem;cursor:pointer;display:flex;align-items:center;gap:6px;border-radius:4px;transition:color .15s,background .15s}.add-step-btn:hover{background:#f0f0f0}.add-step-btn--top{margin-bottom:8px;color:#667eea;font-weight:600}.notes-section:not(.notes-section--empty) .add-step-btn{margin-top:4px}.notes-heading{display:flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.notes-heading-count{font-weight:400;color:#888}.note-item{position:relative;padding:10px 36px 10px 0;border-top:1px solid #e8e8e8}.note-meta{font-size:.7rem;color:#aaa;margin-bottom:10px}.note-item:last-of-type{border-bottom:1px solid #e8e8e8}.note-editor{font-size:.82rem;color:#333;line-height:1.6;min-height:2.4em;outline:none;font-family:inherit;white-space:pre-wrap;word-break:break-word}.note-editor *{font-family:inherit;font-size:inherit}.note-editor:empty:before{content:attr(data-placeholder);color:#bbb;pointer-events:none}.note-delete{position:absolute;top:6px;right:0;background:transparent;border:none;cursor:pointer;color:#999;padding:3px 6px;display:flex;align-items:center;transition:color .1s}.note-delete:hover{color:#667eea}.note-divider{border:none;border-top:1px solid #e8e8e8;margin:0}.task-messages-section{background:#fff}.task-messages-separator{border:none;border-top:1px solid #e8e8e8;margin:16px 0 0}body.messages-resizing,body.messages-resizing *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}.task-messages-header{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:.75rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.task-messages-count{background:#e8e8e8;color:#666;font-size:.7rem;padding:1px 6px;border-radius:10px}.task-messages-list{padding:4px 0 16px;display:flex;flex-direction:column;gap:1px}.task-messages-empty{font-size:.82rem;color:#bbb;padding:8px 0 4px}.task-messages-unread-divider{display:flex;align-items:center;gap:10px;margin:20px 0;-webkit-user-select:none;user-select:none}.task-messages-unread-divider:before,.task-messages-unread-divider:after{content:"";flex:1;height:1px;background:#e4e4e4}.task-messages-unread-divider span{font-size:.65rem;font-weight:600;color:silver;text-transform:uppercase;letter-spacing:.05em}.task-message{display:flex;align-items:flex-end;gap:8px}.task-message--me{flex-direction:row-reverse}.task-message-body{display:flex;flex-direction:column;max-width:70%}.task-message--me .task-message-body{align-items:flex-end}.task-message-author{font-size:.72rem;color:#999;margin-bottom:2px;margin-left:2px}.task-message-bubble{background:#f0f0f0;color:#222;border-radius:14px 14px 14px 4px;padding:4px 10px;font-size:.78rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;cursor:default}.task-message--me .task-message-bubble{background:#667eea;color:#fff;border-radius:14px 14px 4px}.task-message-image{display:block;max-width:260px;max-height:320px;width:auto;height:auto;cursor:zoom-in;border-radius:14px 14px 14px 4px;border:1px solid rgba(0,0,0,.1)}.task-message-file{display:flex;align-items:center;gap:6px;background:#f5f5f5;border:1px solid rgba(0,0,0,.1);border-radius:10px;padding:6px 10px;font-size:.78rem;color:#444;max-width:280px;cursor:default}.task-message--me .task-message-file{background:#667eea;border-color:#5a6fd6;color:#fff}.task-message-file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-message-file-size{opacity:.55;white-space:nowrap;font-size:.72rem}.task-message-file-dl{display:flex;align-items:center;color:inherit;opacity:.6;transition:opacity .15s;flex-shrink:0}.task-message-file-dl:hover{opacity:1;color:#667eea}.task-message--me .task-message-image{border-radius:14px 14px 4px}.task-message--me:not(.task-message--first) .task-message-image{border-radius:14px 4px 4px 14px}.task-message--them:not(.task-message--first) .task-message-image{border-radius:4px 14px 14px 4px}.task-message:not(.task-message--first){margin-top:2px}.task-message--me:not(.task-message--first) .task-message-bubble{border-radius:14px 4px 4px 14px}.task-message--them:not(.task-message--first) .task-message-bubble{border-radius:4px 14px 14px 4px}.task-message-time{font-size:.68rem;color:#bbb;margin-top:3px;margin-left:2px;margin-right:2px}.task-message-avatar{flex-shrink:0}.task-message-avatar-gap{width:22px;flex-shrink:0}.message-ctx-menu{position:fixed;z-index:9000;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 4px 16px #0000001f;padding:8px 14px;pointer-events:auto;display:flex;flex-direction:column;gap:6px;min-width:160px}.message-ctx-time{font-size:.76rem;color:#444;white-space:nowrap}.message-ctx-unsend{background:none;border:none;padding:6px 0 4px;font-size:.82rem;color:#e53e3e;cursor:pointer;text-align:left;border-top:1px solid #f0f0f0}.message-ctx-unsend:hover{color:#c53030}.task-messages-footer{flex-shrink:0;background:#fff}.task-messages-footer--drag .task-messages-input-row{background:#fff}.task-messages-footer--drag .task-messages-input{outline:2px dashed #667eea;outline-offset:-2px;background:#f0f2ff}.task-messages-input-row{position:relative;display:flex;align-items:flex-end;gap:8px;padding:12px 50px;border-top:1px solid #ddd;background:#fff;flex-shrink:0}.task-messages-input-resize-handle{position:absolute;top:-3px;left:0;right:0;height:6px;cursor:row-resize;z-index:10}.task-messages-input-resize-handle:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:transparent;transform:translateY(-50%);transition:background .2s,height .2s}.task-messages-input-resize-handle:hover:before{background:#667eea;height:2px}.task-messages-input-resize-handle:active:before{background:#667eea;height:3px}.task-messages-input{flex:1;resize:none;border:1px solid #e0e0e0;border-radius:10px;padding:8px 12px;font-size:.84rem;font-family:inherit;line-height:1.4;outline:none;background:#fff;transition:border-color .15s;overflow-y:auto}.task-messages-input:focus{border-color:#667eea}.task-messages-send{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:.84rem;font-weight:600;cursor:pointer;transition:background .15s;flex-shrink:0}.task-messages-send:hover:not(:disabled){background:#5a6fd6}.task-messages-send:disabled{opacity:.4;cursor:default}.task-messages-image-btn{background:transparent;border:none;color:#999;cursor:pointer;padding:6px 8px;flex-shrink:0;display:flex;align-items:center;border-radius:6px;transition:color .1s,background .1s}.task-messages-image-btn:hover:not(:disabled){color:#667eea;background:#f0f2ff}.task-messages-image-btn:disabled{opacity:.4;cursor:default}.task-messages-upload-progress{height:3px;background:#e8e8e8;border-radius:0;overflow:hidden}.task-messages-upload-progress-fill{height:100%;background:#667eea;border-radius:0;transition:width .1s linear}.modal-backdrop{position:fixed;inset:0;background:#00000059;z-index:3000;display:flex;align-items:center;justify-content:center}.modal-card{background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000038;padding:32px 32px 28px;width:380px;display:flex;flex-direction:column;gap:20px}.modal-title{font-size:1rem;font-weight:600;color:#222;margin:0}.modal-input{width:100%;border:1px solid #ddd;border-radius:7px;padding:10px 12px;font-size:.92rem;color:#333;outline:none;transition:border-color .15s}.modal-input:focus{border-color:#888}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-btn{border:none;border-radius:7px;padding:9px 20px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}.modal-btn.save{background:#333;color:#fff}.modal-btn.save:hover{background:#111}.modal-btn.cancel{background:#eee;color:#333}.modal-btn.cancel:hover{background:#e0e0e0}.modal-delete-link{border:1px solid #c0392b;background:#c0392b;color:#fff;font-size:.8rem;cursor:pointer;padding:6px 14px;border-radius:5px;margin-right:auto}.modal-delete-link:hover{background:#a93226;border-color:#a93226}.folder-popover{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 16px #00000024;z-index:3000;padding:4px;min-width:145px}.detail-toolbar .folder-popover{position:absolute;top:calc(100% + 4px);left:0}.category-menu-item{display:flex;align-items:center;gap:0;padding:7px 12px 7px 10px;border-radius:5px;cursor:pointer;font-size:.85rem;color:#333;-webkit-user-select:none;user-select:none}.category-menu-item:hover{background:#f5f5f5}.category-menu-item.active{background:#f0f0f0}.category-menu-separator{height:1px;background:#eee;margin:4px 0}.category-menu-delete{color:#c0392b}.category-menu-delete:hover{background:#fde8e8}.category-menu-check{width:20px;flex-shrink:0;font-size:.75rem;font-weight:700;color:#444}.context-menu-header{font-size:.72rem;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.04em;padding:6px 12px 4px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f5f5}.login-card{background:#fff;border-radius:12px;padding:48px 40px;width:380px;box-shadow:0 4px 24px #0000001a;text-align:center;border:1px solid #e0e0e0}.login-logo{color:#667eea;margin-bottom:16px;display:flex;justify-content:center}.login-logo-icon{width:64px;height:64px;background:#ff7070;border-radius:16px;display:flex;align-items:center;justify-content:center}.login-title{font-size:22px;font-weight:700;margin-bottom:6px;color:#222}.login-subtitle{font-size:.88rem;color:#999;margin-bottom:32px}.login-btn{display:block;width:100%;padding:11px;background:#333;color:#fff;font-size:.92rem;font-weight:600;border-radius:8px;cursor:pointer;border:none;transition:background .15s;margin-bottom:14px}.login-btn:hover{background:#111}.login-note{font-size:.78rem;color:#aaa}.login-error{background:#fff0f0;color:#c00;border:1px solid #fbb;border-radius:7px;padding:9px 12px;font-size:.84rem;margin-bottom:14px;text-align:left}.login-message{background:#f0f8ff;color:#1a6;border:1px solid #b3e0cc;border-radius:7px;padding:9px 12px;font-size:.84rem;margin-bottom:14px;text-align:left}.login-divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:#bbb;font-size:.78rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#e4e4e4}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:10px;border:1.5px solid #d8d8d8;border-radius:8px;background:#fff;color:#444;font-size:.92rem;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s;margin-bottom:12px}.google-btn:hover{border-color:#999;background:#fafafa}.google-btn svg{flex-shrink:0}.secondary-btn{display:block;width:100%;padding:10px;background:transparent;color:#555;font-size:.88rem;font-weight:500;border:1.5px solid #d8d8d8;border-radius:8px;cursor:pointer;transition:border-color .15s;margin-bottom:14px}.secondary-btn:hover{border-color:#999}.login-links{display:flex;flex-direction:column;gap:6px;margin-top:12px}.login-link{background:none;border:none;color:#667eea;font-size:.84rem;cursor:pointer;padding:0;text-decoration:underline}.login-link:hover{color:#4a5fcc}.avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-initials{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:600;color:#fff;flex-shrink:0}.account-menu-wrap{position:fixed;top:6px;right:12px;z-index:300}.account-menu-btn{display:flex;align-items:center;background:none;border:2px solid transparent;padding:2px;border-radius:50%;cursor:pointer;transition:border-color .15s}.account-menu-btn:hover{border-color:#ccc}.account-menu-name{font-size:.85rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-menu-role{font-size:.7rem;margin-top:2px;display:inline-block;padding:1px 6px;border-radius:10px}.account-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 6px 20px #00000024;overflow:hidden;z-index:301;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .12s ease,transform .12s ease}.account-dropdown--open{opacity:1;pointer-events:auto;transform:translateY(0)}.account-dropdown-header{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fafafa}.account-dropdown-header-info{display:flex;flex-direction:column;min-width:0}.account-dropdown-item{display:flex;align-items:center;gap:9px;width:100%;padding:11px 14px;background:none;border:none;font-size:.85rem;color:#333;cursor:pointer;text-align:left;transition:background .1s}.account-dropdown-item:hover{background:#f5f5f5}.account-dropdown-item.signout{color:#c00}.account-dropdown-item.signout:hover{background:#fff5f5}.account-dropdown-separator{height:1px;background:#ebebeb;margin:2px 0}.account-dropdown-version{text-align:left;font-size:.72rem;color:#bbb;padding:6px 12px 4px}.um-backdrop{position:fixed;inset:0;background:#00000059;z-index:500;display:flex;align-items:flex-start;justify-content:flex-end}.um-panel{width:540px;max-width:100vw;height:100vh;background:#fff;display:flex;flex-direction:column;box-shadow:-4px 0 24px #0000001f;overflow:hidden}.um-header{display:flex;align-items:center;padding:20px 22px 18px;border-bottom:1px solid #ebebeb;gap:12px}.um-title{font-size:1.05rem;font-weight:700;color:#222;flex:1}.um-close{background:none;border:none;font-size:1.3rem;color:#888;cursor:pointer;padding:2px 6px;border-radius:6px;line-height:1}.um-close:hover{background:#f2f2f2;color:#333}.um-tabs{display:flex;padding:0 22px;border-bottom:1px solid #ebebeb;gap:4px}.um-tab{padding:10px 14px;background:none;border:none;border-bottom:2px solid transparent;font-size:.86rem;font-weight:500;color:#888;cursor:pointer;margin-bottom:-1px;transition:color .12s,border-color .12s}.um-tab.active{color:#333;border-bottom-color:#333}.um-invite-btn{margin-left:auto;padding:7px 14px;background:#333;color:#fff;border:none;border-radius:7px;font-size:.82rem;font-weight:600;cursor:pointer;align-self:center;transition:background .12s}.um-invite-btn:hover{background:#111}.um-list{flex:1;overflow-y:auto;padding:12px 22px}.um-empty{text-align:center;color:#aaa;font-size:.88rem;padding:40px 0}.um-user-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #f0f0f0}.um-user-row:last-child{border-bottom:none}.um-user-row.um-disabled{opacity:.5}.um-user-info{flex:1;min-width:0}.um-user-name{font-size:.88rem;font-weight:600;color:#222;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.um-user-email{font-size:.78rem;color:#888;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.um-user-note{font-size:.75rem;color:#aaa;margin-top:1px;font-style:italic}.um-role-badge{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:10px;flex-shrink:0}.um-disabled-badge,.um-you-badge{font-size:.68rem;font-weight:500;padding:2px 7px;border-radius:10px;flex-shrink:0}.um-disabled-badge{background:#f3d6d6;color:#c00}.um-you-badge{background:#e4edff;color:#3060cc}.um-user-actions{display:flex;gap:6px;flex-shrink:0}.um-action-btn{padding:5px 10px;border-radius:6px;border:1px solid #ddd;background:#fff;font-size:.78rem;color:#444;cursor:pointer;transition:background .1s,border-color .1s}.um-action-btn:hover{background:#f5f5f5;border-color:#bbb}.um-action-btn.danger{color:#c00;border-color:#f5b3b3}.um-action-btn.danger:hover{background:#fff5f5;border-color:#f99}.avatar-uploader{display:flex;flex-direction:column;align-items:center;gap:8px}.avatar-upload-btn{background:none;border:1.5px dashed #ccc;border-radius:50%;cursor:pointer;padding:0;transition:border-color .15s;overflow:hidden}.avatar-upload-btn:hover{border-color:#888}.avatar-placeholder{width:64px;height:64px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;color:#bbb;font-size:1.5rem}.avatar-hint{font-size:.73rem;color:#aaa;text-align:left;line-height:1.5}.user-modal-backdrop{position:fixed;inset:0;background:#00000080;z-index:600;display:flex;align-items:center;justify-content:center}.user-modal-card{background:#fff;border-radius:14px;padding:32px 30px;width:420px;max-width:96vw;box-shadow:0 8px 32px #0000002e}.user-modal-title{font-size:1rem;font-weight:700;color:#222;margin-bottom:22px}.user-modal-avatar-row{display:flex;align-items:center;gap:16px;margin-bottom:22px}.user-modal-fields{display:flex;flex-direction:column;gap:14px;margin-bottom:22px}.user-modal-label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:#555;font-weight:500}.user-modal-label input,.user-modal-label select,.user-modal-label textarea{border:1.5px solid #ddd;border-radius:7px;padding:8px 10px;font-size:.88rem;color:#222;outline:none;transition:border-color .15s}.user-modal-label input:focus,.user-modal-label select:focus,.user-modal-label textarea:focus{border-color:#888}.user-modal-checkbox-row{display:flex;align-items:center;gap:8px;font-size:.84rem;color:#444;cursor:pointer}.user-modal-actions{display:flex;gap:10px;justify-content:flex-end}.user-modal-actions button{padding:9px 18px;border-radius:8px;font-size:.86rem;font-weight:600;cursor:pointer;border:none;transition:background .12s}.um-save-btn{background:#333;color:#fff}.um-save-btn:hover{background:#111}.um-cancel-btn{background:#f2f2f2;color:#555}.um-cancel-btn:hover{background:#e8e8e8}.mp-project-row{border-bottom:1px solid #f0f0f0}.mp-project-row:last-child{border-bottom:none}.mp-project-header{display:flex;align-items:center;gap:10px;padding:13px 20px 13px 14px}.mp-expand-btn{background:none;border:none;cursor:pointer;color:#aaa;padding:2px 4px;border-radius:4px;display:flex;align-items:center;flex-shrink:0;line-height:1;transition:color .1s}.mp-expand-btn:hover{color:#555;background:#f5f5f5}.mp-project-name{font-size:.9rem;font-weight:600;color:#222;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mp-member-count{font-size:.75rem;color:#aaa;white-space:nowrap}.mp-members-section{padding:0 20px 16px 42px}.mp-members-label{font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#bbb;margin-bottom:10px}.mp-members-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mp-member-chip{display:flex;align-items:center;gap:7px;background:#f7f7f8;border:1px solid #e8e8e8;border-radius:20px;padding:4px 10px 4px 5px;font-size:.8rem}.mp-member-name{font-weight:500;color:#333;white-space:nowrap}.mp-member-role{font-size:.68rem;font-weight:600;padding:2px 7px;border-radius:10px;white-space:nowrap}.mp-member-remove{background:none;border:none;cursor:pointer;color:#bbb;font-size:1rem;line-height:1;padding:0 2px;margin-left:2px;transition:color .1s}.mp-member-remove:hover{color:#c00}.mp-add-select{height:32px;padding:0 10px;border:1px dashed #ccc;border-radius:20px;font-size:.8rem;color:#555;background:#fff;cursor:pointer;outline:none;transition:border-color .15s}.mp-add-select:hover{border-color:#999}.mp-no-members{font-size:.8rem;color:#bbb;font-style:italic}.task-attachments{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-height:100%}.task-attachments--dragging{outline:2px dashed #667eea;outline-offset:-4px;background:#667eea0a;border-radius:6px}.attachments-dropzone-text{font-size:.78rem;color:#888}.attachments-dropzone-text strong{color:#667eea}.attachment-row{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid rgba(0,0,0,.1);border-radius:10px;background:#f5f5f5;color:#444;transition:background .15s,border-color .15s}.attachment-row:hover,.attachment-row--uploading{background:#f0f2ff;border-color:#c5caf5}.attachment-meta{flex:1;min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden}.attachment-name{font-size:.78rem;color:#444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;cursor:default}.attachment-size{font-size:.72rem;color:#999;white-space:nowrap;flex-shrink:0}.attachment-error{font-size:.72rem;color:#c00;white-space:nowrap;flex-shrink:0}.attachment-progress-bar{height:4px;border-radius:2px;background:#dde;overflow:hidden;width:80px;flex-shrink:0}.attachment-progress-fill{height:100%;background:#667eea;border-radius:2px;transition:width .1s linear}.attachment-side{display:flex;align-items:center;gap:2px;flex-shrink:0}.attachment-download{color:#999;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:3px 6px;flex-shrink:0;transition:color .1s;cursor:pointer}.attachment-download:hover{color:#667eea}.attachment-delete{flex-shrink:0;background:transparent;border:none;cursor:pointer;color:#999;padding:3px 6px;transition:color .1s;display:flex;align-items:center}.attachment-delete:hover{color:#667eea}.toolbar-btn-assignee--set{padding:0 5px}.toolbar-btn-assignee--set .avatar{pointer-events:none}.assignee-popover{position:absolute;top:calc(100% + 4px);left:0;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 16px #00000024;z-index:3000;padding:4px;min-width:160px}.assignee-option{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:none;background:transparent;border-radius:5px;cursor:pointer;font-size:13px;color:#333;text-align:left;white-space:nowrap}.assignee-option:hover{background:#f4f4f4}.assignee-option--selected{background:#f0f0f0;color:#333}.assignee-option--selected:hover{background:#ebebeb}.assignee-option-check{width:20px;flex-shrink:0;font-size:.75rem;font-weight:700;text-align:center}.assignee-option-none-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:#666}.ctx-assign-toggle{justify-content:flex-start}.ctx-assign-caret{margin-left:auto;display:flex;align-items:center;color:#999;opacity:.7;transition:transform .15s ease}.ctx-assign-caret--open{transform:rotate(180deg)}.ctx-assignee-submenu{padding:2px 0}.ctx-assignee-submenu .assignee-option{padding:5px 10px 5px 30px;font-size:.82rem}.task-list-assignee{display:inline-flex;align-items:center;flex-shrink:0;margin-right:1px}.task-list-assignee .avatar{opacity:.85}
