:root{--bg: #050807;--ink: #e8ece9;--ink-2: #c5cdc7;--ink-3: #a3ada6;--muted: #7d8981;--rule: #232c26;--rule-2: #1c241f;--amber: #e0a458;--accent: #8fb8a0;--accent-strong: #6fbf92;--serif: "IvyPresto Display", "Instrument Serif", Georgia, serif;--sans: Geist, system-ui, sans-serif;--label: "Bricolage Grotesque", Geist, sans-serif;--mono: "Geist Mono", ui-monospace, monospace;--r: 7px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:var(--ink)}a:hover{color:#fff}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fog{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.fog span{position:absolute;border-radius:50%}.fog .f1{left:-10%;top:-30%;width:70%;height:80%;background:#16301f;filter:blur(140px);opacity:.75}.fog .f2{right:-15%;top:25%;width:55%;height:70%;background:#0f2418;filter:blur(150px);opacity:.75}.fog .f3{left:30%;bottom:-35%;width:60%;height:60%;background:#1b2a21;filter:blur(160px);opacity:.75}.fog .vignette{inset:0;border-radius:0;background:radial-gradient(ellipse at 50% 40%,transparent 40%,rgba(0,0,0,.65) 100%)}.shell{position:relative;z-index:1;display:flex;min-height:100vh}.sidebar{flex:0 0 232px;padding:24px 16px;display:flex;flex-direction:column;gap:24px;border-right:1px solid rgba(170,200,180,.07);background:#05090773;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 8px;text-decoration:none}.brand-mark{width:26px;height:26px;border-radius:7px;background:var(--ink);border-bottom:3px solid #a9b4ad;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:600;font-size:13px;color:#0a0e0b}.brand-name{font-family:var(--serif);font-size:21px;font-weight:400;letter-spacing:-.2px}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:10px;height:38px;padding:0 10px 0 26px;border-radius:var(--r);color:var(--ink-3);font-size:14px;text-decoration:none}.nav a:hover{color:var(--ink);background:#ffffff08}.nav a[aria-current=page]{padding-left:10px;background:#ffffff0d;box-shadow:inset 0 1px #ffffff0d;color:var(--ink);font-weight:600}.nav a[aria-current=page]:before{content:"";width:6px;height:6px;border-radius:1px;background:var(--accent)}.sidebar-foot{margin-top:auto;padding:0 8px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.03em}.sidebar-foot .err{color:var(--amber)}.main{flex:1;min-width:0;padding:28px clamp(16px,3vw,44px) 44px;display:flex;flex-direction:column;gap:22px}.page-stack{display:flex;flex-direction:column;gap:22px;min-width:0}.glass{border-radius:var(--r);background:#121b166b;border:1px solid rgba(170,200,180,.09);border-bottom:4px solid rgba(0,0,0,.6);box-shadow:inset 0 1px #ffffff0f,0 24px 48px -24px #000000e6;backdrop-filter:blur(28px) saturate(130%);-webkit-backdrop-filter:blur(28px) saturate(130%)}.btn{height:38px;padding:0 14px;border-radius:var(--r);border:1px solid rgba(170,200,180,.14);border-bottom:3px solid rgba(0,0,0,.6);background:#ffffff0a;box-shadow:inset 0 1px #ffffff0f;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--ink);font-size:13px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;white-space:nowrap}.btn:hover{background:#ffffff12;color:var(--ink)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--ink);border:0;border-bottom:3px solid #a9b4ad;color:#0a0e0b;font-weight:600}.btn-primary:hover{background:#fff;color:#0a0e0b}.btn-sm{height:34px;padding:0 12px}.btn-danger{color:var(--amber)}.icon-btn{width:32px;height:32px;border-radius:var(--r);border:1px solid var(--rule);background:transparent;color:var(--ink-3);display:inline-flex;align-items:center;justify-content:center;font-size:16px}.icon-btn:hover{color:var(--ink);border-color:#34413a}.ghost-x{border:0;background:transparent;color:var(--muted);width:24px;height:24px;border-radius:5px;font-size:14px;opacity:0;transition:opacity .12s}.ghost-x:hover{color:var(--amber);background:#e0a4581a}.field{height:34px;border-radius:var(--r);border:1px solid #2c3830;background:#0006;color:var(--ink);padding:0 10px;font-size:13px;min-width:0}.field:focus{border-color:#4a5c50;outline:none}.field.num{font-family:var(--mono);text-align:right}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.accent{color:var(--accent-strong)}.eyebrow{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.eyebrow.small{font-size:11px}.head-stack{display:flex;flex-direction:column;gap:6px}.head-stack.tight{gap:2px}.head-stack.end{align-items:flex-end;gap:4px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px}.month-title{display:flex;align-items:center;gap:12px}.month-title h1{margin:0;font-family:var(--serif);font-size:44px;font-weight:400;letter-spacing:-.8px;line-height:1}.month-title h1 i{color:var(--ink-3)}.actions{display:flex;flex-wrap:wrap;gap:8px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.stat{padding:16px;display:flex;flex-direction:column;gap:6px}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-family:var(--serif);font-size:34px;line-height:1.05;font-weight:400}.stat-value-btn{all:unset;cursor:text;font-family:var(--serif);font-size:34px;line-height:1.05;border-radius:4px}.stat-value-btn:hover{background:#ffffff0a}.stat-value-btn:focus-visible{outline:2px solid var(--accent)}.stat .field{height:42px;font-size:22px;width:100%}.stat.warn{border-bottom-color:#6b4f2c}.split{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.split>.table-wrap{flex:999 1 560px;min-width:0}.split>.side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:14px}@media(min-width:1180px){.split>.side{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--rule) transparent;padding-bottom:4px}}.table-wrap{overflow-x:auto}.table{min-width:680px}.row{display:grid;grid-template-columns:minmax(220px,1fr) 110px 110px 110px 76px 104px;gap:10px;align-items:center;padding:0 18px}.row>.r{text-align:right;font-family:var(--mono)}.thead{padding-top:12px;padding-bottom:12px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--rule)}.group{border-bottom:1px solid var(--rule-2)}.group.open{background:#ffffff06}.group-row{width:100%;padding-top:14px;padding-bottom:6px;background:transparent;border:0;text-align:left}.group-name{display:flex;align-items:center;gap:10px;min-width:0}.caret{width:14px;color:var(--muted);font-size:11px;flex:none}.swatch{width:6px;height:22px;border-radius:2px;flex:none}.group-name b{font-family:var(--label);font-size:16px;font-weight:600;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-name .count{font-size:12px;color:var(--muted);white-space:nowrap}.group-row .r{font-size:14px}.group-row .plan{font-weight:500}.group-row .actual{color:var(--ink-3)}.group-row .bench{font-family:var(--sans);font-size:12px;text-align:right}.group.income{border-bottom:1px solid var(--rule)}.income-swatch{background:var(--accent-strong);box-shadow:0 0 12px #6fbf9266}.stat-sub-btn{all:unset;cursor:pointer;font-size:12px;color:var(--muted)}.stat-sub-btn:hover{color:var(--ink)}.stat-sub-btn:focus-visible{outline:2px solid var(--accent);border-radius:3px}.bar-row{padding:0 18px 12px 60px}.bar{height:2px;background:var(--rule)}.bar>div{height:100%}.lines{padding:4px 0 12px;background:#00000047;border-top:1px solid var(--rule-2)}.line{padding-top:4px;padding-bottom:4px;font-size:14px;min-height:34px}.line:hover .ghost-x,.line:focus-within .ghost-x{opacity:1}.line .r{font-size:13px}.line-name{padding-left:42px;color:var(--ink-2);font-family:var(--label);display:flex;align-items:center;gap:6px;min-width:0}.cell-btn{all:unset;cursor:pointer;border-radius:4px;padding:3px 6px;margin:-3px -6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cell-btn:hover{background:#ffffff0d}.cell-btn:focus-visible{outline:2px solid var(--accent)}.r .cell-btn{display:inline-block}.line .field{height:28px;width:100%}.line .actual-btn{color:var(--muted)}.line .actual-btn.has{color:var(--ink-3);text-decoration:underline dotted rgba(163,173,166,.4);text-underline-offset:3px}.txns{margin:2px 18px 8px 78px;padding:8px 10px;border-left:2px solid var(--rule);display:flex;flex-direction:column;gap:4px;font-size:13px}.txn{display:flex;align-items:center;gap:12px}.txn .d{font-family:var(--mono);font-size:12px;color:var(--muted);width:54px}.txn .n{flex:1;color:var(--ink-3)}.txn .a{font-family:var(--mono)}.txn .ghost-x{opacity:1}.add-line{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 18px 0 60px}.add-line>.field:first-child{flex:1 1 200px}.add-line>.field.num{flex:0 0 110px}.group-tools{display:flex;gap:6px;align-items:center;margin-left:auto}.total{padding-top:14px;padding-bottom:14px;font-weight:600;background:#00000047}.total .r{font-weight:500}.total-label{padding-left:42px}.empty-row{padding:22px 18px;color:var(--muted)}.add-group{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--rule-2)}.add-group{align-items:center}.add-group .field{flex:1;max-width:320px}.sidebar-slot{flex:1;display:flex;flex-direction:column;gap:12px;min-height:0}.sidebar-slot:empty{flex:0}.st-wrap{flex:none}.month-list{flex:1;min-height:0;display:flex;flex-direction:column;gap:6px}.ml-eyebrow{padding:0 10px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ml-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px;scrollbar-width:thin;scrollbar-color:var(--rule) transparent;mask-image:linear-gradient(to bottom,transparent 0,#000 8px,#000 calc(100% - 16px),transparent 100%)}.ml-year+.ml-year{margin-top:4px}.ml-year-btn{width:100%;display:flex;align-items:center;gap:8px;padding:6px 10px;border:0;border-radius:var(--r);background:transparent;color:var(--ink-3);text-align:left}.ml-year-btn:hover{color:var(--ink);background:#ffffff08}.ml-year.open .caret{transform:rotate(90deg)}.ml-year-label{font-family:var(--mono);font-size:12px;letter-spacing:.04em}.ml-year-meta{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--muted)}.month-list ul{list-style:none;margin:0;padding:2px 0 4px;display:flex;flex-direction:column;gap:1px}.ml-month{position:relative;width:100%;display:grid;grid-template-columns:1fr auto 34px;align-items:center;gap:8px;height:32px;padding:0 10px 0 24px;border:0;border-radius:var(--r);background:transparent;color:var(--ink-3);text-align:left;transition:background-color .15s ease,color .15s ease}.ml-month:hover{color:var(--ink);background:#ffffff08}.ml-name{font-family:var(--serif);font-size:18px;line-height:1;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml-month[aria-current=true]{color:var(--ink);background:#ffffff0d;box-shadow:inset 0 1px #ffffff0d}.ml-month[aria-current=true]:before{content:"";position:absolute;left:10px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:1px;background:var(--accent)}.ml-month[aria-current=true] .ml-name{font-style:italic}.ml-month.empty .ml-name{color:var(--muted)}.ml-now{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#0a0e0b;background:var(--accent-strong);border-radius:3px;padding:1px 4px}.ml-bar{grid-column:3;height:3px;border-radius:2px;background:var(--rule);overflow:hidden}.ml-bar>span{display:block;height:100%;background:#56645b;transition:width .5s var(--ease-out)}.ml-month[aria-current=true] .ml-bar>span{background:var(--ink-2)}.ml-bar.over>span{background:var(--amber)}.sidebar-totals{padding:14px;display:flex;flex-direction:column;gap:12px;opacity:0;transform:translate(-10px) scale(.98);visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease-out),transform .35s var(--ease-out),visibility 0s linear .35s}.sidebar-totals.show{opacity:1;transform:none;visibility:visible;pointer-events:auto;transition:opacity .3s var(--ease-out),transform .45s var(--ease-spring),visibility 0s}.st-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.st-title{font-family:var(--serif);font-size:19px;line-height:1}.st-day{font-family:var(--mono);font-size:10px;letter-spacing:.05em;color:var(--muted);text-transform:uppercase}.sidebar-totals dl{margin:0;display:flex;flex-direction:column;gap:7px}.sidebar-totals dl>div,.st-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px}.sidebar-totals dt,.st-row>span:first-child,.st-left>span:first-child{color:var(--muted)}.sidebar-totals dd{margin:0;font-family:var(--mono);font-size:13px;color:var(--ink-2)}.st-row>.counter{font-family:var(--mono);font-size:13px;color:var(--ink-2)}.sidebar-totals .bad dd,.sidebar-totals .bad>.counter,.st-left.bad .st-big{color:var(--amber)}.st-bar{height:3px;background:var(--rule);border-radius:2px;overflow:hidden}.st-bar>div{height:100%;transition:width .6s var(--ease-out)}.st-left{display:flex;flex-direction:column;gap:2px;font-size:12px;border-top:1px solid var(--rule);padding-top:10px}.st-big{font-family:var(--serif);font-size:30px;line-height:1.05}.panel{padding:18px;display:flex;flex-direction:column;gap:14px}.panel h2{margin:0;font-family:var(--serif);font-size:22px;font-weight:400}.split-bar{display:flex;height:10px;gap:2px}.split-bar>div{border-radius:1px;min-width:2px}.legend{display:flex;flex-direction:column;gap:7px}.legend-row{display:flex;align-items:center;gap:8px;font-size:13px}.legend-row .sw{width:6px;height:14px;border-radius:2px}.legend-row .nm{flex:1;color:var(--ink-2);font-family:var(--label)}.legend-row .v{font-family:var(--mono);font-size:12px;color:var(--ink-3)}.bench-item{display:flex;flex-direction:column;gap:6px}.bench-top{display:flex;justify-content:space-between;font-size:13px}.bench-top .nm{font-family:var(--label)}.bench-top .v{font-family:var(--mono);font-size:12px}.bench-track{position:relative;height:4px;background:var(--rule)}.bench-track .fill{height:100%}.bench-track .tick{position:absolute;top:-4px;width:2px;height:12px;background:var(--ink)}.foot-note{font-size:11px;color:var(--muted)}.review-card{padding:16px 18px;display:flex;align-items:center;gap:14px}.review-card .big{font-family:var(--serif);font-size:40px;line-height:1}.review-card .big span{font-size:20px;color:var(--muted)}.review-text{flex:1;display:flex;flex-direction:column;gap:2px}.review-card b{font-family:var(--label);font-size:15px;font-weight:600}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.th-help{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.info-btn{width:18px;height:18px;border-radius:50%;padding:0;flex:none;border:1px solid #3a4740;background:transparent;color:var(--ink-3);font-family:var(--serif);font-style:italic;font-size:12px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.info-btn:hover,.info-btn.on{background:var(--ink);color:#0a0e0b;border-color:var(--ink)}.thead .info-btn{width:16px;height:16px;font-size:11px;letter-spacing:0}.info-pop{position:fixed;z-index:50;padding:14px 16px;border-radius:var(--r);background:#0e1511f7;border:1px solid rgba(170,200,180,.14);border-bottom:3px solid rgba(0,0,0,.6);box-shadow:0 24px 60px -16px #000000e6;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink-2);letter-spacing:0;text-transform:none;text-align:left;animation:rise .2s var(--ease-out) both}.info-pop p{margin:8px 0 0}.info-pop ul{margin:8px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}.info-pop li{display:flex;gap:8px;align-items:baseline}.ip-title{font-family:var(--label);font-size:14px;font-weight:600;color:var(--ink)}.ip-key{flex:none;display:inline-block;transform:translateY(-2px)}.ip-key.bar{width:16px;height:4px;background:var(--ink-2)}.ip-key.tick{width:2px;height:12px;margin:0 7px;background:var(--ink);transform:translateY(1px)}.amber-t{color:var(--amber);font-weight:500}.green-t{color:var(--accent);font-weight:500}.ip-muted{color:var(--muted);font-size:12px}.glass.empty{padding:40px 28px;display:flex;flex-direction:column;gap:14px;align-items:flex-start;max-width:560px}.glass.empty h2{margin:0;font-family:var(--serif);font-size:30px;font-weight:400}.glass.empty p{margin:0;color:var(--ink-3);line-height:1.5}.quick{position:relative;z-index:1;width:100%;max-width:440px;margin:0 auto;min-height:100vh;min-height:100dvh;padding:20px 16px calc(22px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}.quick-head{display:flex;justify-content:space-between;align-items:center}.quick-head h1{margin:0;font-family:var(--serif);font-size:32px;font-weight:400;letter-spacing:-.4px;line-height:1}.quick-left{padding:14px 16px;display:flex;justify-content:space-between;align-items:flex-end}.quick-left .big{font-family:var(--serif);font-size:36px;font-weight:400;line-height:1}.per-day{font-family:var(--mono);font-size:15px}.amount{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0 6px}.amount .v{font-family:var(--serif);font-size:68px;letter-spacing:-1px;line-height:1}.amount .v.zero{color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chip{height:38px;padding:0 14px;border-radius:var(--r);border:1px solid rgba(170,200,180,.14);border-bottom-width:3px;background:#ffffff0a;color:var(--ink);font-family:var(--label);font-size:15px}.chip[aria-pressed=true]{border-color:var(--ink-2);background:var(--ink);color:#0a0e0b;font-weight:600}.chip.more{color:var(--ink-3)}.all-lines{max-height:220px;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:10px}.all-lines .grp{display:flex;flex-direction:column;gap:6px}.all-lines .grp-name{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.all-lines .chips{justify-content:flex-start}.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:auto}.key{height:56px;border-radius:var(--r);border:1px solid rgba(170,200,180,.08);border-bottom:3px solid rgba(0,0,0,.55);background:#ffffff09;box-shadow:inset 0 1px #ffffff0d;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--ink);font-family:var(--mono);font-size:22px}.key:active{background:#ffffff14}.save{height:56px;font-size:16px;border-bottom-width:4px}.link-btn{border:0;background:none;color:var(--ink);text-decoration:underline;padding:0;font-size:13px}.history-peek{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;margin:-2px 0;border:1px solid transparent;border-radius:var(--r);background:transparent;text-align:left;transition:background-color .15s ease,border-color .15s ease}.history-peek:hover,.history-peek[aria-expanded=true]{background:#ffffff08;border-color:#aac8b417}.hp-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.hp-label{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hp-value{font-family:var(--mono);font-size:13px;color:var(--ink-2)}.hp-value.over{color:var(--amber)}.hp-chev{color:var(--muted);font-size:16px;transition:transform .25s var(--ease-out)}.history-peek[aria-expanded=true] .hp-chev{transform:rotate(90deg)}.mini-bars{display:flex;align-items:flex-end;gap:3px;height:24px}.mini-bars .mb{position:relative;width:6px;height:100%;display:flex;align-items:flex-end}.mini-bars .mb .fill{width:100%;border-radius:1px;background:#3a4740;transition:height .5s var(--ease-out)}.mini-bars .mb.now .fill{background:var(--ink-2)}.mini-bars .mb.over .fill{background:var(--amber)}.mini-bars .mb .tick{position:absolute;left:-1px;right:-1px;height:1px;background:var(--ink-3)}.mini-bars .mb.empty:after{content:"";width:100%;height:2px;border-radius:1px;background:var(--rule)}.history-sheet{position:absolute;left:12px;right:12px;bottom:calc(90px + env(safe-area-inset-bottom));z-index:3;padding:16px;display:flex;flex-direction:column;gap:12px;background:#0c130feb;animation:sheet-up .34s var(--ease-out) both}@keyframes sheet-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hs-head{display:flex;justify-content:space-between;align-items:flex-start}.hs-head h2{margin:0;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.1}.hs-rows{display:flex;flex-direction:column;gap:9px}.hs-row{display:grid;grid-template-columns:62px 1fr auto;gap:10px;align-items:center;font-size:13px}.hs-row.none{opacity:.55}.hs-month{font-family:var(--label);color:var(--ink-2);display:flex;align-items:center;gap:6px}.hs-now{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#0a0e0b;background:var(--accent-strong);border-radius:3px;padding:1px 4px}.hs-track{position:relative;height:4px;background:var(--rule);border-radius:2px}.hs-track .fill{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:var(--ink-2);transition:width .5s var(--ease-out)}.hs-track .fill.over{background:var(--amber)}.hs-track .tick{position:absolute;top:-4px;width:2px;height:12px;background:var(--ink)}.hs-amt{font-family:var(--mono);font-size:12px;text-align:right;white-space:nowrap}.hs-amt.over{color:var(--amber)}.hs-foot{margin:0;padding-top:10px;border-top:1px solid var(--rule);font-size:12px;color:var(--muted);line-height:1.5}.hs-foot b{color:var(--ink-2);font-weight:500}.settings{display:flex;flex-direction:column;gap:16px;max-width:640px}.settings h1{margin:0;font-family:var(--serif);font-size:44px;font-weight:400;letter-spacing:-.8px}.setting{padding:18px;display:flex;flex-direction:column;gap:10px}.setting h2{margin:0;font-family:var(--label);font-size:16px;font-weight:600}.setting p{margin:0;color:var(--ink-3);font-size:13px;line-height:1.5}.setting .row-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.notice{font-size:13px;color:var(--accent)}.notice.err{color:var(--amber)}.manage-link{margin-left:auto;align-self:center;font-size:12px;color:var(--muted);text-decoration:none;white-space:nowrap}.manage-link:hover{color:var(--ink)}.groups-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.gs-row{border-top:1px solid var(--rule-2)}.gs-row:first-child{border-top:0}.gs-main{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:14px;padding:10px 2px}.gs-swatch{width:14px;height:26px;border-radius:3px;border:0;padding:0;transition:transform .18s var(--ease-spring)}.gs-swatch:hover,.gs-swatch[aria-expanded=true]{transform:scaleX(1.25)}.gs-name{display:flex;flex-direction:column;gap:1px;min-width:0}.gs-name .cell-btn{font-family:var(--label);font-size:15px;font-weight:600;color:var(--ink);justify-self:start;align-self:flex-start}.gs-name .field{height:30px;font-size:14px;max-width:260px}.gs-meta{font-family:var(--mono);font-size:11px;color:var(--muted)}.gs-d2d{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-3);cursor:pointer}.toggle.sm{width:30px;height:18px}.toggle.sm:after{width:12px;height:12px}.toggle.sm:checked:after{transform:translate(12px)}.gs-actions{display:flex;gap:2px;opacity:.35;transition:opacity .15s ease}.gs-row:hover .gs-actions,.gs-actions:focus-within{opacity:1}.gs-icon{width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--ink-3);font-size:14px}.gs-icon:hover:not(:disabled){background:#ffffff0f;color:var(--ink)}.gs-icon:disabled{opacity:.25;cursor:default}.gs-icon.danger:hover{color:var(--amber);background:#e0a4581a}.gs-palette{display:flex;gap:8px;padding:0 2px 12px 30px;animation:rise .2s var(--ease-out) both}.gs-color{width:22px;height:22px;border-radius:50%;border:2px solid transparent;padding:0;transition:transform .15s var(--ease-spring)}.gs-color:hover{transform:scale(1.12)}.gs-color[aria-pressed=true]{border-color:var(--ink)}@media(hover:none){.gs-actions{opacity:1}}.nav-badge{margin-left:auto;min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:var(--accent-strong);color:#06110b;font-family:var(--mono);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.review{display:flex;flex-direction:column;gap:18px}.page-title{margin:0;font-family:var(--serif);font-size:44px;font-weight:400;letter-spacing:-.8px;line-height:1}.seg{display:inline-flex;gap:2px;padding:3px;border-radius:9px;background:#ffffff08;border:1px solid rgba(170,200,180,.08);align-self:flex-start}.seg-btn{height:32px;padding:0 12px;border:0;border-radius:7px;background:transparent;color:var(--ink-3);font-size:13px;transition:background-color .15s ease,color .15s ease}.seg-btn[aria-selected=true]{background:#ffffff12;color:var(--ink);box-shadow:inset 0 1px #ffffff0d}.seg-n{font-family:var(--mono);font-size:11px;color:var(--muted);margin-left:4px}.review-empty{padding:20px 4px}.review-month{padding:6px 0 4px}.rm-head{display:flex;justify-content:space-between;align-items:baseline;padding:12px 18px 8px;border-bottom:1px solid var(--rule)}.rm-head h2{margin:0;font-family:var(--serif);font-weight:400;font-size:24px}.rm-head h2 i{color:var(--ink-3)}.rm-head .mono{font-size:12px}.in{color:var(--accent-strong)}.rm-list{list-style:none;margin:0;padding:0}.rm-row{display:grid;grid-template-columns:48px minmax(160px,1fr) 70px minmax(170px,230px) 100px 96px;gap:12px;align-items:center;padding:8px 18px;border-bottom:1px solid var(--rule-2);font-size:13px;animation:rise .25s var(--ease-out) both}.rm-row:last-child{border-bottom:0}.rm-row.transfer,.rm-row.ignored{opacity:.6}.rm-date{font-size:12px;color:var(--muted)}.rm-payee{display:flex;flex-direction:column;min-width:0}.rm-payee b{font-family:var(--label);font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rm-desc,.rm-acct{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rm-target{display:flex;flex-direction:column;gap:2px;min-width:0}.rm-why{font-size:10px;font-family:var(--mono);color:var(--muted);letter-spacing:.03em}.rm-done{display:flex;flex-direction:column;color:var(--ink-2)}.rm-amt{text-align:right;font-size:13px}.rm-actions{display:flex;justify-content:flex-end;gap:2px}.gs-icon.ok:not(:disabled){color:var(--accent-strong)}.gs-icon.ok:hover:not(:disabled){background:#6fbf921f}.review-setup{padding:0}.review-setup summary{cursor:pointer;padding:14px 18px;font-size:13px;color:var(--ink-3);list-style:none}.review-setup summary::-webkit-details-marker{display:none}.review-setup summary:before{content:"▸";display:inline-block;margin-right:8px;transition:transform .2s var(--ease-out)}.review-setup[open] summary:before{transform:rotate(90deg)}.rs-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;padding:0 18px 18px}.rs-body h3{margin:0 0 4px;font-family:var(--label);font-size:14px;font-weight:600}.chips-list{list-style:none;padding:0;margin:10px 0;display:flex;flex-wrap:wrap;gap:6px}.chip-static{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border-radius:6px;background:#ffffff0a;border:1px solid var(--rule);font-family:var(--mono);font-size:11px;color:var(--ink-2)}.chip-static .ghost-x,.rules .ghost-x{opacity:1;width:20px;height:20px}.rules{list-style:none;padding:0;margin:10px 0 0;max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:2px;font-size:12px}.rules li{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}@media(max-width:900px){.rm-row{grid-template-columns:44px 1fr 90px;grid-template-areas:"d p a" "d t x";row-gap:6px}.rm-date{grid-area:d}.rm-payee{grid-area:p}.rm-amt{grid-area:a}.rm-target{grid-area:t}.rm-actions{grid-area:x}.rm-acct{display:none}}.gs-main{grid-template-columns:auto 1fr auto auto auto}.gs-split{height:28px;font-size:12px;padding:0 6px}.auto-tag{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule);border-radius:3px;padding:1px 4px}.insights{gap:0}.ins-head{all:unset;cursor:pointer;display:flex;align-items:baseline;gap:10px}.ins-head:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.ins-head h2{margin:0;font-family:var(--serif);font-size:22px;font-weight:400}.ins-head .caret{transform:translateY(-2px)}.insights.open .ins-head .caret{transform:translateY(-2px) rotate(90deg)}.ins-sum{margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap}.ins-list{list-style:none;margin:0;padding:14px 0 10px;display:flex;flex-direction:column;gap:12px;counter-reset:ins}.ins-list li{counter-increment:ins;display:flex;flex-direction:column;gap:3px;padding-left:22px;position:relative}.ins-list li:before{content:counter(ins);position:absolute;left:0;top:1px;font-family:var(--mono);font-size:11px;color:var(--muted)}.ins-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.ins-title{font-family:var(--label);font-size:13px;color:var(--ink)}.ins-amt{font-size:12px;color:var(--amber);white-space:nowrap}.ins-list p{margin:0;font-size:12px;line-height:1.45;color:var(--muted)}.lp-trigger{width:100%;height:32px;display:flex;align-items:center;gap:8px;padding:0 10px;border-radius:var(--r);border:1px solid #2c3830;background:#00000059;color:var(--ink);text-align:left;font-size:12px;transition:border-color .15s ease,background-color .15s ease}.lp-trigger:hover,.lp-trigger[aria-expanded=true]{border-color:#4a5c50;background:#00000080}.lp-trigger.is-unset{color:var(--muted)}.lp-trigger-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lp-trigger-group{margin-left:6px;color:var(--muted);font-size:11px}.lp-chev{color:var(--muted);font-size:10px;transition:transform .2s var(--ease-out)}.lp-trigger[aria-expanded=true] .lp-chev{transform:rotate(180deg)}.lp-dot{width:8px;height:8px;border-radius:2px;flex:none;display:inline-block}.lp-pop{position:fixed;z-index:60;display:flex;flex-direction:column;max-height:min(420px,70vh);border-radius:10px;background:#0d1410f7;border:1px solid rgba(170,200,180,.14);border-bottom:3px solid rgba(0,0,0,.6);box-shadow:0 30px 70px -20px #000000f2;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);animation:lp-in .16s var(--ease-out) both;transform-origin:top}.lp-pop.up{transform-origin:bottom}@keyframes lp-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.lp-search{padding:8px;border-bottom:1px solid var(--rule)}.lp-search .field{width:100%;height:32px;font-size:13px}.lp-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto;flex:1;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}.lp-list ul{list-style:none;margin:0;padding:0}.lp-head{display:flex;align-items:center;gap:8px;padding:8px 12px 4px;font-family:var(--mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.lp-item{display:flex;align-items:center;gap:10px;padding:7px 12px 7px 14px;margin:0 4px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--ink-2)}.lp-item .lp-dot{width:6px;height:6px;opacity:.8}.lp-item.active{background:#ffffff12;color:var(--ink)}.lp-item.chosen .lp-name{color:var(--ink);font-weight:500}.lp-name{flex:1;min-width:0;font-family:var(--label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lp-hint{font-family:var(--mono);font-size:10px;color:var(--accent-strong)}.lp-add{padding:6px 12px 6px 30px;margin:0 4px;border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer}.lp-add:hover{color:var(--ink);background:#ffffff0a}.lp-add-form{display:flex;gap:6px;padding:4px 8px 6px 28px}.lp-add-form .field{flex:1;height:28px;font-size:12px}.lp-empty{padding:14px;font-size:12px;color:var(--muted)}.lp-create{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-top:1px solid var(--rule)}.lp-create .field{height:30px;font-size:12px}.lp-create-label{font-size:12px;color:var(--ink-3)}.lp-chips{display:flex;flex-wrap:wrap;gap:6px}.lp-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px;border-radius:6px;border:1px solid var(--rule);background:#ffffff08;color:var(--ink-2);font-size:12px}.lp-chip:hover{border-color:#4a5c50;color:var(--ink)}.lp-chip.ghost{color:var(--muted)}.lp-create-actions{display:flex;align-items:center;gap:10px}.lp-newgroup{border:0;border-top:1px solid var(--rule);background:transparent;color:var(--muted);font-size:12px;text-align:left;padding:10px 14px;border-radius:0 0 10px 10px}.lp-newgroup:hover{color:var(--ink);background:#ffffff08}.sync-notice{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--r);background:#e0a4581a;border:1px solid rgba(224,164,88,.3);color:var(--amber);font-size:13px}.sidebar-foot a.err{color:var(--amber);text-decoration:none}@media(max-width:760px){.shell{flex-direction:column}.sidebar{position:sticky;top:0;z-index:5;height:auto;flex:none;flex-direction:row;align-items:center;gap:12px;padding:10px 12px;border-right:0;border-bottom:1px solid rgba(170,200,180,.07)}.brand-name{display:none}.nav{flex-direction:row;overflow-x:auto}.nav a,.nav a[aria-current=page]{padding:0 10px;height:34px;white-space:nowrap}.nav a[aria-current=page]:before{display:none}.sidebar-foot,.sidebar-slot{display:none}.main{padding:18px 12px 32px}.month-title h1{font-size:32px}.stat-value,.stat-value-btn{font-size:28px}}:root{--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.2, .9, .3, 1.25)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn,.chip,.key,.icon-btn,.cell-btn,.stat-value-btn,.group-row,.ghost-x{transition:transform .18s var(--ease-spring),background-color .15s ease,border-color .15s ease,color .15s ease,opacity .15s ease,box-shadow .2s ease}.btn:active:not(:disabled),.chip:active,.icon-btn:active{transform:translateY(1px) scale(.97)}.key:active{transform:translateY(2px) scale(.96);border-bottom-width:1px}.btn-primary:active:not(:disabled){border-bottom-width:1px}.chip[aria-pressed=true]{animation:chip-pick .32s var(--ease-spring)}@keyframes chip-pick{0%{transform:scale(.92)}60%{transform:scale(1.04)}to{transform:scale(1)}}.page-enter{animation:page-in .38s var(--ease-out) both}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.swipe-area{touch-action:pan-y;will-change:transform}.slide-next{animation:slide-next .36s var(--ease-out) both}.slide-prev{animation:slide-prev .36s var(--ease-out) both}@keyframes slide-next{0%{opacity:0;transform:translate(36px)}to{opacity:1;transform:none}}@keyframes slide-prev{0%{opacity:0;transform:translate(-36px)}to{opacity:1;transform:none}}.stagger>*{animation:rise .42s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 28ms)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.collapse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s var(--ease-out)}.collapse.open{grid-template-rows:1fr}.collapse>.collapse-inner{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 0s linear .32s}.collapse.open>.collapse-inner{visibility:visible;transition:visibility 0s}.caret{display:inline-block;transition:transform .25s var(--ease-out)}.group.open .caret{transform:rotate(90deg)}.txns{animation:rise .25s var(--ease-out) both}.bar>div,.bench-track .fill,.split-bar>div{transition:width .6s var(--ease-out),background-color .3s ease}.counter{transition:color .5s ease,text-shadow .5s ease}.counter.moved-good{color:var(--accent-strong);text-shadow:0 0 18px rgba(111,191,146,.35)}.counter.moved-bad{color:var(--amber);text-shadow:0 0 18px rgba(224,164,88,.3)}.saved-flash{animation:flash .9s ease-out;border-radius:4px}@keyframes flash{0%{background:#6fbf9247}to{background:transparent}}.amount .v{display:inline-block}.amount .v.pop{animation:pop .16s var(--ease-spring)}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.045)}to{transform:scale(1)}}.shake{animation:shake .42s cubic-bezier(.36,.07,.19,.97)}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(3px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.quick-left{transition:border-color .4s ease,box-shadow .6s ease}.quick-left.glow-good{box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #6fbf9259,0 18px 60px -20px #6fbf9273}.quick-left.glow-bad{box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #e0a45866,0 18px 60px -20px #e0a45866}.save{position:relative;overflow:hidden}.save[aria-disabled=true]:not(.done):not(.over){opacity:.55}.save.done{background:var(--accent-strong);border-bottom-color:#4a8c67;color:#06110b}.save.over{background:var(--amber);border-bottom-color:#9c6f37;color:#1a1006}.save .check{display:inline-block;animation:check-in .45s var(--ease-spring);margin-right:6px}@keyframes check-in{0%{transform:scale(0) rotate(-30deg)}to{transform:scale(1) rotate(0)}}.save:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,rgba(255,255,255,.45),transparent 60%);opacity:0;transform:scale(.2)}.save.done:after,.save.over:after{animation:burst .6s var(--ease-out)}@keyframes burst{0%{opacity:.9;transform:scale(.2)}to{opacity:0;transform:scale(2.2)}}.feedback{display:flex;justify-content:center;align-items:center;gap:10px;font-size:13px;min-height:20px;animation:rise .3s var(--ease-out) both}.feedback.good{color:var(--ink-2)}.feedback.good b{color:var(--accent-strong);font-weight:500}.feedback.bad{color:var(--amber)}.all-lines{animation:rise .25s var(--ease-out) both;transform-origin:top}.toggle{appearance:none;width:40px;height:24px;border-radius:12px;background:var(--rule);position:relative;cursor:pointer;transition:background .2s ease;flex:none}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink);transition:transform .25s var(--ease-spring)}.toggle:checked{background:var(--accent-strong)}.toggle:checked:after{transform:translate(16px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0s!important;transition-duration:.001ms!important}}
