:root{--bg:#0b0d12;--panel:#12151c;--panel-alt:#171b24;--border:#242938;--border-soft:#1b1f2b;--text:#d7dbe4;--text-dim:#7a8194;--text-faint:#454b5c;--amber:#e3a548;--teal:#5ecfc3;--red:#d97b7b;--amber-dim:color-mix(in srgb, var(--amber) 45%, black);--amber-bg:color-mix(in srgb, var(--amber) 12%, transparent);--teal-dim:color-mix(in srgb, var(--teal) 45%, black);--teal-bg:color-mix(in srgb, var(--teal) 12%, transparent);--red-dim:color-mix(in srgb, var(--red) 45%, black);--red-bg:color-mix(in srgb, var(--red) 12%, transparent);--radius:6px}[data-theme=dracula]{--bg:#282a36;--panel:#2f3241;--panel-alt:#383a4a;--border:#454866;--border-soft:#3a3d54;--text:#f8f8f2;--text-dim:#b0b3c8;--text-faint:#6272a4;--amber:#ffb86c;--teal:#8be9fd;--red:#f55}[data-theme=monokai]{--bg:#272822;--panel:#2e2f28;--panel-alt:#3a3b32;--border:#4d4e42;--border-soft:#3f4038;--text:#f8f8f2;--text-dim:#b3b3a1;--text-faint:#75715e;--amber:#e6db74;--teal:#66d9ef;--red:#f92672}[data-theme=solarized]{--bg:#002b36;--panel:#073642;--panel-alt:#0a4552;--border:#10606f;--border-soft:#0c4e5c;--text:#eee8d5;--text-dim:#a3b6b6;--text-faint:#6e8b8b;--amber:#b58900;--teal:#2aa198;--red:#dc322f}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:JetBrains Mono,ui-monospace,monospace}button,input,select,textarea{font-family:inherit}.wrap{max-width:1240px;margin:0 auto;padding:28px 20px 60px}.titlebar{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.titlebar-left{flex-wrap:wrap;flex:1;align-items:center;gap:14px;min-width:0;display:flex}.dots{flex-shrink:0;gap:7px;display:flex}.dot{border-radius:50%;width:10px;height:10px}.dot.r{background:var(--red)}.dot.a{background:var(--amber)}.dot.t{background:var(--teal)}.fname{color:var(--text-dim);flex-shrink:0;font-size:13px}.status{color:var(--teal);flex-shrink:0;align-items:center;gap:8px;font-size:12px;display:flex}.status .clock{color:var(--text-dim)}.board-switch{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.board-chip{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:11.5px;transition:color .15s,border-color .15s}.board-chip:hover{color:var(--text-dim);border-color:var(--border-soft)}.board-chip.active{color:var(--amber);border-color:var(--amber-dim);background:var(--amber-bg)}.board-chip.add{color:var(--teal);border-color:var(--teal-dim)}.board-chip.add:hover{background:var(--panel-alt)}.icon-btn{border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:5px 8px;font-size:11px;display:inline-flex}.icon-btn:hover{color:var(--text);border-color:var(--border-soft)}.theme-dropdown-wrap{display:inline-block;position:relative}.theme-select-hidden{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}.data-manager{gap:6px;display:flex}.body-wrap{border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);border-top:none;padding:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.panel-head{border-bottom:1px solid var(--border-soft);background:var(--panel-alt);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;display:flex}.panel-head .path{color:var(--text-dim);font-size:12px}.panel-head .path .file{color:var(--amber)}.filter-bar{border-bottom:1px solid var(--border-soft);flex-wrap:nowrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.filter-bar input[type=text]{background:var(--bg);border:1px solid var(--border);min-width:140px;color:var(--text);border-radius:4px;outline:none;flex:1;padding:6px 9px;font-size:12.5px}.filter-bar select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;padding:6px 8px;font-size:11.5px}.filter-popup-wrap{position:relative}.filter-icon-btn{background:var(--bg);border:1px solid var(--border);color:var(--text-faint);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:5px 9px;font-size:14px;line-height:1;transition:color .15s,border-color .15s,background .15s;display:flex}.filter-icon-btn:hover{color:var(--accent);border-color:var(--accent)}.filter-icon-btn.active{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent)}.filter-popup{z-index:200;background:var(--panel);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;min-width:180px;max-height:80vh;padding:12px 14px;display:flex;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 6px 24px #0000008c}.filter-popup label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:10.5px}.filter-popup label:first-child{margin-top:0}.filter-popup select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;width:100%;padding:5px 7px;font-size:12px}.reset-filter{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:4px;margin-top:6px;padding:4px 8px;font-size:11px}.reset-filter:hover{color:var(--accent);border-color:var(--accent)}.add-bar{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}.add-bar .prefix{color:var(--text-faint);font-size:13px}.add-bar input[type=text].task-text{min-width:160px;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13.5px}.add-bar input[type=text].task-text::placeholder{color:var(--text-faint)}.add-bar select,.add-bar input[type=date],.add-bar input.estimate,.add-bar input.gitlink{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;padding:5px 7px;font-size:11.5px}.add-bar input.estimate{width:56px}.add-bar input.gitlink{width:120px}button.add-btn{background:var(--panel);color:var(--teal);border:1px solid var(--teal-dim);cursor:pointer;white-space:nowrap;border-radius:4px;padding:6px 14px;font-size:12px;transition:background .15s,border-color .15s}button.add-btn:hover{background:var(--panel-alt);border-color:var(--teal)}button.add-btn:disabled{opacity:.4;cursor:not-allowed}.column-cards::-webkit-scrollbar{width:4px}.column-cards::-webkit-scrollbar-track{background:0 0}.column-cards::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.column-cards::-webkit-scrollbar-thumb:hover{background:var(--teal-dim)}.hint{color:var(--text-faint);padding:0 14px 10px;font-size:11px}.hint kbd{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);border-radius:3px;padding:1px 5px;font-size:10.5px}.kanban{grid-template-columns:repeat(4,1fr);gap:10px;padding:14px;display:grid}@media (max-width:900px){.kanban{grid-template-columns:1fr 1fr}}@media (max-width:560px){.kanban{grid-template-columns:1fr}}.column{background:var(--bg);border:1px solid var(--border-soft);border-radius:var(--radius);flex-direction:column;min-height:120px;display:flex}.column.dragover{border-color:var(--amber-dim);background:var(--amber-bg)}.column-head{border-bottom:1px solid var(--border-soft);color:var(--text-dim);justify-content:space-between;align-items:center;padding:9px 10px;font-size:11.5px;display:flex}.column-head .count{color:var(--text-faint)}.column-cards{flex-direction:column;flex:1;gap:8px;min-height:60px;max-height:480px;padding:8px;display:flex;overflow-y:auto}.column-empty{color:var(--text-faint);padding:14px 10px;font-size:11px}.card{background:var(--panel);border:1px solid var(--border);cursor:grab;border-radius:5px;padding:9px 10px}.card.dragging{opacity:.4}.card .txt{color:var(--text);word-break:break-word;font-size:12.5px;line-height:1.5}.card .meta{flex-wrap:wrap;gap:5px;margin-top:7px;display:flex}.pill{white-space:nowrap;border-radius:3px;padding:2px 6px;font-size:10px;line-height:1.5}.pill.pr-high{background:var(--red-bg);color:var(--red)}.pill.pr-med{background:var(--amber-bg);color:var(--amber)}.pill.pr-low{background:var(--teal-bg);color:var(--teal)}.pill.due{background:var(--panel-alt);color:var(--text-dim)}.pill.due.overdue{background:var(--red-bg);color:var(--red)}.pill.est{background:var(--panel-alt);color:var(--text-dim)}.pill.tag{background:var(--panel-alt);color:var(--teal)}.pill.git{background:var(--panel-alt);color:var(--text-dim);text-decoration:none}.pill.git:hover{color:var(--amber)}.subtasks{border-top:1px dashed var(--border-soft);margin-top:8px;padding-top:6px}.subtask-row{align-items:center;gap:6px;padding:2px 0;font-size:11.5px;display:flex}.subtask-row input[type=checkbox]{accent-color:var(--teal)}.subtask-row .stxt{color:var(--text-dim);flex:1}.subtask-row.done .stxt{color:var(--text-faint);text-decoration:line-through}.subtask-row .sdel{color:var(--text-faint);cursor:pointer;background:0 0;border:none;font-size:10px}.subtask-row .sdel:hover{color:var(--red)}.subtask-add{gap:6px;margin-top:4px;display:flex}.subtask-add input{background:var(--bg);border:1px solid var(--border-soft);color:var(--text);border-radius:3px;outline:none;flex:1;padding:3px 6px;font-size:11px}.subtask-add button{border:1px solid var(--border-soft);color:var(--text-dim);cursor:pointer;background:0 0;border-radius:3px;padding:3px 7px;font-size:10px}.subtask-progress{color:var(--text-faint);margin-left:4px;font-size:10px}.card-foot{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.card-move{gap:4px;display:flex}.card-move button{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:3px;padding:1px 6px;font-size:10px}.card-move button:hover{color:var(--amber);border-color:var(--amber-dim)}.card-move button:disabled{opacity:.25;cursor:default}.card .del{color:var(--text-faint);cursor:pointer;background:0 0;border:none;font-size:11px}.card .del:hover{color:var(--red)}.card .edit{color:var(--text-faint);cursor:pointer;background:0 0;border:none;font-size:11px}.card .edit:hover{color:var(--teal)}.side-row{grid-template-columns:1fr 2fr;gap:16px;margin-top:16px;display:grid}@media (max-width:900px){.side-row{grid-template-columns:1fr}}.panel-body{padding:14px}.spotify-playlist-bar{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;align-items:center;gap:6px;padding:10px 14px;display:flex}.spotify-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;flex:1;padding:7px 9px;font-size:12px}.spotify-form button{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-dim);cursor:pointer;border-radius:4px;padding:6px 12px;font-size:12px}.spotify-embed{padding:14px}.spotify-preview-hint{color:var(--text-dim);margin-bottom:8px;font-size:11px}.spotify-embed iframe{border:none;border-radius:8px;width:100%}.spotify-empty{text-align:center;color:var(--text-faint);padding:24px 14px;font-size:12px;line-height:1.7}.spotify-empty .kw{color:var(--teal)}.spotify-err{color:var(--red);padding:0 14px 12px;font-size:11px}.clock-wrap{display:inline-block;position:relative}.clock-hover-popup{background:var(--panel);border:1px solid var(--border);opacity:0;visibility:hidden;z-index:100;pointer-events:none;border-radius:6px;min-width:max-content;margin-top:8px;padding:4px;transition:opacity .2s,visibility .2s;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #0003}.clock-wrap:hover .clock-hover-popup{opacity:1;visibility:visible}.timer-body{flex-direction:column;align-items:center;gap:10px;padding:16px 14px;display:flex}.timer-modes{gap:6px;display:flex}.timer-modes button{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:11px}.timer-modes button.active{color:var(--amber);border-color:var(--amber-dim);background:var(--amber-bg)}.timer-display{letter-spacing:1px;color:var(--text);cursor:default;font-size:38px;font-weight:600}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:visible}.timer-track{background:var(--border-soft);border-radius:2px;width:100%;height:4px;overflow:hidden}.timer-fill{background:var(--amber);width:0%;height:100%;transition:width 1s linear}.timer-controls{gap:8px;margin-top:2px;display:flex}.timer-controls button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;padding:6px 12px;font-size:12px}.timer-controls button.primary{color:var(--amber);border-color:var(--amber-dim)}.timer-label{color:var(--text-faint);font-size:11px}.timer-stats{color:var(--text-dim);gap:14px;margin-top:2px;font-size:11px;display:flex}.timer-stats b{color:var(--teal)}.heatmap{border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:3px;padding:10px 14px;display:flex}.heat-cell{background:var(--border-soft);border-radius:3px;width:14px;height:14px}.heat-cell[data-level="1"]{background:var(--teal-bg)}.heat-cell[data-level="2"]{background:color-mix(in srgb, var(--teal) 45%, transparent)}.heat-cell[data-level="3"]{background:var(--teal)}.clocks{flex-direction:column;gap:6px;padding:6px 10px;display:flex}.clock-row{color:var(--text-dim);justify-content:space-between;gap:12px;font-size:11.5px;display:flex}.clock-row b{color:var(--text);font-weight:500}textarea.scratch{resize:vertical;width:100%;min-height:300px;color:var(--text);background:0 0;border:none;outline:none;padding:0;font-size:12.5px;line-height:1.6}textarea.scratch.code-mode{background:var(--bg);border-radius:4px;padding:10px;font-family:JetBrains Mono,monospace}textarea.scratch::placeholder{color:var(--text-faint)}.scratch-foot{border-top:1px solid var(--border-soft);color:var(--text-faint);justify-content:space-between;align-items:center;padding:8px 14px;font-size:11px;display:flex}.scratch-foot button{border:1px solid var(--border);color:var(--text-faint);cursor:pointer;background:0 0;border-radius:4px;padding:3px 8px;font-size:10.5px}.scratch-foot button.active{color:var(--amber);border-color:var(--amber-dim)}.scratchpad-panel{flex-direction:column;display:flex}.scratchpad-layout{flex:1;min-height:0;display:flex}.note-sidebar{border-right:1px solid var(--border-soft);background:var(--bg);flex-direction:column;flex-shrink:0;width:130px;display:flex}.note-sidebar-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.note-sidebar-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.note-add-btn{color:var(--teal);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.note-add-btn:hover{color:var(--text)}.note-list{flex:1;padding:4px 0;overflow-y:auto}.note-item{cursor:pointer;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:4px;padding:6px 10px;transition:background .1s,border-color .1s;display:flex}.note-item:hover{background:var(--panel-alt)}.note-item.active{background:var(--panel-alt);border-left-color:var(--amber)}.note-title{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11.5px;overflow:hidden}.note-item.active .note-title{color:var(--amber)}.note-title-input{color:var(--amber);background:0 0;border:none;outline:none;flex:1;width:100%;font-size:11.5px}.note-del-btn{color:var(--text-faint);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;padding:0;font-size:13px;line-height:1;transition:opacity .1s,color .1s}.note-item:hover .note-del-btn{opacity:1}.note-del-btn:hover{color:var(--red)}.scratchpad-editor{flex-direction:column;flex:1;min-width:0;display:flex}.data-manager{flex-wrap:nowrap;align-items:center;gap:6px;padding:0;display:flex}.data-manager button,.data-manager label{background:var(--panel-alt);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 12px;font-size:11.5px;display:inline-flex}.data-manager button:hover,.data-manager label:hover{color:var(--text);border-color:var(--border-soft)}.data-manager input[type=file]{display:none}.data-manager .msg{color:var(--teal);font-size:11px}.confirm-overlay{z-index:9999;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:90%;max-width:400px;padding:20px;box-shadow:0 10px 30px #00000080}.confirm-dialog p{color:var(--text);margin-bottom:20px;font-size:13px;line-height:1.6}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-actions button{background:var(--panel-alt);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:4px;padding:8px 16px;font-size:12px}.confirm-actions button:hover{background:var(--bg)}.confirm-actions button.danger{background:var(--red-bg);color:var(--red);border-color:var(--red)}.confirm-actions button.danger:hover{background:var(--red);color:var(--bg)}.data-manager .msg.error{color:var(--red)}.modal-overlay{z-index:200;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:min(480px,100%);max-height:90vh;overflow-y:auto}.modal-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-head span{color:var(--text-dim);font-size:12px}.modal-head button{color:var(--text-faint);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.modal-head button:hover{color:var(--text)}.modal-body{flex-direction:column;gap:10px;padding:16px;display:flex}.modal-field{flex-direction:column;gap:4px;display:flex}.modal-field label{color:var(--text-faint);font-size:11px}.modal-field input,.modal-field select,.modal-field textarea{background:var(--panel-alt);border:1px solid var(--border-soft);color:var(--text);border-radius:4px;outline:none;padding:6px 10px;font-family:inherit;font-size:13px}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{border-color:var(--border)}.modal-field textarea{resize:vertical;min-height:60px}.modal-foot{border-top:1px solid var(--border-soft);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.modal-foot button{cursor:pointer;border:1px solid var(--border);background:var(--panel-alt);color:var(--text-dim);border-radius:4px;padding:6px 14px;font-size:12px}.modal-foot button.primary{background:var(--amber-bg);border-color:var(--amber-dim);color:var(--amber)}.modal-foot button:hover{color:var(--text);border-color:var(--border-soft)}.modal-foot button.primary:hover{filter:brightness(1.15)}.cmdk-overlay{z-index:100;background:#0000008c;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.cmdk-box{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:min(560px,92vw);overflow:hidden}.cmdk-input{background:var(--panel-alt);width:100%;color:var(--text);border:none;border-bottom:1px solid var(--border-soft);outline:none;padding:14px 16px;font-size:14px}.cmdk-list{max-height:320px;overflow-y:auto}.cmdk-item{color:var(--text-dim);cursor:pointer;justify-content:space-between;padding:10px 16px;font-size:13px;display:flex}.cmdk-item.active{background:var(--amber-bg);color:var(--amber)}.cmdk-item .hint{color:var(--text-faint);padding:0;font-size:11px}.cmdk-empty{color:var(--text-faint);padding:16px;font-size:12px}
