:root{--bg:#fff;--bg-sidebar:#fafafa;--border:#e6e6e6;--hover:#efefef;--text:#1f2328;--muted:#8b8b8b;--accent:#1f2328;--p4:#d1453b;--p3:#eb8909;--p2:#246fe0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}button{font-family:inherit}.app{height:100%;display:flex}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:260px;padding:16px 12px;display:flex}.sidebar-header{justify-content:space-between;align-items:center;padding:0 8px 16px;display:flex}.logo{font-size:16px;font-weight:700}.link{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:12px}.link:hover{color:var(--text)}.project-list{flex-direction:column;flex:1;gap:2px;display:flex}.project-item{text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;border-radius:6px;padding:7px 8px;font-size:14px}.project-item:hover{background:var(--hover)}.project-item.active{background:#e8e8e8;font-weight:600}.add-project input{border:1px solid var(--border);border-radius:6px;width:100%;padding:7px 8px;font-size:13px}.task-view{flex:1;min-width:0;max-width:860px;padding:32px 40px;overflow-y:auto}.add-task{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.add-task-input{border:1px solid var(--border);border-radius:8px;flex:240px;min-width:0;padding:9px 12px;font-size:14px}.add-task select,.add-task input[type=date]{border:1px solid var(--border);border-radius:8px;padding:8px;font-size:13px}.add-task button,.login button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;font-size:14px}.add-task button:disabled{opacity:.4;cursor:not-allowed}.tree-table{border-collapse:collapse;width:100%}.tree-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px;font-size:11px;font-weight:600}.col-priority{width:96px}.col-due{width:84px}.col-actions{text-align:right;white-space:nowrap;width:68px}.tree-row td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px}.tree-cell{align-items:center;gap:8px;display:flex}.tree-toggle{cursor:pointer;color:var(--muted);background:0 0;border:none;flex-shrink:0;width:16px;padding:0;font-size:10px}.tree-toggle:hover{color:var(--text)}.tree-toggle-spacer{flex-shrink:0;width:16px}.tree-row input[type=checkbox]{cursor:pointer;flex-shrink:0;width:16px;height:16px}.task-content{cursor:text;flex:1;min-width:0}.task-content.done,.tree-row.done .task-content{color:var(--muted);text-decoration:line-through}.task-edit-input{border:1px solid var(--border);border-radius:4px;flex:1;min-width:0;padding:4px 6px;font-size:14px}.priority-tag,.due-date{white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:11px}.due-date{color:var(--muted);border:1px solid var(--border)}.priority-tag.p4{color:var(--p4);background:#fdeceb}.priority-tag.p3{color:var(--p3);background:#fdf1e3}.priority-tag.p2{color:var(--p2);background:#e9f0fc}.row-action{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.row-action:hover{color:var(--text)}.row-action.delete:hover{color:var(--p4)}.subtask-add-row td{border-bottom:1px solid var(--border);padding:0 8px}.subtask-form{gap:8px;padding:8px 0;display:flex}.subtask-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 14px;font-size:13px}.subtask-form button:disabled{opacity:.4;cursor:not-allowed}.muted{color:var(--muted)}.error{color:var(--p4);margin:0;font-size:13px}.login{justify-content:center;align-items:center;height:100%;display:flex}.login-card{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;width:300px;padding:32px;display:flex}.login-card h1{margin:0;font-size:22px}.login-card input{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px}
