:root{--paper:#0e0e0d;--ink:#ece9e0;--line:#bdb9ae;--rule:#5c5952;--dim:#a29f96;--accent-bg:#ece9e0;--accent-ink:#0e0e0d;--pos:#6fd89c;--neg:#ff7b6e;--neg-strong:#b72822;--neg-ink:#fff;--focus:#ece9e0;--shadow:#000;--font-text:ui-monospace, "SF Mono", "Roboto Mono", "Droid Sans Mono", Menlo, monospace;--size-xs:.75rem;--size-s:.875rem;--size-m:1rem;--size-l:1.25rem;--size-xl:1.5rem;--size-xxl:2rem;--track:.14em;--dur-fast:.16s;--dur:.32s;--dur-slow:.64s;--dur-count:.9s;--stagger:40ms;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--paper:#f4f1e7;--ink:#111;--line:#111;--rule:#111;--dim:#57534a;--accent-bg:#111;--accent-ink:#f4f1e7;--pos:#1d6b42;--neg:#b3261e;--neg-strong:#b3261e;--neg-ink:#fff;--focus:#111;--shadow:#57534a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur:0s;--dur-slow:0s;--dur-count:0s;--stagger:0s}}
*,:before,:after{box-sizing:border-box}:root{interpolate-size:allow-keywords}html{-webkit-text-size-adjust:100%;background:var(--paper)}body{min-height:100dvh;color:var(--ink);font:var(--size-m) / 1.45 var(--font-text);font-variant-numeric:tabular-nums;margin:0}h1,h2{margin:0;line-height:1.2}h1{font-size:var(--size-xl)}h2{font-size:var(--size-m);text-transform:uppercase;letter-spacing:var(--track)}p{margin:.5rem 0}a{color:inherit}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.offline-note :focus-visible{outline-color:var(--paper)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.amount{white-space:nowrap}.amount.is-zero{color:var(--dim)}:is(.env,.sheet-figures div:first-child,.sources,.tile-assign,.tile-warn,.history td:last-child) .amount:not(.is-zero){color:var(--pos)}:is(.env,.sheet-figures div:first-child,.sources,.tile-assign,.tile-warn,.history td:last-child) .amount.is-neg{color:var(--neg)}button,.button{min-width:2.75rem;min-height:2.75rem;font:inherit;cursor:pointer;color:var(--ink);border:1px solid var(--line);transition:transform var(--dur-fast) var(--ease-out);background:0 0;border-radius:0;justify-content:center;align-items:center;padding:0 1rem;font-weight:700;text-decoration:none;display:inline-flex}button:active,.button:active{transform:scale(.97)}button:disabled{cursor:progress;opacity:.7}.topbar{z-index:2;padding:calc(env(safe-area-inset-top) + .5rem) 1rem .5rem;background:var(--paper);border-bottom:1px dotted var(--line);view-transition-name:topbar;position:sticky;top:0}.topbar h1{font-size:var(--size-l);text-transform:uppercase;letter-spacing:var(--track)}.month-switch{text-align:center;grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;gap:.5rem;display:grid}.month-switch .step{width:2.75rem;height:2.75rem;font-size:var(--size-xl);justify-content:center;align-items:center;text-decoration:none;display:flex}.month-switch a.step:hover{outline:1px solid var(--line)}.month-label{view-transition-name:month}.this-month{min-height:2.75rem;font-size:var(--size-s);color:var(--dim);align-items:center;display:inline-flex}.page{max-width:42rem;padding:1rem 1rem calc(5.5rem + env(safe-area-inset-bottom));view-transition-name:page;margin:0 auto}@keyframes rise{0%{opacity:0;transform:translateY(.75rem)}}.tile,.panel,.group,.feed-list li,.ledger li{animation:rise var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i,0) * var(--stagger))}.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));gap:.5rem;display:grid}.tile{border:1px solid var(--line);flex-direction:column;gap:.25rem;padding:.75rem;display:flex}.tile-label{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim);overflow-wrap:anywhere}.tile-figure{font-size:var(--size-xl);font-weight:700}.tile-note{font-size:var(--size-s)}.tile-assign{border-style:dashed}.tile-loud{background:var(--neg-strong);color:var(--neg-ink);border-color:var(--neg-strong);animation:rise var(--dur-slow) var(--ease-out) both, alarm calc(var(--dur-slow) * 2.5) ease-in-out var(--dur-slow) infinite}.tile-loud .tile-label,.tile-loud .amount{color:inherit;font-weight:700}@keyframes alarm{50%{outline:2px solid var(--neg-strong);outline-offset:.25rem}}.tile-warn .tile-label{color:var(--neg);font-weight:700}.tile-stale{border-style:double;border-width:3px}.stale{font-weight:700;font-size:var(--size-s)}.stale:before{content:"! "}.fresh{color:var(--dim);font-size:var(--size-s)}.panel{border:1px solid var(--line);margin-top:2.5rem;padding:.5rem .75rem}.panel>h2:first-child{border:1px solid var(--line);background:var(--paper);border-bottom:0;width:fit-content;max-width:calc(100% + 1.5rem + 2px);margin:calc(-2.5rem - 2px) 0 .75rem calc(-.75rem - 1px);padding:.375rem .75rem;line-height:1.25rem;position:relative;top:1px}.callout{border:1px solid var(--line);border-left-width:4px;padding:.5rem .75rem}.feed-list li{border-bottom:1px dotted var(--rule);grid-template-columns:1fr auto;gap:.125rem .75rem;padding:.5rem 0;display:grid}.feed-list li:last-child{border-bottom:0}.feed-list li.needs{border-left:4px solid var(--ink);padding-left:.5rem}.feed-what{overflow-wrap:anywhere}.feed-who{font-size:var(--size-xs);color:var(--dim);grid-column:1/-1}.empty,.hint{color:var(--dim);font-size:var(--size-s)}.badge-neg{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);border:1px solid;margin-right:.375rem;padding:0 .375rem;font-weight:700;line-height:1.6;display:inline-block}.section-title{color:var(--dim);margin:1.5rem 0 .5rem}.group{margin-bottom:.75rem}.group summary{cursor:pointer;width:fit-content;max-width:100%;min-height:2.75rem;font-size:var(--size-s);text-transform:uppercase;letter-spacing:var(--track);border:1px solid var(--line);z-index:1;background:var(--paper);border-bottom:0;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.25rem .75rem calc(.25rem + 1px);font-weight:700;list-style:none;display:flex;position:relative}.group:not([open]) summary{border-bottom:1px solid var(--line);margin-bottom:0;padding-bottom:.25rem}.group summary::-webkit-details-marker{display:none}.group summary:before{content:"›";width:1rem;color:var(--dim);transition:transform var(--dur) var(--ease-spring);display:inline-block}.group[open] summary:before{transform:rotate(90deg)}.group-name{overflow-wrap:anywhere;flex:1}.group-count{font-size:var(--size-xs);color:var(--dim)}.group summary .badge-neg,.env-over .badge-neg{color:var(--neg)}.group::details-content{block-size:0;transition:block-size var(--dur) var(--ease-out), content-visibility var(--dur) allow-discrete;overflow:clip}.group[open]::details-content{block-size:auto}.group ul{border:1px solid var(--line);border-top:0}.col-head,.env{grid-template-columns:1fr auto 7rem;align-items:center;column-gap:.5rem;padding:0 0 0 .75rem;display:grid}.col-head{min-height:2rem;font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim);border:1px solid var(--line);border-bottom:1px dotted var(--rule)}.col-head>:last-child,.env>.pill{border-left:1px solid var(--line);grid-column:3;justify-content:flex-end;align-self:stretch;align-items:center;padding:0 .75rem;display:flex}.env{border-bottom:1px dotted var(--rule);min-height:2.75rem}.env:last-child{border-bottom:0}.env-name{overflow-wrap:anywhere;grid-column:1}.env-archived{color:var(--dim);font-size:var(--size-s)}.env.env-over .amount.pill.is-neg{color:var(--neg-ink);background:var(--neg-strong);font-weight:700}.ledger li{border-bottom:1px dotted var(--rule);grid-template-columns:1fr 8rem;align-items:baseline;column-gap:.75rem;min-height:2.75rem;padding:.5rem 0;display:grid}.ledger li>.amount{text-align:right;border-left:1px solid var(--line);align-self:stretch;padding-left:.75rem}.ledger li:last-child{border-bottom:0}.acc-name{overflow-wrap:anywhere;flex-direction:column;display:flex}.acc-kind{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim)}.acc-note{font-size:var(--size-s);color:var(--dim);grid-column:1/-1}.acc-note.stale{color:var(--ink)}.choice{border:0;flex-wrap:wrap;gap:.5rem;margin:0;padding:0;display:flex}.choice legend{font-size:var(--size-s);color:var(--dim);margin-bottom:.5rem}.choice label{border:1px solid var(--line);cursor:pointer;align-items:center;gap:.5rem;min-height:2.75rem;padding:0 .75rem;display:flex}.choice label:has(:checked){background:var(--accent-bg);color:var(--accent-ink);border-color:var(--accent-bg);font-weight:700}.choice input{width:1.25rem;height:1.25rem;font:inherit;accent-color:currentColor;margin:0}.choice input:focus-visible{outline:0}.choice label:has(:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.version{text-align:center;font-size:var(--size-s);color:var(--dim);margin-top:1.5rem}.login{max-width:24rem;padding:calc(env(safe-area-inset-top) + 18vh) 1.5rem 2rem;animation:rise var(--dur-slow) var(--ease-out) both;margin:0 auto}.login h1{font-size:var(--size-xxl);text-transform:uppercase;letter-spacing:var(--track);border-bottom:1px dotted var(--line);padding-bottom:.5rem}.login-form{flex-direction:column;gap:.5rem;margin-top:1.5rem;display:flex}.login-form label{font-size:var(--size-s);text-transform:uppercase;letter-spacing:var(--track);font-weight:700}.login-form input{min-height:3rem;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:0;padding:0 .75rem}.login-form input[aria-invalid]{animation:shake var(--dur) var(--ease-out);border-width:2px}.login-form button,.login .button,.sheet-form button,.picker button{background:var(--accent-bg);color:var(--accent-ink);border-color:var(--accent-bg)}.login-error{min-height:1.45em;font-weight:700}@keyframes shake{25%{transform:translate(-.375rem)}75%{transform:translate(.375rem)}}.tabbar{z-index:3;padding-bottom:env(safe-area-inset-bottom);background:var(--paper);border-top:1px solid var(--line);view-transition-name:tabbar;display:flex;position:fixed;inset:auto 0 0;overflow-x:auto}.tabbar a{min-width:4.5rem;min-height:3.5rem;font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim);transition:color var(--dur-fast), background var(--dur-fast);flex-direction:column;flex:1 0 auto;justify-content:center;align-items:center;gap:.125rem;padding:.25rem .5rem;text-decoration:none;display:flex}.tabbar a+a{border-left:1px solid var(--line)}.tabbar svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:square;stroke-linejoin:miter;width:1.5rem;height:1.5rem;transition:transform var(--dur) var(--ease-spring)}.tabbar a[aria-current=page]{background:var(--accent-bg);color:var(--accent-ink);view-transition-name:tab-current;font-weight:700}.tabbar a[aria-current=page] svg{transform:translateY(-.125rem)scale(1.1)}.tabbar a:focus-visible{outline-offset:-6px}.tabbar a[aria-current=page]:focus-visible{outline-color:var(--paper)}.offline-note{z-index:4;padding:calc(env(safe-area-inset-top) + .75rem) 1rem .75rem;background:var(--accent-bg);color:var(--accent-ink);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex;position:fixed;inset:0 0 auto}.offline-note button{color:var(--ink);background:var(--paper)}html[data-offline] .page,html[data-offline] .topbar{visibility:hidden}@view-transition{navigation:auto}::view-transition-group(*){animation-duration:var(--dur);animation-timing-function:var(--ease-out)}@keyframes out-left{to{opacity:0;transform:translate(-2.5rem)}}@keyframes out-right{to{opacity:0;transform:translate(2.5rem)}}@keyframes in-left{0%{opacity:0;transform:translate(-2.5rem)}}@keyframes in-right{0%{opacity:0;transform:translate(2.5rem)}}html:active-view-transition-type(forward)::view-transition-old(page){animation-name:out-left}html:active-view-transition-type(forward)::view-transition-old(month){animation-name:out-left}html:active-view-transition-type(forward)::view-transition-new(page){animation-name:in-right}html:active-view-transition-type(forward)::view-transition-new(month){animation-name:in-right}html:active-view-transition-type(back)::view-transition-old(page){animation-name:out-right}html:active-view-transition-type(back)::view-transition-old(month){animation-name:out-right}html:active-view-transition-type(back)::view-transition-new(page){animation-name:in-left}html:active-view-transition-type(back)::view-transition-new(month){animation-name:in-left}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
.sub-head{grid-template-columns:auto 1fr;align-items:center;gap:.5rem;display:grid}.sub-head h1{overflow-wrap:anywhere}.back{min-height:2.75rem;color:var(--dim);font-size:var(--size-s);align-items:center;gap:.25rem;padding-right:.5rem;text-decoration:none;display:inline-flex}.back span[aria-hidden]{font-size:var(--size-xl);line-height:1}.dim{color:var(--dim)}.ledger li{position:relative}.ledger .acc-name{text-decoration:none}.ledger .acc-name:after{content:"";position:absolute;inset:0}.ledger .acc-name:focus-visible{outline:0}.ledger li:has(.acc-name:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.ledger li:has(.acc-name)>.amount:after{content:" ›";color:var(--dim)}.inbox li{border-bottom:1px dotted var(--rule);grid-template-columns:1fr auto auto;align-items:baseline;gap:.25rem .75rem;padding:.5rem 0 .75rem;display:grid}.inbox li:last-child{border-bottom:0}.inbox-payee{overflow-wrap:anywhere;font-weight:700}.inbox-date{font-size:var(--size-s);color:var(--dim)}.inbox li.leaving{animation:leave var(--dur-slow) var(--ease-out) forwards;pointer-events:none}@keyframes leave{40%{opacity:.6;transform:translate(0)}to{opacity:0;block-size:0;margin-block:0;padding-block:0;transform:translate(110%)}}.inbox li.leaving{block-size:auto;overflow:clip}.inbox-result .filed{animation:rise var(--dur) var(--ease-out) both;font-weight:700}.inbox-result .callout{animation:rise var(--dur) var(--ease-out) both}.chips{flex-wrap:wrap;grid-column:1/-1;gap:.5rem;display:flex}.chip{transition:transform var(--dur-fast) var(--ease-spring), background var(--dur-fast)}.chip:hover{border-style:dashed}.picker{grid-column:1/-1;grid-template-columns:auto 1fr auto;align-items:center;gap:.5rem;display:grid}.picker label{font-size:var(--size-s);color:var(--dim)}.picker select,.sheet-form input,.sheet-form select{min-width:0;min-height:2.75rem;font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:0;padding:0 .5rem}.tx-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:var(--size-s)}.tx-table th{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim);text-align:left;padding:0 .25rem .375rem;font-weight:400}.tx-table th:first-child{width:3.75rem}.tx-table th:last-child{text-align:right;width:5.5rem}.tx-table td{vertical-align:top;border-top:1px dotted var(--rule);overflow-wrap:anywhere;padding:.5rem .25rem}.tx-table :is(th,td)+:is(th,td){border-left:1px solid var(--line)}.tx-table td:first-child{color:var(--dim);white-space:nowrap}.tx-table td:last-child{text-align:right}.tx-table tr.is-needs td:first-child{box-shadow:inset 4px 0 0 var(--ink);padding-left:.5rem}.tx-table tr.is-transfer td{color:var(--dim)}.tx-transfer{display:block}.tx-transfer:before{content:"⇄ " / ""}.tx-env{display:block}.tx-table .badge-neg{letter-spacing:.04em;overflow-wrap:normal;margin:0}.pager{text-align:center;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;margin-top:.75rem;display:grid}.pager .button:last-child{justify-self:end}.pager .button:first-child{justify-self:start}.readout{color:var(--dim);flex-wrap:wrap;align-items:baseline;gap:0 .5rem;margin:0 0 .75rem;display:flex}.readout-figure{font-size:var(--size-xxl);color:var(--ink);font-weight:700}.chart{grid-template-columns:repeat(var(--n), minmax(2.75rem, 1fr));max-width:calc(var(--n) * 5rem);gap:.5rem;margin:0 auto;display:grid}.bar-col{text-transform:uppercase;height:10rem;color:var(--dim);border-color:#0000;border-bottom:1px solid var(--line);flex-direction:column;justify-content:flex-end;align-items:stretch;gap:.375rem;padding:.375rem .25rem;font-weight:400}.bar-col[aria-pressed=true]{color:var(--ink);font-weight:700}.bar{height:max(2px, calc(var(--share) * 1%));border:1px solid var(--line);transform-origin:bottom;max-height:100%;animation:grow var(--dur-slow) var(--ease-spring) both;animation-delay:calc(var(--i,0) * var(--stagger) * 2);transition:background var(--dur) var(--ease-out);display:block}.bar-col[aria-pressed=true] .bar{background:var(--accent-bg);color:var(--accent-ink);border-color:var(--accent-bg)}@keyframes grow{0%{transform:scaleY(0)}}.report-empty{border-top:1px dotted var(--rule);margin-top:.75rem;padding-top:.5rem}.report-group{animation-delay:calc(var(--i,0) * var(--stagger) + var(--dur));margin:0}.report-group summary,.report-group:not([open]) summary{text-transform:none;letter-spacing:0;width:auto;font-weight:400;font-size:var(--size-m);border:1px solid var(--line);border-width:0 1px 1px;border-bottom-style:dotted;border-bottom-color:var(--rule);margin-bottom:0;padding-bottom:.25rem}.section-title+.report-group summary{border-top-width:1px}.report-group:last-child:not([open]) summary,.report-group:last-child .group-body{border-bottom:1px solid var(--line)}.report-group summary .amount{border-left:1px solid var(--line);justify-content:flex-end;align-self:stretch;align-items:center;min-width:6rem;padding-left:.75rem;display:flex}.minibars{align-items:flex-end;gap:2px;height:1.25rem;display:inline-flex}.minibars i{width:.375rem;height:max(1px, calc(var(--share) * 1%));background:var(--dim);transition:background var(--dur)}.minibars i.on{background:var(--ink)}.group-body{border:1px solid var(--line);border-width:0 1px;padding:.25rem .75rem .75rem}.report-group:not(:last-child) .group-body{border-bottom:1px dotted var(--rule)}.history{border-collapse:collapse;width:100%;font-size:var(--size-s);margin-top:.75rem}.history caption{text-align:left;overflow-wrap:anywhere;padding-bottom:.25rem;font-weight:700}.history th{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim);text-align:right;padding:.25rem;font-weight:400}.history th:first-child,.history tbody th{text-align:left}.history td{text-align:right;border-top:1px dotted var(--rule);padding:.25rem}.history :is(th,td)+:is(th,td){border-left:1px solid var(--line)}.history tbody th{font-size:var(--size-s);border-top:1px dotted var(--rule)}.history tr.on>*{color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-weight:700}.history abbr{text-decoration:none}.env{position:relative}.env-open{text-align:left;overflow-wrap:anywhere;color:inherit;border:0;justify-content:flex-start;margin-left:-.5rem;padding:0 .5rem;font-weight:400}.env-open:after{content:"";position:absolute;inset:0}.env-open:active{transform:none}.env:has(.env-open:active){outline:1px solid var(--line);outline-offset:-1px}.env-open:focus-visible{outline:0}.env:has(.env-open:focus-visible){outline:3px solid var(--focus);outline-offset:-3px}.sheet{width:100%;max-width:42rem;max-height:85dvh;color:var(--ink);background:var(--paper);border:1px solid var(--line);transition:transform var(--dur) var(--ease-out), overlay var(--dur) allow-discrete, display var(--dur) allow-discrete;border-bottom:0;margin:0 auto;padding:0;inset:auto 0 0;transform:translateY(100%)}.sheet[open]{transform:none}@starting-style{.sheet[open]{transform:translateY(100%)}}.sheet::backdrop{background:color-mix(in srgb, var(--shadow) 0%, transparent);transition:background var(--dur), overlay var(--dur) allow-discrete, display var(--dur) allow-discrete}.sheet[open]::backdrop{background:color-mix(in srgb, var(--shadow) 60%, transparent)}@starting-style{.sheet[open]::backdrop{background:color-mix(in srgb, var(--shadow) 0%, transparent)}}.sheet{overflow-y:auto}.sheet-body{padding:.75rem 1rem calc(1rem + env(safe-area-inset-bottom));margin-bottom:-1px}.sheet-head{border-bottom:1px dotted var(--line);align-items:center;gap:.5rem;padding-bottom:.5rem;display:flex}.sheet-head h2{overflow-wrap:anywhere;flex:1}.sheet-figures{border:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:.75rem 0 0;display:grid}.sheet-figures div{min-width:0;padding:.375rem .5rem}.sheet-figures div+div{border-left:1px solid var(--line)}.sheet-figures dt{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim)}.sheet-figures dd{font-size:var(--size-l);margin:0}.sheet-cover{margin:.5rem 0}.cover{width:100%;color:var(--neg-ink);background:var(--neg-strong);border-color:var(--neg-strong)}.sources{border:1px solid var(--line);animation:rise var(--dur) var(--ease-out) both;margin-top:.5rem}.sources li+li{border-top:1px dotted var(--rule)}.sources button{border:0;justify-content:space-between;gap:.5rem;width:100%;font-weight:400}.sheet-form{border-top:1px dotted var(--rule);grid-template-columns:1fr auto;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:grid}.sheet-form label{font-size:var(--size-xs);text-transform:uppercase;letter-spacing:var(--track);color:var(--dim);grid-column:1/-1}.sheet-move select{grid-column:1/-1}.boxes{grid-column:1/-1;grid-template-columns:repeat(10,1fr);gap:.25rem;margin-top:.25rem;display:grid}.boxes i{border:1px solid var(--line);height:.75rem;display:block}.boxes i.paid{background:var(--accent-bg);color:var(--accent-ink);border-color:var(--accent-bg);animation:rise var(--dur-slow) var(--ease-spring) both}
