:root{--bg:#f3f2ee;--surface:#fff;--ink:#15171c;--ink-2:#50545e;--line:#e3e1da;--control:#e9e7e1;--paid:#1b6a55;--warn:#a53c14;--warn-soft:#fbece5;--focus:#2457c5;--dock:#15171c;--dock-ink:#f3f2ee;--dock-ink-2:#b7bac2;--dock-raise:#262a31;--dock-warn:#ff9e7a;--dock-paid:#7ed3b6;--seg-0:#2b3850;--seg-1:#4f6285;--seg-2:#7c8eac;--seg-3:#a9b6ca;--seg-4:#6c7a64;--seg-5:#9aa58e;--r:14px;--dock-h:92px;--ease:cubic-bezier(.16, 1, .3, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#101216;--surface:#191c21;--ink:#edebe5;--ink-2:#a6aab3;--line:#2a2e35;--control:#24282f;--paid:#5cc3a1;--warn:#ff9e7a;--warn-soft:#3a2118;--focus:#8fb0ff;--dock:#23272e;--dock-raise:#30353d;--seg-0:#c9d3e4;--seg-1:#9eadc7;--seg-2:#7486a6;--seg-3:#52627f;--seg-4:#a9b39c;--seg-5:#79856b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);margin:0}html{overflow-x:clip}html,.dock-panel,.sheet{scrollbar-width:none}html::-webkit-scrollbar{display:none}.dock-panel::-webkit-scrollbar{display:none}.sheet::-webkit-scrollbar{display:none}h1,h2,h3,p,ul,dl,dd,figure{margin:0;padding:0}ul{list-style:none}button,input{font:inherit;color:inherit}button{cursor:pointer}::selection{background:color-mix(in srgb, var(--paid) 30%, transparent)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}a{color:inherit;text-underline-offset:3px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.tone-over{color:var(--warn)}.tone-unassigned{color:var(--ink)}.tone-balanced{color:var(--paid)}.month{padding-bottom:calc(var(--dock-h) + 28px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto}.topbar{z-index:5;padding:calc(10px + env(safe-area-inset-top)) 12px 8px;background:var(--bg);align-items:center;gap:8px;display:flex;position:sticky;top:0}.month-nav{flex:1;align-items:center;gap:4px;min-width:0;display:flex}.month-title{text-align:center;flex:1;min-width:0}.month-title h1{letter-spacing:-.01em;font-size:1.1875rem;font-weight:700}.rate{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.icon-btn{background:var(--control);border:0;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.icon-btn:disabled{opacity:.35;cursor:default}.filters{justify-content:space-between;gap:8px;padding:4px 16px 12px;display:flex}.segmented{background:var(--control);border-radius:10px;padding:3px;display:flex}.segmented button{min-height:36px;color:var(--ink-2);background:0 0;border:0;border-radius:8px;padding:7px 12px;font-size:.875rem}.segmented button:disabled{opacity:.4;cursor:not-allowed}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #0000001f}.lists{flex-direction:column;gap:10px;padding:0 10px;display:flex}.section{background:var(--surface);border-radius:var(--r);overflow:hidden}.section-head button{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-height:56px;padding:12px 14px;display:flex}.section-title{overflow-wrap:anywhere;flex:1;min-width:0;font-size:1rem;font-weight:650}.section-meta{color:var(--ink-2);font-size:.8125rem;font-weight:400;display:block}.section-amount{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:650}.section .chev{color:var(--ink-2);transition:transform .25s var(--ease)}.section.is-open .chev{transform:rotate(180deg)}.section.tone-warn .section-meta{color:var(--warn);font-weight:600}.flow-head{justify-content:space-between;align-items:baseline;padding:14px 6px 0;font-size:1.0625rem;font-weight:700;display:flex}.flow-head span{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:400}.lines-empty,.empty{color:var(--ink-2);padding:4px 14px 16px;font-size:.875rem}.empty{text-align:center;padding:24px 8px}.line{border-top:1px solid var(--line);align-items:center;gap:12px;min-height:60px;padding:10px 14px;display:flex}.line-edit{text-align:left;background:0 0;border:0;border-radius:0;flex:1;align-items:center;gap:12px;min-width:0;min-height:60px;margin:-10px -14px -10px 0;padding:10px 14px 10px 0;display:flex}.line-edit:active{background:var(--control)}.line:has(.btn-small) .line-edit{margin-right:0;padding-right:0}.line-main{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.line-name{overflow-wrap:anywhere;font-size:1rem}.line-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:.8125rem;display:flex}.line-amount{text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;font-size:1rem;display:flex}.line-conv{color:var(--ink-2);font-size:.8125rem}.line.is-paid .line-name{color:var(--ink-2);text-decoration:line-through;text-decoration-thickness:1.5px}.line.is-paid .line-amount>span:first-child{color:var(--ink-2)}.tag-overdue{letter-spacing:.04em;text-transform:uppercase;color:var(--warn);background:var(--warn-soft);border:1.5px solid;border-radius:5px;padding:0 5px;font-size:.6875rem;font-weight:700;line-height:1.5}.tick{cursor:pointer;flex:none;place-items:center;width:44px;height:44px;margin:-8px -6px -8px -10px;display:grid;position:relative}.tick input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.tick-box{border:2px solid var(--ink);color:#0000;width:26px;height:26px;transition:background-color .15s, border-color .15s, transform .2s var(--ease);border-radius:7px;place-items:center;display:grid}.tick-box svg{width:18px;height:18px}.tick input:checked+.tick-box{background:var(--paid);border-color:var(--paid);color:var(--surface)}.tick input:active+.tick-box{transform:scale(.88)}.tick input:focus-visible+.tick-box{outline:3px solid var(--focus);outline-offset:2px}.more{border:0;border-top:1px solid var(--line);width:100%;min-height:48px;color:var(--ink-2);background:0 0;font-size:.875rem;font-weight:600}.btn-small{border:1.5px solid var(--line);background:var(--surface);border-radius:10px;flex:none;min-height:40px;padding:8px 12px;font-size:.875rem;font-weight:600}.dock{z-index:10;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));background:var(--dock);max-width:544px;color:var(--dock-ink);border-radius:20px;flex-direction:column;margin:0 auto;display:flex;position:fixed;box-shadow:0 10px 30px -8px #00000059}.dock-bar{align-items:stretch;gap:6px;padding:8px;display:flex}.dock-summary{min-width:0;color:inherit;text-align:left;background:0 0;border:0;border-radius:14px;flex:1;grid-template-columns:1fr 1fr;gap:12px;min-height:72px;padding:6px 8px;display:grid}.dock-summary:hover{background:var(--dock-raise)}.dock-fig{flex-direction:column;min-width:0;display:flex;container-type:inline-size}.dock-label{color:var(--dock-ink-2);font-size:.75rem}.dock-value{font-size:1.5rem;font-size:min(1.5rem, 100cqi / (var(--chars,1) * .6));letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700;line-height:1.2}.dock-state{font-size:.75rem;font-weight:600}.dock .tone-over{color:var(--dock-warn)}.dock .tone-balanced{color:var(--dock-paid)}.dock .tone-unassigned{color:var(--dock-ink)}.dock-progress{background:var(--dock-raise);border-radius:3px;height:5px;margin-top:7px;overflow:hidden}.dock-progress span{background:var(--dock-paid);border-radius:inherit;height:100%;display:block}.dock-add{background:var(--dock-ink);width:56px;color:var(--dock);border:0;border-radius:14px;flex:none;place-items:center;display:grid}.dock-add svg{width:24px;height:24px}.dock-add:active{transform:scale(.95)}.dock-panel{overflow:hidden}.dock-panel:not([hidden]){overscroll-behavior:contain;max-height:min(64vh,560px);animation:plan-open .38s var(--ease);display:block;overflow-y:auto}@keyframes plan-open{0%{opacity:0;filter:blur(4px);max-height:0}to{opacity:1;filter:blur();max-height:min(64vh,560px)}}.dock.is-open .dock-bar{border-top:1px solid var(--dock-raise)}.plan{flex-direction:column;gap:18px;padding:18px 16px 6px;display:flex}.plan-lta{flex-direction:column;display:flex;container-type:inline-size}.plan-label{color:var(--dock-ink-2);font-size:.8125rem}.plan-big{font-size:2.25rem;font-size:min(2.25rem, 100cqi / (var(--chars,1) * .6));white-space:nowrap;letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-weight:750;line-height:1.15}.plan-state{font-size:.9375rem;font-weight:600}.plan-sub{color:var(--dock-ink-2);font-variant-numeric:tabular-nums;margin-top:2px;font-size:.8125rem}.alloc-bar{background:var(--dock-raise);border-radius:7px;height:28px;display:flex;position:relative;overflow:hidden}.alloc-seg{height:100%;box-shadow:inset -2px 0 0 var(--dock)}.seg-0{background:var(--seg-0)}.seg-1{background:var(--seg-1)}.seg-2{background:var(--seg-2)}.seg-3{background:var(--seg-3)}.seg-4{background:var(--seg-4)}.seg-5{background:var(--seg-5)}.dock .seg-0{background:#c9d3e4}.dock .seg-1{background:#9eadc7}.dock .seg-2{background:#7486a6}.dock .seg-3{background:#52627f}.dock .seg-4{background:#a9b39c}.dock .seg-5{background:#79856b}.alloc-over,.alloc-swatch-over{background:repeating-linear-gradient(135deg, var(--dock-warn) 0 3px, transparent 3px 7px)}.alloc-over{position:absolute;top:0;bottom:0}.alloc-marker{background:var(--dock-ink);border-radius:2px;width:3px;margin-left:-1.5px;position:absolute;top:-4px;bottom:-4px}.alloc{flex-direction:column;gap:8px;display:flex}.alloc-scale{color:var(--dock-ink-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;column-gap:12px;font-size:.75rem;display:flex}.alloc-legend{gap:6px;margin-top:4px;display:grid}.alloc-legend li{align-items:center;gap:10px;font-size:.875rem;display:flex}.alloc-swatch{border-radius:3px;flex:none;width:12px;height:12px}.alloc-name{overflow-wrap:anywhere;flex:1;min-width:0}.alloc-num{font-variant-numeric:tabular-nums;white-space:nowrap}.plan-figures{border-top:1px solid var(--dock-raise);grid-template-columns:1fr 1fr;gap:12px 16px;padding-top:14px;display:grid}.plan-figures dt{color:var(--dock-ink-2);font-size:.75rem}.plan-figures>div{min-width:0;container-type:inline-size}.plan-figures dd{font-size:1.0625rem;font-size:min(1.0625rem, 100cqi / (var(--chars,1) * .6));white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:650}.boot{min-height:100vh}.first-run{flex-direction:column;gap:14px;max-width:420px;margin:0 auto;padding:18vh 20px 40px;display:flex}.first-run h1{letter-spacing:-.02em;font-size:2rem}.first-run p{color:var(--ink-2);margin-bottom:10px}.btn{border:1.5px solid var(--line);background:var(--surface);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;min-height:52px;padding:0 18px;font-weight:600;display:flex}.btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn:focus-within{outline:3px solid var(--focus);outline-offset:2px}.sheet{background:var(--surface);width:min(100% - 16px,544px);max-width:none;color:var(--ink);border:0;border-radius:20px;margin:auto auto 8px;padding:0 18px 22px}.sheet::backdrop{background:#0006}.sheet-head{justify-content:space-between;align-items:center;padding:16px 0 6px;display:flex}.sheet-head h2{font-size:1.1875rem}.sheet-block{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding:14px 0;display:flex}.sheet-block h3{color:var(--ink-2);font-size:.8125rem;font-weight:600}.sheet-actions{gap:8px;display:grid}.note{color:var(--ink-2);padding-top:12px;font-size:.8125rem}.sheet{max-height:calc(100dvh - 16px - env(safe-area-inset-top));overscroll-behavior:contain;overflow-y:auto}.sheet-head{z-index:1;background:var(--surface);position:sticky;top:0}@keyframes scrolled-edge{to{box-shadow:0 1px 0 var(--line)}}@supports (animation-timeline:scroll()){.topbar,.sheet-head{animation:linear both scrolled-edge;animation-timeline:scroll();animation-range:0 24px}}.sheet-block:last-child{border-bottom:0}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-danger{color:var(--warn)}.btn-danger.is-armed{background:var(--warn);border-color:var(--warn);color:var(--surface)}.confirm{background:var(--warn-soft);border-radius:14px;gap:12px;padding:14px;display:grid}.confirm p{font-size:.9375rem}.setting-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:700}.setting-value span{color:var(--ink-2);letter-spacing:0;font-size:.875rem;font-weight:500}.setting-sub{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-bottom:6px;font-size:.875rem;display:flex}.tag-locked,.tag-phase{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);border:1.5px solid;border-radius:5px;padding:0 5px;font-size:.6875rem;font-weight:700;line-height:1.5}.sheet-block>.segmented{align-self:flex-start}.inline-form{align-items:stretch;gap:8px;display:flex}.inline-form .btn{flex:none}.start-list{gap:4px;margin-bottom:6px;padding-left:18px;font-size:.9375rem;list-style:outside;display:grid}.start-list li::marker{color:var(--ink-2)}.check-row{cursor:pointer;align-items:center;gap:12px;min-height:48px;font-size:.9375rem;display:flex}.check-row input{width:22px;height:22px;accent-color:var(--paid);flex:none;margin:0}.group-list{gap:6px;display:grid}.group-list li{align-items:center;gap:6px;display:flex}.group-list input{flex:1;min-width:0}.editor form{flex-direction:column;gap:14px;display:flex}.editor .sheet-head{padding-bottom:2px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--ink-2);align-items:center;gap:8px;font-size:.8125rem;font-weight:600;display:flex}.field-row{align-items:flex-start;gap:10px;display:flex}.field-row .segmented{min-height:48px}.field-grow{flex:1}.field-narrow{max-width:140px}.field-hint{color:var(--ink-2);margin-top:-8px;font-size:.8125rem}.field.is-disabled select{opacity:.6}.field>.segmented{align-self:stretch}.field>.segmented button{flex:1}.field input,.field select,.group-list input{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;width:100%;min-height:48px;padding:0 12px;font-size:1rem}.field select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--ink-2) 50%), linear-gradient(135deg, var(--ink-2) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.field input:focus,.field select:focus,.group-list input:focus{border-color:var(--focus);box-shadow:0 0 0 2px var(--focus);outline:none}.field input[aria-invalid=true]{border-color:var(--warn)}.amount-input{border:1.5px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:8px;min-height:48px;padding-left:12px;display:flex}.amount-input:focus-within{border-color:var(--focus);box-shadow:0 0 0 2px var(--focus)}.amount-input>span{color:var(--ink-2);font-size:.875rem;font-weight:600}.field .amount-input input,.inline-form .amount-input input{box-shadow:none;font-variant-numeric:tabular-nums;background:0 0;border:0;width:100%;min-height:44px;padding-left:0;font-size:1.125rem}.amount-input input:focus{box-shadow:none!important}.conv{color:var(--ink-2);font-variant-numeric:tabular-nums;margin-top:-6px;font-size:.875rem}.chips{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.chips button{border:1.5px solid var(--line);background:var(--surface);min-height:44px;color:var(--ink-2);border-radius:20px;padding:0 4px;font-size:.875rem;font-weight:600}.chips button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.switches{border:1.5px solid var(--line);border-radius:14px;flex-direction:column;display:flex}.switch{cursor:pointer;align-items:center;gap:12px;min-height:56px;padding:8px 14px;display:flex;position:relative}.switch+.switch{border-top:1px solid var(--line)}.switch-text{flex-direction:column;flex:1;display:flex}.switch-hint{color:var(--ink-2);font-size:.8125rem}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch-track{background:var(--control);border:1.5px solid color-mix(in srgb, var(--ink-2) 75%, var(--surface));border-radius:14px;flex:none;width:46px;height:28px;transition:background-color .2s;position:relative}.switch-track:after{content:"";background:var(--surface);width:21px;height:21px;transition:transform .2s var(--ease);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch input:checked+.switch-track{background:var(--paid);border-color:var(--paid)}.switch input:checked+.switch-track:after{transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:3px solid var(--focus);outline-offset:2px}.editor-actions{gap:8px;padding-top:4px;display:flex}.editor-actions .btn{flex:1}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.tag-match{letter-spacing:.04em;text-transform:uppercase;color:var(--focus);border:1.5px solid;border-radius:5px;padding:0 5px;font-size:.6875rem;font-weight:700;line-height:1.5}.line-spend{color:var(--ink-2);font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;margin-top:3px;font-size:.8125rem;display:flex}.line-spend.tone-over{color:var(--warn)}.spend-bar{background:var(--control);border-radius:2px;max-width:220px;height:4px;display:block;overflow:hidden}.spend-bar span{border-radius:inherit;background:var(--paid);height:100%;display:block}.line-spend.tone-over .spend-bar span{background:var(--warn)}.match-box{border:1.5px solid var(--focus);border-radius:14px;gap:10px;padding:12px 14px;display:grid}.match-box p{font-variant-numeric:tabular-nums;font-size:.9375rem}.match-box strong{color:var(--focus);font-size:.8125rem;display:block}.match-actions{gap:8px;display:grid}.match-done{margin-top:-4px}.link-picker{gap:8px}.link-current{overflow-wrap:anywhere;font-size:1rem;font-weight:600}.link-current span,.link-suggest .btn-small span{color:var(--ink-2);margin-left:4px;font-size:.75rem;font-weight:500}.link-current.link-none{color:var(--ink-2);font-weight:400}.link-hint{margin-top:0}.link-suggest{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.link-suggest .field-hint{margin:0}.link-actions{flex-wrap:wrap;gap:6px;display:flex}.link-list{gap:8px;display:grid}.link-list .segmented button{flex:1}.link-list ul{border:1.5px solid var(--line);border-radius:12px;max-height:260px;overflow:hidden auto}.link-list li+li{border-top:1px solid var(--line)}.link-list li.field-hint{margin:0;padding:12px}.link-list li button{background:var(--surface);width:100%;min-height:48px;color:var(--ink);text-align:left;overflow-wrap:anywhere;border:0;padding:0 14px;font-size:1rem}.link-list li button[aria-pressed=true]{color:var(--paid);font-weight:700}.sprouts-connection{gap:10px;margin-top:8px;display:grid}.sprouts-hint{margin-top:-4px}
