:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#fff;--surface:#f4f5f7;--raised:#fff;--line:#e4e6ea;--line-soft:#eef0f2;--input-line:#d5d8dd;--ink:#16181d;--ink-strong:#3d424b;--ink-2:#5b616e;--icon:#4a505c;--accent:#0f766e;--accent-hover:#0b5f58;--accent-ink:#0b5f58;--accent-soft:#ddefed;--row-hover:#f2f8f7;--good:#15803d;--bad:#b42318;--danger-line:#f2c9c5;--overlay:#16181d6b;--shadow:0 10px 30px #16181d24;--p1:#c2410c;--p2:#b7791f;--p3:#2563eb;--p4:#8a8f98;--p1-fill:#c2410c1a;--p2-fill:#b7791f1a;--p3-fill:#2563eb14;--p4-fill:transparent;--tok-date-bg:#ddefed;--tok-date:#0b5f58;--tok-project-bg:#fdebdd;--tok-project:#9a3412;--tok-priority-bg:#fbf0dc;--tok-priority:#7a4e0c;--tok-label-bg:#eceef1;--tok-label:#3d424b;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--tabbar-h:64px;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-family:Onest,system-ui,-apple-system,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#131519;--surface:#1b1e23;--raised:#22252b;--line:#2e3239;--line-soft:#252930;--input-line:#3a3f47;--ink:#e9ebef;--ink-strong:#d3d7de;--ink-2:#a3a9b4;--icon:#b7bcc6;--accent:#0f766e;--accent-hover:#128a80;--accent-ink:#5fd4c7;--accent-soft:#143c39;--row-hover:#1a2a29;--good:#4ade80;--bad:#f87171;--danger-line:#5c2a27;--overlay:#0009;--shadow:0 10px 30px #00000080;--p1:#fb8a4c;--p2:#e5b04a;--p3:#6ea2ff;--p4:#8e939c;--p1-fill:#fb8a4c24;--p2-fill:#e5b04a24;--p3-fill:#6ea2ff1f;--tok-date-bg:#143c39;--tok-date:#8be3d8;--tok-project-bg:#43261a;--tok-project:#fdba8c;--tok-priority-bg:#3d3014;--tok-priority:#f4cf7a;--tok-label-bg:#2c3037;--tok-label:#d3d7de}}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);margin:0}body{min-height:100dvh;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default;opacity:.55}input,select,textarea{background:var(--raised);border:1px solid var(--input-line);border-radius:8px;min-height:40px;padding:8px 10px}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px;border-radius:6px}h1,h2,h3,p{margin:0}.muted{color:var(--ink-2)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.icon{flex:none}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.logo{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.logo.big{border-radius:18px;width:64px;height:64px}.boot{text-align:center;padding:40px}.btn-primary{background:var(--accent);color:#fff;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 16px;font-weight:600;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{min-height:40px;color:var(--ink-2);border-radius:8px;padding:0 12px;font-weight:500}.btn-ghost:hover{background:var(--surface);color:var(--ink)}.btn-ghost.small{min-height:32px;font-size:13px}.btn-link{color:var(--accent-ink);min-height:44px;font-weight:500}.btn-danger{border:1px solid var(--danger-line);min-height:44px;color:var(--bad);border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-weight:500;display:inline-flex}.icon-btn{width:40px;height:40px;color:var(--icon);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.icon-btn.small{width:32px;height:32px}.icon-btn:hover{background:var(--line-soft)}.form-error{color:var(--bad);font-size:14px}kbd{background:#fff3;border-radius:5px;margin-left:auto;padding:3px 6px;font:600 12px/1 inherit}.settings-card{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:16px;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:20px;padding:20px;display:flex}.sync-status{z-index:21;background:var(--accent-soft);color:var(--accent-ink);flex-wrap:wrap;align-items:center;gap:6px 16px;padding:8px 20px;font-size:13px;display:flex;position:relative}.settings-card h2{font-size:18px}.settings-card code{-webkit-user-select:all;user-select:all;padding:12px 0;display:block}.settings-card p{font-size:14px}.panel-reminders h3{margin-bottom:6px;font-size:14px}.panel-reminders p{margin-bottom:8px;font-size:13px}.panel-reminders a{color:var(--accent-ink)}.panel-reminders ul{margin:0 0 10px;padding:0;list-style:none}.panel-reminders li{justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.reminder-add{flex-wrap:wrap;gap:6px;display:flex}.reminder-add select{flex:1;min-width:0}.login{background:var(--surface);min-height:100dvh;padding:calc(48px + var(--safe-top)) 20px calc(32px + var(--safe-bottom));flex-direction:column;align-items:center;gap:24px;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.login-brand h1{letter-spacing:-.02em;font-size:30px}.login-card{background:var(--raised);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:380px;padding:20px;display:flex}.login-card label{color:var(--ink-strong);flex-direction:column;gap:6px;font-size:14px;font-weight:500;display:flex}.login-card input{min-height:48px;font-size:16px}.login-card input.totp{border:2px solid var(--accent);letter-spacing:.3em;text-align:center;min-height:56px;font-size:24px}.login-card .btn-primary{border-radius:12px;min-height:50px}.login-note{text-align:center;max-width:380px;font-size:13px}.app{min-height:100dvh;display:flex}.sidebar{background:var(--surface);width:272px;padding:calc(20px + var(--safe-top)) 16px calc(20px + var(--safe-bottom)) calc(16px + var(--safe-left));flex-direction:column;flex:none;gap:20px;height:100dvh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.add-task{justify-content:flex-start;width:100%}.nav-group{flex-direction:column;gap:2px;display:flex}.group-head{justify-content:space-between;align-items:center;padding:0 4px 4px 12px;display:flex}.group-head h2{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-size:12px;font-weight:600}.nav-item{min-height:40px;color:var(--ink);text-align:left;border-radius:8px;align-items:center;gap:12px;width:100%;padding:0 12px;font-size:15px;text-decoration:none;display:flex}.nav-item .icon{color:var(--icon)}.nav-item:hover{background:var(--line-soft)}.nav-item.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.nav-item.active .icon{color:var(--accent-ink)}.nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.count{color:var(--ink-2);font-size:13px}.nav-item.logout{color:var(--ink-2);margin-top:auto}.side-add{padding:0 4px 6px}.side-add input{width:100%}.content{min-width:0;padding:calc(40px + var(--safe-top)) 48px 64px;flex:1}.page{max-width:760px;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head h1{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:30px;font-weight:700}.page-head p{margin-top:4px;font-size:14px}.task-section{margin-bottom:28px}.task-section h2{border-bottom:1px solid var(--line);padding-bottom:8px;font-size:14px;font-weight:600}.task-section h2.overdue{color:var(--bad)}.empty{color:var(--ink-2);padding:14px 0;font-size:14px}.add-inline{width:100%;min-height:48px;color:var(--ink-2);align-items:center;gap:10px;font-size:15px;display:flex}.add-inline .icon,.add-inline:hover{color:var(--accent-ink)}.task-list,.subtasks{margin:0;padding:0;list-style:none}.subtasks{padding-left:34px}.task-row{border-bottom:1px solid var(--line-soft);background:var(--bg);position:relative}.subtasks .task-row:last-child{border-bottom:0}.task-line{align-items:flex-start;gap:12px;padding:12px 0;display:flex}.drag-handle{width:24px;height:24px;color:var(--ink-2);opacity:0;cursor:grab;touch-action:none;justify-content:center;align-items:center;margin-left:-30px;margin-right:-6px;display:flex}.task-row:hover>.task-line>.drag-handle,.drag-handle:focus-visible{opacity:1}.check{border:2px solid var(--p4);background:var(--p4-fill);color:#0000;border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex;position:relative}.check:after{content:"";position:absolute;inset:-11px}.check.p1{border-color:var(--p1);background:var(--p1-fill)}.check.p2{border-color:var(--p2);background:var(--p2-fill)}.check.p3{border-color:var(--p3);background:var(--p3-fill)}.check:hover{color:var(--ink-2)}.check.done{background:var(--ink-2);border-color:var(--ink-2);color:var(--bg)}.check .icon{width:14px;height:14px}.check.big{width:26px;height:26px}.task-body{text-align:left;flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.task-title{overflow-wrap:anywhere;font-size:15px;line-height:1.4}.task-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;display:flex}.task-meta:empty{display:none}.meta-due,.meta-item,.meta-project{align-items:center;gap:4px;display:inline-flex}.meta-due{color:var(--accent-ink);font-weight:500}.meta-due.overdue{color:var(--bad)}.meta-project{margin-left:auto}.meta-project .dot{width:8px;height:8px}.panel{border-left:1px solid var(--line);background:var(--bg);width:380px;height:100dvh;padding:calc(20px + var(--safe-top)) calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) 20px;flex:none;position:sticky;top:0;overflow-y:auto}.panel-body{flex-direction:column;gap:20px;display:flex}.panel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.panel-project{color:var(--ink-2);align-items:center;gap:8px;font-size:14px;display:inline-flex}.panel-title-row{align-items:flex-start;gap:12px;display:flex}.panel-title-row .check{margin-top:8px}.panel-title{background:0 0;border-color:#0000;flex:1;min-width:0;padding:4px 6px;font-size:21px;font-weight:600}.panel-title:hover,.panel-title:focus{border-color:var(--input-line)}.panel-description{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.panel-description textarea{resize:vertical;width:100%}.markdown{color:var(--ink-strong);overflow-wrap:anywhere;font-size:15px;line-height:1.55}.markdown a{color:var(--accent-ink)}.markdown pre{background:var(--surface);border-radius:8px;padding:10px;overflow-x:auto}.panel-fields{grid-template-columns:96px 1fr;align-items:center;gap:12px;margin:0;font-size:14px;display:grid}.panel-fields dt{color:var(--ink-2)}.panel-fields dd{min-width:0;margin:0}.due-inputs,.label-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface);min-height:32px;color:var(--ink-strong);border-radius:6px;padding:0 10px;font-size:13px}.chip.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.panel-subtasks h3{margin-bottom:6px;font-size:14px;font-weight:600}.panel-subtasks ul{margin:0;padding:0;list-style:none}.subtask{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;min-height:44px;display:flex}.subtask-title{text-align:left;overflow-wrap:anywhere;flex:1;min-height:40px}.subtask.done .subtask-title{color:var(--ink-2);text-decoration:line-through}.subtask-add{gap:6px;margin-top:8px;display:flex}.subtask-add input{flex:1;min-width:0}.overlay{background:var(--overlay);z-index:40;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;display:flex;position:fixed;inset:0}.quick-add{background:var(--raised);width:100%;max-width:600px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:12px;padding:16px 20px;display:flex}.sheet-handle{background:var(--input-line);border-radius:3px;align-self:center;width:40px;height:5px;display:none}.quick-add-caption{color:var(--ink-2);font-size:13px;font-weight:600}.qa-field{font-size:19px;line-height:1.5;position:relative}.qa-highlight,.qa-input{font:inherit;letter-spacing:normal;white-space:pre-wrap;overflow-wrap:anywhere;border:0;margin:0;padding:6px 0}.qa-highlight{pointer-events:none;color:var(--ink);position:absolute;inset:0}.qa-input{resize:none;color:#0000;width:100%;min-height:0;caret-color:var(--accent-ink);field-sizing:content;background:0 0;border-radius:0;position:relative}.qa-input::placeholder{color:var(--ink-2)}.qa-input:focus-visible{outline:none}.tok{color:inherit;box-shadow:0 0 0 2px var(--tok-bg);background:var(--tok-bg);border-radius:6px}.tok-date,.tok-recurrence{--tok-bg:var(--tok-date-bg);color:var(--tok-date)}.tok-project{--tok-bg:var(--tok-project-bg);color:var(--tok-project)}.tok-priority{--tok-bg:var(--tok-priority-bg);color:var(--tok-priority)}.tok-label{--tok-bg:var(--tok-label-bg);color:var(--tok-label)}.qa-hint{color:var(--tok-project);font-size:13px}.qa-footer{border-top:1px solid var(--line-soft);align-items:center;gap:8px;padding-top:12px;display:flex}.qa-summary{color:var(--ink-2);flex:1;font-size:13px}.qa-submit{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.toast-region{left:50%;bottom:calc(24px + var(--safe-bottom));z-index:50;width:max-content;max-width:calc(100vw - 32px);position:fixed;transform:translate(-50%)}.toast{color:#f4f5f7;box-shadow:var(--shadow);background:#16181d;border-radius:12px;align-items:center;gap:12px;padding:6px 6px 6px 16px;font-size:14px;display:flex}.toast>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast-action{color:#6ee7d9;border-radius:8px;min-height:40px;padding:0 10px;font-weight:600}.toast-close{color:#c3c7ce;border-radius:8px;width:36px;height:36px;font-size:20px}.menu-toggle,.fab,.tabbar,.scrim{display:none}@media (width<=1023px){.menu-toggle{top:calc(12px + var(--safe-top));left:calc(12px + var(--safe-left));z-index:20;background:var(--bg);width:44px;height:44px;display:inline-flex;position:fixed}.sidebar{z-index:30;box-shadow:var(--shadow);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.menu-open .sidebar{transform:none}.scrim{background:var(--overlay);z-index:25;display:block;position:fixed;inset:0}.content{padding:calc(72px + var(--safe-top)) 32px 64px}.panel{z-index:35;box-shadow:var(--shadow);max-width:100vw;position:fixed;top:0;right:0}}@media (width<=767px){.menu-toggle{display:none}.content{padding:calc(24px + var(--safe-top)) calc(20px + var(--safe-right)) calc(var(--tabbar-h) + var(--safe-bottom) + 96px) calc(20px + var(--safe-left))}.page-head{flex-direction:column;align-items:flex-start;gap:8px}.task-title{font-size:16px}.check{width:24px;height:24px}.drag-handle{opacity:1;width:28px;height:28px;margin-left:0;margin-right:-4px}.tabbar{z-index:20;background:var(--bg);border-top:1px solid var(--line);padding:6px calc(8px + var(--safe-right)) calc(6px + var(--safe-bottom)) calc(8px + var(--safe-left));grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{min-height:52px;color:var(--ink-2);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;text-decoration:none;display:flex}.tab.active{color:var(--accent-ink);font-weight:600}.fab{right:calc(20px + var(--safe-right));bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 20px);z-index:20;background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;display:flex;position:fixed;box-shadow:0 6px 16px #0f766e4d}.panel{border-left:0;width:100vw}.panel-fields{grid-template-columns:1fr;gap:4px}.panel-fields dd{margin-bottom:10px}.overlay{align-items:flex-end;padding:0}.quick-add{max-width:none;padding:12px calc(20px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(20px + var(--safe-left));border-radius:20px 20px 0 0}.sheet-handle{display:block}.toast-region{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 92px)}input,select,textarea{font-size:16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
