@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;700&display=swap";*,*:before,*:after{box-sizing:border-box}:root{--ink: #0A0A0A;--bg: #F5F5F0;--white: #FFFFFF;--rule: #0A0A0A;--muted: #6B6B6B;--urgent: #CC0000;--overdue: #CC0000;--sidebar-w: 220px;--mono: "IBM Plex Mono", monospace}html,body,#root{height:100%;margin:0}body{font-family:var(--mono);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased}.app{display:flex;height:100vh;overflow:hidden}.main{flex:1;overflow-y:auto;padding:48px 56px;max-width:760px}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:32px;letter-spacing:8px;color:var(--muted)}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--ink);color:var(--white);display:flex;flex-direction:column;padding:0;border-right:3px solid var(--ink);overflow-y:auto}.sidebar-logo{font-size:20px;font-weight:700;letter-spacing:6px;padding:28px 20px 24px;border-bottom:2px solid #333}.sidebar-section{padding:16px 0 8px}.sidebar-section-label{font-size:10px;letter-spacing:3px;color:#888;padding:0 20px 8px}.sidebar-divider{border-top:1px solid #333;margin:8px 0}.sidebar-link{display:block;width:100%;text-align:left;background:none;border:none;border-radius:0;color:#ccc;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:2px;padding:10px 20px;cursor:pointer;transition:background .1s,color .1s}.sidebar-link:hover{background:#1a1a1a;color:var(--white)}.sidebar-link.active{background:var(--white);color:var(--ink);font-weight:700}.sidebar-project-row{display:flex;align-items:center}.sidebar-project-row .sidebar-link{flex:1}.sidebar-delete{background:none;border:none;color:#555;font-size:16px;cursor:pointer;padding:0 12px 0 0;line-height:1;border-radius:0}.sidebar-delete:hover{color:var(--urgent)}.sidebar-new-project{color:#666}.sidebar-new-project:hover{color:var(--white)}.sidebar-add-form{display:flex;padding:4px 12px 8px;gap:6px}.sidebar-input{flex:1;background:#1a1a1a;border:1px solid #444;color:var(--white);font-family:var(--mono);font-size:11px;padding:6px 8px}.sidebar-add-submit{background:var(--white);border:none;border-radius:0;color:var(--ink);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:1px;padding:6px 10px;cursor:pointer}.sidebar-bottom{margin-top:auto;border-top:1px solid #333;padding:8px 0}.sidebar-signout{color:#555}.sidebar-signout:hover{color:#c66}.view-title{font-size:28px;font-weight:700;letter-spacing:4px;margin:0 0 32px;border-bottom:4px solid var(--ink);padding-bottom:12px}.task-list{margin-bottom:48px}.task-list-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:4px;border-bottom:3px solid var(--ink);padding-bottom:10px}.task-list-title{font-size:18px;font-weight:700;letter-spacing:3px;margin:0}.task-list-header-actions{display:flex;gap:8px;align-items:center}.task-list-empty{color:var(--muted);font-size:18px;letter-spacing:4px;margin:16px 0}.task-list-items{margin-top:2px}.task-item{border-bottom:1px solid #D0D0C8}.task-item.overdue>.task-row{border-left:3px solid var(--overdue);padding-left:10px}.task-item.depth-1{margin-left:24px;background:#f0f0eb}.task-item.depth-2{margin-left:48px;background:#eaeae4}.task-item.completed>.task-row .task-title{text-decoration:line-through;color:var(--muted)}.task-row{display:flex;align-items:flex-start;padding:10px 0;gap:10px}.task-check{width:18px;height:18px;min-width:18px;border:2px solid var(--ink);border-radius:0;background:transparent;cursor:pointer;padding:0;margin-top:1px;position:relative}.task-check.checked{background:var(--ink)}.task-check.checked:after{content:"";position:absolute;left:3px;top:1px;width:8px;height:5px;border-left:2px solid var(--white);border-bottom:2px solid var(--white);transform:rotate(-45deg)}.task-body{flex:1;min-width:0}.task-title{font-size:14px;font-weight:500;word-break:break-word;display:flex;align-items:center;gap:8px}.urgent-dot{display:inline-block;width:8px;height:8px;background:var(--urgent);border-radius:50%;flex-shrink:0}.task-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;align-items:center}.task-due{font-size:11px;letter-spacing:1px;color:var(--muted)}.task-due.overdue-text{color:var(--urgent);font-weight:700}.task-was-due{font-size:10px;color:#888;font-style:italic}.task-project{font-size:10px;letter-spacing:2px;background:var(--ink);color:var(--white);padding:1px 6px}.task-edit-input{width:100%;font-family:var(--mono);font-size:14px;font-weight:500;border:none;border-bottom:2px solid var(--ink);background:transparent;outline:none;padding:2px 0}.task-actions{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .1s}.task-row:hover .task-actions{opacity:1}.task-action-btn{background:none;border:1px solid var(--ink);border-radius:0;font-family:var(--mono);font-size:12px;font-weight:700;padding:2px 6px;cursor:pointer;line-height:1.4;color:var(--ink)}.task-action-btn:hover{background:var(--ink);color:var(--white)}.task-action-btn.delete{border-color:#999;color:#999}.task-action-btn.delete:hover{background:var(--urgent);border-color:var(--urgent);color:var(--white)}.task-subtask-form{padding-left:28px;padding-bottom:8px}.task-form{border:2px solid var(--ink);padding:16px;margin:12px 0;background:var(--white)}.task-form-title{width:100%;font-family:var(--mono);font-size:15px;font-weight:700;border:none;border-bottom:2px solid var(--ink);background:transparent;outline:none;padding:4px 0 6px;margin-bottom:12px}.task-form-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.task-form-field{font-family:var(--mono);font-size:12px;border:2px solid var(--ink);background:var(--bg);padding:5px 8px;outline:none;cursor:pointer}.task-form-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.tag-pill{font-family:var(--mono);font-size:11px;letter-spacing:1px;border:2px solid var(--ink);background:transparent;padding:3px 10px;cursor:pointer;border-radius:0;color:var(--ink)}.tag-pill.active{background:var(--ink);color:var(--white)}.task-link{font-size:12px;font-weight:700;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--ink);line-height:1;padding-bottom:1px;flex-shrink:0}.task-link:hover{color:#444;border-color:#444}.tag-chip{font-size:10px;letter-spacing:1px;border:1px solid #999;padding:1px 6px;color:var(--muted)}.task-form-notes{width:100%;font-family:var(--mono);font-size:12px;border:2px solid #CCC;background:var(--bg);padding:6px 8px;resize:vertical;outline:none;margin-bottom:12px}.task-form-notes:focus{border-color:var(--ink)}.task-form-actions{display:flex;gap:8px}.btn-primary{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:2px;background:var(--ink);color:var(--white);border:2px solid var(--ink);padding:8px 16px;cursor:pointer;border-radius:0}.btn-primary:hover{background:#333}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:2px;background:transparent;color:var(--ink);border:2px solid var(--ink);padding:8px 16px;cursor:pointer;border-radius:0}.btn-ghost:hover{background:var(--ink);color:var(--white)}.btn-add{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:2px;background:transparent;color:var(--ink);border:2px solid var(--ink);padding:5px 12px;cursor:pointer;border-radius:0}.btn-add:hover{background:var(--ink);color:var(--white)}.copy-btn{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:2px;background:transparent;color:var(--muted);border:2px solid var(--muted);padding:4px 10px;cursor:pointer;border-radius:0;transition:all .1s}.copy-btn:hover,.copy-btn.copied{background:var(--ink);color:var(--white);border-color:var(--ink)}.drag-handle-row{display:flex;align-items:flex-start;gap:4px}.drag-handle{color:#ccc;font-size:14px;line-height:2.2;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;letter-spacing:-1px}.drag-handle:hover{color:#999}.drag-handle:active{cursor:grabbing}.droppable-section{margin-bottom:8px;transition:background .1s}.droppable-zone{min-height:32px;transition:background .1s,outline .1s;padding:2px 0}.droppable-section.drop-over .droppable-zone{background:#eeeee8;outline:2px dashed var(--muted);outline-offset:-2px}.drag-overlay-item{background:var(--white);border:2px solid var(--ink);padding:4px 8px;box-shadow:4px 4px 0 var(--ink);pointer-events:none}.section-header-actions{display:flex;gap:6px;align-items:center}.project-view-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:32px;border-bottom:4px solid var(--ink);padding-bottom:12px}.project-view-actions{display:flex;gap:8px}.section-block{margin-top:32px}.section-header{display:flex;align-items:center;justify-content:space-between;border-top:3px solid var(--ink);padding:8px 0 6px;margin-bottom:4px;gap:8px}.section-name{font-size:12px;font-weight:700;letter-spacing:3px;color:var(--muted)}.section-delete{background:none;border:none;color:#999;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.section-delete:hover{color:var(--urgent)}.section-add-form{display:flex;gap:8px;margin-bottom:24px;align-items:center}.section-input{flex:1;font-family:var(--mono);font-size:13px;border:2px solid var(--ink);padding:8px 10px;background:var(--bg);outline:none}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.auth-box{width:360px;border:3px solid var(--ink);padding:40px;background:var(--white)}.auth-title{font-size:32px;font-weight:700;letter-spacing:10px;margin:0 0 32px;border-bottom:3px solid var(--ink);padding-bottom:16px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-label{font-size:11px;font-weight:700;letter-spacing:3px}.auth-input{font-family:var(--mono);font-size:14px;border:2px solid var(--ink);padding:10px 12px;background:var(--bg);outline:none;width:100%}.auth-input:focus{border-color:#444}.auth-submit{width:100%;justify-content:center;margin-top:4px}.auth-error{font-size:12px;color:var(--urgent);margin:0}.auth-sent{font-size:13px;letter-spacing:1px;line-height:1.6;color:var(--muted);margin:0}@media(max-width:640px){.app{flex-direction:column}.sidebar{width:100%;min-width:unset;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;padding:0;border-right:none;border-bottom:3px solid var(--ink);height:auto}.sidebar-logo{padding:16px 20px;border-bottom:none;border-right:2px solid #333;font-size:16px;white-space:nowrap}.sidebar-section,.sidebar-divider,.sidebar-bottom{display:none}.main{padding:24px 20px;max-width:100%}.view-title{font-size:20px;letter-spacing:3px}}[data-theme=things]{--p: rgb(38,126,92);--p80: rgba(38,126,92,.8);--p60: rgba(38,126,92,.6);--p50: rgba(38,126,92,.5);--p25: rgba(38,126,92,.25);--p20: rgba(38,126,92,.2);--p10: rgba(38,126,92,.1);--p05: rgba(38,126,92,.05);--light: rgb(176,217,200);--light50: rgba(176,217,200,.5);--urgent: rgb(185,28,28);--overdue: rgb(185,28,28);--bg: #fff;--sys-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--r: .125rem}[data-theme=things] body{font-family:var(--sys-font);background:var(--bg);color:var(--p);font-size:.875rem}[data-theme=things] .main{padding:32px 40px}[data-theme=things] .sidebar{background:#fff;color:var(--p);border-right:1px solid var(--p25);width:200px;min-width:200px}[data-theme=things] .sidebar-logo{font-family:var(--sys-font);font-size:13px;font-weight:700;letter-spacing:3px;color:var(--p);padding:22px 16px 18px;border-bottom:1px solid var(--p25)}[data-theme=things] .sidebar-section-label{font-family:var(--sys-font);font-size:.6875rem;letter-spacing:.08em;font-weight:700;color:var(--p60);padding:0 16px 6px}[data-theme=things] .sidebar-link{font-family:var(--sys-font);font-size:.875rem;font-weight:500;letter-spacing:0;color:var(--p60);padding:9px 16px}[data-theme=things] .sidebar-link:hover{background:var(--p05);color:var(--p)}[data-theme=things] .sidebar-link.active{background:var(--p10);color:var(--p);font-weight:600}[data-theme=things] .sidebar-divider{border-top:1px solid var(--p25)}[data-theme=things] .sidebar-delete{color:var(--p25)}[data-theme=things] .sidebar-delete:hover{color:var(--urgent)}[data-theme=things] .sidebar-new-project{color:var(--p60)}[data-theme=things] .sidebar-add-form{padding:4px 10px 8px}[data-theme=things] .sidebar-input{background:var(--p05);border:1px solid var(--p25);color:var(--p);font-family:var(--sys-font);font-size:.8125rem;border-radius:var(--r);padding:5px 8px}[data-theme=things] .sidebar-add-submit{background:var(--p);border-radius:var(--r);font-family:var(--sys-font);font-size:.75rem;letter-spacing:0}[data-theme=things] .sidebar-bottom{border-top:1px solid var(--p25)}[data-theme=things] .sidebar-signout{color:var(--p60)}[data-theme=things] .sidebar-signout:hover{color:var(--urgent);background:#b91c1c0d}[data-theme=things] .theme-toggle{color:var(--p60)!important}[data-theme=things] .view-title{font-family:var(--sys-font);font-size:1.25rem;font-weight:700;letter-spacing:.04em;color:var(--p);border-bottom:2px solid var(--p);padding-bottom:10px;margin-bottom:24px}[data-theme=things] .project-view-header{border-bottom:2px solid var(--p);padding-bottom:10px;margin-bottom:24px}[data-theme=things] .task-list{margin-bottom:32px}[data-theme=things] .task-list-header{border-bottom:2px solid var(--p);padding-bottom:8px}[data-theme=things] .task-list-title{font-family:var(--sys-font);font-size:.6875rem;font-weight:700;letter-spacing:.08em;color:var(--p60)}[data-theme=things] .task-list-empty{color:var(--p25);letter-spacing:0}[data-theme=things] .task-item{border-bottom:1px solid var(--p10)}[data-theme=things] .task-item.depth-1{margin-left:20px;background:var(--p05)}[data-theme=things] .task-item.depth-2{margin-left:40px;background:var(--p10)}[data-theme=things] .task-item.overdue>.task-row{border-left:3px solid var(--overdue);padding-left:8px}[data-theme=things] .task-item.completed>.task-row .task-title{color:var(--p25)}[data-theme=things] .task-check{border:1.5px solid var(--p50);border-radius:50%;width:16px;height:16px;min-width:16px}[data-theme=things] .task-check.checked{background:var(--p);border-color:var(--p)}[data-theme=things] .task-check.checked:after{left:3px;top:1px;width:7px;height:4px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff}[data-theme=things] .task-title{font-family:var(--sys-font);font-size:.9375rem;font-weight:500;color:var(--p)}[data-theme=things] .urgent-dot{background:var(--urgent)}[data-theme=things] .task-due{font-family:var(--sys-font);color:var(--p60);font-size:.75rem}[data-theme=things] .task-due.overdue-text{color:var(--overdue);font-weight:600}[data-theme=things] .task-was-due{color:var(--p50)}[data-theme=things] .task-project{font-family:var(--sys-font);font-size:.6875rem;background:var(--light50);color:var(--p);padding:1px 6px;border-radius:var(--r)}[data-theme=things] .task-edit-input{font-family:var(--sys-font);font-size:.9375rem;border-bottom:1.5px solid var(--p)}[data-theme=things] .task-action-btn{font-family:var(--sys-font);font-size:.75rem;border:1px solid var(--p25);border-radius:var(--r);color:var(--p60)}[data-theme=things] .task-action-btn:hover{background:var(--p);color:#fff;border-color:var(--p)}[data-theme=things] .task-action-btn.delete{border-color:var(--p10);color:var(--p25)}[data-theme=things] .task-action-btn.delete:hover{background:var(--urgent);border-color:var(--urgent);color:#fff}[data-theme=things] .task-link{color:var(--p);border-bottom:1.5px solid var(--p50);font-family:var(--sys-font)}[data-theme=things] .task-link:hover{color:var(--p80);border-color:var(--p)}[data-theme=things] .tag-chip{font-family:var(--sys-font);background:var(--light50);border:none;color:var(--p);border-radius:var(--r);font-size:.6875rem}[data-theme=things] .task-form{border:1px solid var(--p25);border-radius:var(--r);background:var(--p05)}[data-theme=things] .task-form-title{font-family:var(--sys-font);font-size:.9375rem;border-bottom:1.5px solid var(--p25)}[data-theme=things] .task-form-title:focus{border-bottom-color:var(--p)}[data-theme=things] .task-form-field{font-family:var(--sys-font);font-size:.8125rem;border:1px solid var(--p25);border-radius:var(--r);background:#fff;color:var(--p)}[data-theme=things] .task-form-field:focus{border-color:var(--p);background:var(--p05);outline:none}[data-theme=things] .tag-pill{font-family:var(--sys-font);font-size:.75rem;border:1px solid var(--p25);border-radius:99px;color:var(--p60)}[data-theme=things] .tag-pill.active{background:var(--p);color:#fff;border-color:var(--p)}[data-theme=things] .task-form-notes{font-family:var(--sys-font);font-size:.8125rem;border:1px solid var(--p25);border-radius:var(--r);background:#fff;color:var(--p)}[data-theme=things] .task-form-notes:focus{border-color:var(--p)}[data-theme=things] .btn-primary{font-family:var(--sys-font);font-size:.875rem;font-weight:500;letter-spacing:0;background:var(--p);border:1px solid var(--p);border-radius:var(--r)}[data-theme=things] .btn-primary:hover{background:var(--p80)}[data-theme=things] .btn-ghost{font-family:var(--sys-font);font-size:.8125rem;font-weight:500;letter-spacing:0;border:1px solid var(--p25);color:var(--p);border-radius:var(--r)}[data-theme=things] .btn-ghost:hover{background:var(--p);color:#fff;border-color:var(--p)}[data-theme=things] .btn-add{font-family:var(--sys-font);font-size:.8125rem;font-weight:500;letter-spacing:0;border:1px solid var(--p25);color:var(--p60);border-radius:var(--r)}[data-theme=things] .btn-add:hover{background:var(--p);color:#fff;border-color:var(--p)}[data-theme=things] .copy-btn{font-family:var(--sys-font);font-size:.75rem;font-weight:500;letter-spacing:0;border:1px solid var(--p25);color:var(--p60);border-radius:var(--r)}[data-theme=things] .copy-btn:hover,[data-theme=things] .copy-btn.copied{background:var(--p);color:#fff;border-color:var(--p)}[data-theme=things] .section-header{border-top:1px solid var(--p25);padding:10px 0 6px}[data-theme=things] .section-name{font-family:var(--sys-font);font-size:.6875rem;font-weight:700;letter-spacing:.08em;color:var(--p60)}[data-theme=things] .section-delete{color:var(--p25)}[data-theme=things] .section-delete:hover{color:var(--urgent)}[data-theme=things] .section-input{font-family:var(--sys-font);font-size:.875rem;border:1px solid var(--p25);border-radius:var(--r);background:#fff;color:var(--p)}[data-theme=things] .section-input:focus{border-color:var(--p);background:var(--p05);outline:none}[data-theme=things] .droppable-section.drop-over .droppable-zone{background:var(--p05);outline:1.5px dashed var(--p50)}[data-theme=things] .drag-handle{color:var(--p25)}[data-theme=things] .drag-handle:hover{color:var(--p60)}[data-theme=things] .drag-overlay-item{background:#fff;border:1px solid var(--p);border-radius:var(--r);box-shadow:0 6px 20px #0000001f}[data-theme=things] .auth-wrapper{background:var(--p05)}[data-theme=things] .auth-box{border:1px solid var(--p25);border-radius:var(--r);background:#fff;box-shadow:0 6px 20px #0000000f}[data-theme=things] .auth-title{font-family:var(--sys-font);font-size:1.5rem;letter-spacing:4px;font-weight:700;color:var(--p);border-bottom:1.5px solid var(--p25)}[data-theme=things] .auth-label{font-family:var(--sys-font);color:var(--p60);font-size:.75rem;letter-spacing:.06em}[data-theme=things] .auth-input{font-family:var(--sys-font);font-size:.875rem;border:1px solid var(--p25);border-radius:var(--r);color:var(--p);background:#fff}[data-theme=things] .auth-input:focus{border-color:var(--p);background:var(--p05);outline:none}[data-theme=things] .auth-error{font-family:var(--sys-font);color:var(--urgent)}[data-theme=things] .auth-sent{font-family:var(--sys-font);color:var(--p60)}@media(max-width:640px){[data-theme=things] .sidebar{border-right:none;border-bottom:1px solid var(--p25)}}
