:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fbfbfa;--surface:#fff;--elevated:#fff;--hover:#14181609;--line:#14181614;--text:#1c1f1d;--text-muted:#7b817e;--text-faint:#a7aca9;--accent:#3f6f8f;--accent-soft:#3f6f8f1a;--danger:#b3534d;--lift:0 12px 32px #0f14121f, 0 2px 6px #0f14120f;--pop:0 10px 30px #0f14121f, 0 0 0 1px var(--line);--ease:cubic-bezier(.2, .7, .2, 1);--row-h:52px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#111312;--surface:#111312;--elevated:#1a1d1c;--hover:#ffffff0a;--line:#ffffff12;--text:#e9ecea;--text-muted:#8c938f;--text-faint:#5d6461;--accent:#86b3d1;--accent-soft:#86b3d11f;--danger:#e08b84;--lift:0 14px 36px #0000008c, 0 0 0 1px var(--line);--pop:0 14px 36px #0000008c, 0 0 0 1px var(--line)}}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-feature-settings:"cv11", "ss01";background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}input,textarea{font:inherit;color:inherit}svg{display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}input:focus-visible,textarea:focus-visible{outline:none}.shell{max-width:1080px;min-height:100svh;padding:calc(40px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));margin:0 auto}.shell.loading{color:var(--text-muted);place-items:center;display:grid}.topbar{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.eyebrow{color:var(--text-muted);margin:0 0 4px;font-size:13px;font-weight:500}.topbar h1{letter-spacing:-.025em;margin:0;font-size:32px;font-weight:650;line-height:1.1}.menu{position:relative}.menu-trigger{width:36px;height:36px;color:var(--text-muted);transition:background .15s var(--ease);border-radius:999px;place-items:center;display:grid}.menu-trigger:hover{background:var(--hover)}.menu-trigger svg{fill:currentColor;width:18px;height:18px}.menu-backdrop{z-index:40;cursor:default;position:fixed;inset:0}.menu-popover{z-index:41;background:var(--elevated);min-width:200px;box-shadow:var(--pop);animation:fade-in .14s var(--ease);border-radius:12px;padding:6px;position:absolute;top:42px;right:0}.menu-popover p{color:var(--text-muted);margin:0;padding:8px 10px 6px;font-size:12px}.menu-popover button{text-align:left;border-radius:8px;width:100%;padding:8px 10px;font-size:14px}.menu-popover button:hover{background:var(--hover)}.layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:48px;display:grid}.task-column{min-width:0}.add-row,.add-subtask{min-height:var(--row-h);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 4px;display:flex}.add-row-plus{width:22px;height:22px;color:var(--accent);flex:none;place-items:center;font-size:22px;font-weight:300;line-height:1;display:grid}.add-row input,.add-subtask input{background:0 0;border:0;flex:1;min-width:0;padding:14px 0;font-size:16px}.add-row input::placeholder,.add-subtask input::placeholder,.detail-description::placeholder{color:var(--text-faint)}.empty-state{color:var(--text-muted);margin:28px 4px}.task-list,.subtask-list{margin:0;padding:0;list-style:none}.task-row{border-bottom:1px solid var(--line);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;outline-offset:-2px;transition:opacity .28s var(--ease), transform .2s var(--ease);position:relative}.task-row-inner{z-index:1;min-height:var(--row-h);background:var(--bg);cursor:pointer;transition:background .15s var(--ease), transform .22s var(--ease);align-items:center;gap:12px;padding:0 4px;display:flex;position:relative}.task-row-inner.swiping{transition:none}.task-row:hover .task-row-inner{background:color-mix(in srgb, var(--bg), var(--text) 2.5%)}.task-row.selected .task-row-inner{background:color-mix(in srgb, var(--accent) 9%, var(--bg))}.task-row.dragging{z-index:10;border-bottom-color:#0000}.task-row.dragging .task-row-inner{background:var(--elevated);box-shadow:var(--lift);cursor:grabbing;border-radius:12px;transform:scale(1.015)}.task-row.completing{opacity:0;transition-delay:.12s;transform:translateY(8px)}.task-title{overflow-wrap:anywhere;flex:1;min-width:0;padding:14px 0;font-size:15.5px}.task-row.completed .task-title{color:var(--text-muted)}.task-progress{color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:12.5px}.row-delete{width:28px;height:28px;color:var(--text-faint);opacity:0;transition:opacity .12s var(--ease), color .12s var(--ease);border-radius:8px;flex:none;place-items:center;display:none}.row-delete svg,.subtask-delete svg,.close-sheet svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;width:16px;height:16px}@media (hover:hover) and (pointer:fine){.row-delete{display:grid}.task-row:hover .row-delete,.row-delete:focus-visible{opacity:1}.row-delete:hover{color:var(--danger)}}.swipe-delete{background:color-mix(in srgb, var(--danger) 75%, var(--bg));color:#fff;transition:background .15s var(--ease);justify-content:flex-end;align-items:center;padding-right:20px;font-size:14px;font-weight:550;display:flex;position:absolute;inset:0}.swipe-delete.armed{background:var(--danger)}.checkbox{border-radius:999px;flex:none;place-items:center;width:32px;height:32px;margin:0 -5px;display:grid}.check{border:1.5px solid var(--text-faint);width:20px;height:20px;transition:background .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);border-radius:999px;place-items:center;display:grid}.checkbox:hover .check{border-color:var(--accent)}.checkbox:active .check{transform:scale(.88)}.check svg{fill:none;stroke:#fff;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14;stroke-dashoffset:14px;width:14px;height:14px;transition:stroke-dashoffset .22s var(--ease) 60ms}.check.checked{background:var(--accent);border-color:var(--accent);animation:check-pop .26s var(--ease)}.check.checked svg{stroke-dashoffset:0}@media (prefers-color-scheme:dark){.check svg{stroke:#111312}}.checkbox.small .check{width:17px;height:17px}.checkbox.small .check svg{width:12px;height:12px}@keyframes check-pop{0%{transform:scale(.85)}60%{transform:scale(1.08)}to{transform:scale(1)}}.completed-section{margin-top:22px}.completed-toggle{color:var(--text-muted);align-items:center;gap:6px;padding:6px 4px;font-size:13px;font-weight:500;display:inline-flex}.completed-toggle:hover{color:var(--text)}.completed-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;transition:transform .18s var(--ease)}.completed-toggle[aria-expanded=true] svg{transform:rotate(90deg)}.completed-toggle span{color:var(--text-faint);font-variant-numeric:tabular-nums}.completed-list{animation:fade-in .18s var(--ease);margin-top:4px}.detail-panel{border-left:1px solid var(--line);min-height:320px;animation:fade-in .16s var(--ease);flex-direction:column;gap:4px;padding:4px 0 4px 28px;display:flex;position:sticky;top:40px}.detail-header{justify-content:space-between;align-items:center;min-height:36px;display:flex}.sheet-grabber{display:none}.close-sheet{width:32px;height:32px;color:var(--text-muted);border-radius:999px;place-items:center;display:grid}.close-sheet:hover{background:var(--hover);color:var(--text)}.detail-check{margin-left:-6px}.detail-check .check{width:22px;height:22px}.detail-title{letter-spacing:-.015em;background:0 0;border:0;width:100%;padding:6px 0;font-size:22px;font-weight:620}.detail-description{resize:none;width:100%;color:var(--text);background:0 0;border:0;min-height:48px;padding:4px 0 12px;line-height:1.55;overflow:hidden}.subtasks{margin-top:8px}.subtasks h2{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);align-items:baseline;gap:8px;margin:0 0 2px;font-size:12px;font-weight:600;display:flex}.subtasks h2 span{color:var(--text-faint);letter-spacing:0;font-variant-numeric:tabular-nums}.subtask-row{background:var(--bg);border-radius:8px;align-items:center;gap:10px;min-height:42px;padding:0 2px;display:flex}.subtask-row.dragging{z-index:5;background:var(--elevated);box-shadow:var(--lift);position:relative}.subtask-row input{background:0 0;border:0;flex:1;min-width:0;padding:8px 0;font-size:14.5px}.subtask-row.completed input{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--text-faint);text-decoration-color:var(--text-faint)}.subtask-delete,.grip{width:28px;height:28px;color:var(--text-faint);border-radius:8px;flex:none;place-items:center;display:grid}.grip{cursor:grab;touch-action:none}.grip svg{fill:currentColor;width:16px;height:16px}.subtask-delete:hover{color:var(--danger)}@media (hover:hover) and (pointer:fine){.subtask-delete,.grip{opacity:0;transition:opacity .12s var(--ease)}.subtask-row:hover .subtask-delete,.subtask-row:hover .grip,.subtask-delete:focus-visible,.grip:focus-visible{opacity:1}}.add-subtask{border-bottom:0;gap:10px;min-height:42px;padding:0 2px}.add-subtask .add-row-plus{width:22px;color:var(--text-faint);font-size:19px}.add-subtask input{padding:8px 0;font-size:14.5px}.delete-task{color:var(--text-muted);align-self:flex-start;margin-top:24px;padding:8px 0;font-size:13px}.delete-task:hover{color:var(--danger)}.detail-placeholder{border-left:1px solid var(--line);min-height:320px;color:var(--text-faint);place-items:center;padding-left:28px;font-size:14px;display:grid;position:sticky;top:40px}.detail-placeholder p{margin:0}.login-shell{place-items:center;display:grid}.login-card{gap:14px;width:min(360px,100%);display:grid}.login-card h1{letter-spacing:-.025em;margin:0;font-size:28px;font-weight:650}.login-card p{color:var(--text-muted);margin:-6px 0 10px}.login-card label{color:var(--text-muted);gap:6px;font-size:13px;font-weight:500;display:grid}.login-card input{border:1px solid var(--line);background:var(--elevated);width:100%;transition:border-color .15s var(--ease);border-radius:10px;padding:12px 14px;font-size:16px}.login-card input:focus{border-color:var(--accent)}.login-card button{background:var(--accent);min-height:46px;color:var(--bg);border-radius:10px;margin-top:6px;font-weight:600}.login-card button:disabled{opacity:.6}.form-error{color:var(--danger);margin:0;font-size:14px}.toast,.error-banner{z-index:60;background:var(--text);max-width:calc(100vw - 32px);color:var(--bg);box-shadow:var(--lift);animation:toast-in .2s var(--ease);border-radius:12px;align-items:center;gap:16px;padding:10px 12px 10px 16px;font-size:14px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast span,.error-banner span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast button,.error-banner button{color:color-mix(in srgb, var(--accent) 60%, var(--bg));border-radius:6px;flex:none;padding:4px 8px;font-weight:600}.toast{bottom:calc(28px + env(safe-area-inset-bottom))}.error-banner{top:calc(16px + env(safe-area-inset-top));background:var(--danger);color:#fff}.error-banner button{color:#fff}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (width<=880px){.shell{padding-top:calc(28px + env(safe-area-inset-top));padding-bottom:calc(96px + env(safe-area-inset-bottom));padding-left:max(20px, env(safe-area-inset-left));padding-right:max(20px, env(safe-area-inset-right))}.topbar{margin-bottom:16px}.topbar h1{font-size:30px}.layout{display:block}.detail-placeholder{display:none}.task-list{margin:0 -8px}.task-row-inner{min-height:56px;padding:0 8px}.task-row:hover .task-row-inner,.task-row.selected .task-row-inner{background:var(--bg)}.task-row:active:not(.dragging) .task-row-inner{background:var(--hover)}.task-title{font-size:16px}.checkbox{width:44px;height:44px;margin:0 -10px}.check{width:22px;height:22px}.add-row{z-index:20;padding:6px max(20px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(16px);border-bottom:0;position:fixed;bottom:0;left:0;right:0}.add-row-plus{background:var(--accent-soft);border-radius:999px;width:32px;height:32px;font-size:22px}.empty-state{margin-top:32px}.detail-panel.mobile-sheet{z-index:30;min-height:0;padding:calc(4px + env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));background:var(--bg);overscroll-behavior:contain;animation:sheet-in .28s var(--ease);transition:transform .22s var(--ease);border-left:0;position:fixed;inset:0;overflow-y:auto}.detail-panel.mobile-sheet.dragging{transition:none}.mobile-sheet .detail-header{touch-action:none;min-height:60px;padding-top:18px;position:relative}.mobile-sheet .sheet-grabber{background:var(--text-faint);opacity:.6;border-radius:999px;width:36px;height:4px;margin-left:-18px;display:block;position:absolute;top:8px;left:50%}.mobile-sheet .detail-check{width:44px;height:44px;margin-left:-11px}.mobile-sheet .close-sheet{background:var(--hover);width:40px;height:40px;margin-right:-8px}.mobile-sheet .detail-title{font-size:26px}.mobile-sheet .detail-description{font-size:16px}.mobile-sheet .subtask-row{min-height:48px}.mobile-sheet .subtask-row input,.mobile-sheet .add-subtask input{font-size:16px}.mobile-sheet .checkbox.small{width:40px;height:40px;margin:0 -8px}.mobile-sheet .checkbox.small .check{width:20px;height:20px}.mobile-sheet .subtask-delete,.mobile-sheet .grip{width:36px;height:36px}.toast{bottom:calc(84px + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
