@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2) format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2) format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2) format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2) format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2) format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2) format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2) format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2) format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2) format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2) format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2) format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #ffffff;--bg-2: #f7f7f7;--surface: #ffffff;--surface-2: #fafafa;--ink: #000000;--ink-2: #1a1a1a;--ink-3: #666666;--ink-4: #b3b3b3;--line: #ebebeb;--line-2: #dcdcdc;--accent: #000000;--accent-soft: #f0f0f0;--accent-ink: #ffffff;--danger: #1a1a1a;--check-ring: #cccccc;--sage-tint: rgba(110, 145, 105, .18);--font-sans: "Public Sans", -apple-system, BlinkMacSystemFont, "Avenir Next", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--row-pad-y: 8px;--row-pad-x: 12px;--row-gap: 10px;--task-title-size: 13.5px;--task-meta-size: 11.5px;--section-pad-top: 14px;--section-pad-bot: 8px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #000000;--bg-2: #0a0a0a;--surface: #0a0a0a;--surface-2: #141414;--ink: #ffffff;--ink-2: #e6e6e6;--ink-3: #999999;--ink-4: #4d4d4d;--line: #1f1f1f;--line-2: #2e2e2e;--accent: #ffffff;--accent-soft: #1a1a1a;--accent-ink: #000000;--danger: #e6e6e6;--check-ring: #333333;--sage-tint: rgba(140, 180, 130, .16)}}:root[data-theme=dark]{--bg: #000000;--bg-2: #0a0a0a;--surface: #0a0a0a;--surface-2: #141414;--ink: #ffffff;--ink-2: #e6e6e6;--ink-3: #999999;--ink-4: #4d4d4d;--line: #1f1f1f;--line-2: #2e2e2e;--accent: #ffffff;--accent-soft: #1a1a1a;--accent-ink: #000000;--danger: #e6e6e6;--check-ring: #333333;--sage-tint: rgba(140, 180, 130, .16)}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}input,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--accent-ink)}*{scrollbar-width:thin;scrollbar-color:var(--ink-4) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:4px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--ink-3);background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}.app-shell{display:grid;grid-template-columns:240px 1fr;height:100vh;background:var(--bg);transition:grid-template-columns .2s ease}.app-shell:has(.sidebar[data-collapsed=true]){grid-template-columns:56px 1fr}.sidebar{background:var(--bg-2);border-right:1px solid var(--line);padding:12px 0 16px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.sidebar-header{display:flex;align-items:center;gap:10px;padding:6px 16px 10px;font-family:var(--font-mono);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--ink)}.sidebar-logo{width:22px;height:22px;border-radius:6px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;flex-shrink:0}.sidebar-logo svg{width:13px;height:13px;display:block}.sidebar-section{padding:var(--section-pad-top) 16px var(--section-pad-bot);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-4)}.sidebar-item{display:flex;align-items:center;gap:10px;padding:7px 16px;font-size:14px;color:var(--ink-2);cursor:pointer;border:none;background:none;width:100%;text-align:left}.sidebar-item:hover{background:var(--surface-2)}.sidebar-item.active{background:var(--ink);color:var(--accent-ink);font-weight:500}.sidebar-item-icon{width:16px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3);flex-shrink:0}.sidebar-item.active .sidebar-item-icon{color:var(--accent-ink)}.sidebar-item-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-item-count{font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.sidebar-item.active .sidebar-item-count{color:var(--accent-ink);opacity:.7}.sidebar-area-header{display:block;text-decoration:none;cursor:pointer;margin:0}.sidebar-area-header:hover,.sidebar-area-header.active{color:var(--ink-2)}.sidebar-area-header{display:flex;align-items:center;gap:6px}.sidebar-area-chevron{background:none;border:none;padding:2px;margin:0;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-4);cursor:pointer;border-radius:3px;transition:transform .15s ease,color .15s ease}.sidebar-area-chevron:hover{color:var(--ink-2);background:var(--surface-2)}.sidebar-area-chevron.collapsed{transform:rotate(-90deg)}.sidebar-item.is-drop-target,.sidebar-area-header.is-drop-target{background:var(--accent-soft);outline:1px solid var(--accent);outline-offset:-1px;color:var(--accent)}.sidebar-item.is-dragging{opacity:.4}.drag-ghost{pointer-events:none;cursor:grabbing;opacity:.7;box-shadow:0 12px 32px #00000040;border-radius:6px;background:var(--bg)}.drag-ghost-project{width:240px}.sidebar-item-add{color:var(--ink-3)}.sidebar-item-add:hover{color:var(--ink-2)}.sidebar-item-add-glyph{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:14px;line-height:1;color:var(--ink-4)}.sidebar-item-add.editing{background:var(--surface-2)}.sidebar-item-add-input{flex:1;border:none;background:transparent;padding:0;font:inherit;color:var(--ink-1);outline:none}.sidebar-item-add-input::placeholder{color:var(--ink-4)}.sidebar-spacer{flex:1}.sidebar-footer{padding:10px 12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-2);display:flex;align-items:center;gap:8px}.sidebar-avatar{width:24px;height:24px;background:var(--ink-3);color:var(--bg);display:grid;place-items:center;font-size:11px;font-weight:600;flex-shrink:0;font-family:var(--font-mono);letter-spacing:.02em}.sidebar-footer-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-icon-btn{width:26px;height:26px;display:grid;place-items:center;color:var(--ink-3);background:none;border:0;padding:0;cursor:pointer;flex-shrink:0}.sidebar-icon-btn:hover{background:var(--surface-2);color:var(--ink)}.sidebar-collapse-btn{margin-left:auto}.sidebar-search{margin:4px 12px 8px;padding:6px 10px;background:var(--surface);border:1px solid var(--line);display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-3)}.sidebar-search-icon{color:var(--ink-4);display:grid;place-items:center;flex-shrink:0}.sidebar-search input{flex:1;min-width:0;font-size:13px;border:0;outline:0;background:transparent;color:inherit;font-family:inherit;padding:0;cursor:text}.sidebar-search input:disabled{cursor:default}.sidebar-search input::placeholder{color:var(--ink-4)}.sidebar-search kbd{font-family:var(--font-mono);font-size:10px;padding:2px 5px;border:1px solid var(--line-2);border-radius:3px;color:var(--ink-4);background:transparent}.sidebar[data-collapsed=true] .sidebar-search,.sidebar[data-collapsed=true] .sidebar-section,.sidebar[data-collapsed=true] .sidebar-area-header,.sidebar[data-collapsed=true] .sidebar-item-label,.sidebar[data-collapsed=true] .sidebar-item-count,.sidebar[data-collapsed=true] .sidebar-item-add,.sidebar[data-collapsed=true] .sidebar-logo,.sidebar[data-collapsed=true] .sidebar-wordmark,.sidebar[data-collapsed=true] .sidebar-avatar,.sidebar[data-collapsed=true] .sidebar-footer-name{display:none}.sidebar[data-collapsed=true] .sidebar-item{justify-content:center;padding:8px 0;gap:0}.sidebar[data-collapsed=true] .sidebar-header{justify-content:center;padding:12px 0 10px}.sidebar[data-collapsed=true] .sidebar-collapse-btn{margin-left:0}.sidebar[data-collapsed=true] .sidebar-footer{justify-content:center;padding:10px 0}.modal-shell{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:100;pointer-events:none}.modal-shell.open{pointer-events:auto}.modal-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000;transition:background .2s ease}.modal-shell.open .modal-bg{background:#00000040}[data-theme=dark] .modal-shell.open .modal-bg{background:#0000008c}.modal{position:relative;background:var(--surface);border:1px solid var(--line);width:540px;max-width:90vw;max-height:80vh;overflow:auto;box-shadow:0 20px 50px -20px #0003;transform:translateY(8px) scale(.98);opacity:0;transition:transform .18s ease,opacity .18s ease}.modal-shell.open .modal{transform:translateY(0) scale(1);opacity:1}.modal-header{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px}.modal-title{flex:1;margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.modal-body{padding:18px 20px 22px}.modal-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);font-family:var(--font-mono);margin:0 0 8px}.modal-section-title+.setting-row{margin-top:0}.setting-row+.modal-section-title{margin-top:22px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border-bottom:0}.setting-row-info{flex:1;min-width:0}.setting-row-title{font-size:13px;font-weight:500;margin-bottom:2px;color:var(--ink)}.setting-row-desc{font-size:12px;color:var(--ink-3);line-height:1.4;word-break:break-word}.btn{padding:5px 12px;font-size:12.5px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap;font-family:inherit}.btn:hover{background:var(--surface-2);border-color:var(--ink-3);color:var(--ink)}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);padding:2px;flex-shrink:0}.seg button{padding:4px 10px;font-size:11.5px;color:var(--ink-3);font-family:var(--font-mono);background:transparent;border:0;cursor:pointer}.seg button.on{background:var(--surface);color:var(--ink)}.main{display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.page-header{padding:18px 32px 0;display:flex;flex-direction:column;gap:2px;flex-shrink:0}.main-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-4);font-weight:600;font-family:var(--font-mono)}.main-title{font-family:var(--font-mono);font-size:18px;text-transform:uppercase;letter-spacing:.04em;font-weight:500;margin:0;line-height:1.1;color:var(--ink)}.main-sub{color:var(--ink-3);font-size:13px;margin-top:2px}.main-sub-meta{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.day-group{margin-bottom:16px}.day-group-header{display:flex;align-items:baseline;gap:12px;padding:12px 32px 6px;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);font-weight:600;border-bottom:1px solid var(--line)}.day-group-label{color:var(--ink-2)}.day-group-count{color:var(--ink-4);font-variant-numeric:tabular-nums}.page-header-eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.page-header-title-row{display:flex;align-items:center;gap:12px}.editable-title{cursor:text;border-radius:4px}.editable-title:hover{background:var(--surface-2)}.editable-title-input{font-family:var(--font-mono);font-size:18px;text-transform:uppercase;letter-spacing:.04em;font-weight:500;line-height:1.1;color:var(--ink);background:transparent;border:none;outline:1.5px solid var(--accent);border-radius:4px;padding:2px 4px;margin:-2px -4px;width:fit-content;min-width:200px}.project-color-swatch{width:18px;height:18px;border-radius:50%;border:1.5px dashed var(--ink-4);background:transparent;display:inline-flex;align-items:center;justify-content:center;font-size:14px;color:var(--ink-4);cursor:pointer;flex-shrink:0}.project-color-swatch[style*=background]{border:none;color:transparent}.project-color-swatch:hover{outline:2px solid var(--surface-2);outline-offset:2px}.project-area-chip{background:var(--surface-2);border:none;padding:2px 8px;font-size:12.5px;color:var(--ink-2);border-radius:999px;cursor:pointer;font:inherit}.project-area-chip:hover{background:var(--surface-3, var(--accent-soft))}.project-popover{position:absolute;margin-top:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px;box-shadow:0 8px 24px #0000001f;z-index:50;min-width:200px}.project-popover-title{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-4);font-weight:600;margin-bottom:8px}.project-popover-swatches{display:flex;gap:8px;flex-wrap:wrap}.project-popover-swatch{width:22px;height:22px;border-radius:50%;border:none;cursor:pointer;position:relative}.project-popover-swatch.selected{outline:2px solid var(--accent);outline-offset:2px}.project-popover-swatch.none{background:var(--surface-2);color:var(--ink-3);font-size:14px;display:inline-flex;align-items:center;justify-content:center}.project-popover-list{display:flex;flex-direction:column}.project-popover-row{background:none;border:none;text-align:left;padding:6px 8px;font-size:13px;color:var(--ink-1);cursor:pointer;border-radius:4px}.project-popover-row:hover{background:var(--surface-2)}.project-popover-row.selected{color:var(--accent);font-weight:500}.overflow-menu{position:relative;display:inline-block}.overflow-menu-trigger{background:none;border:none;padding:2px 6px;font-size:14px;color:var(--ink-3);border-radius:4px;cursor:pointer;letter-spacing:.1em;line-height:1}.overflow-menu-trigger:hover{background:var(--surface-2);color:var(--ink-1)}.overflow-menu-popover{position:absolute;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 8px 24px #0000001f;z-index:50;min-width:160px}.overflow-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;text-align:left;padding:7px 10px;font-size:13px;color:var(--ink-1);cursor:pointer;border-radius:4px;font:inherit}.overflow-menu-item:hover{background:var(--surface-2)}.overflow-menu-item.danger{color:var(--danger, #c2403c)}.page-body{flex:1;overflow-y:auto}.empty{text-align:center;padding:80px 20px;color:var(--ink-4)}.empty-icon{font-size:30px;margin-bottom:8px;opacity:.4}.empty-title{font-size:14px;color:var(--ink-3);margin-bottom:4px;font-weight:500}.empty-sub{font-size:12.5px}.empty-state{display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-size:14px;padding:32px;text-align:center}.task-list{display:flex;flex-direction:column}.task-card{display:grid;grid-template-columns:18px 1fr auto;gap:var(--row-gap);padding:var(--row-pad-y) var(--row-pad-x);border:1px solid transparent;align-items:center;cursor:pointer;background:var(--surface)}.task-card:hover{background:var(--surface-2)}.task-card.selected{background:var(--surface-2);border-color:var(--ink)}.task-card.completed .task-title{color:var(--ink-3)}.task-title{color:var(--ink);word-break:break-word;position:relative}.task-title:after{content:"";position:absolute;left:0;top:50%;height:1.5px;width:0;background:currentColor;pointer-events:none}.task-card.completed .task-title:after{width:100%}.task-checkbox{width:15px;height:15px;border-radius:0;border:1px solid var(--check-ring);background:transparent;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;transition:background .18s ease-out,border-color .18s ease-out}.task-checkbox.checked{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.task-checkbox svg{width:11px;height:11px;display:block;stroke-dasharray:12;stroke-dashoffset:12}.task-checkbox.checked svg{stroke-dashoffset:0}.task-card.completed-pulse{background:var(--sage-tint);transform:scale(1.015);transform-origin:left center;animation:taskcard-settle .6s .5s ease-out forwards}.task-card.completed-pulse .task-checkbox{animation:taskcard-spring .5s cubic-bezier(.34,1.56,.64,1)}.task-card.completed-pulse .task-checkbox svg{transition:stroke-dashoffset .35s .1s ease-out}.task-card.completed-pulse .task-title:after{transition:width .4s .1s cubic-bezier(.65,0,.35,1)}.task-card.completed-pulse .task-title{transition:color .5s .3s}@keyframes taskcard-spring{0%{transform:scale(1)}50%{transform:scale(1.25)}to{transform:scale(1)}}@keyframes taskcard-settle{to{background:var(--surface);transform:scale(1)}}@media(prefers-reduced-motion:reduce){.task-card.completed-pulse,.task-card.completed-pulse .task-checkbox,.task-card.completed-pulse .task-checkbox svg,.task-card.completed-pulse .task-title,.task-card.completed-pulse .task-title:after{animation:none!important;transition:none!important}}.task-body{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0;font-size:var(--task-title-size);line-height:1.3;letter-spacing:-.005em}.task-meta{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;margin-left:10px;font-size:var(--task-meta-size);color:var(--ink-3)}.task-meta-dot{width:3px;height:3px;background:var(--ink-4);border-radius:50%;flex-shrink:0}.task-due{font-variant-numeric:tabular-nums}.task-due-today{color:var(--accent);font-weight:500}.task-due-overdue{color:var(--danger);font-weight:500}.task-project{display:inline-flex;align-items:center;gap:5px}.task-project-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.task-tags{display:inline-flex;flex-wrap:wrap;gap:4px}.task-tag{font-size:10.5px;font-family:var(--font-mono);letter-spacing:.01em;padding:1px 7px;border-radius:0;border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);white-space:nowrap}.task-tag.urgent{color:var(--ink);border-color:var(--ink);background:transparent}.task-detail{background:var(--surface-2);border-bottom:1px solid var(--line);padding:12px 16px 14px 44px;animation:detailIn .24s cubic-bezier(.2,.7,.2,1)}@keyframes detailIn{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.detail-grid{display:grid;grid-template-columns:1fr 220px;gap:24px}.detail-main{display:flex;flex-direction:column;gap:14px;min-width:0}.detail-title{font-size:14px;font-weight:500;border:none;background:transparent;padding:2px 0;width:100%;letter-spacing:-.005em;color:var(--ink);font-family:inherit}.detail-title:focus{outline:none}.detail-section{display:flex;flex-direction:column;gap:6px}.detail-section-title{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4);font-family:var(--font-mono);font-weight:600;display:flex;align-items:center;gap:8px}.detail-section-count{font-family:var(--font-mono);color:var(--ink-4);text-transform:none;letter-spacing:0;font-weight:500}.detail-notes{resize:vertical;min-height:56px;border:1px solid var(--line);background:var(--surface);padding:8px 10px;font-size:12.5px;line-height:1.5;width:100%;color:var(--ink-2);font-family:inherit}.detail-notes:focus{outline:none;border-color:var(--ink-3)}.detail-subtasks{display:flex;flex-direction:column;gap:0}.detail-subtask{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:center;padding:3px 0}.detail-subtask.completed .detail-subtask-title{color:var(--ink-3);text-decoration:line-through}.detail-subtask-title{font-size:12.5px}.detail-subtask-add{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:center;padding:4px 0}.detail-subtask-add:before{content:"+";color:var(--ink-4);font-size:13px;text-align:center;line-height:1}.detail-subtask-input{border:none;background:transparent;padding:0;font-size:12.5px;font-family:inherit;color:var(--ink-2);width:100%}.detail-subtask-input::placeholder{color:var(--ink-4)}.detail-subtask-input:focus{outline:none}.detail-attachments-placeholder{padding:12px 14px;border:1px dashed var(--line-2);color:var(--ink-4);font-size:12px;text-align:center}.detail-attachments-link{color:var(--accent);cursor:pointer}.detail-side{display:flex;flex-direction:column;border-left:1px solid var(--line);padding-left:16px}.detail-side-row{display:grid;grid-template-columns:56px 1fr;gap:8px;align-items:start;padding:5px 0;border-bottom:1px dashed var(--line);min-height:32px}.detail-side-row:last-child{border-bottom:0}.detail-side-label{font-size:10px;font-family:var(--font-mono);color:var(--ink-4);text-transform:uppercase;letter-spacing:.08em;font-weight:500;padding-top:8px}.detail-side-value{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:28px;font-size:12px;color:var(--ink-2)}.detail-side-value .when-picker{display:inline-block}.detail-side-value .when-trigger{border:none;background:transparent;padding:4px 6px;margin-left:-6px;font-size:12px;min-width:0;color:var(--ink-2)}.detail-side-value .when-trigger:hover{background:var(--surface);border-color:transparent}.detail-side-value .when-trigger.active{color:var(--ink);border-color:transparent}.detail-side-select{border:none;background:transparent;padding:4px 6px;margin-left:-6px;font-size:12px;font-family:inherit;color:var(--ink-2);cursor:pointer;max-width:100%}.detail-side-select:hover{background:var(--surface)}.detail-side-select:focus{outline:none}.detail-time-input{border:none;background:transparent;padding:4px 6px;font-size:12px;font-family:inherit;color:var(--ink-2);cursor:pointer}.detail-time-input:hover{background:var(--surface)}.detail-time-input:focus{outline:none}.detail-side-value .detail-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center;width:100%}.detail-tag{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-mono);font-size:10.5px;border:1px solid var(--line-2);padding:1px 4px 1px 6px;color:var(--ink-2)}.detail-tag-remove{font-size:11px;line-height:1;color:var(--ink-4);padding:0 2px;background:none;border:none;cursor:pointer}.detail-tag-remove:hover{color:var(--ink)}.detail-tag-input-wrap{position:relative;flex:1;min-width:60px}.detail-tag-input{border:none;background:transparent;font-size:11.5px;font-family:inherit;padding:2px 4px;width:100%;color:var(--ink-2)}.detail-tag-input::placeholder{color:var(--ink-4)}.detail-tag-input:focus{outline:none}.detail-tag-suggest{position:absolute;top:100%;left:0;margin:0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid var(--line-2);z-index:1;min-width:140px}.detail-tag-suggest button{display:block;width:100%;text-align:left;padding:4px 10px;font-size:12px;color:var(--ink-2);background:none;border:none;cursor:pointer;font-family:inherit}.detail-tag-suggest button:hover{background:var(--accent-soft)}.detail-footer{display:flex;justify-content:flex-end;margin-top:12px}.detail-delete{font-size:11.5px;color:var(--ink-3);border:1px solid var(--line-2);background:transparent;padding:4px 10px;cursor:pointer;font-family:inherit}.detail-delete:hover{color:var(--ink);border-color:var(--ink-3)}.auth-screen{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:24px}.auth-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--line);padding:32px}.auth-title{font-size:22px;font-weight:600;margin:0 0 4px}.auth-subtitle{font-size:13px;color:var(--ink-3);margin-bottom:24px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-4);margin-bottom:4px}.auth-input{width:100%;padding:10px 12px;border:1px solid var(--line-2);background:var(--surface);font-size:14px}.auth-input:focus{outline:none;border-color:var(--ink)}.auth-button{background:var(--accent);color:var(--accent-ink);padding:10px 14px;font-size:14px;font-weight:500;margin-top:4px}.auth-button:disabled{opacity:.5;cursor:not-allowed}.auth-toggle{margin-top:16px;font-size:13px;color:var(--ink-3);text-align:center}.auth-toggle button{color:var(--ink);text-decoration:underline;font-size:13px}.auth-error{font-size:13px;color:var(--danger);background:var(--surface-2);padding:8px 10px;border:1px solid var(--line-2)}.auth-info{font-size:13px;color:var(--ink-2);background:var(--surface-2);padding:8px 10px;border:1px solid var(--line-2)}.loading-screen{display:grid;place-items:center;height:100vh;color:var(--ink-3);font-size:13px}.quick-add{margin:12px 18px 0;padding:6px 12px;border:1px solid var(--line-2);display:flex;align-items:center;gap:8px;cursor:text;color:var(--ink-4);font-size:12.5px;background:var(--surface);transition:all .12s}.quick-add:hover,.quick-add:focus-within{border-color:var(--accent);color:var(--ink-2)}.quick-add-glyph{width:14px;font-size:14px;line-height:1;color:var(--ink-4);text-align:center;font-weight:300}.quick-add-input{flex:1;border:none;background:transparent;font-size:13.5px;padding:4px 0;color:var(--ink)}.quick-add-input::placeholder{color:var(--ink-4)}.quick-add-input:focus{outline:none}.quick-add kbd{font-family:var(--font-mono);font-size:10px;padding:2px 6px;border:1px solid var(--line-2);border-radius:3px;color:var(--ink-4)}.filter-bar{display:flex;align-items:center;gap:6px;padding:12px 32px 8px;border-bottom:1px solid var(--line);flex-wrap:wrap;flex-shrink:0}.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);padding:2px}.seg button{padding:4px 10px;font-size:11.5px;color:var(--ink-3);font-family:var(--font-mono);border:none;background:transparent;cursor:pointer}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000a}@media(prefers-color-scheme:dark){.seg button.on{box-shadow:none}}.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line);font-size:12px;color:var(--ink-2);background:var(--surface);white-space:nowrap;cursor:pointer;transition:all .12s;font-family:inherit}.filter-chip:hover{border-color:var(--line-2)}.filter-chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.filter-chip-x{font-size:11px;color:currentColor;opacity:.6;margin-left:2px}.filter-chip-caret{font-size:9px;opacity:.6}.filter-search{margin-left:auto;display:flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--line);font-size:12.5px;background:var(--surface);min-width:200px}.filter-search input{flex:1;min-width:0;font-size:12.5px;border:none;background:transparent;color:var(--ink);font-family:inherit}.filter-search input:focus{outline:none}.filter-sort{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line);font-size:12px;color:var(--ink-3);background:var(--surface);cursor:pointer;font-family:inherit}.filter-popover{position:absolute;top:100%;left:0;margin-top:6px;background:var(--surface);border:1px solid var(--line);padding:4px;min-width:180px;z-index:30;box-shadow:0 8px 24px -8px #0000001f}.filter-popover button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;font-size:12.5px;color:var(--ink-2);text-align:left;border:none;background:transparent;font-family:inherit;cursor:pointer}.filter-popover button:hover{background:var(--surface-2)}.filter-popover .check{width:12px;height:12px;border:1px solid var(--line-2);display:inline-grid;place-items:center;font-size:9px;line-height:1}.filter-popover .check.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.filter-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.filter-tag{font-size:11px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-3);padding:2px 8px;cursor:pointer;font-family:inherit}.filter-tag:hover{color:var(--ink);border-color:var(--ink-3)}.filter-tag.active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.project-section{border-bottom:1px solid var(--line)}.project-section-header{display:flex;align-items:center;justify-content:space-between;padding:18px var(--row-pad-x) 6px;gap:8px}.project-section-title,.project-section-title-static,.project-section-title-input{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);background:transparent;border:none;padding:2px 0;text-align:left;font-family:inherit}.project-section-title{cursor:text}.project-section-title:hover{color:var(--ink)}.project-section-title-input{border-bottom:1px solid var(--ink-3);outline:none;color:var(--ink);width:100%;max-width:320px}.project-section-delete{font-size:18px;line-height:1;color:var(--ink-4);background:transparent;border:none;padding:0 6px;cursor:pointer}.project-section-delete:hover{color:var(--ink)}.project-add-heading{padding:18px var(--row-pad-x)}.project-add-heading-input{width:100%;max-width:320px;border:none;border-bottom:1px dashed var(--line-2);background:transparent;font-size:13px;padding:4px 0;color:var(--ink);font-family:inherit}.project-add-heading-input::placeholder{color:var(--ink-4)}.project-add-heading-input:focus{outline:none;border-bottom-color:var(--ink-3)}.area-projects{padding:16px var(--row-pad-x);border-bottom:1px solid var(--line)}.area-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-3);margin-bottom:8px}.area-tasks .area-section-label{padding:16px var(--row-pad-x) 0;margin-bottom:0}.area-project-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.area-project-card{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);font-size:14px;border-radius:4px}.area-project-card:hover{background:var(--surface-2);border-color:var(--line-2)}.area-project-dot,.sidebar-project-dot{width:6px;height:6px;border-radius:0;flex-shrink:0}.sidebar-project-dot{margin-right:2px}.area-project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-group-header{display:flex;align-items:baseline;gap:10px;padding:16px 32px 4px}.task-group-title{font-family:var(--font-mono);text-transform:uppercase;font-size:11px;letter-spacing:.1em;font-weight:600;color:var(--ink)}.task-group-meta{font-size:11.5px;color:var(--ink-4);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.task-aux{display:flex;align-items:center;gap:8px;flex-shrink:0;color:var(--ink-4);font-size:11px;padding-left:8px}.subtask-bar{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:11px}.subtask-bar svg{width:11px;height:11px}.task-card.dragging{opacity:.4}.task-card.drag-over{border-top:2px solid var(--accent)}.when-picker{position:relative;display:inline-block}.when-trigger{font-size:13px;padding:5px 10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-family:inherit;cursor:pointer;text-align:left;min-width:140px}.when-trigger:hover{border-color:var(--ink-3)}.when-trigger.active{color:var(--ink);border-color:var(--ink-3)}.when-popover{position:fixed;z-index:100;width:296px;background:var(--surface);border:1px solid var(--line-2);box-shadow:0 18px 48px -12px #0000002e;padding:12px;display:flex;flex-direction:column;gap:8px}.when-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:4px}.when-title{font-size:14px;font-weight:600;letter-spacing:-.005em}.when-close{background:transparent;border:none;color:var(--ink-3);font-size:18px;line-height:1;padding:0 4px;cursor:pointer}.when-close:hover{color:var(--ink)}.when-shortcut{display:flex;align-items:center;gap:10px;padding:8px 10px;border:none;background:transparent;color:var(--ink);font-family:inherit;font-size:13.5px;cursor:pointer;text-align:left}.when-shortcut:hover{background:var(--surface-2)}.when-shortcut-icon{width:18px;display:inline-flex;justify-content:center;color:var(--ink-3)}.when-shortcut-label{flex:1}.when-shortcut-check{color:var(--ink-3);font-size:12px}.when-month-nav{display:flex;align-items:center;justify-content:space-between;padding:4px 4px 0;border-top:1px solid var(--line);margin-top:4px}.when-month-label{font-size:12.5px;font-weight:600;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.when-month-btn{background:transparent;border:none;color:var(--ink-3);font-size:18px;line-height:1;padding:4px 8px;cursor:pointer}.when-month-btn:hover{color:var(--ink)}.when-cal{display:flex;flex-direction:column;gap:2px}.when-cal-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.when-cal-cell{display:flex;align-items:center;justify-content:center;font-size:12.5px;height:32px;font-variant-numeric:tabular-nums}.when-cal-header{font-size:10.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-4)}.when-cal-day{border:1px solid transparent;background:transparent;color:var(--ink-2);cursor:pointer;font-family:inherit}.when-cal-day:hover{background:var(--surface-2)}.when-cal-day.outside{color:var(--ink-4)}.when-cal-day.today{color:var(--ink);font-weight:600;border-color:var(--line-2)}.when-cal-day.selected{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.when-clear{margin-top:4px;padding:8px 10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);font-family:inherit;font-size:13px;cursor:pointer}.when-clear:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.when-clear:disabled{color:var(--ink-4);cursor:not-allowed}
