@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/bricolage-latin.woff2) format("woff2");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:Bricolage Grotesque;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/bricolage-latin-ext.woff2) format("woff2");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}:root{--bg:#0D120F;--paper:#161D18;--paper-2:#1C2520;--ink:#EAF1EB;--ink-2:#A8B5AB;--ink-3:#6C7A70;--line:#26312A;--green:#3CC97C;--green-deep:#2FA967;--green-hi:#7BE3A8;--ghost:#222B25;--goal:#7E2F2A;--danger:#E06A5E;--glow:60,201,124;--amber:#E3A93A;--gap:10px;--radius-unit:30%;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Bricolage Grotesque,ui-sans-serif,system-ui,-apple-system,sans-serif;font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}html,body,#root{height:100%}body{overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation}input,select{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;width:100%}input:focus,select:focus{outline:2px solid var(--green);border-color:transparent}[hidden]{display:none!important}.app{position:relative;height:100%;height:100dvh;width:100%;max-width:430px;margin:0 auto;background:var(--paper);display:flex;flex-direction:column;overflow:clip}@media(min-width:431px){.app{box-shadow:0 0 0 1px #ffffff0f}}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:8px;padding:calc(var(--safe-top) + 12px) 16px 8px;flex:none}.topbar h2{flex:1;margin:0;text-align:center;font-size:19px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iconbtn{width:40px;height:40px;border:0;background:transparent;border-radius:12px;display:grid;place-items:center;cursor:pointer;color:var(--ink-2);flex:none}.iconbtn:hover{background:var(--line)}.iconbtn svg{width:22px;height:22px}.hbar{display:flex;align-items:center;gap:8px;padding:calc(var(--safe-top) + 14px) 20px 10px;flex:none;min-height:calc(var(--safe-top) + 64px)}.hbar h2{flex:1;margin:0;text-align:center;font-size:19px;font-weight:600;letter-spacing:-.01em}.tbtn{border:0;background:transparent;padding:8px 6px;border-radius:10px;cursor:pointer;color:var(--ink-2);font-size:16px}.tbtn:hover{color:var(--ink)}.tbtn.strong{color:var(--ink);font-weight:600}.tbtn:disabled{opacity:.4;cursor:default}.who{border:0;background:transparent;display:inline-flex;align-items:center;gap:6px;padding:6px 10px 6px 6px;border-radius:12px;cursor:pointer;font-size:24px;font-weight:600;letter-spacing:-.02em;color:var(--ink);min-width:0}.who:hover{background:var(--line)}.who svg{width:18px;height:18px;color:var(--ink-3);flex:none}.who .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.av{width:30px;height:30px;border-radius:10px;background:var(--green-deep);color:#062;display:grid;place-items:center;font-size:15px;font-weight:700;flex:none}.spacer{flex:1}.list{flex:1;overflow-y:auto;padding:4px 12px 12px;overscroll-behavior:contain}.list::-webkit-scrollbar{width:0}.arow{display:flex;align-items:center;gap:12px;padding:10px 8px 10px 10px;border-radius:18px;cursor:pointer;position:relative;user-select:none;-webkit-user-select:none;transition:background .2s}.arow:hover{background:var(--paper-2)}.arow.met{background:#3cc97c1a}.arow.met:hover{background:#3cc97c29}.arow .ic{width:46px;height:46px;border-radius:14px;background:var(--paper-2);display:grid;place-items:center;font-size:24px;flex:none}.arow.met .ic{background:#3cc97c24}.arow .txt{flex:1;min-width:0}.arow .nm{font-size:17px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arow .amt{font-size:14px;color:var(--ink-2);margin-top:1px;min-height:1.2em}.arow.met .amt{color:var(--green)}.ql{flex:none;border:0;background:var(--ink);color:var(--paper);height:40px;min-width:58px;padding:0 12px;border-radius:14px;font-size:16px;font-weight:600;letter-spacing:-.01em;cursor:pointer;position:relative;transition:transform .12s}.ql:hover{filter:brightness(1.12)}.ql:active{transform:scale(.93)}.ql.pop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;animation:glow-sm .7s cubic-bezier(.2,.7,.3,1) both;pointer-events:none}@keyframes glow-sm{0%{box-shadow:0 0 rgba(var(--glow),.8),0 0 14px rgba(var(--glow),.5)}to{box-shadow:0 0 0 18px rgba(var(--glow),0),0 0 24px 8px rgba(var(--glow),0)}}.screen[data-edit=true] .ql{display:none}.handle,.gear{display:none;flex:none;color:var(--ink-3);width:36px;height:40px;place-items:center;border:0;background:transparent;border-radius:10px}.screen[data-edit=true] .handle,.screen[data-edit=true] .gear{display:grid}.handle{cursor:grab;touch-action:none}.gear{cursor:pointer}.gear:hover{color:var(--ink);background:var(--line)}.arow.lift{background:var(--paper-2);box-shadow:0 14px 30px -12px #000c;z-index:3;transition:none}.add{flex:none;margin:6px 20px calc(var(--safe-bottom) + 24px);border:1px dashed var(--line);background:transparent;color:var(--ink-2);padding:14px;border-radius:16px;cursor:pointer;font-size:15px}.add:hover{color:var(--ink);border-color:var(--ink-3)}.lempty{color:var(--ink-3);text-align:center;padding:60px 30px;font-size:15px;line-height:1.5}.tapwrap{flex:none;padding:8px 20px 0}.tap{width:100%;height:88px;border:0;border-radius:28px;background:var(--ink);color:var(--paper);font-size:30px;font-weight:600;letter-spacing:-.02em;cursor:pointer;position:relative;overflow:hidden;transition:transform .12s ease,filter .12s ease;user-select:none;-webkit-user-select:none}.tap:hover{filter:brightness(1.12)}.tap:active{transform:scale(.965)}.tap:focus-visible{outline:3px solid var(--green);outline-offset:3px}.tap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:calc(var(--p,0)*100%);background:linear-gradient(160deg,var(--green-hi),var(--green) 40%,var(--green-deep));transition:width .12s linear;pointer-events:none}.tap.snap:before{transition:none}.tap span{position:relative}.timerrow{flex:none;display:flex;justify-content:center;align-items:center;gap:12px;padding:8px 20px 0;min-height:38px;font-size:14px;color:var(--ink-2)}.tlink{border:0;background:transparent;color:var(--ink-3);display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:10px;cursor:pointer;font-size:14px}.tlink:hover{background:var(--line);color:var(--ink)}.tlink svg{width:16px;height:16px}.tstop{border:0;background:var(--line);color:var(--ink);padding:5px 12px;border-radius:9px;cursor:pointer;font-weight:600;font-size:13px}.tstop:hover{filter:brightness(1.1)}.stackwrap{flex:1;min-height:0;position:relative;display:flex;flex-direction:column;padding:14px 20px}.stack{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}.rows{display:flex;flex-direction:column;gap:var(--gap)}.screen[data-anchor=bottom] .rows{margin-top:auto}.row{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:var(--gap)}.unit{aspect-ratio:1;border:0;padding:0;border-radius:var(--radius-unit);cursor:pointer;position:relative;background:linear-gradient(160deg,var(--green-hi) 0%,var(--green) 38%,var(--green-deep) 100%);box-shadow:inset 0 1px #ffffff59,inset 0 -2px #0000001f;will-change:transform}.unit:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.unit:active{transform:scale(.94)}.unit.ghost{background:transparent;box-shadow:inset 0 0 0 2px var(--goal);cursor:default}.unit.ghost.next{cursor:pointer}.unit.ghost.next:hover{box-shadow:inset 0 0 0 2px var(--goal),inset 0 0 0 40px rgba(var(--glow),.12)}.unit.ghost.next:active{transform:scale(.94)}.unit.is-new{animation:pop .42s cubic-bezier(.34,1.6,.64,1) both}.unit.is-new:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;animation:glow .85s cubic-bezier(.2,.7,.3,1) .04s both}@keyframes pop{0%{transform:scale(.35);opacity:0}55%{transform:scale(1.1);opacity:1}to{transform:scale(1)}}@keyframes glow{0%{box-shadow:0 0 rgba(var(--glow),.75),0 0 18px rgba(var(--glow),.45)}to{box-shadow:0 0 0 26px rgba(var(--glow),0),0 0 30px 10px rgba(var(--glow),0)}}.compact{display:flex;align-items:center;gap:12px;padding:8px 2px;color:var(--ink-2);font-size:14px;margin-top:var(--gap)}.pile{position:relative;width:28px;height:28px;flex:none}.pile i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:30%;background:var(--green-deep);opacity:.35}.pile i:nth-child(2){transform:translate(3px,-3px);opacity:.6}.pile i:nth-child(3){transform:translate(6px,-6px);opacity:1;background:var(--green)}.empty{margin:auto 0;color:var(--ink-3);font-size:15px;text-align:center;padding:0 24px;line-height:1.5}.screen[data-anchor=bottom] .empty{margin-top:auto;margin-bottom:12px}.status{flex:none;display:flex;align-items:center;gap:10px;margin:0 20px;padding:12px 2px;border:0;border-top:1px solid var(--line);font-size:15px;color:var(--ink-2);background:transparent;cursor:pointer;text-align:left;width:calc(100% - 40px)}.status:hover{color:var(--ink)}.status:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:8px}.status b{font-weight:600;color:var(--ink)}.status .total{flex:1}.status .chev{width:18px;height:18px;flex:none;color:var(--ink-3);transition:transform .3s cubic-bezier(.2,.8,.2,1)}.screen[data-open=false] .status .chev{transform:rotate(180deg)}.hwrap{flex:none;display:grid;grid-template-rows:1fr;transition:grid-template-rows .32s cubic-bezier(.2,.8,.2,1)}.screen[data-open=false] .hwrap{grid-template-rows:0fr}.hwrap>div{min-height:0;overflow:hidden}.history{max-height:min(300px,38dvh);overflow-y:auto;padding:0 20px calc(var(--safe-bottom) + 28px);overscroll-behavior:contain}.history::-webkit-scrollbar{width:0}.day,.week{display:grid;grid-template-columns:84px 1fr auto;align-items:center;gap:12px;padding:8px 2px;border-top:1px solid var(--line);font-size:14px}.day:first-child,.week:first-child{border-top:0}.day .when,.week .when{color:var(--ink-2)}.day .amt,.week .amt{color:var(--ink);font-weight:500}.mini{display:flex;flex-wrap:wrap;gap:3px}.mini i{width:11px;height:11px;border-radius:30%;background:var(--green)}.cells{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:160px}.cells>*{aspect-ratio:1;border-radius:30%;background:var(--green);opacity:var(--o,1);position:relative;border:0;padding:0;cursor:pointer}.cells>*:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.cells>.z{background:var(--ghost);opacity:1}.cells>.now:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:38%;border:1.5px solid var(--ink-2);opacity:.7}.cells>.sel:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:40%;border:2px solid var(--ink);opacity:1}.cells>.fut{background:transparent;box-shadow:inset 0 0 0 1px var(--ghost);opacity:1;cursor:default}.day[data-day]{cursor:pointer;border-left:0;border-right:0;border-bottom:0;background:transparent;width:100%;text-align:left;color:inherit;font:inherit}.day.sel .when{color:var(--ink);font-weight:600}.hempty{color:var(--ink-3);font-size:14px;padding:6px 2px}.screen[data-past=true] .topbar,.screen[data-past=true] .tapwrap,.screen[data-past=true] .timerrow,.screen[data-past=true] .stackwrap{background:#d6962852}.screen[data-past=true] .timerrow{padding-bottom:12px}.pastnote{color:#f2c46b;font-weight:600}.screen[data-past=true] .tstop{background:var(--amber);color:#1b1200}.screen[data-past=true] .tstop:hover{filter:brightness(1.08)}.toast{position:absolute;left:50%;bottom:14px;width:max-content;max-width:calc(100% - 80px);display:flex;align-items:center;gap:14px;padding:6px 6px 6px 14px;border-radius:12px;background:var(--ink);color:var(--paper);font-size:14px;box-shadow:0 10px 24px -10px #0009;transform:translate(-50%,10px);opacity:0;pointer-events:none;transition:transform .25s ease,opacity .25s ease;z-index:2}.toast.show{transform:translate(-50%);opacity:1;pointer-events:auto}.toast button{border:0;background:#0000001f;color:inherit;padding:5px 10px;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px}.toast button:hover{background:#00000038}.toast.home{bottom:calc(var(--safe-bottom) + 90px)}.veil{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;opacity:0;pointer-events:none;transition:opacity .2s;z-index:5}.veil.show{opacity:1;pointer-events:auto}.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--paper);border-radius:28px 28px 0 0;padding:14px 20px calc(var(--safe-bottom) + 28px);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);box-shadow:0 -20px 40px -20px #0009;z-index:6;max-height:85%;overflow-y:auto}.sheet.show{transform:none}.grip{width:40px;height:5px;border-radius:3px;background:var(--line);margin:0 auto 16px}.sheet h3{margin:0 0 10px;font-size:20px;font-weight:600;letter-spacing:-.01em}.sheet .big{display:flex;align-items:center;gap:14px;margin-bottom:6px}.sheet .big .unit{width:44px;flex:none;cursor:default}.sheet .big h3{margin:0;font-size:22px}.sheet .sub{color:var(--ink-2);font-size:14px;margin:0 0 18px 58px}.sheet textarea{width:100%;min-height:96px;resize:vertical;border:1px solid var(--line);border-radius:14px;padding:12px 14px;font:inherit;font-size:15px;background:transparent;color:var(--ink)}.sheet textarea:focus{outline:2px solid var(--green);border-color:transparent}.move{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.mlink{border:0;background:transparent;padding:4px 0;font-size:14px;color:var(--ink-2);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}.mlink:hover{color:var(--ink)}.mbody{margin-top:10px}.mbody .seg{margin-bottom:10px}.mdir{display:flex;gap:8px}.mdir button{flex:1;border:1px solid var(--line);background:transparent;padding:9px 10px;border-radius:12px;cursor:pointer;font-size:14px;color:var(--ink)}.mdir button:hover:not(:disabled){background:var(--line)}.mdir button:disabled{opacity:.35;cursor:default}.sheet .actions{display:flex;justify-content:space-between;margin-top:14px}.sheet .actions button{border:0;background:transparent;padding:10px 12px;border-radius:12px;cursor:pointer;font-size:15px;font-weight:500}.sheet .actions .del{color:var(--danger)}.sheet .actions .del:hover{background:#e06a5e1f}.sheet .actions .done{color:var(--ink);background:var(--line)}.prow{display:flex;align-items:center;gap:12px;padding:10px 6px;border-radius:14px;cursor:pointer;border:0;background:transparent;width:100%;text-align:left}.prow:hover{background:var(--paper-2)}.prow .av{width:38px;height:38px;border-radius:12px;background:var(--paper-2);color:var(--ink-2)}.prow.on .av{background:var(--green-deep);color:#062}.prow .pn{flex:1;font-size:17px;font-weight:500;min-width:0}.prow .sub{font-size:13px;color:var(--ink-3);font-weight:400}.prow .pe{border:0;background:transparent;color:var(--ink-3);width:36px;height:36px;border-radius:10px;cursor:pointer;display:grid;place-items:center;flex:none}.prow .pe:hover{background:var(--line);color:var(--ink)}.padd{display:block;width:100%;border:1px dashed var(--line);background:transparent;color:var(--ink-2);padding:12px;border-radius:14px;cursor:pointer;margin-top:8px}.padd:hover{color:var(--ink);border-color:var(--ink-3)}.pedit{padding:6px 0 0}.pedit label{display:block;font-size:13px;color:var(--ink-2);margin:12px 0 6px}.pedit .row2{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.btn{border:0;background:var(--line);color:var(--ink);padding:10px 16px;border-radius:12px;cursor:pointer;font-weight:600}.btn.primary{background:var(--ink);color:var(--paper)}.btn.danger{background:transparent;color:var(--danger)}.btn.danger:hover{background:#e06a5e1f}.note{font-size:13px;color:var(--ink-3);margin:8px 0 0;line-height:1.4}.form{flex:1;overflow-y:auto;padding:0 20px calc(var(--safe-bottom) + 40px);overscroll-behavior:contain}.form::-webkit-scrollbar{width:0}.f{margin-bottom:22px}.f>label{display:block;font-size:13px;color:var(--ink-2);margin-bottom:8px}.seg{display:inline-flex;flex-wrap:wrap;background:var(--line);border-radius:12px;padding:3px;gap:2px}.seg button{border:0;background:transparent;padding:8px 12px;border-radius:9px;font-size:14px;color:var(--ink-2);cursor:pointer;white-space:nowrap}.seg button:hover:not(:disabled){color:var(--ink)}.seg button[aria-pressed=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px #0000004d}.seg button:disabled{opacity:.35;cursor:default}.seg.block{display:flex}.seg.block button{flex:1}.iconpick{display:flex;gap:12px;align-items:center}.iconpick .cur{width:56px;height:56px;border-radius:16px;background:var(--paper-2);display:grid;place-items:center;font-size:30px;flex:none}.iconpick input{width:110px;text-align:center;font-size:20px}.egrid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-top:10px}.egrid button{border:0;background:transparent;font-size:22px;padding:6px 0;border-radius:10px;cursor:pointer}.egrid button:hover{background:var(--paper-2)}.egrid button[aria-pressed=true]{background:var(--line)}.stepper{display:inline-flex;align-items:center;background:var(--line);border-radius:12px;padding:3px}.stepper button{border:0;background:transparent;width:40px;height:36px;border-radius:9px;font-size:20px;cursor:pointer;color:var(--ink-2)}.stepper button:hover:not(:disabled){color:var(--ink);background:var(--paper)}.stepper button:disabled{opacity:.3;cursor:default}.stepper .val{min-width:96px;text-align:center;font-weight:600}.goalrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.preview{margin-top:12px;padding:14px;border-radius:16px;background:var(--paper-2);border:1px solid var(--line);font-size:14px;line-height:1.45}.preview b{font-weight:600}.preview .choice{display:flex;flex-direction:column;gap:6px;margin-top:10px}.preview .choice label{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;border:1px solid var(--line)}.preview .choice label:has(input:checked){border-color:var(--ink-2);background:var(--paper)}.preview .choice input{width:auto;margin:0}.del{margin-top:8px}.confirm{margin-top:10px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}@media(prefers-reduced-motion:reduce){.unit.is-new,.unit.is-new:after,.ql.pop:after{animation:none}.toast,.sheet,.veil,.tap,.hwrap,.status .chev,.arow{transition:none}}.account{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.account h4{margin:0 0 6px;font-size:15px;font-weight:600}.signin{display:flex;gap:8px;margin-top:10px}.signin input{flex:1;min-width:0}.note.danger{color:var(--danger)}.syncline{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink-2);margin:6px 0 10px;flex-wrap:wrap}.syncline .dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none}.syncline .dot.idle{background:var(--green)}.syncline .dot.syncing{background:var(--amber);animation:pulse 1s ease-in-out infinite}.syncline .dot.error{background:var(--danger)}@keyframes pulse{50%{opacity:.35}}
