:root{--font-display:"degular", "Arial Black", sans-serif;--font-body:"degular-text", Arial, sans-serif;--color-background:#fff8e8;--color-surface:#fffdf7;--color-ink:#191919;--color-muted:#625e57;--color-coral:#ff8c82;--color-yellow:#ffd85a;--color-lavender:#aaa7ff;--color-mint:#8dd9b7;--color-focus:#274bd6;--border-bold:3px solid var(--color-ink);--radius-sm:1rem;--radius-md:1.5rem;--radius-lg:2rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;color:var(--color-ink);background:var(--color-background);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{background:var(--color-background);min-width:20rem}body{min-width:20rem;min-height:100vh;margin:0}button,input{font:inherit}p{margin:0}::selection{color:var(--color-ink);background:var(--color-yellow)}.setup{width:min(100%,43rem);margin-inline:auto;padding:2.5rem 1.25rem 4rem}.setup__header{text-align:center;margin:0 auto 3rem}.setup--active .setup__header{margin-bottom:1.5rem}.setup__eyebrow{border:3px solid var(--color-ink);background:var(--color-yellow);font-family:var(--font-display);text-transform:uppercase;box-shadow:2px 2px 0 var(--color-ink);border-radius:999px;padding:.5rem 1.2rem;font-size:1rem;font-weight:700;line-height:1;display:inline-block}.setup__header h1{max-width:39rem;font-family:var(--font-display);letter-spacing:-.045em;margin:2rem auto 1rem;font-size:clamp(3.6rem,12vw,5rem);line-height:.86}.setup__header>p:last-child{color:#64747a;font-size:clamp(1.05rem,4vw,1.35rem)}.setup form{gap:2.5rem;display:grid}.setup__actions{gap:var(--space-4);display:grid}.setup__actions .secondary-button{border-radius:var(--radius-md)}.setup-card{border:var(--border-bold);min-width:0;box-shadow:8px 9px 0 var(--color-ink);background:#fff;border-radius:2.5rem;margin:0;padding:2.25rem 1.5rem 2rem;position:relative}.setup-card--amount{background:#e9e8fb;padding-bottom:0}.setup-card h2,.setup-card legend{width:100%;font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 1.75rem;padding:0;font-size:clamp(2rem,7.7vw,2.55rem);font-weight:700;line-height:.92}.setup-card__heading{align-items:flex-start;display:flex;padding-right:0!important}.setup-card h2{padding-right:3.25rem}.setup-card__number{border:3px solid var(--color-ink);background:var(--color-coral);width:3rem;height:3rem;font-family:var(--font-display);vertical-align:middle;border-radius:50%;flex:0 0 3rem;place-items:center;margin-right:1rem;font-size:1.7rem;font-weight:700;line-height:1;display:inline-grid}.setup-card--amount>.setup-card__number{margin:0;position:absolute;top:2rem;right:1.5rem}.money-input{border:var(--border-bold);min-height:8.5rem;font-family:var(--font-display);letter-spacing:-.04em;background:#fffdf7;border-radius:1.8rem;align-items:center;padding:.5rem 1.5rem .85rem;font-size:clamp(4rem,16vw,5.25rem);font-weight:700;line-height:1;display:flex}.money-input input{width:100%;min-width:0;color:inherit;font:inherit;background:0 0;border:0}.money-input:has(input:focus-visible){outline:0 solid #0000}html[data-input-modality=keyboard] .money-input:has(input:focus-visible){outline:4px solid var(--color-focus);outline-offset:4px}.money-input input:focus-visible{outline:0 solid #0000}.money-input input::placeholder{color:#cecdc4;opacity:1}.setup__error{margin-top:var(--space-3);font-weight:700}.setup__daily-preview{color:#64747a;text-align:center;margin:1.5rem 0;font-size:1.15rem}.setup__daily-preview strong{color:var(--color-ink);font-family:var(--font-display);font-size:1.25em}.setup-card__tip{border:var(--border-bold);width:calc(100% + .25rem);box-shadow:6px 7px 0 var(--color-ink);color:#64747a;background:#fff;border-radius:1.5rem;align-items:center;gap:1rem;margin:0 0 -2rem -.125rem;padding:1rem 1.25rem;font-size:1rem;line-height:1.2;display:flex}.setup-card__tip>span{border:3px solid var(--color-ink);background:var(--color-yellow);border-radius:.75rem;flex:0 0 3rem;place-items:center;width:3rem;height:3rem;display:grid}.setup-card__tip svg{fill:none;width:1.65rem;height:1.65rem;stroke:var(--color-ink);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.setup-card--empty .setup-card__tip{margin-top:2.25rem}.radio-stack{gap:1rem;display:grid}.radio-card,.rounding-card{cursor:pointer;display:block;position:relative}.radio-card input,.rounding-card input{opacity:0;width:1px;height:1px;position:absolute}.radio-card>span,.rounding-card>span{border:var(--border-bold);border-radius:1.5rem;transition:box-shadow .12s,transform .12s}.radio-card>span{background:#dff3e9;grid-template-columns:2.25rem 1fr;align-items:start;gap:1rem;padding:1.4rem;display:grid}.radio-card--yellow>span{background:#fff0bd}.radio-card i,.rounding-card i{border:3px solid var(--color-ink);background:#fff;border-radius:50%;flex:0 0 2.25rem;width:2.25rem;height:2.25rem}.radio-card input:checked+span i,.rounding-card input:checked+span i{background:var(--color-ink);box-shadow:inset 0 0 0 .38rem #fff}.radio-card input:checked+span{box-shadow:5px 6px 0 var(--color-ink);transform:translate(-2px,-2px)}.radio-card b,.rounding-card b{font-weight:inherit;gap:.25rem;display:grid}.radio-card strong,.rounding-card strong{font-family:var(--font-display);font-size:1.45rem;line-height:1}.radio-card small{font-size:1rem;line-height:1.25}html[data-input-modality=keyboard] .radio-card input:focus-visible+span,html[data-input-modality=keyboard] .rounding-card input:focus-visible+span{outline:4px solid var(--color-focus);outline-offset:4px}.rounding-grid{grid-template-columns:1fr;gap:1rem;display:grid}.rounding-card>span{background:#fff0bd;grid-template-columns:2.25rem 1fr;align-items:start;gap:1rem;padding:1.4rem;display:grid}.rounding-card:nth-child(2)>span{background:#dff3e9}.rounding-card:nth-child(3)>span{background:#fae1e9}.rounding-card input:checked+span{box-shadow:5px 6px 0 var(--color-ink);transform:translate(-2px,-2px)}.rounding-card small{font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1}.setup-card__note{color:#64747a;text-align:center;margin:2rem auto 0;font-size:1.05rem;line-height:1.2}.setup__submit{border:var(--border-bold);width:100%;min-height:6rem;color:var(--color-ink);box-shadow:7px 8px 0 var(--color-ink);font-family:var(--font-display);cursor:pointer;background:#70c8f3;border-radius:999px;justify-content:center;align-items:center;gap:1.25rem;padding:.75rem 1.25rem;font-size:2rem;font-weight:700;transition:box-shadow .12s,transform .12s;display:flex}.setup__submit:hover{box-shadow:9px 10px 0 var(--color-ink);transform:translate(-2px,-2px)}.setup__submit:active{box-shadow:1px 1px 0 var(--color-ink);transform:translate(6px,6px)}@media (width<=390px){.setup{padding-inline:1rem}.setup-card,.setup-card--amount{padding-inline:1.25rem}.setup__header h1{font-size:3.45rem}.setup-card h2,.setup-card legend{font-size:1.95rem}}@media (width<=41.999rem){.setup-card--amount{margin-bottom:1rem}}.today{width:min(100%,44rem);padding:var(--space-6) var(--space-4) calc(8.5rem + env(safe-area-inset-bottom));margin-inline:auto}.today__header{text-align:center}.today__date{border:2px solid var(--color-ink);background:var(--color-yellow);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.35rem .9rem .4rem;font-size:.875rem;font-weight:700;line-height:1;display:inline-block;transform:rotate(-1deg)}.balance{margin-top:var(--space-5)}.balance__amount{font-family:var(--font-display);letter-spacing:-.065em;margin:0;font-size:clamp(6.5rem,30vw,11rem);font-weight:700;line-height:.72}.balance__label{margin-top:var(--space-5);font-family:var(--font-display);font-size:1.6rem;font-weight:700;line-height:1}.balance__rollover{margin-top:var(--space-2);color:var(--color-muted);font-size:1rem}.categories{gap:var(--space-4);margin-top:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.category-button{min-height:6.25rem;padding:var(--space-4);border:var(--border-bold);border-radius:var(--radius-md);color:var(--color-ink);background:var(--color-coral);box-shadow:5px 5px 0 var(--color-ink);font-family:var(--font-display);cursor:pointer;font-size:1.6rem;font-weight:700;line-height:1;transition:box-shadow .12s,filter .12s,transform .12s;transform:translate(0)rotate(-.5deg)}.category-button:nth-child(2){background:var(--color-yellow);transform:translate(0)rotate(.75deg)}.category-button:nth-child(3){background:var(--color-lavender);transform:translate(0)rotate(.5deg)}.category-button:nth-child(4){background:var(--color-mint);transform:translate(0)rotate(-.75deg)}.category-button:hover{filter:saturate(1.12)brightness(1.02);box-shadow:7px 7px 0 var(--color-ink);transform:translate(-2px,-2px)rotate(0)}.category-button:active{box-shadow:1px 1px 0 var(--color-ink);transform:translate(4px,4px)rotate(0)}.category-button[aria-pressed=true]{box-shadow:2px 2px 0 var(--color-ink);filter:saturate(1.2);transform:translate(3px,3px)rotate(0)}.expense-entry{margin-top:var(--space-5);padding:var(--space-5);border:var(--border-bold);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:6px 6px 0 var(--color-ink);animation:.38s cubic-bezier(.22,1,.36,1) both entry-reveal;overflow:hidden}.expense-entry__title{margin:0 0 var(--space-4);font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1}.expense-entry__label{gap:var(--space-2);font-size:.9rem;font-weight:700;display:grid}.expense-entry__amount-wrap{width:100%;min-height:3.75rem;padding:0 var(--space-4);border:var(--border-bold);border-radius:var(--radius-sm);color:var(--color-ink);background:var(--color-background);font-family:var(--font-display);align-items:center;font-size:1.5rem;font-weight:700;display:flex}:is(.expense-entry__amount-wrap:has(input:focus-visible),.transaction-row__input-wrap:has(input:focus-visible)){outline:0 solid #0000}:is(html[data-input-modality=keyboard] .expense-entry__amount-wrap:has(input:focus-visible),html[data-input-modality=keyboard] .transaction-row__input-wrap:has(input:focus-visible)){outline:4px solid var(--color-focus);outline-offset:4px}.expense-entry__input{width:100%;min-width:0;min-height:3.4rem;color:var(--color-ink);font:inherit;background:0 0;border:0;padding:0 0 0 .35rem}.expense-entry__input:focus-visible,.transaction-row__input:focus-visible{outline:0 solid #0000}.amount-prefix{color:#000;-webkit-user-select:none;user-select:none;flex:none;line-height:1.4}.expense-entry__input::placeholder{color:var(--color-muted);opacity:.65}.expense-entry__label--note{margin-top:var(--space-4)}.expense-entry__note{width:100%;min-height:2.75rem;padding:0 var(--space-3);border:2px solid var(--color-ink);border-radius:var(--radius-sm);color:var(--color-ink);background:var(--color-background);font:600 1rem var(--font-body)}.expense-entry__button{width:100%;min-height:3.75rem;margin-top:var(--space-4);border:var(--border-bold);border-radius:var(--radius-sm);color:var(--color-ink);background:var(--color-mint);box-shadow:4px 4px 0 var(--color-ink);font-family:var(--font-display);cursor:pointer;font-size:1.35rem;font-weight:700;transition:box-shadow .12s,transform .12s}.expense-entry__button:hover{box-shadow:6px 6px 0 var(--color-ink);transform:translate(-2px,-2px)}.expense-entry__button:active{box-shadow:1px 1px 0 var(--color-ink);transform:translate(3px,3px)}.spending{margin-top:var(--space-8)}.spending__title{margin:0 0 var(--space-4);font-family:var(--font-display);letter-spacing:-.02em;font-size:2rem;font-weight:700;line-height:1}.spending__empty{padding:var(--space-5);border:2px dashed var(--color-ink);border-radius:var(--radius-md);color:var(--color-muted);text-align:center;background:#fffdf78c;font-size:1rem}.transaction-list{gap:var(--space-3);display:grid}.transaction-row{align-items:center;gap:var(--space-3);border:1px solid color-mix(in srgb, var(--color-ink) 18%, transparent);border-radius:var(--radius-md);background:var(--color-surface);border-left-width:.65rem;grid-template-columns:minmax(0,1fr) auto 2.75rem;min-height:4.4rem;padding:.65rem .7rem .65rem 1rem;animation:.2s ease-out both transaction-in;display:grid;position:relative}.transaction-row--menu-open{z-index:10}.transaction-row__labels{gap:.15rem;min-width:0;display:grid}.transaction-row__labels strong{overflow-wrap:anywhere;font:700 1.2rem/1.1 var(--font-display)}.transaction-row__labels small{color:var(--color-muted);font-size:.9rem}.transaction-row__amount{font:700 1.25rem var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap}.transaction-row[data-category=Food]{border-left-color:var(--color-coral);background:color-mix(in srgb, var(--color-coral) 18%, var(--color-surface))}.transaction-row[data-category=Shopping]{border-left-color:var(--color-yellow);background:color-mix(in srgb, var(--color-yellow) 18%, var(--color-surface))}.transaction-row[data-category=Fun]{border-left-color:var(--color-lavender);background:color-mix(in srgb, var(--color-lavender) 18%, var(--color-surface))}.transaction-row[data-category=Life]{border-left-color:var(--color-mint);background:color-mix(in srgb, var(--color-mint) 18%, var(--color-surface))}.transaction-row--editing{padding:var(--space-4);display:block}.transaction-edit{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.transaction-edit label{gap:.35rem;min-width:0;font-size:.85rem;font-weight:700;display:grid}.transaction-row__input-wrap{border:2px solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-background);font-family:var(--font-display);align-items:center;gap:.2rem;padding-inline:.6rem;font-weight:700;display:flex}.transaction-row__input{width:100%;min-width:0;min-height:2.5rem;font:inherit;background:0 0;border:0;padding:0}.transaction-edit select,.transaction-edit__note input{border:2px solid var(--color-ink);border-radius:var(--radius-sm);width:100%;min-height:2.75rem;color:var(--color-ink);background:var(--color-background);font:600 1rem var(--font-body);padding:0 .65rem}.transaction-edit__note{grid-column:1/-1}.transaction-row__actions{gap:var(--space-2);display:flex}.transaction-edit .transaction-row__actions{grid-column:1/-1;justify-content:flex-end}.transaction-row__actions button{border:2px solid var(--color-ink);min-height:2.5rem;color:var(--color-ink);background:var(--color-background);box-shadow:2px 2px 0 var(--color-ink);font:700 .9rem var(--font-display);cursor:pointer;border-radius:999px;padding:.25rem .75rem}.transaction-row__actions .transaction-row__delete{background:var(--color-coral)}.transaction-menu{position:relative}.transaction-menu__trigger{width:2.75rem;min-height:2.75rem;color:var(--color-ink);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;font-size:1.15rem;font-weight:900}.transaction-menu__trigger:hover,.transaction-menu__trigger[aria-expanded=true]{background:#fffdf7a6}.transaction-menu__popover{z-index:5;border:2px solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-surface);width:7.5rem;box-shadow:4px 4px 0 var(--color-ink);display:grid;position:absolute;top:calc(100% + .25rem);right:0;overflow:hidden}.transaction-menu__popover--up{top:auto;bottom:calc(100% + .25rem)}.transaction-menu__popover button{background:var(--color-surface);text-align:left;cursor:pointer;border:0;min-height:2.75rem;padding:.5rem .8rem;font-weight:700}.transaction-menu__popover button+button{border-top:2px solid var(--color-ink)}.transaction-menu__popover .transaction-row__delete{background:color-mix(in srgb, var(--color-coral) 45%, var(--color-surface))}.day-finish{z-index:10;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--color-background) 75%, #fff8e800);position:fixed;bottom:0;left:0;right:0}.day-finish__button,.day-complete{border:var(--border-bold);border-radius:var(--radius-md);width:min(100%,42rem);color:var(--color-ink);box-shadow:6px 6px 0 var(--color-ink);background:#70d6ff;margin-inline:auto}.day-finish__button{min-height:4.75rem;font-family:var(--font-display);cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem 1rem .75rem 1.4rem;font-size:1.65rem;font-weight:700;transition:box-shadow .12s,filter .12s,transform .12s;display:flex}.day-finish__button:hover{filter:saturate(1.15)brightness(1.03);box-shadow:8px 8px 0 var(--color-ink);transform:translate(-2px,-2px)}.day-finish__button:active{box-shadow:1px 1px 0 var(--color-ink);transform:translate(5px,5px)}.day-finish__button-mark{border:2px solid var(--color-ink);background:var(--color-surface);border-radius:50%;place-items:center;width:2.8rem;height:2.8rem;font-size:1.4rem;line-height:1;display:grid}.day-complete{text-align:center;padding:.85rem 1.25rem 1rem;animation:.42s cubic-bezier(.2,.9,.3,1.25) both completion-pop;position:relative;overflow:hidden}.day-complete__title{font-family:var(--font-display);margin:0;font-size:1.65rem;line-height:1}.day-complete__rollover{margin-top:.3rem;font-size:1rem}.day-complete__rollover strong{font-family:var(--font-display);font-size:1.2em}.day-complete__reopen{min-height:2.75rem;margin-top:var(--space-3);border:2px solid var(--color-ink);color:var(--color-ink);background:var(--color-surface);box-shadow:3px 3px 0 var(--color-ink);font:700 1rem var(--font-display);cursor:pointer;border-radius:999px;padding:.45rem 1rem}.day-complete__reopen:active{box-shadow:1px 1px 0 var(--color-ink);transform:translate(2px,2px)}.categories--disabled .category-button:disabled{filter:grayscale(.35);opacity:.55;cursor:not-allowed}.confetti{z-index:100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti__piece{width:var(--confetti-size);height:calc(var(--confetti-size) * 1.65);background:var(--color-yellow);opacity:0;animation:confetti-flight var(--confetti-duration) cubic-bezier(.16, .68, .3, 1) var(--confetti-delay) both;position:absolute;bottom:-.75rem}.confetti__piece:before{border:1.5px solid var(--color-ink);background:inherit;content:"";animation:confetti-flutter var(--confetti-flutter-duration) ease-in-out infinite alternate;position:absolute;inset:0}.confetti__piece--left{left:1.5rem}.confetti__piece--right{right:1.5rem}.confetti__piece--sparkle{height:var(--confetti-size);background:var(--color-surface)}.confetti__piece--sparkle:before{clip-path:polygon(50% 0,61% 36%,100% 50%,61% 64%,50% 100%,39% 64%,0 50%,39% 36%);border:0;animation-name:confetti-sparkle}.confetti span:nth-child(4n+2){background:var(--color-lavender);border-radius:50%}.confetti span:nth-child(4n+3){background:var(--color-coral)}.confetti span:nth-child(4n){background:var(--color-mint)}@keyframes completion-pop{0%{opacity:0;transform:scale(.92)rotate(-1deg)}}@keyframes confetti-flight{3%{opacity:1}18%{opacity:1;transform:translate(var(--confetti-launch-x), var(--confetti-launch-y))}43%{opacity:1;transform:translate(var(--confetti-apex-x), var(--confetti-apex-y))}72%{opacity:1;transform:translate(var(--confetti-drift-x), var(--confetti-drift-y))}to{opacity:0;transform:translate(var(--confetti-drift-x), 10vh)}}@keyframes confetti-flutter{0%{transform:rotate(0)scaleX(.35)}to{transform:rotate(var(--confetti-rotation)) scaleX(1)}}@keyframes confetti-sparkle{0%{opacity:.35;transform:rotate(0)scale(.35)}to{opacity:1;transform:rotate(var(--confetti-rotation)) scale(1.25)}}html[data-input-modality=pointer] :is(button,input,select):focus{outline-color:#0000}html[data-input-modality=keyboard] button:focus-visible,html[data-input-modality=keyboard] input:focus-visible,html[data-input-modality=keyboard] select:focus-visible{outline:4px solid var(--color-focus);outline-offset:4px}@keyframes entry-reveal{0%{opacity:0;max-height:0;padding-block:0;transform:translateY(-.75rem)}to{max-height:36rem}}@keyframes transaction-in{0%{opacity:0;transform:translateY(.5rem)rotate(-.5deg)}}@media (width>=42rem){.setup{padding-top:var(--space-8)}.setup-card{padding:var(--space-6)}.setup-card--amount{padding-bottom:0}.today{padding-top:var(--space-8);padding-bottom:var(--space-8)}.categories{gap:var(--space-5)}.category-button{min-height:7.5rem;font-size:1.85rem}.expense-entry{padding:var(--space-6)}.day-finish{margin-top:var(--space-8);background:0 0;padding:0;position:static}.day-finish__button{min-height:5.5rem;font-size:2rem}.day-complete{padding:var(--space-5)}}@media (width<=34rem){.transaction-row{gap:var(--space-2)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.confetti{display:none}}.primary-nav{width:min(100%,28rem);margin:0 auto var(--space-6);border:var(--border-bold);box-shadow:3px 3px 0 var(--color-ink);border-radius:999px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.primary-nav button{background:var(--color-surface);min-height:2.75rem;font:700 1rem var(--font-display);cursor:pointer;border:0}.primary-nav button+button{border-left:2px solid var(--color-ink)}.primary-nav button[aria-current=page]{background:var(--color-yellow)}.back-button,.secondary-button{border:2px solid var(--color-ink);background:var(--color-surface);min-height:2.75rem;box-shadow:3px 3px 0 var(--color-ink);cursor:pointer;border-radius:999px;padding:.5rem 1rem;font-weight:700}.history__header{margin:var(--space-7) 0 var(--space-6)}.history__header h1{margin:var(--space-3) 0 0;font:700 clamp(4rem, 18vw, 7rem)/.8 var(--font-display);letter-spacing:-.05em}.history__header p:last-child{color:var(--color-muted)}.history__empty{margin:0 0 var(--space-6);padding:var(--space-5);border:2px dashed var(--color-ink);border-radius:var(--radius-md);color:var(--color-muted);text-align:center;background:#fffdf78c;font-weight:600}.history-month{margin-top:var(--space-7)}.history-month>h2{margin:0 0 var(--space-3);font:700 1.5rem/1 var(--font-display);letter-spacing:.03em;text-transform:uppercase}.monthly-summary{margin-bottom:var(--space-5);padding:var(--space-4);border:var(--border-bold);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-lavender) 16%, var(--color-surface));box-shadow:4px 4px 0 var(--color-ink)}.monthly-summary__metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.monthly-summary__metrics div{min-width:0;padding-inline:var(--space-3);border-left:2px solid var(--color-ink)}.monthly-summary__metrics div:first-child{border-left:0;padding-left:0}.monthly-summary__metrics div:last-child{padding-right:0}.monthly-summary__metrics dt{color:var(--color-muted);text-transform:uppercase;font-size:.72rem;font-weight:700;line-height:1}.monthly-summary__metrics dd{overflow-wrap:anywhere;font:700 clamp(1.05rem, 5vw, 1.45rem)/1 var(--font-display);margin:.25rem 0 0}.monthly-summary__breakdown{align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:2px solid var(--color-ink);display:flex}.monthly-donut{flex:none;width:4.75rem;height:4.75rem;transform:rotate(-90deg)}.monthly-donut circle{fill:none;stroke-width:7px}.monthly-donut__track{stroke:color-mix(in srgb, var(--color-muted) 20%, var(--color-surface))}.monthly-donut__segment[data-category=Food]{stroke:var(--color-coral)}.monthly-donut__segment[data-category=Shopping]{stroke:var(--color-yellow)}.monthly-donut__segment[data-category=Fun]{stroke:var(--color-lavender)}.monthly-donut__segment[data-category=Life]{stroke:var(--color-mint)}.monthly-summary__breakdown ul{flex-wrap:wrap;flex:1;gap:.45rem .8rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.monthly-summary__breakdown li{white-space:nowrap}.monthly-summary__breakdown li button{border-radius:var(--radius-sm);min-height:2.25rem;color:var(--color-ink);font:inherit;cursor:pointer;background:0 0;border:2px solid #0000;padding:.3rem .45rem;transition:background .12s,border-color .12s,transform .12s}.monthly-summary__breakdown li button:not([aria-disabled=true]):hover{border-color:var(--color-ink);background:#fffdf7b3;transform:translateY(-1px)}.monthly-summary__breakdown li button:not([aria-disabled=true]):active{transform:translateY(1px)}.monthly-summary__breakdown li button[aria-disabled=true]{color:var(--color-muted);cursor:not-allowed}.monthly-summary__breakdown li button>span{border:1.5px solid var(--color-ink);vertical-align:-.05rem;border-radius:50%;width:.7rem;height:.7rem;margin-right:.2rem;display:inline-block}.monthly-summary__breakdown li[data-category=Food] button>span{background:var(--color-coral)}.monthly-summary__breakdown li[data-category=Shopping] button>span{background:var(--color-yellow)}.monthly-summary__breakdown li[data-category=Fun] button>span{background:var(--color-lavender)}.monthly-summary__breakdown li[data-category=Life] button>span{background:var(--color-mint)}.history-month__days:empty:after{content:"No earlier days yet this month.";color:var(--color-muted);text-align:center;font-weight:600;display:block}.history-row{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;margin-bottom:var(--space-3);padding:var(--space-4);border:var(--border-bold);border-radius:var(--radius-md);color:var(--color-ink);background:var(--color-surface);box-shadow:4px 4px 0 var(--color-ink);text-align:left;cursor:pointer;display:flex}.history-row span:first-child{gap:.2rem;display:grid}.history-row strong,.history-row__balance{font:700 1.15rem var(--font-display)}.history-row small{color:var(--color-muted)}.history-row__balance{white-space:nowrap}.read-only,.recalculation-notice{margin-top:var(--space-6);padding:var(--space-4);border:2px solid var(--color-ink);border-radius:var(--radius-sm);background:var(--color-lavender);text-align:center;font-weight:700}.recalculation-notice{background:var(--color-mint)}.storage-error{background:color-mix(in srgb, var(--color-coral) 35%, var(--color-surface))}.modal-backdrop{min-height:100vh;padding:var(--space-4);background:var(--color-background);place-items:center;display:grid}.month-modal{width:min(100%,34rem);padding:var(--space-6);border:var(--border-bold);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:8px 8px 0 var(--color-ink)}.month-modal h1{margin:var(--space-4) 0;font:700 clamp(3rem, 13vw, 5rem)/.85 var(--font-display);letter-spacing:-.04em}.month-modal__actions{gap:var(--space-4);margin-top:var(--space-6);display:grid}.month-modal .secondary-button{border-radius:var(--radius-md)}.category-drawer{background:0 0;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;overflow:hidden}.category-drawer::backdrop{background:#14110e7a;animation:.42s ease-in-out both drawer-backdrop-in}.category-drawer--closing::backdrop{animation:.42s ease-in-out both drawer-backdrop-out}.category-drawer__panel{background:var(--color-background);flex-direction:column;width:100%;max-height:none;animation:.42s ease-in-out both drawer-in;display:flex;position:absolute;inset:0}.category-drawer--closing .category-drawer__panel{animation:.42s ease-in-out both drawer-out}.category-drawer__header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:calc(var(--space-5) + env(safe-area-inset-top)) var(--space-4) var(--space-4);border-bottom:var(--border-bold);background:color-mix(in srgb, var(--color-lavender) 20%, var(--color-surface));display:flex}.category-drawer__header .setup__eyebrow{margin:0 0 var(--space-3);font-size:.72rem}.category-drawer__header h2{font:700 clamp(3.25rem, 15vw, 5rem)/.75 var(--font-display);letter-spacing:-.04em;margin:0}.category-drawer__header p:last-child{margin-top:var(--space-4);font-size:1.05rem}.category-drawer__header p strong{font:700 1.35rem var(--font-display)}.category-drawer__close{border:var(--border-bold);width:3rem;height:3rem;color:var(--color-ink);background:var(--color-yellow);box-shadow:3px 3px 0 var(--color-ink);font:700 2rem/1 var(--font-display);cursor:pointer;border-radius:50%;flex:none;place-items:center;padding:0 0 .2rem;display:grid}.category-drawer__close:active{box-shadow:1px 1px 0 var(--color-ink);transform:translate(2px,2px)}.category-drawer__content{min-height:0;padding:var(--space-4) var(--space-4) calc(var(--space-6) + env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto}.category-drawer .transaction-row__labels time{color:var(--color-muted);font-size:.82rem;font-weight:600}@media (width>=42rem){.category-drawer__panel{border-left:var(--border-bold);width:min(30rem,82vw);left:auto;right:0;box-shadow:-7px 0 #14110e40}.category-drawer__header{padding:var(--space-6) var(--space-5) var(--space-5)}.category-drawer__content{padding:var(--space-5)}}@media (width<=27rem){.month-modal{padding:var(--space-5)}.monthly-summary__breakdown{align-items:flex-start;gap:var(--space-3)}.monthly-donut{width:4rem;height:4rem}.monthly-summary__breakdown ul{grid-template-columns:1fr 1fr;gap:.25rem;display:grid}.monthly-summary__breakdown li button{text-align:left;width:100%}.transaction-row{grid-template-columns:minmax(0,1fr) auto 2.75rem}}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-out{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes drawer-backdrop-in{0%{background:#14110e00}to{background:#14110e7a}}@keyframes drawer-backdrop-out{0%{background:#14110e7a}to{background:#14110e00}}.settings__header{margin:var(--space-7) 0 var(--space-6)}.settings__header h1{margin:var(--space-3) 0 0;font:700 clamp(4rem, 18vw, 7rem)/.8 var(--font-display);letter-spacing:-.05em}.settings__header>p:last-child{margin-top:var(--space-3);color:var(--color-muted);font-size:1.1rem}.settings-card{gap:var(--space-5);padding:var(--space-5);border:var(--border-bold);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:6px 6px 0 var(--color-ink);display:grid}.settings-card dl{gap:var(--space-5);margin:0;display:grid}.settings-card dl div{justify-content:space-between;align-items:end;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:2px solid var(--color-ink);display:flex}.settings-card dt,.settings__label,.settings-card legend{font-weight:700}.settings-card dd{font:700 1.65rem/1 var(--font-display);text-align:right;margin:0}.settings-card h2{font:700 2.25rem/1 var(--font-display);margin:0}.settings-card fieldset{border:0;min-width:0;margin:0;padding:0}.settings-card legend{margin-bottom:var(--space-3)}.settings__note{padding:var(--space-4);border:2px dashed var(--color-ink);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-yellow) 30%, var(--color-surface))}.settings__actions{gap:var(--space-4);display:grid}.settings__actions .secondary-button{border-radius:var(--radius-md)}.settings-data{margin-top:var(--space-6);padding:var(--space-4);border:2px solid color-mix(in srgb, var(--color-muted) 45%, transparent);border-radius:var(--radius-sm);color:var(--color-muted)}.settings-data h2{margin:0 0 var(--space-2);color:var(--color-ink);font:700 1.2rem/1.1 var(--font-display)}.settings-data p{margin:0;line-height:1.45}@media (width>=42rem){.settings-card{padding:var(--space-6)}}
