:root{--bg:#f3f5f2;--surface:#fff;--sunk:#e8ece7;--fg:#17201b;--muted:#5d6a63;--line:#d7ddd8;--accent:#2a54c4;--accent-soft:#e2e8f9;--good:#1c7a52;--good-soft:#d9efe3;--warn:#9a620e;--warn-soft:#f6e8cd;--bad:#b63a26;--bad-soft:#f7ddd7;--shadow:0 6px 24px #141e191f;--f-body:"Hanken Grotesk", ui-sans-serif, system-ui, sans-serif;--f-num:"IBM Plex Mono", ui-monospace, Menlo, monospace}@media (prefers-color-scheme:dark){:root{--bg:#111613;--surface:#18201c;--sunk:#212a25;--fg:#e4eae6;--muted:#94a29a;--line:#2c3631;--accent:#86a3f2;--accent-soft:#222c46;--good:#5cc392;--good-soft:#163126;--warn:#e2a74d;--warn-soft:#382a13;--bad:#f0806b;--bad-soft:#3b1e19;--shadow:0 6px 24px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:14px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.small{font-size:12px}.shell{grid-template-columns:220px minmax(0,1fr);min-height:100%;display:grid}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:18px;padding:16px 14px;display:flex}.brand{letter-spacing:-.01em;padding:0 10px;font-size:15px;font-weight:700}.nav{flex-direction:column;gap:2px;display:flex}.nav a,.nav span{text-align:left;color:var(--muted);border-radius:7px;justify-content:space-between;padding:7px 10px;font-weight:600;display:flex}.nav a:hover{background:var(--sunk)}.nav a.on{background:var(--accent-soft);color:var(--accent)}.nav .disabled{opacity:.45;cursor:not-allowed}.side-foot{flex-direction:column;gap:6px;margin-top:auto;padding:0 10px;display:flex}.side-foot button{text-align:left;color:var(--muted);font-weight:600}.main{min-width:0;padding:18px 20px 60px}.head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.head h1{letter-spacing:-.02em;margin:0;font-size:22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;padding:14px 16px}@media (max-width:760px){.shell{grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--line)}.nav{flex-flow:wrap}}.signin{place-items:center;min-height:100%;padding:24px;display:grid}.signin form{flex-direction:column;gap:12px;width:min(100%,360px);display:flex}.signin h1{margin:0 0 4px;font-size:20px}.field{flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.field input{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:8px 10px;font-weight:400}.btn-primary{background:var(--accent);color:var(--surface);border-radius:8px;padding:9px 12px;font-weight:600}.error{background:var(--bad-soft);color:var(--bad);border-radius:8px;padding:8px 10px;font-size:13px}.signin .or{text-align:center;margin:0}.signin .consent{flex-direction:column;gap:12px;width:min(100%,420px);display:flex}.consent p{margin:0}.consent-access{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.consent-access label{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.consent-access input{margin-top:3px}.consent-buttons{justify-content:flex-end;gap:8px;display:flex}.btn-secondary{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 12px;font-weight:600}.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.connected-apps{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.connected-apps li{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.connected-app-meta{margin-top:2px;display:block}.passkey-list{margin:6px 0 0;padding:0;list-style:none}.passkey-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.passkey-add{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px;display:flex}.num{font-family:var(--f-num);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.badge{white-space:nowrap;background:var(--sunk);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex}.b-unm{background:var(--warn-soft);color:var(--warn)}.linkish{color:var(--accent);font-size:12px;font-weight:600}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg a{color:var(--muted);padding:5px 11px;font-size:13px;font-weight:600}.seg a.on{background:var(--accent);color:var(--surface)}.plan-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:6px 0;display:flex}.settings-card{flex-direction:column;gap:14px;max-width:720px;display:flex}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card-head p{max-width:420px;margin:0}.connect{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.connection .account-row{padding-left:14px}.connection-title,.connection-sync,.account-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:4px 10px;font-weight:600}.btn:disabled{opacity:.55;cursor:not-allowed}.b-bad{background:var(--bad-soft);color:var(--bad);margin-left:6px}.tbl-wrap{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow-x:auto}table.ledger{border-collapse:collapse;width:100%;min-width:620px;font-size:13px}.ledger th{background:var(--sunk);text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 8px;font-size:12px;font-weight:600;position:sticky;top:0}.ledger td{border-bottom:1px solid var(--line);vertical-align:middle;padding:5px 8px}.ledger tr:hover td{background:color-mix(in srgb, var(--accent-soft) 50%, transparent)}.ledger .right{text-align:right}.ledger select{background:0 0;border:1px solid #0000;border-radius:6px;max-width:190px;padding:3px 4px}.ledger select:hover{border-color:var(--line)}.ledger select.unc{color:var(--warn);border:1px dashed var(--warn)}.ledger select:disabled{opacity:.6}.srcmark{background:var(--sunk);width:16px;height:16px;color:var(--muted);vertical-align:middle;cursor:help;border-radius:4px;place-items:center;margin-left:3px;font-size:10px;font-weight:700;display:inline-grid}.ledger input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.nowrap{white-space:nowrap}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:78;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);white-space:normal;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:9px 12px;display:flex;position:fixed;transform:translate(-50%)}.toast .t-act{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.merchant-row input{border:1px solid var(--line);border-radius:6px;min-width:0;padding:3px 6px}.merchant-row .merchant-default{align-items:center;gap:8px;display:flex}.in{color:var(--good)}.cat-groups{flex-direction:column;gap:16px;display:flex}.cat-group{flex-direction:column;display:flex}.cat-group-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cat-group-head input{font-weight:700}.cat-groups input,.cat-groups select,.mapping input[type=search]{border:1px solid var(--line);background:var(--surface);border-radius:6px;min-width:0;padding:3px 6px}.cat-row.off .cat-name input{color:var(--muted)}.cat-name{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.cat-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.cat-add{flex-wrap:wrap;align-items:center;gap:8px;padding-top:6px;display:flex}.mapping{flex-direction:column;display:flex}.mapping input[type=search]{margin-bottom:6px}.mapping-row code{font-size:12px}.rule-list{border:1px solid var(--line);background:var(--surface);border-radius:10px;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.rule-row{border-bottom:1px solid var(--line);cursor:grab;grid-template-columns:28px minmax(0,1fr) auto auto auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.rule-row:last-child{border-bottom:0}.rule-row.off{opacity:.55}.rule-row.dragging{opacity:.4}.rule-ord{color:var(--muted);flex-direction:column;align-items:center;font-size:10px;display:flex}.rule-ord button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.rule-ord button:disabled{opacity:.25;cursor:default}.lk{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.rule-ed{flex-direction:column;gap:10px;max-width:620px;display:flex}.rule-ed>label,.rule-ed fieldset{flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;display:flex}.rule-ed fieldset{border:0;flex-flow:wrap;gap:10px;margin:0;padding:0}.rule-ed legend{width:100%;margin-bottom:4px;padding:0}.rule-ed .inl{flex-direction:row;align-items:center;gap:6px;font-weight:400;display:inline-flex}.rule-ed input:not([type=checkbox]),.rule-ed select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 9px;font-weight:400}.rule-amount{align-items:center;gap:6px;font-weight:400;display:flex}.rule-amount input{width:100px}.rule-buttons{align-items:center;gap:8px;display:flex}.rule-apply{flex-direction:column;gap:10px;display:flex}.rule-apply .tbl-wrap{max-height:50vh;overflow:auto}.card.warn{border-color:var(--warn);background:var(--warn-soft)}@media (max-width:760px){.rule-row{grid-template-columns:28px minmax(0,1fr)}}.rule-ed .rule-field{flex-direction:column;align-items:flex-start;gap:4px;font-size:12.5px;font-weight:600;display:flex}.multi-pick{flex-wrap:wrap;align-items:center;gap:6px;font-weight:400;display:flex}dialog.modal{border:1px solid var(--line);background:var(--surface);width:min(680px,100% - 32px);max-height:calc(100vh - 48px);color:var(--fg);box-shadow:var(--shadow);border-radius:12px;padding:16px 20px 20px;overflow:auto}dialog.modal::backdrop{background:#0a100d66}.modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.modal-head h2{letter-spacing:-.02em;margin:0;font-size:18px}.modal-head button{padding:0 4px;font-size:20px;line-height:1}.cbx{vertical-align:middle;max-width:100%;display:inline-block;position:relative}.cbx-btn{border:1px solid var(--line);background:var(--surface);text-align:left;max-width:230px;font-weight:400;font-size:inherit;border-radius:8px;align-items:center;gap:6px;padding:3px 8px;display:inline-flex}.cbx-btn:hover:not(:disabled){border-color:var(--accent)}.cbx-btn:disabled{opacity:.6;cursor:not-allowed}.cbx-btn .cbx-val{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cbx-btn .cbx-caret{color:var(--muted);font-size:11px}.cbx-btn.cbx-empty{color:var(--muted)}.cbx-btn.unc{color:var(--warn);border:1px dashed var(--warn)}.ledger .cbx-btn:not(.unc){background:0 0;border-color:#0000}.ledger .cbx-btn:not(.unc):hover:not(:disabled),.ledger .cbx-btn[aria-expanded=true]{border-color:var(--line)}.rule-ed .cbx-btn{padding:6px 9px}.cbx-pop{z-index:90;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);text-transform:none;letter-spacing:normal;border-radius:10px;flex-direction:column;font-size:13px;font-weight:400;display:flex;position:fixed}.cbx .cbx-pop input.cbx-search{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:10px 10px 0 0;width:100%;max-width:none;padding:9px 11px}.cbx .cbx-pop input.cbx-search:focus-visible{outline:none}.cbx-list{padding:4px 0;overflow:auto}.cbx-grp{padding:6px 11px 2px}.cbx-opt{cursor:pointer;padding:5px 11px}.cbx-opt.in-grp{padding-left:18px}.cbx-opt.hl{background:var(--accent-soft)}.cbx-opt.on{font-weight:600}.cbx-note{color:var(--muted);padding:10px 11px;font-size:12.5px}.label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.b-exc{background:var(--bad-soft);color:var(--bad)}.b-tag{background:var(--accent-soft);color:var(--accent);margin-right:3px}.b-split{background:var(--warn-soft);color:var(--warn)}.b-good{background:var(--good-soft);color:var(--good)}.chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:6px;padding:2px 6px 2px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.excluded .merchant-cell a,.excluded .amt,.detail-pane.excluded .amtbig{opacity:.55;text-decoration:line-through}.ledger tr.sel td{background:var(--accent-soft)}.ellipsis{white-space:nowrap;text-overflow:ellipsis;max-width:260px;overflow:hidden}.detail-pane{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-height:calc(100vh - 24px);padding:16px 18px;position:sticky;top:12px;overflow:auto}.detail-head{justify-content:space-between;gap:8px;display:flex}.detail-head a{font-size:18px;line-height:1}.detail-pane h2{letter-spacing:-.02em;margin:2px 0 0;font-size:20px}.detail-pane .amtbig{margin:4px 0 10px;font-size:28px;font-weight:600}.detail-pane .badges{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.dfield{border-top:1px solid var(--line);grid-template-columns:84px minmax(0,1fr);align-items:start;gap:8px;padding:8px 0;display:grid}.dfield>.label{padding-top:4px}.dfield select,.dfield input,.dfield textarea{border:1px solid var(--line);background:var(--bg);border-radius:6px;max-width:190px;padding:3px 6px}.dfield select.unc{color:var(--warn);border:1px dashed var(--warn)}.dfield textarea{resize:vertical;width:100%;max-width:none;min-height:54px}.split-line{align-items:center;gap:6px;margin-bottom:6px;display:flex}.split-line input{text-align:right;width:86px}.split-line .line-amt{margin-left:auto}.split-block+.split-block{border-top:1px dashed var(--line);padding-top:6px}.split-meta{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.split-meta .note-input{width:100%;max-width:none}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.link{color:var(--accent);font-weight:600}.btn-accent{background:var(--accent);color:var(--surface);border-color:var(--accent)}.tag-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.dfield .tag-input{background:0 0;border:0;width:90px}.raw{font-family:var(--f-num);white-space:pre-wrap;word-break:break-all;background:var(--sunk);border-radius:6px;max-height:260px;padding:8px;font-size:11px;overflow:auto}.txn-page.with-detail{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:16px;display:grid}@media (max-width:1100px){.txn-page.with-detail{grid-template-columns:1fr}}.txn-main{min-width:0}.txn-ledger td.txn-account{white-space:nowrap}.with-detail .txn-ledger .txn-kind,.with-detail .txn-ledger .txn-tags{display:none}.chip a{text-align:center;border-radius:50%;width:18px;height:18px;line-height:18px}.chip a:hover{background:var(--accent);color:var(--surface)}.b-ref{background:var(--good-soft);color:var(--good)}.ledger td .b-tag{cursor:pointer;border:0}.ledger td .b-tag:hover{text-decoration:underline}.ledger .th-sort{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.ledger .th-sort:hover{color:var(--fg)}.ledger tbody tr{cursor:pointer}.ledger tr.kfocus td{box-shadow:inset 0 1px 0 var(--accent), inset 0 -1px 0 var(--accent)}.ledger tr.kfocus td:first-child{box-shadow:inset 3px 0 0 var(--accent), inset 0 1px 0 var(--accent), inset 0 -1px 0 var(--accent)}.ledger .row-open{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.ledger .row-open:hover{text-decoration:underline}.excluded .merchant-cell .row-open{opacity:.55;text-decoration:line-through}.ledger td .b-split{cursor:pointer;border:0}.tbl-wrap.stale{opacity:.6;transition:opacity .12s}.txn-totals{flex-wrap:wrap;align-items:baseline;gap:4px;margin:0 2px 8px;display:flex}.txn-hint{color:var(--muted)}@media (max-width:900px){.txn-hint{display:none}}.txn-more{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;margin:10px auto;padding:6px 14px;font-weight:600;display:block}.txn-main{container:txn-main/inline-size}.txn-workspace{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:14px;display:grid}.txn-table{min-width:0;container:txn-table/inline-size}.gb-dock{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-height:calc(100vh - 24px);padding:12px 12px 10px;position:sticky;top:12px;overflow-y:auto}.gb-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.gb-head h2{text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:0;font-size:11px;font-weight:600}.gb-levels{margin:0;padding:0;list-style:none}.gb-level{align-items:center;gap:4px;padding:3px 0;display:flex}.gb-step{color:var(--muted);text-align:right;width:16px;font-size:10.5px}.gb-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.gb-mini{color:var(--muted);background:0 0;border:0;border-radius:5px;padding:3px 5px;font-size:11px}.gb-mini:hover:not(:disabled){background:var(--sunk);color:var(--fg)}.gb-mini:disabled{opacity:.3;cursor:not-allowed}.gb-mini.rm:hover{background:var(--bad-soft);color:var(--bad)}.gb-none{color:var(--muted);margin:0;padding:2px 0 6px;font-size:12px;line-height:1.5}.gb-add{border-top:1px solid var(--line);flex-direction:column;gap:1px;margin-top:6px;padding-top:7px;display:flex}.gb-add button{text-align:left;color:var(--muted);background:0 0;border:0;border-radius:5px;padding:4px 6px;font-size:12.5px}.gb-add button:hover{background:var(--sunk);color:var(--fg)}.gb-foot{flex-wrap:wrap;gap:6px;margin-top:9px;display:flex}.gb-foot .fb-quick-btn{padding:3px 10px;font-size:11.5px}@container txn-main (max-width:900px){.txn-workspace{grid-template-columns:minmax(0,1fr);gap:10px}.gb-dock{flex-wrap:wrap;align-items:center;gap:4px 12px;max-height:none;padding:8px 12px;display:flex;position:static}.gb-dock .gb{display:contents}.gb-head{margin:0}.gb-levels{flex-wrap:wrap;gap:2px 10px;display:flex}.gb-none{padding:0}.gb-add{border:0;flex-flow:wrap;margin:0;padding:0}.gb-foot{margin:0}}@media (min-width:701px){@container txn-table (max-width:1000px){.txn-ledger .txn-tags{display:none}.txn-ledger td.txn-account{white-space:normal}}@container txn-table (max-width:820px){.txn-ledger .txn-kind{display:none}}}.ledger tr.gb-band td{background:var(--sunk);border-top:1px solid var(--line);padding-top:0;padding-bottom:0}.ledger tr.gb-band.d1 td{background:color-mix(in srgb, var(--sunk) 50%, var(--surface))}.ledger tr.gb-band.d2 td,.ledger tr.gb-band.d3 td{background:var(--surface)}.ledger tr.gb-band:hover td{background:color-mix(in srgb, var(--accent-soft) 60%, var(--sunk))}.gb-band-btn{width:100%;color:var(--fg);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:8px 4px;display:flex}.gb-band.d1 .gb-band-btn{padding-left:22px}.gb-band.d2 .gb-band-btn{padding-left:40px}.gb-band.d3 .gb-band-btn{padding-left:58px}.gb-band-btn:hover .gb-band-label{text-underline-offset:2px;text-decoration:underline}.gb-caret{width:10px;color:var(--muted);flex:none;font-size:10px;transition:transform .15s}.gb-band.collapsed .gb-caret{transform:rotate(-90deg)}@media (prefers-reduced-motion:reduce){.gb-caret{transition:none}}.gb-band-label{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.gb-band.d1 .gb-band-label{font-size:12.5px}.gb-band.d2 .gb-band-label,.gb-band.d3 .gb-band-label{font-size:12px;font-weight:500}.gb-band-count{color:var(--muted);white-space:nowrap;font-size:11px}.gb-bar{background:var(--line);border-radius:99px;flex:none;width:100px;height:6px;display:flex;overflow:hidden}.gb-band.d1 .gb-bar{width:80px}.gb-band.d2 .gb-bar,.gb-band.d3 .gb-bar{width:60px}.gb-bar i{background:var(--accent);height:100%;display:block}.gb-pct{color:var(--muted);white-space:nowrap;font-size:11px}.ledger td.gb-band-total{font-weight:700}.ledger tr.gb-more td{padding:6px 8px}.fb{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.fb-quick{flex-wrap:wrap;gap:6px;display:flex}.fb-quick-btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.fb-quick-btn:hover{border-color:var(--muted)}.fb-quick-btn.on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.fb-quick-btn.on .fb-count{color:inherit;opacity:.8}.fb-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.fb-input{border:1px solid var(--line);background:var(--surface);color:var(--fg);font:inherit;border-radius:8px;padding:6px 9px;font-size:13px}.fb-input:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.fb-search{width:min(100%,300px)}.fb-count{color:var(--muted);font-size:11.5px}.fb-pill{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;max-width:100%;display:inline-flex}.fb-pill:hover{border-color:var(--muted)}.fb-pill.on{background:var(--accent-soft);border-color:var(--accent)}.fb-pill-btn,.fb-pill-static{color:var(--fg);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:999px;max-width:280px;padding:5px 12px;font-size:13px;font-weight:600;overflow:hidden}.fb-pill.on .fb-pill-btn,.fb-pill.on .fb-pill-static{color:var(--accent);padding-right:4px}.fb-pill-title{opacity:.75}.fb-pill-x{color:var(--accent);background:0 0;border:0;padding:0 10px 0 4px;font-size:15px;line-height:1}.fb-clear{color:var(--accent);background:0 0;border:0;padding:4px;font-size:12.5px;font-weight:600}.fb-clear:hover{text-decoration:underline}.fb-pop{min-width:0;display:inline-flex;position:relative}.fb-menu{z-index:40;background:var(--surface);border:1px solid var(--line);width:max-content;min-width:240px;max-width:min(340px,100vw - 32px);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.fb-check{flex-direction:column;gap:8px;display:flex}.fb-check+.fb-check{border-top:1px solid var(--line);padding-top:6px}.fb-check-list{flex-direction:column;max-height:300px;display:flex;overflow:auto}.fb-check-group{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);align-items:center;gap:8px;padding:8px 4px 2px;font-size:11px;font-weight:700;display:flex}.fb-check-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:4px;font-size:13px;display:flex}.fb-check-row.indent{padding-left:12px}.fb-check-row:hover{background:var(--sunk)}.fb-check-row.zero{color:var(--muted)}.fb-check input[type=checkbox]{accent-color:var(--accent)}.fb-check-row .fb-count{margin-left:auto}.fb-only{visibility:hidden;color:var(--accent);background:0 0;border:0;padding:0 2px;font-size:11px}.fb-check-row:hover .fb-only,.fb-only:focus{visibility:visible}.fb-empty{padding:4px}.fb-note{margin:0}.fb-date,.fb-amount{flex-direction:column;gap:10px;display:flex}.fb-presets{grid-template-columns:1fr 1fr;gap:2px;display:grid}.fb-presets button{text-align:left;background:0 0;border:0;border-radius:6px;padding:5px 8px;font-size:13px}.fb-presets button:hover{background:var(--sunk)}.fb-presets button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.fb-range{gap:8px;display:flex}.fb-range label{color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.fb-range .fb-input{width:140px}.fb-seg{background:var(--sunk);border-radius:8px;align-self:flex-start;gap:2px;padding:2px;display:inline-flex}.fb-seg button{color:var(--muted);background:0 0;border:0;border-radius:6px;padding:4px 12px;font-size:12.5px;font-weight:600}.fb-seg button[aria-pressed=true]{background:var(--surface);color:var(--fg);box-shadow:0 1px 2px #0000001f}@media (max-width:700px){.fb-search{width:100%}.fb-menu{width:auto;max-width:none;max-height:70vh;position:fixed;top:auto;left:16px;right:16px;overflow:auto}table.txn-ledger,.txn-ledger thead,.txn-ledger tbody{width:100%;min-width:0;display:block}.txn-ledger thead tr{background:var(--sunk);flex-wrap:wrap;gap:0 10px;display:flex}.txn-ledger thead th.txn-kind{display:none}.txn-ledger thead th{border:0;padding:6px 4px}.txn-ledger thead th.sel-col{display:none}.txn-ledger tbody tr{border-bottom:1px solid var(--line);grid-template-columns:28px minmax(0,1fr) auto;gap:2px 8px;padding:8px 6px;display:grid}.txn-ledger tbody td{border:0;padding:0}.txn-ledger td.sel-col{grid-row:span 3}.txn-ledger td.merchant-cell{grid-area:1/2}.txn-ledger td.txn-amount{grid-area:1/3}.txn-ledger td[data-label=Date]{text-align:right;grid-area:2/3}.txn-ledger td.txn-account{grid-area:2/2}.txn-ledger td.txn-category{grid-area:3/2}.txn-ledger td.txn-reviewed{text-align:right;grid-area:3/3}.txn-ledger td.txn-kind,.txn-ledger td.txn-tags:empty{display:none}.txn-ledger td.txn-tags{grid-column:2/span 2}.txn-ledger tbody tr.gb-band{background:var(--sunk);align-items:center}.txn-ledger tbody tr.gb-band.d1{background:color-mix(in srgb, var(--sunk) 50%, var(--surface))}.txn-ledger tbody tr.gb-band td,.txn-ledger tbody tr.gb-band:hover td{background:0 0;grid-row:1}.txn-ledger tr.gb-band td:empty,.gb-bar,.gb-pct{display:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.bud-months a,.bud-months span{padding:5px 11px;font-size:13px;font-weight:600}.bud-months span.on{text-align:center;min-width:150px}.bud-hero{flex-wrap:wrap;align-items:center;gap:28px;margin-bottom:14px;display:flex}.bud-left{letter-spacing:-.03em;font-size:38px;font-weight:600;line-height:1.1}.bud-left.neg,.over{color:var(--bad)}.ledger.bud{border-collapse:collapse;width:100%}.ledger.bud .pace-col{width:28%}.ledger.bud .right{white-space:nowrap;width:1%;padding-left:28px}.ledger .grp-tr td{background:var(--sunk)}.ledger.bud td.bud-cat{padding-left:22px}.ledger.bud td.bud-cat .badge{margin-left:6px}.ledger.bud td a:hover{text-decoration:underline}.bud-amt{font-size:inherit;border:1px solid #0000;border-radius:6px;padding:2px 4px}.bud-amt:hover{border-color:var(--line)}.bud-edit{flex-direction:column;align-items:flex-end;gap:4px;display:inline-flex}.bud-edit input,.bud-add input{text-align:right;border:1px solid var(--line);background:var(--bg);border-radius:6px;width:110px;padding:3px 6px}.bud-scope{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.bar-track{background:var(--sunk);border-radius:999px;height:8px;position:relative}.bar-fill{border-radius:999px;height:100%}.bar-fill.pace-green{background:var(--good)}.bar-fill.pace-yellow{background:var(--warn)}.bar-fill.pace-red{background:var(--bad)}.bar-tick{background:var(--fg);opacity:.4;width:2px;height:14px;position:absolute;top:-3px}.bud-add{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.bud-roll{flex-direction:column;gap:4px;display:inline-flex}.bud-adj{color:var(--muted);margin-left:2px}.b-bulk{background:var(--accent);color:var(--surface);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:7px 10px;display:flex}.b-bulk .btn{color:var(--fg);border-color:#0000}.ledger .sel-col{width:28px}dialog.drawer{border:0;border-left:1px solid var(--line);background:var(--surface);width:min(360px,100%);height:100vh;max-height:100vh;color:var(--fg);box-shadow:var(--shadow);margin:0 0 0 auto;padding:20px}dialog.drawer::backdrop{background:#0a100d33}.drawer-body{flex-direction:column;gap:14px;min-height:100%;display:flex}.drawer-body h2{letter-spacing:-.02em;margin:0;font-size:18px}.drawer-body p{margin:0}.drawer-body label,.drawer-body .field{flex-direction:column;align-items:stretch;gap:4px;font-size:12.5px;font-weight:600;display:flex}.drawer-body .field .cbx-btn{width:100%;max-width:100%;padding:7px 9px}.drawer-body select,.drawer-body input{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 9px;font-weight:400}.drawer-actions{gap:8px;margin-top:auto;display:flex}.pay-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 110px 140px 150px minmax(64px,auto);align-items:center;gap:8px;padding:8px 0;display:grid}.pay-row input,.pay-row select{border:1px solid var(--line);background:var(--surface);border-radius:6px;min-width:0;padding:4px 7px}.pay-row-actions{align-items:center;gap:8px;display:flex}.pay-row-dates{flex-wrap:wrap;grid-column:1/-1;gap:4px 14px;display:flex}@media (max-width:760px){.pay-row{grid-template-columns:1fr 1fr}}.bud-suggest-btn{margin-left:auto}.bud-suggest{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.bud-suggest-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.bud-suggest input.num{text-align:right;border:1px solid var(--line);background:var(--bg);border-radius:6px;width:110px;padding:3px 6px}.bud-suggest-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bud-suggest-pay{margin-left:auto}.b-rec{background:var(--good-soft);color:var(--good)}.b-prog{background:var(--accent-soft);color:var(--accent)}.stmt-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;display:grid}.stmt-card{flex-direction:column;gap:2px;display:flex}.stmt-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.stmt-card-amount{justify-content:space-between;align-items:baseline;gap:8px;margin-top:8px;font-size:20px;display:flex}.stmt-card-foot{justify-content:space-between;align-items:baseline;gap:8px;margin-top:4px;display:flex}.stmt-missing{color:var(--warn)}.stmt-form{flex-direction:column;gap:10px;display:flex}.stmt-form label{flex-direction:column;flex:1;gap:4px;min-width:140px;font-size:12.5px;font-weight:600;display:flex}.stmt-form input,.stmt-form select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:6px 9px;font-weight:400}.stmt-form-row{flex-wrap:wrap;gap:10px;display:flex}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:start;gap:14px;display:grid}.dash-grid .card h2{justify-content:space-between;gap:8px;margin:0 0 12px;font-size:13px;display:flex}.dash-grid .card h2 a:hover,.dash-grid .plan-row a:hover,.dash-grp a:hover{text-decoration:underline}.dash-left{letter-spacing:-.03em;font-size:34px;font-weight:600;line-height:1.1}.dash-left.neg{color:var(--bad)}.plan-bar{background:var(--sunk);border-radius:6px;height:26px;margin:6px 0 12px;display:flex;overflow:hidden}.plan-row i{outline:1px solid var(--line);border-radius:2px;width:9px;height:9px;margin-right:8px;display:inline-block}.plan-row.sub{padding-left:17px;font-size:12px}.seg-spent{background:var(--accent)}.seg-over{background:var(--bad)}.seg-held{background:var(--accent-soft)}.seg-unbudgeted{background:var(--warn)}.seg-left{background:var(--sunk)}.dash-grp{grid-template-columns:120px minmax(0,1fr) 96px;align-items:center;gap:10px;padding:4px 0;display:grid}.dash-grp>:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dash-grp .bar-fill.spend{background:var(--accent)}.dash-grp .num{text-align:right}.dash-stmt{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:6px 0;display:flex}.dash-stmt .badges{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.dash-cash{border:1px dashed var(--line);border-radius:8px;place-items:center;min-height:120px;display:grid}.stmt-card-top a:hover,.stmt-title:hover{text-decoration:underline}.stmt-facts{flex-wrap:wrap;gap:18px;padding:4px 0 14px;display:flex}.dropzone{border:2px dashed var(--line);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:26px;display:flex}.dropzone p{max-width:520px;margin:0}.upload-btn{cursor:pointer;margin-top:6px;position:relative}.upload-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.upload-btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}.upload-confirm{max-width:600px}.upload-confirm h2{margin:0 0 4px;font-size:18px}.upload-confirm label>span{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.ledger tr.open-line td{background:var(--warn-soft)}.stmt-lines-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin:18px 0 6px;display:flex}.stmt-lines-head h2{margin:0;font-size:15px}.stmt-sub{margin:18px 0 6px;font-size:14px}.line-panel{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.line-panel input.mini{border:1px solid var(--line);background:var(--surface);border-radius:6px;width:220px;padding:4px 7px}.recon-foot{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:10px 14px;display:flex;position:sticky;bottom:12px}
