@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-ext-wght-normal-hsMS0n0O.woff2) format("woff2-variations");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:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/schibsted-grotesk-latin-wght-normal-Bb8VGrTG.woff2) format("woff2-variations");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{--water: #f5f1e4;--island: #fffcf3;--sun: #f5e211;--land: #8ed462;--land-ghost: #c4ec9f;--coral: #ff705d;--pond: #2ba0ff;--lilac: #ebc1ff;--ink: #2c2e2a;--ink-2: #5b5d55;--hair: rgb(44 46 42 / .14);--lobe-ink: #2c2e2a;--chip-water: #f5f1e4;--on-lobe: var(--lobe-ink);--on-sun-2: #575213;--on-land-2: #2f5a1c;--on-coral-2: #4a1f18;--veil: rgb(245 241 228 / .72);--btn: #2c2e2a;--btn-ink: #f5f1e4;--placeholder: #66685f;--font: "Schibsted Grotesk Variable", "Schibsted Grotesk", system-ui, sans-serif;--spring: cubic-bezier(.34, 1.56, .64, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--coast-h: clamp(52px, min(19vw, 9vh), 112px);--lift: 0 2px 4px rgb(44 46 42 / .08), 0 18px 30px -18px rgb(44 46 42 / .45);--chip-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Ccircle cx='17' cy='17' r='17' fill='%23f5e211'/%3E%3Cpath d='M10 17h13M17.5 11.5 23 17l-5.5 5.5' fill='none' stroke='%232c2e2a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--fs-caption: .82rem;--fs-label: .92rem;--fs-body: 1rem;--fs-lead: 1.05rem;--fs-title-sm: 1.1rem;--fs-title-md: 1.3rem;--fs-title: 1.6rem;--fs-statement: 2rem;--fs-headline: 2.25rem;--fs-cover: clamp(2.4rem, 11vw, 3.4rem);--fs-wordmark: clamp(3.6rem, 19vw, 6rem);--r-pill: 999px;--r-round: 50%;--r-soft: 22px;--r-focus: 4px;--r-island: 28px 34px 30px 26px;--r-island-alt: 34px 26px 28px 32px;--r-sheet: 36px 44px 0 0;color-scheme:light}@media (prefers-color-scheme: dark){:root{--water: #1b1d29;--island: #262938;--sun: #e6d310;--land: #7cc451;--land-ghost: #4d7a35;--coral: #ff7b69;--pond: #4aaeff;--lilac: #dcb0f5;--ink: #f3efe2;--ink-2: #b7b4a8;--hair: rgb(243 239 226 / .14);--btn: #f3efe2;--btn-ink: #1b1d29;--placeholder: #a7a499;--veil: rgb(27 29 41 / .9);--lift: 0 2px 4px rgb(0 0 0 / .3), 0 18px 30px -18px rgb(0 0 0 / .8);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}body{margin:0;background-color:var(--water);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);font-weight:450;line-height:1.45;-webkit-tap-highlight-color:transparent;caret-color:var(--pond)}::selection{background:var(--sun);color:var(--lobe-ink)}*{scrollbar-color:var(--ink-2) transparent;scrollbar-width:thin}:focus-visible{outline:3px solid var(--pond);outline-offset:3px}h1,h2,p{margin:0}h1{font-weight:800;font-size:var(--fs-headline);line-height:.95;letter-spacing:-.04em;text-wrap:balance}h2{font-weight:750;font-size:var(--fs-title-sm);letter-spacing:-.015em}a{color:inherit;text-underline-offset:.2em}.muted{color:var(--ink-2)}.center{text-align:center}.error{color:var(--ink);font-weight:650;background:color-mix(in srgb,var(--coral) 28%,transparent);border-radius:var(--r-soft);padding:10px 16px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.page{max-width:540px;margin:0 auto;padding:0 16px calc(7rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.page>p:only-child{margin-top:32px}.lobe{--lobe: var(--sun);position:relative;margin-inline:calc(50% - 50vw);padding-inline:calc(50vw - 50%);background:var(--lobe);color:var(--on-lobe)}.lobe.sun{--lobe: var(--sun);--lobe-2: var(--on-sun-2)}.lobe.land{--lobe: var(--land);--lobe-2: var(--on-land-2)}.lobe.is-over{--lobe: var(--coral);--lobe-2: var(--on-coral-2)}.coast{position:absolute;left:0;width:100%;height:var(--coast-h);fill:var(--lobe);pointer-events:none}.coast-bottom{top:calc(100% - 1px)}.coast-top{bottom:calc(100% - 1px);transform:scaleY(-1)}.coast-wide{display:none}@media (min-width: 700px){.coast-narrow{display:none}.coast-wide{display:block}}.lobe .coast,.lobe{transition:background-color .4s var(--ease-out),fill .4s var(--ease-out)}.page-head{padding-top:calc(28px + env(safe-area-inset-top));padding-bottom:14px;margin-bottom:var(--coast-h);display:flex;justify-content:space-between;align-items:baseline;gap:12px}.head-range{font-weight:650;font-size:var(--fs-label);color:var(--lobe-2)}.today-lobe{container-type:inline-size;padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:10px;margin-bottom:calc(var(--coast-h) - 18px);display:flex;flex-direction:column;gap:14px}.today-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;min-height:48px}.today-day{font-weight:800;font-size:var(--fs-title-md);letter-spacing:-.03em;line-height:1.1}.today-range{font-weight:600;font-size:var(--fs-label);color:var(--lobe-2)}.hero{display:flex;flex-direction:column;gap:2px;margin-top:14px}.hero-label{font-weight:700;font-size:var(--fs-lead)}.hero-amount{font-weight:800;font-size:min(6rem,calc(150cqi / var(--len, 6)));line-height:.95;letter-spacing:-.04em;white-space:nowrap;margin-left:-.04em}.no-budget{font-weight:800;font-size:var(--fs-statement);line-height:1;letter-spacing:-.03em;max-width:14ch}.today-lines{display:flex;flex-wrap:wrap;column-gap:16px;row-gap:2px;font-weight:700;font-size:var(--fs-body)}.today-spent{flex-basis:100%;font-weight:800;font-size:var(--fs-lead)}.today-sub{flex-basis:100%;font-weight:600;font-size:var(--fs-label);color:var(--lobe-2)}.flame{position:relative;width:46px;height:54px;flex:none;color:var(--lobe-ink)}.flame.tier-up{animation:tier-pop .76s .2s var(--spring) both}.flame-ring{position:absolute;left:1px;top:8px;width:44px;height:44px;border-radius:50%;border:3px solid var(--lobe-ink);opacity:0;animation:tier-ring .7s .2s cubic-bezier(.16,1,.3,1) both}@keyframes tier-pop{0%{transform:scale(.55)}}@keyframes tier-ring{0%{opacity:.7;transform:scale(.6)}to{opacity:0;transform:scale(2)}}.flame-shape{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.flame-outer{fill:var(--coral);stroke:var(--lobe-ink);stroke-width:2.5;stroke-linejoin:round}.flame-core{fill:none}.flame-count{position:absolute;left:0;right:0;bottom:7px;text-align:center;font-weight:800;font-size:var(--fs-lead);line-height:1;font-variant-numeric:tabular-nums}.flame[data-digits="3"] .flame-count{font-size:var(--fs-caption);bottom:9px}.flame[data-tier="0"] .flame-outer{fill:none;stroke:var(--lobe-2);stroke-dasharray:4 4}.flame[data-tier="0"] .flame-count{color:var(--lobe-2)}.flame:is([data-tier="3"],[data-tier="4"],[data-tier="5"]) .flame-core{fill:var(--sun)}.flame[data-tier="5"] .flame-outer{stroke-width:3.5}.is-over .flame:not([data-tier="0"]) .flame-outer{fill:var(--sun)}.is-over .flame .flame-core{fill:none}.chip{width:30px;height:30px;border-radius:var(--r-round);background:var(--chip-water);color:var(--lobe-ink);display:grid;place-items:center;transition:transform .4s var(--spring)}.chip .icon{width:16px;height:16px}.water{flex:calc(1 - var(--elev, 0)) 0 0;min-height:calc(var(--coast-h) + var(--rise, 0px) - 24px)}.pot{margin-top:-16px;padding-top:6px;padding-bottom:calc(7rem + env(safe-area-inset-bottom));margin-bottom:calc(-7rem - env(safe-area-inset-bottom));flex:var(--elev, 0) 0 auto;justify-content:flex-start;container-type:inline-size;display:flex;flex-direction:column;gap:2px;animation:swell .52s var(--spring) both}.pot-ghost{--lobe: var(--land-ghost);position:absolute;left:0;right:0;bottom:100%;height:var(--rise, 0px);background:var(--lobe);transform-origin:50% 100%;animation:ghost-up .52s .26s var(--spring) both}.pot-ghost .coast{fill:var(--land-ghost)}.pot>.coast-top{z-index:1}.pot-label{font-weight:700;font-size:var(--fs-lead);position:relative;z-index:2}.pot-amount{font-weight:800;font-size:min(3rem,calc(150cqi / var(--len, 7)));white-space:nowrap;line-height:1;letter-spacing:-.04em;margin-left:-.03em}@keyframes swell{0%{transform:translateY(28px)}}@keyframes ghost-up{0%{transform:translateY(var(--rise, 0px))}}.spread-note{margin-top:16px;align-self:flex-start;background:var(--coral);color:var(--lobe-ink);border-radius:var(--r-soft);padding:10px 16px;font-weight:700}.banner{margin:0;padding:16px 18px;background:var(--island);color:var(--ink);border-radius:var(--r-island);box-shadow:inset 0 0 0 1.5px var(--hair);display:flex;flex-direction:column;gap:12px;font-weight:650;position:relative;z-index:1}button{font:inherit;font-weight:750;font-size:var(--fs-body);min-height:50px;padding:0 22px;border-radius:var(--r-pill);border:none;background:var(--btn);color:var(--btn-ink);cursor:pointer;box-shadow:none;transition:transform .4s var(--spring),background-color .2s var(--ease-out),box-shadow .2s var(--ease-out)}button:active:not(:disabled){transform:scale(.96);transition-duration:.12s}button:disabled{cursor:not-allowed;background:transparent;color:var(--ink-2);outline:2px dashed var(--ink-2);outline-offset:-2px}.form button[type=submit]{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;padding:0 7px 0 22px}.form button[type=submit]:after{content:"";width:36px;height:36px;flex:none;background:var(--chip-arrow) center / contain no-repeat;transition:transform .4s var(--spring)}.form button[type=submit]:hover:not(:disabled):after{transform:translate(3px)}.form button[type=submit]:disabled:after{opacity:.35}button.secondary{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}button.danger{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2.5px var(--coral)}button.link-button{background:none;color:var(--ink);min-height:44px;padding:.25rem 0;border-radius:var(--r-focus);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--pond);text-underline-offset:.3em;align-self:flex-start}button.icon-button{background:none;color:var(--ink);box-shadow:inset 0 0 0 2px var(--hair);min-height:44px;min-width:44px;padding:0;display:grid;place-items:center}.form{display:flex;flex-direction:column;gap:16px}.form label,.page>label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:var(--fs-label);color:var(--ink);min-width:0}.form label.checkbox{flex-direction:row;align-items:center;gap:12px;font-size:var(--fs-body);font-weight:650;min-height:44px}.form input:not([type=checkbox]):not([type=radio]),select{font:inherit;font-weight:650;font-size:var(--fs-title-sm);padding:0 20px;border-radius:var(--r-pill);border:2px solid var(--ink);background:var(--island);color:var(--ink);width:100%;min-height:52px;transition:border-color .2s var(--ease-out)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:52px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9.5l6 6 6-6' fill='none' stroke='%235b5d55' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;background-size:20px}.form input[type=date]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;text-align:left;line-height:48px}.form input[type=date]::-webkit-date-and-time-value{text-align:left}.form input.money-input{text-align:right;font-weight:800;font-size:var(--fs-title);letter-spacing:-.03em;min-height:60px}.form input::placeholder{color:var(--placeholder);opacity:1}.field-hint{font-weight:550;font-size:var(--fs-label);color:var(--ink-2);margin-top:-6px}.form input[type=checkbox],.form input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:28px;margin:0;flex:none;border-radius:var(--r-round);border:2px solid var(--ink);background:var(--island) center / 16px no-repeat;display:grid;place-items:center;cursor:pointer;transition:background-color .2s var(--ease-out),border-color .2s var(--ease-out)}.form input[type=checkbox]:checked,.form input[type=radio]:checked{background-color:var(--pond);border-color:var(--pond)}.form input[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%232c2e2a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.form input[type=radio]:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='5' fill='%232c2e2a'/%3E%3C/svg%3E")}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.form-actions button[type=submit]{flex:1}.choices{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.choices legend{font-weight:700;font-size:var(--fs-label);margin-bottom:4px}.preview{font-weight:750;padding:12px 18px;border-radius:var(--r-soft);background:color-mix(in srgb,var(--sun) 55%,var(--water));color:var(--lobe-ink)}.cover{min-height:40vh;padding-top:calc(40px + env(safe-area-inset-top));padding-bottom:10px;margin-bottom:var(--coast-h);display:flex;flex-direction:column;justify-content:flex-end;gap:12px}.cover h1{font-size:var(--fs-cover)}.cover h1.wordmark{font-size:var(--fs-wordmark);letter-spacing:-.05em}.login-cover{min-height:52vh}.cover p{font-weight:550;font-size:var(--fs-title-sm);max-width:32ch}.cover .muted{color:var(--lobe-2)}.card{background:var(--island);border-radius:var(--r-island);box-shadow:inset 0 0 0 1.5px var(--hair);padding:20px 18px}.card>h2{margin:0 0 14px}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.history-day{background:var(--island);border-radius:var(--r-island);box-shadow:inset 0 0 0 1.5px var(--hair);padding:14px 16px 10px;display:flex;flex-direction:column;gap:4px}.history-day:nth-child(2n){border-radius:var(--r-island-alt)}.history-day.is-today{background:var(--sun);color:var(--lobe-ink);box-shadow:none;--ink: var(--lobe-ink);--ink-2: var(--on-sun-2);--hair: rgb(44 46 42 / .16)}.history-day-header{display:flex;align-items:center;gap:10px}.history-day-header h2{flex:1;font-size:var(--fs-lead)}.day-mark{width:26px;height:26px;border-radius:var(--r-round);display:grid;place-items:center;flex:none;color:var(--lobe-ink)}.day-mark .icon{width:15px;height:15px;stroke-width:3}.day-mark.good{background:var(--land)}.day-mark.over{background:var(--coral)}.day-mark.today{box-shadow:inset 0 0 0 2px var(--lobe-ink);background:var(--water)}.net{font-weight:800;letter-spacing:-.03em;line-height:1;font-size:calc(1rem + var(--mag, 0) * .9rem);border-radius:var(--r-pill);padding:6px 12px;color:var(--lobe-ink)}.net.under{background:var(--land)}.net.over{background:var(--coral)}.net.muted{background:none;font-weight:700;font-size:var(--fs-caption);letter-spacing:0;color:var(--ink-2);padding:6px 0}.day-meta{color:var(--ink-2);font-weight:600;font-size:var(--fs-label);padding-left:36px}.entries{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column}.history .entries{padding-left:36px}button.entry,.entry.is-locked{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:12px;text-align:left;background:transparent;color:var(--ink);border-radius:0;border-top:1px solid var(--hair);padding:.6rem 0;font-weight:600;font-size:var(--fs-body);min-height:46px}button.entry:active:not(:disabled){transform:none;opacity:.6}.entry-name{min-width:0}.entry-note{display:block;font-weight:550;font-size:var(--fs-caption);color:var(--ink-2)}.entry-amount{white-space:nowrap;font-weight:750}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--veil);display:flex;align-items:flex-end;justify-content:center;z-index:10;animation:fade-in .24s var(--ease-out) both}.modal{position:relative;background:var(--water);width:100%;max-width:540px;padding:24px 18px calc(22px + env(safe-area-inset-bottom));max-height:92vh;overflow-y:auto;border-radius:var(--r-sheet);box-shadow:var(--lift);animation:sheet-up .42s var(--spring) both}.modal:before{content:"";position:absolute;top:9px;left:50%;width:40px;height:5px;margin-left:-20px;border-radius:var(--r-pill);background:var(--hair)}.modal:focus{outline:none}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-header h2{font-size:var(--fs-title);font-weight:800;letter-spacing:-.035em}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(60px);opacity:.5}}.modal-backdrop.closing{pointer-events:none;animation:fade-out .28s var(--ease-out) forwards}.modal.closing{animation:sheet-down .28s cubic-bezier(.4,0,.9,.55) forwards}@keyframes fade-out{to{opacity:0}}@keyframes sheet-down{0%{transform:translateY(0);opacity:1}to{transform:translateY(70%);opacity:0}}.tab-bar{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translate(-50%);width:min(508px,calc(100% - 32px));display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;background:var(--lobe-ink);border-radius:var(--r-pill);box-shadow:var(--lift);z-index:5}.tab-bar a{color:var(--chip-water);text-decoration:none;font-weight:700;font-size:var(--fs-body);min-height:48px;border-radius:var(--r-pill);display:grid;place-items:center;transition:background-color .3s var(--ease-out),color .3s var(--ease-out)}.tab-bar a.active{background:var(--sun);color:var(--lobe-ink)}.tab-bar:has(.tab-pill:not([hidden])) a.active{background:transparent}.tab-bar:has(.tab-pill) a{transition:color .3s var(--ease-out)}.tab-bar a{position:relative;z-index:1}.tab-pill{position:absolute;left:0;top:0;width:var(--w);height:var(--h);transform:translate(var(--x),var(--y));border-radius:var(--r-pill);background:var(--sun)}.tab-pill[data-placed]{transition:transform .46s var(--spring),width .46s var(--spring)}.tab-bar a:focus-visible{outline-color:var(--sun)}.tab-bar .next-budget-row{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 8px 2px 14px;background:transparent;color:var(--sun);border-radius:0;border-bottom:1px solid rgb(245 241 228 / .16);font-weight:800;font-size:var(--fs-label);animation:swell .52s var(--spring) backwards}.tab-bar .next-budget-row .chip{background:var(--sun);color:var(--lobe-ink)}.tab-bar .next-budget-row:active:not(:disabled) .chip{transform:translate(-4px) scale(.92)}.shell.has-next-budget{--nav-row: 46px}.shell.has-next-budget .tab-bar{border-radius:30px;gap:2px 4px}.shell.has-next-budget .page{padding-bottom:calc(7rem + var(--nav-row) + env(safe-area-inset-bottom))}.shell.has-next-budget .pot{padding-bottom:calc(7rem + var(--nav-row) + env(safe-area-inset-bottom));margin-bottom:calc(-7rem - var(--nav-row) - env(safe-area-inset-bottom))}@media (prefers-color-scheme: dark){.tab-bar{background:var(--btn)}.tab-bar a{color:var(--btn-ink)}.tab-bar .next-budget-row{color:var(--lobe-ink);border-bottom-color:#2c2e2a29}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.page.dashboard{min-height:100dvh}.login-land{margin-top:auto;height:16vh;min-height:90px;margin-bottom:calc(-7rem - env(safe-area-inset-bottom));animation:swell .52s .12s var(--spring) both}.page.narrow:has(.login-land){min-height:100dvh}.page.narrow:has(.login-land)>.form{position:relative;z-index:1;margin-bottom:calc(var(--coast-h) + 12px)}.save-error{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 6px 18px;border-radius:var(--r-soft);background:var(--coral);color:var(--lobe-ink);font-weight:700}.save-error .link-button{color:var(--lobe-ink);text-decoration-color:currentColor;flex:none}@media (max-height: 700px){.today-lobe{gap:10px}.hero{margin-top:2px}.hero-amount{font-size:min(4.6rem,calc(150cqi / var(--len, 6)))}.pot-amount{font-size:min(2.4rem,calc(150cqi / var(--len, 7)))}.week{margin-top:10px}}.bank{border:none;margin:0 0 4px;padding:16px 16px 14px;border-radius:var(--r-island);background:color-mix(in srgb,var(--land) 32%,var(--water));display:flex;flex-direction:column;gap:12px}.bank legend{float:left;width:100%;font-weight:700;font-size:var(--fs-body);color:var(--ink)}.bank-shortcuts{display:flex;flex-wrap:wrap;gap:8px}.bank-shortcuts button{min-height:44px;padding:0 16px;font-size:var(--fs-label)}.confirm-title{font-weight:800;font-size:var(--fs-title);letter-spacing:-.035em;line-height:1.1}.chest{margin-top:10px;padding:10px 16px 12px;border-radius:var(--r-soft);background:var(--chip-water);color:var(--lobe-ink);display:flex;flex-direction:column;gap:8px}.chest-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;font-size:var(--fs-label)}.chest-name{font-weight:700;color:var(--on-land-2);margin-left:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chest-total{font-weight:800;font-size:var(--fs-lead);letter-spacing:-.02em}.chest-goal{font-weight:600;color:var(--on-land-2)}.chest-reached{display:inline-flex;align-items:center;gap:4px;font-weight:700}.chest-reached.pop .icon{animation:tick-pop .56s .4s var(--spring) both}@keyframes tick-pop{0%{transform:scale(0)}}.chest-reached .icon{width:16px;height:16px;padding:2px;border-radius:var(--r-round);background:var(--land)}.chest-bar{display:block;height:6px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--lobe-ink) 14%,transparent);overflow:hidden}.chest-bar:before{content:"";display:block;height:100%;width:var(--fill, 0%);border-radius:inherit;background:var(--lobe-ink);transform-origin:left;animation:fill-across .6s var(--spring) both}@keyframes fill-across{0%{transform:scaleX(.2)}}.entry.is-locked{cursor:default}.chest-card-total{font-weight:800;font-size:var(--fs-title-md);letter-spacing:-.03em;margin-top:-6px}button.hero-button{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;min-height:0;padding:0;margin-top:14px;background:none;color:inherit;font-weight:inherit;text-align:left;border-radius:var(--r-soft)}button.hero-button:active:not(:disabled){transform:scale(.98)}.hero-row{display:flex;align-items:center;gap:12px}.hero-fit{flex:1;min-width:0;container-type:inline-size;display:flex;align-items:center;gap:12px}.hero-fit .hero-amount{display:block;font-size:min(6rem,calc((150cqi - 90px) / var(--len, 6)))}@media (max-height: 700px){.hero-fit .hero-amount{font-size:min(4.6rem,calc((150cqi - 90px) / var(--len, 6)))}}.hero-chip{width:48px;height:48px;flex:none}.hero-chip .icon{width:22px;height:22px;stroke-width:3}button.hero-button:active .hero-chip,button.hero-chip-button:active .hero-chip{transform:scale(.88)}.hero:not(button) .hero-row{align-items:flex-end;justify-content:space-between}button.hero-chip-button{flex:none;min-height:48px;padding:0;background:none;border-radius:var(--r-round)}.action-rows{display:flex;flex-direction:column;gap:8px}button.action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:68px;padding:8px 10px 8px 22px;color:var(--lobe-ink);text-align:left}button.action-row.coral{background:var(--coral)}button.action-row.pond{background:var(--pond)}button.action-row.lilac{background:var(--lilac)}.action-text{display:flex;flex-direction:column;gap:1px;min-width:0}.action-label{font-weight:800;font-size:var(--fs-title-sm);letter-spacing:-.015em}.action-hint{font-weight:600;font-size:var(--fs-caption)}button.action-row .chip{width:44px;height:44px;flex:none}button.action-row:active:not(:disabled) .chip{transform:translate(-4px) scale(.92)}button.action-row:disabled{background:transparent;box-shadow:inset 0 0 0 2px var(--ink-2);outline:none;color:var(--ink-2)}button.action-row:disabled .chip{background:transparent;color:var(--ink-2)}button.pot-button{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:0;padding:0;background:none;color:inherit;font-weight:inherit;text-align:left;border-radius:var(--r-soft)}button.pot-button:active:not(:disabled){transform:scale(.98)}.pot-hint{display:inline-flex;align-items:center;gap:2px;margin-top:4px;font-weight:750;font-size:var(--fs-label);color:var(--on-land-2)}.pot-hint .icon{width:16px;height:16px;stroke-width:3;transition:transform .4s var(--spring)}button.pot-button:hover .pot-hint .icon{transform:translate(3px)}.week{position:relative;z-index:2;margin-top:14px;padding:4px 8px 12px;border-radius:var(--r-soft);background:var(--chip-water);color:var(--lobe-ink)}.week-head{display:flex;align-items:center;justify-content:space-between;padding-left:8px}.week-title{font-weight:750;font-size:var(--fs-label)}button.week-toggle{min-height:44px;padding:0 8px;background:none;color:var(--lobe-ink);font-weight:700;font-size:var(--fs-caption);border-radius:var(--r-focus);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--pond);text-underline-offset:.3em}.week-days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.week-day{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}.week-name{font-weight:650;font-size:var(--fs-caption);color:var(--on-land-2)}.week-day.today .week-name{font-weight:800;color:var(--lobe-ink)}.week-mark{width:32px;height:32px;border-radius:var(--r-round);display:grid;place-items:center;color:var(--lobe-ink)}.week-mark .icon{width:17px;height:17px;stroke-width:3}.week-mark.good{background:var(--land)}.week-mark.over{background:var(--coral)}.week-mark.today{overflow:visible}.week-mark.today .rollo{flex:none;margin:-4px}.week-mark.future,.week-mark.none{border:2px dashed color-mix(in srgb,var(--lobe-ink) 30%,transparent)}.ladder{display:flex;flex-direction:column;gap:14px}.ladder-summary{padding:14px 18px;border-radius:var(--r-island);background:color-mix(in srgb,var(--land) 32%,var(--water))}.ladder-since{font-weight:750;font-size:var(--fs-title-sm)}.ladder-climb{font-weight:800;font-size:var(--fs-title);letter-spacing:-.035em}.ladder-tally{margin-top:2px;font-weight:600;font-size:var(--fs-label);color:var(--ink-2)}.ladder-loading{min-height:120px;padding-top:8px;font-weight:650;color:var(--ink-2)}.ladder-state{display:flex;flex-direction:column;gap:12px}.ladder-state button{align-self:flex-start}.ladder-rungs{--rail: color-mix(in srgb, var(--ink) 34%, transparent);list-style:none;margin:0;padding:0;box-shadow:inset 3px 0 0 var(--rail),inset -3px 0 0 var(--rail)}.rung{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:10px 16px;border-top:3px solid var(--rail);animation:rung-rise .42s var(--spring) both;animation-delay:calc(min(var(--i, 0),14)*28ms)}.rung.start{border-bottom:3px solid var(--rail)}.rung.today{box-shadow:inset 3px 0 0 var(--rail),inset -3px 0 0 var(--rail);background:var(--sun);color:var(--lobe-ink)}.rung-mark{width:28px;height:28px;border-radius:var(--r-round);display:grid;place-items:center;color:var(--lobe-ink)}.rung-mark .icon{width:15px;height:15px;stroke-width:3}.rung-mark.good{background:var(--land)}.rung-mark.over{background:var(--coral)}.rung-mark.today{background:var(--chip-water);box-shadow:inset 0 0 0 2.5px var(--lobe-ink)}.rung-mark.start{box-shadow:inset 0 0 0 2px var(--ink)}.rung-mark.start:after{content:"";width:10px;height:10px;border-radius:var(--r-round);background:var(--ink)}.rung-day{display:flex;flex-direction:column;min-width:0}.rung-date{font-weight:750}.rung-net{font-weight:650;font-size:var(--fs-label);color:var(--ink-2)}.rung.today .rung-net,.rung.today .rung-pot-label{color:var(--on-sun-2)}.rung-pot{font-weight:800;font-size:var(--fs-lead);letter-spacing:-.02em;text-align:right}.rung-pot-label{display:block;font-weight:650;font-size:var(--fs-caption);letter-spacing:0}@keyframes rung-rise{0%{transform:translateY(12px);opacity:0}}.login-brand{display:flex;align-items:center;gap:10px}.login-brand .rollo{flex:none;margin-left:-8px}.login-cover .login-brand+.login-prop{margin-top:-4px}.cover p.login-prop{font-size:var(--fs-title);font-weight:800;letter-spacing:-.035em;line-height:1.05;max-width:16ch}.field-help{margin-bottom:-6px;font-size:var(--fs-label);font-weight:600;color:var(--ink-2)}.login-assure{text-align:center;font-size:var(--fs-label);font-weight:600;color:var(--ink-2)}.login-cover.sent{min-height:44vh}.login-badge{width:72px;height:72px;border-radius:var(--r-round);display:grid;place-items:center;background:var(--water);color:var(--ink)}.login-badge .icon{width:34px;height:34px;stroke-width:2.2}.login-status:empty{display:none}.login-status{font-weight:650;font-size:var(--fs-label)}.login-after .link-button{align-self:center}.form input[type=text].code-input{text-align:center;font-weight:800;font-size:var(--fs-title);font-variant-numeric:tabular-nums;letter-spacing:.4em;text-indent:.4em;min-height:64px}.login-foot{position:relative;z-index:1;padding-top:14px;text-align:center;font-size:var(--fs-label);font-weight:700;color:var(--on-land-2)}.login-foot a{color:var(--on-lobe);text-decoration-thickness:2px;text-decoration-color:var(--pond);text-underline-offset:.3em}.login-cover h1.wordmark{font-size:clamp(2.8rem,13vw,4.2rem)}.page.dashboard{position:relative}.newday-chip{position:absolute;z-index:6;left:16px;display:flex;align-items:center;gap:8px;padding:5px 16px 5px 5px;border-radius:var(--r-pill);background:var(--water);color:var(--ink);box-shadow:0 10px 18px -12px #0009;white-space:nowrap;opacity:0;pointer-events:none}.newday-rollo{display:grid;flex:none}.newday-amount{font-weight:800;font-size:var(--fs-lead)}.newday-label{font-weight:650;font-size:var(--fs-label);color:var(--ink-2)}.pot-amount.landed{display:inline-block;transform-origin:left center;animation:pot-take .52s var(--spring)}@keyframes pot-take{50%{transform:scale(1.06)}}.week-mark.pop{animation:mark-pop .48s var(--spring) both}@keyframes mark-pop{0%{transform:scale(.3);opacity:0}}.newday-note{position:fixed;z-index:20;left:16px;right:16px;bottom:calc(6.5rem + env(safe-area-inset-bottom));max-width:508px;margin:0 auto;padding:12px 18px;border-radius:var(--r-pill);background:var(--ink);color:var(--water);font-weight:700;font-size:var(--fs-label);text-align:center}.entries li.is-new{animation:entry-rise .42s var(--spring) both}@keyframes entry-rise{0%{opacity:0;transform:translateY(12px)}}.card.collapsible{padding:10px 22px}.card.collapsible.bare{background:none;box-shadow:none;padding-left:0;padding-right:0}.collapsible-head{margin:0}.collapsible-head button{all:unset;box-sizing:border-box;width:100%;min-height:52px;display:flex;align-items:center;gap:12px;cursor:pointer;border-radius:14px}.collapsible-head button:active:not(:disabled){transform:none}.collapsible-head button:focus-visible{outline:2px solid var(--pond);outline-offset:2px}.collapsible-titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.collapsible-title{font-size:var(--fs-lead);font-weight:750;color:var(--ink)}.collapsible.bare .collapsible-title{font-weight:900}.collapsible-summary{animation:fade-in .38s var(--ease-card) both;font-size:var(--fs-label);font-weight:550;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapsible-head .icon{flex:none;transition:transform .38s var(--ease-card)}.collapsible.is-open .collapsible-head .icon{transform:rotate(90deg)}.collapsible{--ease-card: cubic-bezier(.45, 0, .2, 1)}.collapsible-body{display:grid;grid-template-rows:1fr;animation:card-unfold .42s var(--ease-card) both}.collapsible.is-closing .collapsible-body{animation:card-fold .38s var(--ease-card) both}.collapsible-inner{min-height:0;overflow:hidden;padding:2px 0 14px}@keyframes card-unfold{0%{grid-template-rows:0fr;opacity:0}}@keyframes card-fold{to{grid-template-rows:0fr;opacity:0}}.category-picker{border:none;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;gap:10px}.category-picker legend{padding:0;margin-bottom:8px;font-weight:700;font-size:var(--fs-label)}.capsules{display:flex;flex-wrap:wrap;gap:8px}.form label.capsule,button.capsule{position:relative;display:inline-flex;flex-direction:row;align-items:center;min-height:44px;padding:0 16px;border-radius:var(--r-pill);background:var(--island);box-shadow:inset 0 0 0 1.5px var(--hair);color:var(--ink);font-weight:600;font-size:var(--fs-label);cursor:pointer;transition:background-color .2s var(--ease-out),transform .4s var(--spring)}.form label.capsule:active{transform:scale(.95);transition-duration:.12s}.form label.capsule.is-picked{background:var(--sun);box-shadow:none;color:var(--lobe-ink);font-weight:800}.form .capsule input[type=radio]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}.capsule:has(input:focus-visible){outline:2px solid var(--pond);outline-offset:2px}button.capsule.new{background:transparent;color:var(--ink);box-shadow:none;border:2px dashed var(--ink);font-weight:750}.category-new{display:flex;flex-direction:column;gap:12px}.plus-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 8px 0 16px;border-radius:var(--r-soft);background:var(--island);box-shadow:inset 0 0 0 1.5px var(--hair);font-weight:750;font-size:var(--fs-label)}.plus-tag{padding:4px 12px;border-radius:var(--r-pill);background:var(--sun);color:var(--lobe-ink);font-size:var(--fs-caption);font-weight:800}.category-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.category-list li{display:flex;align-items:center;gap:8px;min-height:48px;border-top:1px solid var(--hair)}.category-list li:first-child{border-top:none}.category-list .category-name{flex:1;min-width:0;font-weight:650}.category-list .confirm{flex-direction:column;align-items:stretch;gap:10px;padding:10px 0}.category-totals{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.category-totals li{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:var(--r-soft);background:var(--island);box-shadow:inset 0 0 0 1.5px var(--hair);font-weight:750}.category-totals .total{font-weight:900}.account-email{margin-top:-10px;font-weight:800;font-size:var(--fs-lead)}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60dvh;gap:8px;color:var(--ink-2);font-weight:650}.page-loading .rollo,.page-loading p{animation:fade-in .3s .35s var(--ease-out) both}.cover-rollo{display:block;margin:0 0 6px -8px;animation:swell .52s .12s var(--spring) both}.hero-rollo{display:block;margin:0 0 4px -6px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:6px;padding:32px 0;text-align:center}
