@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.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}:root{--bg:#f4f2ec;--surface:#fffefa;--surface-2:#ebe8df;--surface-3:#dfdbd0;--ink:#1b1f1d;--ink-soft:#5b615d;--ink-faint:#8b908b;--line:#dcd8cd;--accent:#f0531f;--accent-strong:#c93d0f;--accent-soft:#fde3d7;--on-accent:#fff;--done:#1d8f61;--done-soft:#d6efe2;--on-track:#2f6fd0;--on-track-soft:#dce7f8;--behind:#b9810a;--behind-soft:#f6e8c6;--over:#c8392f;--over-soft:#f7dad6;--open:#6f756f;--open-soft:#e6e4dd;--g-blue:#3a76cf;--g-green:#2d9156;--g-orange:#e26c22;--g-purple:#8656d1;--g-pink:#cf4c8a;--g-teal:#1a9497;--g-yellow:#c99a0c;--g-gray:#7a817c;--shadow:0 1px 2px #1e190f0f, 0 4px 16px #1e190f0f;--display:"Space Grotesk Variable", "Space Grotesk", system-ui, sans-serif;--body:"Inter Variable", "Inter", system-ui, sans-serif;--radius:14px;--radius-s:9px;--gutter:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111413;--surface:#1a1e1c;--surface-2:#232825;--surface-3:#2d332f;--ink:#eef0eb;--ink-soft:#a6aca6;--ink-faint:#727972;--line:#2c322e;--accent:#ff6a35;--accent-strong:#ff8a5c;--accent-soft:#3d2116;--on-accent:#1a0d07;--done:#3fcf8e;--done-soft:#15352a;--on-track:#6aa5ff;--on-track-soft:#172a45;--behind:#f0b73a;--behind-soft:#3a2e12;--over:#ff6b5f;--over-soft:#42201d;--open:#9aa09a;--open-soft:#262b28;--g-blue:#5d95ec;--g-green:#49b877;--g-orange:#f08a45;--g-purple:#a37ef0;--g-pink:#ee6fa9;--g-teal:#33b8bb;--g-yellow:#e7bb33;--g-gray:#8f978f;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:400 15px/1.45 var(--body);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0}h1{font-size:28px;font-weight:650}h2{font-size:18px;font-weight:600}h3{font-size:15px;font-weight:600}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.small{font-size:13px}.num{font-family:var(--display);font-variant-numeric:tabular-nums}.error{color:var(--over);margin:8px 0 0;font-size:14px}.loading{min-height:100vh}.shell{min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.screen{max-width:760px;padding:calc(18px + env(safe-area-inset-top)) var(--gutter) 32px;margin:0 auto}.screen.wide{max-width:1080px}.tabs{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10;display:flex;position:fixed;inset:auto 0 0}.tabs a{color:var(--ink-faint);flex-direction:column;flex:1;align-items:center;gap:2px;padding:9px 0 8px;font-size:12px;font-weight:550;text-decoration:none;display:flex;position:relative}.tabs a[aria-current=page]{color:var(--accent)}.tabs .badge{position:absolute;top:5px;left:calc(50% + 8px)}.brand{display:none}@media (width>=900px){.shell{padding:0 0 0 232px}.tabs{border-top:0;border-right:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;gap:4px;width:232px;padding:24px 14px;inset:0 auto 0 0}.tabs a{border-radius:var(--radius-s);color:var(--ink-soft);flex-direction:row;flex:0;gap:12px;padding:10px 12px;font-size:15px}.tabs a:hover{background:var(--surface-2)}.tabs a[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}.tabs .badge{margin-left:auto;position:static}.brand{font:650 19px var(--display);letter-spacing:-.02em;align-items:center;gap:10px;padding:0 10px 22px;display:flex}.screen{padding-top:36px}}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.page-head p{margin:4px 0 0}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,transform 80ms,border-color .15s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-strong)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--over)}.btn.small{min-height:32px;padding:0 12px;font-size:13px}.btn.icon{width:40px;padding:0}.btn.icon.small{width:32px}.btn.selected{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn.yes.selected{background:var(--done);border-color:var(--done);color:var(--surface)}.btn.no.selected{background:var(--surface-3);border-color:var(--surface-3);color:var(--ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel{padding:18px}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1;min-width:0}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--ink-soft);font-size:13px;font-weight:600}.field small{color:var(--ink-faint);font-size:12.5px}.input{border:1px solid var(--line);border-radius:var(--radius-s);background:var(--bg);width:100%;min-height:42px;padding:8px 12px;font-size:16px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input.num-input{width:110px;font-family:var(--display);font-variant-numeric:tabular-nums}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.chip{background:var(--surface-2);color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.state-done{background:var(--done-soft);color:var(--done)}.state-on_track{background:var(--on-track-soft);color:var(--on-track)}.state-behind{background:var(--behind-soft);color:var(--behind)}.state-over{background:var(--over-soft);color:var(--over)}.state-open{background:var(--open-soft);color:var(--open)}.badge{background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);font:700 11px/18px var(--body);text-align:center;border-radius:9px;padding:0 5px}.imp{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.imp i{background:var(--surface-3);border-radius:1px;width:3px}.imp i:first-child{height:5px}.imp i:nth-child(2){height:8px}.imp i:nth-child(3){height:12px}.imp i.on{background:var(--ink)}.imp.must i.on{background:var(--accent)}.bar{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.bar>i{background:var(--on-track);border-radius:4px;height:100%;transition:width .4s cubic-bezier(.2,.8,.2,1);display:block}.segs{gap:4px;display:flex}.segs>i{background:var(--surface-2);border-radius:4px;flex:1;height:8px;transition:background .3s}.fill-done{background:var(--done)!important}.fill-on_track,.fill-open{background:var(--on-track)!important}.fill-behind{background:var(--behind)!important}.fill-over{background:var(--over)!important}.group-dot{border-radius:50%;flex:none;width:10px;height:10px}.ring{transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:7px}.ring .track{stroke:var(--surface-2)}.ring .val{stroke:var(--done);stroke-linecap:round;transition:stroke-dashoffset .5s cubic-bezier(.2,.8,.2,1)}.empty{text-align:center;color:var(--ink-soft);padding:40px 20px}.days{scrollbar-width:none;margin:0 calc(-1 * var(--gutter)) 18px;padding:2px var(--gutter);gap:6px;display:flex;overflow-x:auto}.days button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;flex-direction:column;flex:none;align-items:center;min-width:54px;padding:7px 8px;line-height:1.2;display:flex}.days button b{font:600 17px var(--display)}.days button span{color:var(--ink-soft);font-size:11.5px}.days button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.days button[aria-pressed=true] span{color:inherit;opacity:.75}.summary{align-items:center;gap:16px;margin-bottom:22px;padding:16px 18px;display:flex}.summary .ring-label{flex:none;width:64px;height:64px;position:relative}.summary .ring-label b{font:650 17px var(--display);place-items:center;display:grid;position:absolute;inset:0}.section-title{font:600 13px var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);align-items:center;gap:8px;margin:24px 2px 10px;display:flex}.item{padding:14px 16px 14px 18px;transition:opacity .2s;position:relative;overflow:hidden}.item:before{content:"";background:var(--stripe,var(--surface-3));width:4px;position:absolute;inset:0 auto 0 0}.item.answered{opacity:.78}.item.answered:hover,.item.answered:focus-within{opacity:1}.item-head{align-items:flex-start;gap:10px;display:flex}.item-title{font-size:16px;font-weight:600;text-decoration:none}.item-title:hover{text-decoration:underline}.item-meta{color:var(--ink-soft);margin-top:2px;font-size:13px}.item-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.item .progress{margin-top:10px}.entry-chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.entry-chip{background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:13px;display:inline-flex}.entry-chip.auto{background:var(--on-track-soft)}.entry-chip button{cursor:pointer;width:22px;height:22px;color:var(--ink-soft);background:0 0;border:0;border-radius:50%;font-size:15px;line-height:1}.entry-chip button:hover{background:var(--surface-3)}.counter{align-items:center;gap:4px;display:inline-flex}.counter b{text-align:center;min-width:30px;font:650 20px var(--display)}.slider{min-width:140px;accent-color:var(--accent);flex:1}.group-head{align-items:center;gap:10px;margin:26px 2px 12px;display:flex}.group-head:first-of-type{margin-top:6px}.goal-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.goal-card{flex-direction:column;gap:10px;padding:16px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex;position:relative;overflow:hidden}.goal-card:hover{transform:translateY(-1px)}.goal-card:before{content:"";background:var(--stripe,transparent);height:3px;position:absolute;inset:0 0 auto}.goal-card.archived{opacity:.55}.big{font:650 26px/1.1 var(--display);letter-spacing:-.02em}.big small{color:var(--ink-soft);font-size:15px;font-weight:500}.detail-head{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 6px;display:flex}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:18px 0;display:grid}.stat{padding:12px 14px}.stat>span{color:var(--ink-soft);font-size:12.5px;display:block}.stat b{font:650 22px var(--display)}.chart{width:100%;height:auto;display:block;overflow:visible}.chart text{fill:var(--ink-faint);font:500 10.5px var(--body)}.chart .grid{stroke:var(--line)}.chart .target{stroke:var(--accent);stroke-dasharray:4 4;stroke-width:1.5px}.chart .line{fill:none;stroke:var(--on-track);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--on-track-soft);opacity:.7}.chart .dot{fill:var(--surface);stroke:var(--on-track);stroke-width:2px}.chart .bar-met{fill:var(--done)}.chart .bar-miss{fill:var(--surface-3)}.chart .bar-current{fill:var(--on-track)}.chart .bar-over{fill:var(--over)}.entries{margin:0;padding:0;list-style:none}.entries li{border-top:1px solid var(--line);align-items:center;gap:10px;padding:10px 0;display:flex}.entries li:first-child{border-top:0}.code{background:var(--surface-2);border-radius:var(--radius-s);white-space:pre;padding:12px;font:12.5px/1.5 ui-monospace,SF Mono,Menlo,monospace;overflow-x:auto}.kinds{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.kind{text-align:left;border-radius:var(--radius-s);border:1px solid var(--line);background:var(--bg);cursor:pointer;padding:11px 13px}.kind b{font-size:14.5px;display:block}.kind span{color:var(--ink-soft);margin-top:2px;font-size:12.5px;display:block}.kind[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.seg{background:var(--surface-2);border-radius:999px;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--ink-soft);background:0 0;border:0;border-radius:999px;padding:7px 14px;font-size:13.5px;font-weight:600}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.colors{gap:6px;display:flex}.colors button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px}.colors button[aria-pressed=true]{border-color:var(--ink)}details summary{cursor:pointer;color:var(--ink-soft);font-weight:600}.auth{min-height:100vh;padding:24px var(--gutter);place-items:center;display:grid}.auth .card{width:100%;max-width:380px;padding:28px}.auth h1{align-items:center;gap:10px;margin-bottom:4px;display:flex}.toast{left:50%;bottom:calc(86px + env(safe-area-inset-bottom));background:var(--ink);color:var(--bg);z-index:20;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;animation:.2s ease-out pop;position:fixed;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%,6px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.stages{margin-top:12px}.stage-line{flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-bottom:8px;display:flex}.stage-line .num{font-weight:650}.stage-track{background:var(--surface-2);border-radius:5px;height:10px;position:relative}.stage-fill{background:linear-gradient(90deg, var(--accent-soft), var(--accent));border-radius:5px;transition:width .5s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 auto 0 0}.stage-best{background:var(--ink-faint);border-radius:1px;width:2px;height:16px;margin-left:-1px;position:absolute;top:-3px}.stage-mark{background:var(--surface);border:2px solid var(--surface-3);border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;top:50%}.stage-mark.reached{background:var(--accent);border-color:var(--surface);box-shadow:0 0 0 2px var(--accent)}.stages.compact .stage-track{height:6px}.stages.compact .stage-mark{width:12px;height:12px;margin:-6px 0 0 -6px}.stage-labels{height:38px;margin-top:8px;position:relative}.stage-labels span{white-space:nowrap;color:var(--ink-faint);flex-direction:column;align-items:center;line-height:1.2;display:flex;position:absolute;transform:translate(-50%)}.stage-labels span:last-child{align-items:flex-end;transform:translate(-100%)}.stage-labels span.reached{color:var(--accent-strong)}.stage-labels b{font-size:13px}.stage-labels small{font-size:11.5px}.stage-row{grid-template-columns:110px 1fr auto;align-items:center;gap:8px;display:grid}
