@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{letter-spacing:-.003em;font-size:14px;font-weight:450}.num,.stat .value,.task-amount,.row .right,table.lines .r,.total-line{font-variant-numeric:tabular-nums}::selection{background:color-mix(in srgb, var(--accent) 22%, transparent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{grid-template-columns:248px minmax(0,1fr)}.side{background:var(--ink);border-right:1px solid var(--ink-line);color:var(--ink-text);gap:2px;padding:18px 12px 14px}.brand{color:#fff;letter-spacing:-.01em;gap:12px;padding:6px 10px 22px}.brand-mark{background:var(--accent);color:#fff;border-radius:9px;width:34px;height:34px;font-size:16px;font-weight:750;box-shadow:inset 0 0 0 1px #ffffff1f,0 6px 16px #00000040}.brand>span:last-child{font-size:16px;font-weight:700}.brand small{color:var(--ink-muted);letter-spacing:0;margin-top:1px;font-size:12px;font-weight:450}.side .nav{color:var(--ink-muted);border-radius:8px;padding:9px 12px;font-weight:550;transition:background .15s,color .15s;position:relative}.side .nav:hover{background:var(--ink-2);color:#fff}.side .nav.active{color:#fff;background:#ffffff12}.side .nav.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-12px}.side .nav.active svg{color:#5fd3a0}.side .nav .count{background:var(--accent);color:#fff;padding:0 7px;font-size:11px;font-weight:700;line-height:19px}.side .nav-parent.within{color:#fff}.side .subnav{border-left-color:var(--ink-line);margin-left:22px}.side .nav.sub{padding:6px 10px;font-size:13.5px;font-weight:500}.side .nav.sub.active:before{display:none}.side .nav.sub.active{color:#fff;background:#ffffff0f}.main{background:var(--bg)}.userbar{background:0 0;border-bottom:0;min-height:58px;padding:14px 40px 0;position:static}.account-btn{border-radius:10px;padding:4px 10px 4px 4px}.account-btn:hover,.account-btn[aria-expanded=true]{background:var(--surface);border-color:var(--border)}.avatar{background:var(--ink);color:#fff;letter-spacing:.02em;font-weight:700}.account-menu{box-shadow:var(--shadow-lg);animation:pop-in .16s var(--ease);border-radius:12px;padding:6px}.page{max-width:1120px;animation:page-in .22s var(--ease) both;padding:8px 40px 96px}.page-head{margin-bottom:28px}h1{letter-spacing:-.025em;font-size:28px;font-weight:680;line-height:1.15}.page-head .muted{max-width:70ch;margin-top:6px;font-size:14px}h2{letter-spacing:.09em;color:var(--muted);margin:36px 0 12px;font-size:11.5px;font-weight:700}h3{letter-spacing:-.01em;font-weight:650}.demo-banner{background:var(--ink);color:var(--ink-muted);padding:7px 24px;font-size:12.5px}.demo-banner:before{content:"DEMO";letter-spacing:.12em;color:var(--ink);background:#5fd3a0;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:800}.stats{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:0;overflow:hidden}.stat{background:0 0;border:0;border-radius:0;padding:18px 22px 20px;position:relative}.stat+.stat{border-left:1px solid var(--border)}.stat .label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11.5px;font-weight:650}.stat .value{letter-spacing:-.02em;margin-top:6px;font-size:26px;font-weight:650;line-height:1.1}.stat.alert:after{content:"";background:var(--danger);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:22px;right:22px}.card{border-radius:var(--radius);box-shadow:none}.task-groups{gap:22px}.task-group-head{letter-spacing:.08em;font-size:11.5px}.task{border-radius:var(--radius);box-shadow:none;transition:transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s;border-left-width:3px;padding:16px 18px 16px 16px}.task:hover{transform:translateY(-1px);box-shadow:0 10px 28px #16191d14}.task.t-red{background:linear-gradient(90deg, color-mix(in srgb, var(--danger) 4%, var(--surface)), var(--surface) 35%)}.task-title h3{font-size:15px}.task-amount{font-size:15.5px;font-weight:700}.list{border-radius:var(--radius)}.row{min-height:58px;padding:15px 22px;transition:background .12s}.row:hover{background:color-mix(in srgb, var(--accent) 3%, var(--surface-2))}.row .title{font-weight:600}.row-line>.row-delete{opacity:.55;transition:opacity .15s,background .15s}.row-line:hover>.row-delete,.row-delete:focus-visible{opacity:1}.list-group-head{letter-spacing:.08em;padding:11px 22px 9px;font-size:11.5px}.btn{border-radius:var(--radius-sm);letter-spacing:-.005em;min-height:36px;padding:7px 15px;font-weight:600;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .1s}.btn:active:not(:disabled){transform:translateY(1px)}.btn-sm{min-height:30px;padding:4px 11px;font-size:13px}.btn-primary{box-shadow:inset 0 -1px #0000002e,0 1px 2px #0d6b4740}.btn-primary:hover:not(:disabled){box-shadow:inset 0 -1px #0000002e,0 4px 12px #0d6b4740}.btn-secondary{border-color:var(--border-strong);background:var(--surface)}.btn-secondary:hover:not(:disabled){border-color:color-mix(in srgb, var(--text) 30%, var(--border-strong));background:var(--surface)}.btn:disabled{opacity:.45}.field>span{color:var(--text);font-size:12.5px;font-weight:600}.field input,.field textarea,.field select,.items input,.search,.composer-bar input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background-color:var(--surface);min-height:38px;padding:8px 11px;transition:border-color .15s,box-shadow .15s}.field textarea{min-height:84px}.field input:hover,.field textarea:hover,.field select:hover,.search:hover{border-color:color-mix(in srgb, var(--text) 25%, var(--border-strong))}.field input:focus,.field textarea:focus,.field select:focus,.items input:focus,.search:focus,.composer-bar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);outline:none}.field input:disabled,.field select:disabled,.field textarea:disabled{background-color:var(--surface-2);color:var(--muted)}.search{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%239a9fa6' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-position:11px;background-repeat:no-repeat;width:260px;padding-left:34px}.tabs{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:3px}.tabs button{border-radius:7px;padding:6px 13px;font-weight:600;transition:background .15s,color .15s}.tabs button:hover:not(.active){color:var(--text)}.tabs button.active{box-shadow:0 1px 2px #16191d14, 0 0 0 1px var(--border)}.page-tabs{gap:6px;margin-bottom:18px}.page-tabs a{margin-right:14px;padding:10px 4px;font-weight:650;transition:color .15s,border-color .15s}.badge{border-radius:var(--radius-xs);padding:2px 8px;font-size:11.5px;font-weight:650}.note{border-radius:var(--radius-sm);padding:9px 12px;font-size:13px;line-height:1.45}.note.missing,.note.flag,.note.info{border:1px solid color-mix(in srgb, currentColor 16%, transparent)}.drawer-back{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e11156b;animation:.18s both fade-in}.drawer{border:1px solid var(--border);animation:sheet-in .24s var(--ease) both;border-radius:16px}.drawer-head{padding:18px 24px}.drawer-head h3{letter-spacing:-.015em;font-size:17px;font-weight:700}.drawer-body{gap:18px;padding:24px}.drawer-foot{background:var(--surface-2);border-radius:0 0 16px 16px;padding:14px 24px}.toast{background:var(--ink);color:var(--ink-text);animation:toast-in .24s var(--ease) both;border-radius:10px;padding:11px 16px;font-weight:500}.toast:before{content:"";background-color:#5fd3a0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2314181d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;border-radius:50%;flex:none;width:18px;height:18px}.toast.error{background:var(--danger);color:#fff}.toast.error:before{background-color:#ffffff38;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='M12 7v6M12 17h.01'/%3E%3C/svg%3E")}.toast a{color:#5fd3a0}.skeleton{gap:12px;padding:20px 22px;display:grid}.skeleton span{background-size:400% 100%;background-image:linear-gradient(90deg, var(--surface-2) 25%, color-mix(in srgb, var(--border) 70%, var(--surface-2)) 37%, var(--surface-2) 63%);border-radius:6px;height:14px;animation:1.3s infinite shimmer;display:block}.skeleton span:first-child{width:38%;height:18px}.skeleton span:nth-child(2){width:92%}.skeleton span:nth-child(3){width:76%}.skeleton span:nth-child(4){width:60%}.empty{padding:44px 24px}.empty strong{font-size:15.5px;font-weight:650}.error-box{align-items:flex-start;gap:10px;display:flex}.error-box:before{content:"!";background:var(--danger);color:#fff;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;margin-top:1px;font-size:12px;font-weight:800;display:grid}.help-fab{background:var(--surface);border:1px solid var(--border)}.composer textarea{font-size:15.5px}@keyframes page-in{0%{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)scale(.98)}}@keyframes fade-in{0%{opacity:0}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.page,.drawer,.drawer-back,.toast,.account-menu,.skeleton span{animation:none!important}.task:hover{transform:none}}@media (width<=1100px){.shell{grid-template-columns:220px minmax(0,1fr)}.page{padding:4px 28px 88px}.userbar{padding:12px 28px 0}}@media (width<=860px){.shell{grid-template-columns:1fr}.side{width:272px}.userbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:30;min-height:56px;padding:8px 12px 8px 8px;position:sticky;top:0}.userbar strong.mobile-only{letter-spacing:-.01em;font-size:16px;font-weight:700}.page{padding:20px 16px 96px}h1{font-size:24px}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(3){border-left:0}.stat:nth-child(n+3){border-top:1px solid var(--border)}.stat .value{font-size:21px}.row{grid-template-columns:minmax(0,1fr) auto;gap:1px 12px;padding:13px 16px}.row>:first-child{color:var(--muted);grid-column:1;font-size:12px}.row>:nth-child(2){grid-column:1}.row>.right{grid-area:1/2/span 2;align-self:center}.search{width:100%}.drawer{border-radius:14px}}
