:root{--bg:#fafafa;--fg:#1c1c1e;--muted:#6b7280;--line:#d8d8dc;--panel:#fff;--accent:#1d4ed8;--accent-fg:#fff;--income:#15803d;--spending:#c2410c;--savings:#1d4ed8;--transfer:#6b7280;--warn:#d97706;--danger:#dc2626;--surface-2:color-mix(in srgb, var(--fg) 6%, transparent);--surface-3:color-mix(in srgb, var(--fg) 11%, transparent);--ctl-h:28px;--r-sm:4px;--r-ctl:6px;--r-panel:8px;--r-pill:999px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:16px;--fs-xl:20px;--selected:color-mix(in srgb, var(--fg) 14%, transparent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--bg:#111214;--fg:#ececee;--muted:#9aa0aa;--line:#33363b;--panel:#1a1c1f;--accent:#6c9cff;--accent-fg:#0b1020;--income:#4ade80;--spending:#fb923c;--savings:#7cacff;--transfer:#9aa0aa;--warn:#fbbf24;--danger:#f87171;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111214;--fg:#ececee;--muted:#9aa0aa;--line:#33363b;--panel:#1a1c1f;--accent:#6c9cff;--accent-fg:#0b1020;--income:#4ade80;--spending:#fb923c;--savings:#7cacff;--transfer:#9aa0aa;--warn:#fbbf24;--danger:#f87171;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font:var(--fs-md)/1.4 system-ui, -apple-system, "Segoe UI", sans-serif;margin:0}h1,h2,h3{margin:0 0 8px}h2{font-size:var(--fs-lg);font-weight:600}h3{font-size:var(--fs-md);font-weight:600}main,.connect{max-width:1200px;margin:0 auto;padding:12px 16px 48px}.connect{max-width:560px;padding-top:40px}.connect-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.connect-head h1{margin:0}.brand{align-items:center;gap:10px;display:flex}.brand svg{border-radius:var(--r-ctl);flex:none}.muted{color:var(--muted)}.error{color:var(--danger)}.ok{color:var(--income)}.warn-text{color:var(--warn)}.pos{color:var(--income)}button,select,input,.btn{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-ctl);height:var(--ctl-h);padding:0 10px}input[type=checkbox]{height:auto;margin-right:6px;padding:0}input[type=date],input[type=number]{padding:0 6px}button,.btn{cursor:pointer;white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:6px;display:inline-flex}button:hover:not(:disabled),.btn:hover{background:var(--surface-2)}button:disabled,.btn.disabled{opacity:.45;cursor:default}button:focus-visible,.btn:focus-within,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary,.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, var(--fg))}button.danger{color:var(--danger)}button.link{color:var(--accent);background:0 0;border:0;height:auto;padding:0 4px;text-decoration:underline}button.link:hover:not(:disabled){background:0 0}button.icon{width:var(--ctl-h);color:var(--muted);border:0;padding:0}button.icon:hover:not(:disabled),button.icon:focus-visible{color:var(--fg);background:var(--surface-3)}button.icon.danger:hover:not(:disabled),button.icon.danger:focus-visible{color:var(--danger)}button.icon.automated{color:var(--accent)}button.icon.manual{color:var(--warn)}.glyph{color:var(--muted);flex:none;align-items:center;display:inline-flex}button.glyph{cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;height:auto;padding:2px}button.glyph:hover,button.glyph:focus-visible{color:var(--accent);background:var(--surface-3)}.tag-chip .glyph svg{width:10px;height:10px}.row-actions{align-items:center;gap:2px;margin-left:auto;display:inline-flex}.add-row{flex-wrap:nowrap}.add-row>input.grow{min-width:0}.add-row>button:last-child{margin-left:auto}.page-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.page-head h2{margin:0}.head-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:inline-flex}.manual-tx .manual-amount{width:7em}.grow{flex:1;min-width:140px}.topbar{z-index:5;background:var(--bg);border-bottom:1px solid var(--line);padding:0 16px;padding-top:env(safe-area-inset-top);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.tabs{flex-wrap:wrap;gap:2px;display:flex}.tab{height:40px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:0 12px}.tab:hover:not(:disabled){color:var(--fg);background:0 0}.tab.on{border-bottom-color:var(--accent);color:var(--fg);font-weight:600}.subnav{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;margin-bottom:12px;display:flex}.subtab{height:32px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:0 10px}.subtab:hover:not(:disabled){color:var(--fg);background:0 0}.subtab.on{border-bottom-color:var(--accent);color:var(--fg);font-weight:600}.status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-panel);margin:10px 0;padding:10px 12px;scroll-margin-top:56px}.panel-band{border-radius:var(--r-panel) var(--r-panel) 0 0;color:var(--on-type);text-transform:uppercase;letter-spacing:.02em;font-weight:700;font-size:var(--fs-sm);align-items:center;gap:8px;margin:-10px -12px 10px;padding:6px 12px;display:flex}.panel-band.collapsed{border-radius:var(--r-panel);margin-bottom:-10px}.panel-band h3{font:inherit;color:inherit;margin:0}.panel-band.income{background:var(--income)}.panel-band.spending{background:var(--spending)}.panel-band.savings{background:var(--savings)}.panel-band.transfer{background:var(--transfer)}.panel-band.asset{background:var(--income)}.panel-band.liability{background:var(--danger)}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.chip{border:1px solid var(--line);border-radius:var(--r-ctl);height:var(--ctl-h);cursor:pointer;align-items:center;padding:0 10px;display:inline-flex}.chip.warn{border-color:var(--warn);color:var(--warn);font-weight:600}.chip.on{background:color-mix(in srgb, var(--warn) 18%, transparent)}.scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:500;font-size:var(--fs-sm);color:var(--muted)}th,td{border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);vertical-align:middle;padding:4px 8px}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}table.tx td:nth-child(2){color:var(--muted);white-space:nowrap}table.tx td:nth-child(3){white-space:nowrap;text-overflow:ellipsis;max-width:170px;overflow:hidden}table.tx td.desc{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}table.tx td.desc .merchant{font-size:var(--fs-xs);line-height:1.2}table.tx td.act{white-space:nowrap;width:1%}table.tx td:nth-child(6){min-width:200px}table.tx tbody tr:hover{background:var(--surface-2)}table.tx tr.split-original{background:var(--surface-3)}table.tx tr.split-original td.num{color:var(--muted);text-decoration:line-through}table.tx tr.split-copy td:first-child{box-shadow:inset 3px 0 0 var(--accent)}table.tx td.desc input.copy-desc{width:100%;min-width:0}table.tx td input.copy-amount{text-align:right;width:96px}.badge{font-size:var(--fs-xs);border:1px solid var(--line);border-radius:var(--r-pill);color:var(--muted);white-space:nowrap;margin-left:8px;padding:1px 7px}.badge.warn-text{border-color:var(--warn);color:var(--warn);font-weight:600}.tx input.manual-date{width:9.5em}.tx input.manual-desc{width:100%;min-width:8em}.tx input.manual-amount-cell{text-align:right;width:7em}.tx tr.split-ask td{background:var(--surface-2)}.tx input.split-count{width:5em}.inline-name{flex-wrap:nowrap}.inline-name>input.grow{min-width:0}.split-hint{font-size:var(--fs-xs);padding-left:4px}table.tx tr.sel{background:color-mix(in srgb, var(--accent) 10%, transparent)}table.tx tr.grp td{background:var(--surface-2);border-top:1px solid var(--line);color:var(--fg);max-width:none}table.tx tr.grp td:first-child{white-space:normal;padding-left:4px}table.tx tr.grp td.num{font-weight:700}table.tx tr.in-1 td:first-child{padding-left:16px}table.tx thead th:last-child,table.tx tbody tr:not(.grp) td.act{background:var(--bg);position:sticky;right:0}table.tx tbody tr:not(.grp):hover td.act{background:var(--surface-2)}table.tx tr.split-original td.act{background:var(--surface-3)}table.tx tr.sel td.act{background:linear-gradient(color-mix(in srgb, var(--accent) 10%, transparent), color-mix(in srgb, var(--accent) 10%, transparent)), var(--bg)}.combo.cat{min-width:190px}.combo-input.need{border-style:dashed;border-color:var(--warn);color:var(--warn)}table.tx .combo-input{background:0 0;border-color:#0000;padding-left:4px}table.tx tr:hover .combo-input,table.tx .combo-input:focus{border-color:var(--line);background:var(--panel)}table.tx .combo-input.need,table.tx tr:hover .combo-input.need{border-color:var(--warn)}table.tx .icon.reveal{opacity:0}table.tx tr:hover .icon.reveal,table.tx tr:focus-within .icon.reveal,table.tx .icon.reveal:focus-visible{opacity:1}@media (hover:none){table.tx .icon.reveal{opacity:1}}.combo{display:inline-block;position:relative}.combo-input{width:100%}.combo.select:after{content:"";border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);pointer-events:none;width:6px;height:6px;margin-top:-5px;position:absolute;top:50%;right:10px;transform:rotate(45deg)}.combo.select .combo-input{cursor:pointer;text-overflow:ellipsis;padding-right:26px}.combo.select .combo-input:focus{cursor:text}.combo-list{z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-panel);min-width:240px;max-height:280px;margin:2px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;overflow-y:auto}.combo-group{margin-top:2px}.combo-group ul{margin:0;padding:0;list-style:none}.combo-group-label{font-size:var(--fs-xs);color:var(--muted);padding:4px 8px;font-weight:600}.combo-option{border-radius:var(--r-sm);cursor:pointer;padding:6px 8px}.combo-option:hover,.combo-option.hi{background:color-mix(in srgb, var(--accent) 16%, transparent)}.combo-option.on{font-weight:600}.combo-option.on:before{content:"✓ "}.combo-empty{padding:6px 8px}.tag-chips{flex-wrap:wrap;align-items:center;gap:4px;min-width:160px;display:flex}.tag-chip{background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:var(--r-pill);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:4px;padding:1px 3px 1px 8px;display:inline-flex}.tag-chip button{height:auto;font-size:var(--fs-md);color:inherit;cursor:pointer;border-radius:var(--r-pill);background:0 0;border:0;padding:0 4px;line-height:1}.tag-chip button:hover{background:color-mix(in srgb, var(--fg) 15%, transparent)}.tag-input{background:0 0;border:0;flex:1;min-width:70px;height:22px;padding:0 4px}.tag-input:focus{outline:none}.steps{gap:6px;margin-bottom:10px;display:flex}.steps span{border:1px solid var(--line);border-radius:var(--r-pill);color:var(--muted);font-size:var(--fs-sm);padding:2px 10px}.steps .on{color:var(--fg);background:var(--selected);font-weight:600}.stats{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.stat{border:1px solid var(--line);border-radius:var(--r-panel);padding:5px 12px}.stat b{font-size:var(--fs-xl);display:block}table.map th{padding:4px 6px}table.map td{white-space:nowrap}table.map tr.hdr td{color:var(--muted);font-style:italic}.pick .combo-input{border-color:var(--accent);color:var(--accent);font-weight:600}.pick.ignore .combo-input{border-color:var(--line);color:var(--muted);font-weight:400}.reads{border:1px dashed var(--line);border-radius:var(--r-panel);padding:6px 10px}.tree,.tree ul,.rules{margin:0;padding:0;list-style:none}.tree ul{padding-left:24px}.cat-row{flex-wrap:wrap;align-items:center;gap:8px;padding:2px 0;display:flex}.cat-name{min-width:160px;font-weight:600}.target-input{width:90px}.cat-grid{grid-template-columns:minmax(0,1fr) 3ch 116px 100px 96px;column-gap:12px;display:grid}.cat-grid .cat-name{min-width:0}.cat-lead{align-items:center;min-width:0;display:flex}.cat-grid .usage{text-align:right}.cat-grid .combo.select,.cat-grid .target-input{width:100%;min-width:0}.cat-grid .row-actions{justify-self:end;margin-left:0}.icon-slot{width:var(--ctl-h);display:inline-block}@media (pointer:coarse){.icon-slot{width:40px}.cat-grid{grid-template-columns:minmax(0,1fr) 3ch 116px 100px 132px}}@media (width<=640px){.cat-grid{display:flex}.cat-grid .cat-lead{min-width:160px}}.tree ul .cat-name{font-weight:400}.rules{counter-reset:r}.rules li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;display:flex}.rules li.off{opacity:.5}.rule-text{flex:1;min-width:240px}@media (pointer:coarse){button,select,input,.btn,.chip{min-height:40px}button.icon{min-width:40px}.tab{min-height:44px}input[type=checkbox]{min-height:0}}@media (width<=640px){.tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;flex:100%;padding-bottom:2px;overflow-x:auto}.tab{flex:none}.status{flex:100%}main,.connect{padding-left:12px;padding-right:12px}table.tx td:nth-child(6){min-width:140px}table.tx td.desc{max-width:180px}.combo.cat{min-width:130px}.charts{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}:root{--on-type:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--on-type:#0b1020}}:root[data-theme=dark]{--on-type:#0b1020}.seg{display:inline-flex}.seg button{border-color:var(--line);border-radius:0;margin-left:-1px}.seg button:first-child{border-radius:var(--r-ctl) 0 0 var(--r-ctl);margin-left:0}.seg button:last-child{border-radius:0 var(--r-ctl) var(--r-ctl) 0}.seg button.on{background:var(--selected);font-weight:600}.seg .seg-label{align-self:center;margin-right:6px}.seg .seg-label+button{border-radius:var(--r-ctl) 0 0 var(--r-ctl);margin-left:0}button.th-sort{height:auto;font:inherit;font-weight:inherit;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}button.th-sort:hover:not(:disabled){background:0 0;text-decoration:underline}.sort-arrow{opacity:0;font-size:.7em}.sort-arrow.on{opacity:1}button.th-sort:hover .sort-arrow:not(.on),button.th-sort:focus-visible .sort-arrow:not(.on){opacity:.35}.tx-summary{margin:4px 0 8px}.slicer{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.slicer-year{align-items:center;gap:4px;display:inline-flex}.slicer-year button{background:0 0;border:0;padding:0 6px}.slicer-months{flex:1;grid-template-columns:repeat(12,minmax(0,1fr));gap:2px;min-width:0;display:grid}.slicer-months button{border-radius:var(--r-sm);min-width:0;padding:4px 0}.slicer-months button.empty{color:var(--muted);opacity:.6}.slicer button.on{background:var(--selected);color:var(--fg);opacity:1;font-weight:600}@media (width<=640px){.slicer-months{flex-basis:100%;grid-template-columns:repeat(6,minmax(0,1fr))}}table.pv{font-variant-numeric:tabular-nums;font-size:var(--fs-md)}table.pv th,table.pv td{padding:4px 8px}table.pv td:first-child,table.pv th:first-child{background:var(--bg);white-space:nowrap;position:sticky;left:0}table.pv.budget td:first-child,table.pv.budget th:first-child{background:var(--panel)}table.pv .tot{border-left:1px solid var(--line);font-weight:700}table.pv tr.t td{color:var(--on-type);font-weight:700}table.pv tr.t.income td{background:var(--income)}table.pv tr.t.spending td{background:var(--spending)}table.pv tr.t.savings td{background:var(--savings)}table.pv tr.t.asset td{background:var(--income)}table.pv tr.t.liability td{background:var(--danger)}table.pv tr.par td:first-child{font-weight:600}table.pv tr.sub td:first-child{padding-left:34px}table.pv tr.uncat td:not(.neg){color:var(--warn)}table.pv tr.left td{border-top:2px solid var(--muted);font-weight:700}.neg{color:var(--warn)}button.caret,span.caret{text-align:center;background:0 0;border:0;width:22px;padding:0;display:inline-block}.charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}button.link.quiet{color:inherit;padding:0;text-decoration:none}button.link.quiet:hover{text-decoration:underline}.detail-head{justify-content:space-between;align-items:center;display:flex}table.merchants .m-keys{font-size:var(--fs-xs);flex-wrap:wrap;gap:2px 10px;display:flex}table.merchants .m-key{align-items:center;gap:2px;display:inline-flex}table.merchants .m-key button.icon{width:18px;height:18px}.chg-good{color:var(--income)}.chg-bad{color:var(--warn)}svg.spark{display:block}input.small-threshold{width:90px}.last-entry{font-size:var(--fs-sm);white-space:nowrap}.rule-group{font-size:var(--fs-md);margin:14px 0 4px}.rule-group .muted{font-weight:400}.rule-stats.warn-text{font-weight:600}.rule-prio{font-variant-numeric:tabular-nums;margin-right:4px}
