@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#fff;--surface:#f5f5f5;--surface-2:#eee;--surface-hover:#ebebeb;--text:#111;--text-muted:#888;--text-dim:#ccc;--accent:#2563eb;--accent-bright:#1d4ed8;--accent-glow:#2563eb1f;--accent-dim:#2563eb12;--accent-border:#2563eb33;--green:#16a34a;--green-dim:#16a34a1a;--red:#dc2626;--orange:#ea580c;--orange-dim:#ea580c1a;--orange-border:#ea580c40;--border:#e5e5e5;--border-strong:#d1d1d1;--sidebar-w:228px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:DM Sans,system-ui,sans-serif;font-size:14.5px;line-height:1.5}body{min-height:100vh}#root{width:100%;min-height:100vh}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}input{font:inherit;color:inherit;background:0 0;border:none;outline:none}.app{height:100vh;display:flex;overflow:hidden}.main-col{flex-direction:column;flex:1;display:flex;overflow:hidden}.top-nav{background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:2px;height:44px;padding:0 16px;display:flex}.top-nav-tab{color:var(--text-muted);border-radius:6px;padding:6px 14px;font-size:13.5px;font-weight:500;transition:background .15s,color .15s}.top-nav-tab:hover{background:var(--surface-hover);color:var(--text)}.top-nav-tab--active{color:var(--text);background:var(--surface)}.top-nav-spacer{flex:1}.top-nav-icon-btn{width:32px;height:32px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.top-nav-icon-btn:hover{background:var(--surface-hover);color:var(--text)}.top-nav-icon-btn--active{background:var(--surface);color:var(--text)}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden}.sidebar-brand{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;height:44px;padding:0 20px;display:flex}.brand-icon{color:var(--accent);flex-shrink:0;font-size:13px}.brand-name{letter-spacing:.02em;color:var(--text);font-size:15px;font-weight:600}.all-tasks-item{color:var(--text-muted);cursor:pointer;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 20px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.all-tasks-item:hover{background:var(--surface-hover);color:var(--text)}.all-tasks-item--selected{color:var(--accent);background:var(--accent-dim)}.all-tasks-item--selected .project-count{color:var(--accent)}.all-tasks-label{flex:1}.sidebar-section-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);padding:20px 20px 6px;font-size:10px;font-weight:500}.project-list{flex-direction:column;flex:1;gap:1px;padding:4px 8px;display:flex;overflow-y:auto}.project-list::-webkit-scrollbar{width:0}.project-item{width:100%;color:var(--text-muted);opacity:0;animation:.3s forwards itemIn;animation-delay:calc(var(--i) * 45ms);border-radius:6px;align-items:center;font-size:13px;font-weight:400;transition:background .15s,color .15s;display:flex}.project-item:hover{background:var(--surface-hover);color:var(--text)}.project-item--selected{background:var(--accent-dim);color:var(--text)}.project-item--selected .project-dot{background:var(--accent)}.project-item:hover .project-delete,.project-item:hover .project-menu-trigger{opacity:1}.project-item-select{text-align:left;color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;flex:1;align-items:center;gap:10px;min-width:0;padding:8px 4px 8px 12px;display:flex}.project-dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:5px;height:5px;transition:background .15s,box-shadow .15s}.project-title-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.project-count{color:var(--text-dim);flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:10px;transition:color .15s}.project-item--selected .project-count{color:var(--accent)}.project-delete{color:var(--text-dim);opacity:0;border-radius:3px;flex-shrink:0;padding:1px 3px;font-size:14px;line-height:1;transition:opacity .15s,color .15s}.project-delete:hover{color:var(--red)}.project-menu{flex-shrink:0;position:relative}.project-menu-trigger{width:24px;height:24px;color:var(--text-dim);opacity:0;border-radius:4px;justify-content:center;align-items:center;padding:0;transition:opacity .15s,color .15s,background .15s;display:flex}.project-menu-trigger:hover{color:var(--text-muted);background:var(--surface-2)}.project-menu-trigger:focus-visible{opacity:1;outline:2px solid var(--accent)}.project-menu-dropdown{background:var(--bg);border:1px solid var(--border);z-index:1000;border-radius:6px;min-width:110px;position:fixed;overflow:hidden;box-shadow:0 4px 14px #0000001a}.project-menu-item{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;padding:7px 12px;font-size:13px;transition:background .1s;display:block}.project-menu-item:hover{background:var(--surface-hover)}.project-menu-item--danger{color:var(--red)}.project-rename-input{border:none;border-bottom:1px solid var(--accent);font:inherit;color:var(--text);background:0 0;outline:none;flex:1;min-width:0;padding:8px 4px 7px 12px;font-size:13px}.sidebar-empty{color:var(--text-dim);text-align:center;padding:16px 12px;font-size:12px;font-style:italic}.sidebar-footer{border-top:1px solid var(--border);padding:10px 8px 18px}.add-project-btn{width:100%;color:var(--text-muted);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;transition:background .15s,color .15s;display:flex}.add-project-btn:hover{background:var(--surface-hover);color:var(--text)}.add-project-btn-icon{color:var(--accent);font-size:16px;line-height:1}.new-project-form{padding:2px 4px}.new-project-input{background:var(--surface-2);border:1px solid var(--border-strong);width:100%;color:var(--text);border-radius:6px;padding:8px 12px;font-size:13px;transition:border-color .15s}.new-project-input::placeholder{color:var(--text-dim)}.new-project-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.task-panel{background:var(--bg);flex-direction:column;flex:1;display:flex;overflow:hidden}.task-panel--empty{justify-content:center;align-items:center;display:flex}.empty-state{text-align:center}.empty-icon{color:var(--text-dim);margin-bottom:20px;font-size:36px;display:block}.empty-title{color:var(--text-muted);margin-bottom:8px;font-size:18px;font-weight:500}.empty-sub{color:var(--text-dim);font-size:13px}.task-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:73px;padding:0 52px;display:flex}.task-header-left{min-width:0}.task-project-title{letter-spacing:-.01em;color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:24px;font-weight:600;line-height:1.2;overflow:hidden}.task-meta{color:var(--text-muted);letter-spacing:.03em;font-family:JetBrains Mono,monospace;font-size:11.5px}.task-header-current-time{color:var(--text-muted);letter-spacing:.04em;font-family:JetBrains Mono,monospace;font-size:13px}.task-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.view-settings-wrap{position:relative}.view-settings-btn{width:34px;height:34px;color:var(--text-muted);border:1px solid var(--border);background:0 0;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:flex}.view-settings-btn:hover,.view-settings-btn--open{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.view-settings-menu{border:1px solid var(--border);z-index:50;background:#fff;border-radius:8px;min-width:180px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 4px 16px #0000001a,0 1px 4px #0000000f}.view-settings-item{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:9px;padding:7px 10px;font-size:13px;transition:background .12s;display:flex}.view-settings-item:hover{background:var(--surface)}.view-settings-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.add-task-btn{background:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent);white-space:nowrap;letter-spacing:.02em;border-radius:6px;flex-shrink:0;padding:8px 18px;font-size:12.5px;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s}.add-task-btn:hover{background:var(--accent-dim);border-color:#2563eb59}.new-task-form{flex-shrink:0;padding:20px 52px 4px;animation:.2s itemIn}.new-task-input{border-bottom:2px solid var(--accent);width:100%;color:var(--text);background:0 0;padding:10px 0;font-size:15px;transition:border-color .15s}.new-task-input::placeholder{color:var(--text-dim)}.new-task-hint{color:var(--text-dim);letter-spacing:.04em;margin-top:6px;font-family:JetBrains Mono,monospace;font-size:10.5px}.task-list{flex:1;padding:12px 52px 32px;overflow-y:auto}.task-list::-webkit-scrollbar{width:4px}.task-list::-webkit-scrollbar-track{background:0 0}.task-list::-webkit-scrollbar-thumb{background:var(--text-dim);border-radius:2px}.sprint-projects{margin-bottom:4px}.sprint-projects-list{flex-direction:column;padding-bottom:8px;display:flex}.sprint-project-item{width:100%;color:var(--accent);border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;align-items:center;padding:11px 0 11px 65px;font-size:13px;font-weight:500;transition:color .15s;display:flex}.sprint-project-item:last-child{border-bottom:none}.sprint-project-item:hover{color:var(--accent-bright)}.task-loading{text-align:center;color:var(--text-dim);padding:48px 0;font-size:13px;font-style:italic}.task-empty{text-align:center;padding:48px 0}.task-empty p{color:var(--text-dim);font-size:13px;font-style:italic}.completed-divider{color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:24px 0 10px;font-family:JetBrains Mono,monospace;font-size:10px;transition:color .15s;display:flex}.completed-divider:hover{color:var(--text-muted)}.completed-divider:after{content:"";background:var(--border);flex:1;height:1px}.task-group+.task-group .task-group-header{padding-top:24px}.task-group-header{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:8px 0 6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500;display:flex}.task-group-header:after{content:"";background:var(--border);flex:1;height:1px}.task-row{border-bottom:1px solid var(--border);cursor:pointer;opacity:0;animation:.25s forwards itemIn;animation-delay:calc(var(--i) * 30ms);align-items:center;gap:14px;padding:11px 0;display:flex;position:relative}.task-row:last-child{border-bottom:none}.task-row--deleting{animation:.25s forwards rowOut!important}.task-row--picker-open{z-index:10}.task-check{border:1.5px solid var(--border-strong);color:#fff;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:17px;height:17px;transition:border-color .15s,background .2s,box-shadow .15s;display:flex}.task-check:hover{border-color:var(--green);box-shadow:0 0 0 3px var(--green-dim)}.task-check--done{background:var(--green);border-color:var(--green)}.task-check--done:hover{box-shadow:none}.task-check--quick{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.task-check--quick:hover{border-color:var(--accent-bright);box-shadow:0 0 0 4px var(--accent-glow)}.task-check--focus{border-color:var(--orange);box-shadow:0 0 0 3px var(--orange-dim)}.task-check--focus:hover{border-color:var(--orange);box-shadow:0 0 0 4px var(--orange-dim)}.task-check svg{width:9px;height:9px}.task-title{color:var(--text);flex:1;min-width:0;font-size:14.5px;line-height:1.4}.task-row--done .task-title{color:var(--text-dim);text-decoration:line-through;-webkit-text-decoration-color:var(--text-dim);text-decoration-color:var(--text-dim)}.drag-handle{width:20px;color:var(--text-dim);cursor:grab;opacity:0;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;padding:0 2px;transition:opacity .15s,color .15s;display:flex}.drag-handle:active{cursor:grabbing}.drag-handle-spacer{flex-shrink:0;width:20px}.drag-handle--project{width:16px}.task-row:hover .drag-handle,.project-item:hover .drag-handle{opacity:1}.task-row--dragging{opacity:.5;z-index:1}.project-item--dragging{opacity:.5}.task-col{flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.task-col--date{width:88px;position:relative}.task-col--sprint{width:58px}.task-col--project{width:130px}.task-tag{white-space:nowrap;text-overflow:ellipsis;border-radius:10px;max-width:100%;padding:2px 8px;font-size:11.5px;font-weight:500;overflow:hidden}.task-tag--date{background:var(--text);color:var(--bg);cursor:pointer;font-family:JetBrains Mono,monospace;font-size:11px}.task-tag--date-empty{background:var(--border);opacity:0;cursor:pointer;border-radius:10px;width:100%;height:18px;padding:0;transition:opacity .15s}.task-row:hover .task-tag--date-empty,.task-tag--date-empty--open{opacity:1}.date-picker-popup{z-index:200;background:var(--bg);border:1px solid var(--border-strong);border-radius:8px;flex-direction:column;gap:0;width:210px;padding:6px;display:flex;position:absolute;top:calc(100% + 5px);right:0;box-shadow:0 4px 16px #0000001a}.date-picker-quick{gap:2px;display:flex}.date-picker-opt{text-align:left;color:var(--text);white-space:nowrap;background:0 0;border-radius:5px;flex:1;padding:5px 8px;font-size:12px;transition:background .1s}.date-picker-opt:hover{background:var(--surface)}.date-picker-opt--clear{color:var(--text-muted);flex:none}.date-picker-divider{background:var(--border);height:1px;margin:5px 0}.mini-cal-header{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.mini-cal-title{color:var(--text);font-size:12px;font-weight:600}.mini-cal-nav{color:var(--text-muted);border-radius:4px;padding:1px 5px;font-size:15px;line-height:1;transition:background .1s,color .1s}.mini-cal-nav:hover{background:var(--surface);color:var(--text)}.mini-cal-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.mini-cal-weekday{color:var(--text-dim);text-align:center;padding-bottom:3px;font-size:10px;font-weight:600}.mini-cal-day{text-align:center;color:var(--text);border-radius:4px;padding:3px 0;font-size:11.5px;line-height:1.4;transition:background .1s}.mini-cal-day:hover{background:var(--surface)}.mini-cal-day--today{color:var(--accent);font-weight:700}.mini-cal-day--selected{background:var(--text);color:var(--bg)}.mini-cal-day--selected.mini-cal-day--today{background:var(--accent);color:#fff}.task-tag--overdue{background:var(--red);color:#fff}.task-tag--sprint{background:var(--green-dim);color:var(--green);border:1px solid #16a34a33}.task-tag--project{background:var(--accent-glow);color:var(--accent);border:1px solid var(--accent-border)}.task-delete{color:var(--text-dim);opacity:0;border-radius:4px;flex-shrink:0;padding:2px 5px;font-size:17px;line-height:1;transition:opacity .15s,color .15s,background .15s}.task-row:hover .task-delete{opacity:1}.task-delete:hover{color:var(--red);background:#c0504a1a}.progress-bar-wrap{background:var(--border);flex-shrink:0;height:2px}.progress-bar{height:100%;width:var(--progress,0%);background:var(--accent);transition:width .5s cubic-bezier(.4,0,.2,1)}.project-desc{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-bottom:20px;transition:border-color .15s;overflow:hidden}.project-desc:focus-within{border-color:var(--border-strong)}.project-desc-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:9px 12px;display:flex}.project-desc-label{color:var(--text-muted);font-size:11.5px;font-weight:500}.project-desc-chevron{color:var(--text-dim);align-items:center;transition:transform .18s;display:flex}.project-desc-chevron--open{transform:rotate(180deg)}.project-desc-body{border-top:1px solid var(--border);padding:10px 12px 12px}.project-desc-tabs{background:var(--surface-2);border-radius:5px;gap:2px;width:fit-content;margin-bottom:10px;padding:2px;display:flex}.project-desc-textarea{width:100%;min-height:200px;color:var(--text);resize:none;background:0 0;border:none;outline:none;padding:0;font-family:inherit;font-size:14.5px;line-height:1.65}.project-desc-textarea::placeholder{color:var(--text-dim)}.project-desc-preview{min-height:200px;color:var(--text);font-size:14.5px;line-height:1.65}.project-desc-preview h1,.project-desc-preview h2,.project-desc-preview h3{margin:.7em 0 .3em;font-weight:600;line-height:1.3}.project-desc-preview h1{font-size:1.3em}.project-desc-preview h2{font-size:1.1em}.project-desc-preview h3{font-size:1em}.project-desc-preview p{margin:.45em 0}.project-desc-preview ul,.project-desc-preview ol{margin:.45em 0;padding-left:1.4em}.project-desc-preview li{margin:.2em 0}.project-desc-preview code{background:var(--surface-2);border-radius:3px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:.88em}.project-desc-preview pre{background:var(--surface-2);border-radius:6px;margin:.6em 0;padding:10px 14px;overflow-x:auto}.project-desc-preview pre code{background:0 0;padding:0}.project-desc-preview blockquote{border-left:3px solid var(--border-strong);color:var(--text-muted);margin:.5em 0;padding:2px 12px}.project-desc-preview strong{font-weight:600}.project-desc-preview a{color:var(--accent);text-decoration:none}.project-desc-preview a:hover{text-decoration:underline}.project-desc-preview hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.project-desc-preview>:first-child{margin-top:0}.project-desc-preview>:last-child{margin-bottom:0}.project-desc-preview--clickable{cursor:text}.modal-backdrop{z-index:100;background:#00000040;justify-content:center;align-items:center;animation:.15s backdropIn;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;flex-direction:column;width:640px;max-width:calc(100vw - 32px);max-height:calc(100vh - 64px);animation:.18s modalIn;display:flex;box-shadow:0 8px 40px #0000001f,0 2px 8px #0000000f}.modal-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.modal-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:500}.modal-close{color:var(--text-muted);border-radius:4px;padding:2px 6px;font-size:20px;line-height:1;transition:color .15s,background .15s}.modal-close:hover{color:var(--text);background:var(--surface)}.modal-body{flex-direction:column;gap:16px;padding:16px 24px 20px;display:flex;overflow-y:auto}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--text-muted);font-size:11.5px;font-weight:500}.field-label-row{justify-content:space-between;align-items:center;display:flex}.md-tabs{background:var(--surface);border-radius:5px;gap:2px;padding:2px;display:flex}.md-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 8px;font-family:inherit;font-size:11px;font-weight:500;transition:background .12s,color .12s}.md-tab:hover{color:var(--text)}.md-tab--active{color:var(--text);background:#fff;box-shadow:0 1px 3px #00000014}.field-md-preview{background:var(--surface);border:1px solid var(--border);min-height:120px;color:var(--text);border-radius:6px;padding:9px 12px;font-size:14px;line-height:1.6;overflow-y:auto}.field-md-preview--clickable{cursor:text}.field-md-preview--clickable:hover{border-color:var(--border-strong)}.field-md-preview h1,.field-md-preview h2,.field-md-preview h3{margin:.6em 0 .3em;font-weight:600;line-height:1.3}.field-md-preview h1{font-size:1.2em}.field-md-preview h2{font-size:1.05em}.field-md-preview h3{font-size:.95em}.field-md-preview p{margin:.4em 0}.field-md-preview ul,.field-md-preview ol{margin:.4em 0;padding-left:1.4em}.field-md-preview li{margin:.15em 0}.field-md-preview code{background:var(--surface-2);border-radius:3px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:.88em}.field-md-preview pre{background:var(--surface-2);border-radius:6px;margin:.5em 0;padding:10px 12px;overflow-x:auto}.field-md-preview pre code{background:0 0;padding:0;font-size:.9em}.field-md-preview blockquote{border-left:3px solid var(--border-strong);color:var(--text-muted);margin:.5em 0;padding:2px 12px}.field-md-preview strong{font-weight:600}.field-md-preview a{color:var(--accent);text-decoration:none}.field-md-preview a:hover{text-decoration:underline}.field-md-preview hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.field-md-preview>:first-child{margin-top:0}.field-md-preview>:last-child{margin-bottom:0}.field-md-empty{color:var(--text-dim);font-style:italic}.field-input{box-sizing:border-box;width:100%;height:38px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:9px 12px;font-family:inherit;font-size:14.5px;font-weight:500;transition:border-color .15s,box-shadow .15s}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.field-textarea{width:100%;color:var(--text);background:var(--surface);border:1px solid var(--border);resize:vertical;border-radius:6px;min-height:88px;padding:9px 12px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .15s,box-shadow .15s}.field-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.field-row{gap:12px;display:flex}.field--half{flex:1}.field-select{box-sizing:border-box;width:100%;height:38px;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border-radius:6px;padding:9px 32px 9px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.field-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.effort-picker{gap:6px;display:flex}.effort-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:6px;flex:1;padding:7px 10px;font-family:inherit;font-size:12.5px;font-weight:500;transition:border-color .15s,color .15s,background .15s,box-shadow .15s}.effort-btn:hover{color:var(--text);background:var(--surface-hover)}.effort-btn--none.effort-btn--active{color:#fff;background:#555;border-color:#555;box-shadow:0 0 0 3px #0000001a}.effort-btn--quick{border-color:var(--accent);color:var(--accent)}.effort-btn--quick:hover{background:var(--accent-dim)}.effort-btn--quick.effort-btn--active{background:var(--accent);border-color:var(--accent-bright);color:#fff;box-shadow:0 0 0 3px var(--accent-glow)}.effort-btn--focus{border-color:var(--orange);color:var(--orange)}.effort-btn--focus:hover{background:var(--orange-dim)}.effort-btn--focus.effort-btn--active{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 0 0 3px var(--orange-dim)}.status-toggle{width:100%;color:var(--text-muted);background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:6px;padding:9px 12px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .15s}.status-toggle--done{color:var(--green);background:var(--green-dim);border-color:#16a34a33}.field-meta{color:var(--text-dim);gap:16px;padding-top:2px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.modal-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:16px 24px 20px;display:flex}.modal-footer-right{gap:8px;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:8px 18px;font-family:inherit;font-size:13.5px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.btn--ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.btn--ghost:hover{background:var(--surface);color:var(--text)}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn--primary:hover:not(:disabled){background:var(--accent-bright);border-color:var(--accent-bright)}.btn--primary:disabled{opacity:.45;cursor:not-allowed}.btn--danger{color:#e05252;background:0 0;border-color:#0000}.btn--danger:hover{background:#e052521a;border-color:#e052524d}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:scale(.97)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes itemIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes rowOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-12px)}}.task-drag-overlay{background:var(--bg);border:1px solid var(--accent-border);color:var(--text);cursor:grabbing;white-space:nowrap;text-overflow:ellipsis;border-radius:8px;max-width:280px;padding:9px 14px;font-size:13.5px;overflow:hidden;box-shadow:0 8px 24px #00000024}.project-item--drop-target{outline:1px dashed var(--accent-border);outline-offset:-1px;background:var(--accent-dim)!important}.settings-page{flex:1;padding:44px 52px 52px;overflow-y:auto}.settings-header{margin-bottom:32px}.settings-title{letter-spacing:-.01em;color:var(--text);margin-bottom:4px;font-size:24px;font-weight:600}.settings-subtitle{color:var(--text-muted);font-size:13.5px}.settings-section{background:var(--bg);border:1px solid var(--border);border-radius:10px;max-width:560px;overflow:hidden}.settings-section-title{color:var(--text);border-bottom:1px solid var(--border);background:var(--surface);padding:14px 20px;font-size:13px;font-weight:600}.settings-row{flex-direction:column;gap:6px;padding:18px 20px;display:flex}.settings-label{color:var(--text);font-size:13px;font-weight:500}.settings-hint{color:var(--text-muted);margin-bottom:4px;font-size:12.5px}.settings-fields{flex-direction:column;gap:16px;margin-bottom:12px;display:flex}.settings-fields>div{flex-direction:column;gap:4px;max-width:320px;display:flex}.settings-field-row{align-items:center;gap:10px;display:flex}.settings-field-row--actions{margin-top:4px}.settings-select{width:100%}.settings-loading{color:var(--text-muted);padding:18px 20px;font-size:13px;font-style:italic}.settings-muted{color:var(--text-muted);font-size:13px}.settings-error{color:var(--red);margin-top:2px;font-size:12.5px}.sprint-list{flex:none}.sprint-year-sub{color:var(--text-dim);margin-left:5px;font-family:JetBrains Mono,monospace;font-size:11px}.add-sprint-btn{width:100%;color:var(--text-muted);border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:12.5px;transition:background .15s,color .15s;display:flex}.add-sprint-btn:hover{background:var(--surface-hover);color:var(--text)}.new-sprint-form{align-items:center;gap:4px;padding:2px 4px;display:flex}.sprint-week-input,.sprint-year-input{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);text-align:center;border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.sprint-week-input{width:52px}.sprint-year-input{width:68px}.sprint-week-input:focus,.sprint-year-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.sprint-form-error{color:var(--red);white-space:nowrap;font-size:11px}.project-sprint-select{color:var(--text-muted);background:var(--surface);border:1px solid var(--border);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' fill='none'%3E%3Cpath d='M1 1l3 3 3-3' stroke='%23888' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 7px center;background-repeat:no-repeat;border-radius:4px;margin-top:4px;padding:3px 24px 3px 8px;font-family:JetBrains Mono,monospace;font-size:12px;transition:border-color .15s,color .15s}.project-sprint-select:hover{border-color:var(--border-strong);color:var(--text)}.project-sprint-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);color:var(--text);outline:none}.day-view-layout{flex-direction:column;display:flex}.day-view-body{flex:1;display:flex;overflow:hidden}.day-tasks-col{flex-direction:column;flex:2;display:flex;overflow:hidden}.day-tasks-col .task-list{flex:1;overflow-y:auto}.day-calendar-col{border-left:1px solid var(--border);flex-direction:column;flex:1;display:flex;overflow:hidden}.cal-grid-header{color:var(--text-muted);border-bottom:1px solid var(--border);letter-spacing:.02em;text-transform:uppercase;flex-shrink:0;padding:12px 16px 8px;font-size:12px;font-weight:500}.cal-grid-scroll{flex:1;position:relative;overflow-y:auto}.cal-grid-inner{height:1440px;position:relative}.cal-hour-row{border-top:1px solid var(--border);height:60px;display:flex;position:absolute;left:0;right:0}.cal-hour-label{width:46px;color:var(--text-dim);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:3px 6px 0;font-family:JetBrains Mono,monospace;font-size:10.5px}.cal-hour-track{flex:1;position:relative}.cal-slots-layer{z-index:2;position:absolute;inset:0 0 0 46px}.cal-slot{border-bottom:1px dashed #0000;height:30px;transition:background 80ms}.cal-slot--over{background:var(--accent-glow);border-bottom-color:var(--accent-border);border-radius:3px}.cal-slot-preview{color:var(--accent);white-space:nowrap;text-overflow:ellipsis;padding:0 6px;font-size:11px;font-weight:500;line-height:30px;overflow:hidden}.cal-event{z-index:3;background:var(--accent-dim);border-left:3px solid var(--accent);color:var(--text);cursor:default;border-radius:4px;min-height:18px;padding:3px 6px;font-size:11.5px;line-height:1.35;position:absolute;left:48px;right:6px;overflow:hidden}.cal-now-line{background:var(--red);z-index:4;pointer-events:none;height:1px;position:absolute;left:40px;right:0}.cal-now-dot{background:var(--red);border-radius:50%;width:7px;height:7px;position:absolute;top:-3px;left:-4px}.cal-event-delete{width:16px;height:16px;color:var(--text-muted);opacity:0;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;transition:opacity .1s,background .1s;display:flex;position:absolute;top:2px;right:3px}.cal-event:hover .cal-event-delete{opacity:1}.cal-event-delete:hover{color:var(--red);background:#0000001a}.cal-resize-handle{cursor:ns-resize;opacity:0;background-image:radial-gradient(circle,currentColor 1px,#0000 1px);background-position:50%;background-repeat:repeat-x;background-size:6px 4px;border-radius:0 0 4px 4px;height:8px;transition:opacity .1s;position:absolute;bottom:0;left:0;right:0}.cal-event:hover .cal-resize-handle,.cal-event--resizing .cal-resize-handle{opacity:.35}.cal-event--resizing{opacity:.85;-webkit-user-select:none;user-select:none}.task-cal-icon{color:var(--accent);opacity:.65;vertical-align:middle;flex-shrink:0;margin-left:5px;position:relative;top:-1px}.cal-event-title{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.cal-event-time{color:var(--text-muted);margin-top:1px;font-size:10px}.cal-allday-banner{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;gap:4px;padding:5px 10px;display:flex}.cal-allday-chip{background:var(--surface-2);color:var(--text-muted);border-radius:10px;padding:1px 8px;font-size:11px}.cal-empty{color:var(--text-dim);text-align:center;padding:32px 16px;font-size:12.5px;line-height:1.6}.btn--sm{height:28px;padding:4px 11px;font-size:12px}.settings-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;padding-bottom:0;display:flex}.settings-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:color .12s,border-color .12s}.settings-tab:hover{color:var(--text)}.settings-tab--active{color:var(--text);border-bottom-color:var(--accent)}.settings-page .settings-section+.settings-section{margin-top:20px}.budget-list{flex-direction:column;gap:4px;padding:12px 20px 16px;display:flex}.budget-category{border:1px solid var(--border);border-radius:7px;margin-bottom:8px;overflow:hidden}.budget-category-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 12px;display:flex}.budget-category-name{color:var(--text);flex:1;font-size:13px;font-weight:600}.budget-delete-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:20px;height:20px;padding:0 2px;font-size:16px;line-height:1;transition:color .1s,background .1s;display:flex}.budget-delete-btn:hover{color:var(--red);background:#dc262614}.budget-items{flex-direction:column;gap:2px;padding:6px 12px 8px 20px;display:flex}.budget-item{align-items:center;gap:8px;padding:4px 0;display:flex}.budget-item-name{color:var(--text);flex:1;font-size:13px}.budget-add-row{align-items:center;gap:6px;margin-top:4px;display:flex}.budget-add-row--cat{padding:4px 0 0}.budget-add-input{flex:1;height:28px;padding:0 8px;font-size:12.5px}.budget-add-trigger{cursor:pointer;color:var(--text-muted);background:0 0;border:none;margin-top:2px;padding:3px 0;font-size:12px;transition:color .1s}.budget-add-trigger:hover{color:var(--accent)}.budget-add-trigger--cat{padding:6px 0 2px;font-size:12.5px}.time-view-layout{flex-direction:column;display:flex;overflow:hidden}.time-tracker-bar{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:center;gap:10px;padding:8px 16px;display:flex}.time-view-columns{flex:1;display:flex;overflow:hidden}.te-grid-col{border-right:1px solid var(--border);flex-direction:column;flex:1;display:flex;overflow:hidden}.time-calendar-col,.unified-time-grid{flex-direction:column;flex:1;display:flex;overflow:hidden}.unified-grid-headers{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.unified-header-gutter{flex-shrink:0;width:46px}.unified-header-col{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;flex:1;padding:12px 16px 8px;font-size:12px;font-weight:500}.unified-header-col+.unified-header-col{border-left:1px solid var(--border)}.unified-grid-inner{height:1440px;display:flex;position:relative}.unified-hour-gutter{flex-shrink:0;width:46px;position:relative}.unified-hour-label{color:var(--text-dim);-webkit-user-select:none;user-select:none;padding:3px 6px 0;font-family:JetBrains Mono,monospace;font-size:10.5px;position:absolute;left:0;right:0}.unified-hour-line{border-top:1px solid var(--border);pointer-events:none;position:absolute;left:46px;right:0}.unified-now-line{background:var(--red);z-index:4;pointer-events:none;height:1px;position:absolute;left:40px;right:0}.unified-lane{border-left:1px solid var(--border);flex:1;min-width:0;position:relative}.unified-event{z-index:3;background:var(--accent-dim);border-left:3px solid var(--accent);color:var(--text);cursor:default;border-radius:4px;min-height:18px;padding:3px 6px;font-size:11.5px;line-height:1.35;position:absolute;left:4px;right:6px;overflow:hidden}.unified-event:hover .cal-event-delete{opacity:1}.unified-event:hover .cal-resize-handle,.unified-event.cal-event--resizing .cal-resize-handle{opacity:.35}.unified-event.cal-event--resizing{opacity:.85;-webkit-user-select:none;user-select:none}.unified-slots-layer{z-index:2;position:absolute;inset:0}.time-tracker-empty{color:var(--text-muted);font-size:13px}.time-tracker-combobox{flex:1;min-width:0;position:relative}.time-tracker-input{width:100%;height:34px;color:var(--text);background:var(--surface);border:1px solid var(--border);box-sizing:border-box;border-radius:6px;padding:0 10px;font-family:inherit;font-size:13.5px;font-weight:400;transition:border-color .15s,box-shadow .15s}.time-tracker-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.time-tracker-input:disabled{color:var(--text-muted);background:var(--surface);cursor:default}.time-tracker-suggestions{background:var(--bg);border:1px solid var(--border);z-index:100;border-radius:7px;max-height:220px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden auto;box-shadow:0 4px 16px #0000001a}.time-tracker-suggestion{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;background:0 0;align-items:center;gap:5px;width:100%;padding:7px 11px;font-size:13px;transition:background .1s;display:flex}.time-tracker-suggestion:last-child{border-bottom:none}.time-tracker-suggestion:hover{background:var(--accent-dim)}.time-tracker-suggestion-cat{color:var(--text-muted);white-space:nowrap}.time-tracker-suggestion-sep{color:var(--text-dim);flex-shrink:0}.time-tracker-suggestion-name{color:var(--text);font-weight:500}.time-tracker-clock{letter-spacing:.04em;color:var(--text-dim);white-space:nowrap;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:400;transition:color .3s}.time-tracker-clock--running{color:var(--text)}.time-tracker-start-btn,.time-tracker-stop-btn{cursor:pointer;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:5px 14px;font-size:13px;font-weight:500;transition:background .15s,opacity .15s;display:flex}.time-tracker-start-btn{background:var(--accent);color:#fff}.time-tracker-start-btn:hover:not(:disabled){background:var(--accent-bright)}.time-tracker-start-btn:disabled{opacity:.4;cursor:default}.time-tracker-stop-btn{background:var(--red);color:#fff}.time-tracker-stop-btn:hover{background:#b91c1c}.time-tracker-play-icon{border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:7px solid;width:0;height:0;display:block}.time-tracker-stop-icon{background:currentColor;border-radius:1px;width:8px;height:8px;display:block}.time-entries-section{width:100%;max-width:560px}.time-entries-heading{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px;padding:0 2px;font-size:11px;font-weight:500}.time-entries-list{border:1px solid var(--border);border-radius:10px;overflow:hidden}.time-entry-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.time-entry-row:last-child{border-bottom:none}.time-entry-label{flex:1;align-items:center;gap:5px;min-width:0;display:flex}.time-entry-cat{color:var(--text-muted);white-space:nowrap;font-size:12.5px}.time-entry-sep{color:var(--text-dim);font-size:12px}.time-entry-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.time-entry-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.time-entry-date{color:var(--text-muted);font-size:12px}.time-entry-time{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11.5px}.time-entry-duration{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:11.5px}.chat-trigger-btn{color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-border);white-space:nowrap;letter-spacing:.02em;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:8px 18px;font-size:12.5px;font-weight:500;transition:background .15s,border-color .15s,box-shadow .15s;display:flex}.chat-trigger-btn:hover{background:var(--accent-glow);border-color:var(--accent)}.chat-modal{background:var(--bg);border-radius:14px;flex-direction:column;width:680px;max-width:calc(100vw - 48px);height:620px;max-height:calc(100vh - 80px);animation:.18s modalIn;display:flex;overflow:hidden;box-shadow:0 8px 40px #00000026}.chat-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 16px 0 20px;display:flex}.chat-modal-title{color:var(--text);align-items:center;gap:7px;font-size:13.5px;font-weight:600;display:flex}.chat-modal-header-actions{align-items:center;gap:4px;display:flex}.chat-clear-btn{color:var(--text-muted);border-radius:5px;padding:4px 10px;font-size:12px;transition:background .15s,color .15s}.chat-clear-btn:hover{background:var(--surface-hover);color:var(--text)}.chat-messages{flex-direction:column;flex:1;gap:16px;padding:24px 20px 16px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.chat-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:32px 24px;display:flex}.chat-empty-title{color:var(--text);font-size:15px;font-weight:600}.chat-empty-sub{color:var(--text-muted);max-width:340px;font-size:13px;line-height:1.55}.chat-suggestions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.chat-suggestion{color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-border);border-radius:20px;padding:5px 14px;font-size:12.5px;transition:background .15s,border-color .15s}.chat-suggestion:hover{background:var(--accent-glow);border-color:var(--accent)}.chat-message{display:flex}.chat-message--user{justify-content:flex-end}.chat-message--assistant{justify-content:flex-start}.chat-bubble{border-radius:14px;max-width:72%;padding:10px 14px;font-size:13.5px;line-height:1.6}.chat-bubble--user{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-bubble--assistant{background:var(--surface);color:var(--text);border-bottom-left-radius:4px}.chat-bubble--assistant p{margin:0 0 8px}.chat-bubble--assistant p:last-child{margin-bottom:0}.chat-bubble--assistant ul,.chat-bubble--assistant ol{margin:0 0 8px;padding-left:18px}.chat-bubble--assistant li{margin-bottom:2px}.chat-bubble--assistant code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:12px}.chat-bubble--assistant pre{background:var(--surface-2);border-radius:8px;margin:6px 0;padding:10px 12px;overflow-x:auto}.chat-bubble--assistant pre code{background:0 0;padding:0}.chat-bubble--assistant h1,.chat-bubble--assistant h2,.chat-bubble--assistant h3{margin:10px 0 4px;font-size:13.5px;font-weight:600}.chat-bubble--assistant strong{font-weight:600}.chat-bubble--assistant em{font-style:italic}.chat-bubble--assistant blockquote{border-left:3px solid var(--border-strong);color:var(--text-muted);margin:4px 0;padding-left:10px}.chat-typing{align-items:center;gap:4px;padding:2px 0;display:flex}.chat-typing span{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite chatDot}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes chatDot{0%,80%,to{opacity:.4;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}.chat-tool-status{color:var(--text-tertiary);letter-spacing:.01em;font-size:12px;font-style:italic}.chat-input-row{border-top:1px solid var(--border);background:var(--bg);flex-shrink:0;align-items:flex-end;gap:8px;padding:12px 16px 16px;display:flex}.chat-input{resize:none;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;outline:none;flex:1;max-height:160px;padding:9px 14px;font-size:13.5px;line-height:1.5;transition:border-color .15s;overflow-y:auto}.chat-input:focus{border-color:var(--accent);background:var(--bg)}.chat-input::placeholder{color:var(--text-dim)}.chat-input:disabled{opacity:.6}.chat-send-btn{background:var(--accent);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s,opacity .15s;display:flex}.chat-send-btn:hover:not(:disabled){background:var(--accent-bright)}.chat-send-btn:disabled{opacity:.35;cursor:default}.te-event{cursor:default}.te-event--live{animation:2s ease-in-out infinite te-pulse}@keyframes te-pulse{0%,to{opacity:1}50%{opacity:.7}}
