:root{--bg:#f6f7f9;--surface:#fff;--text:#1c1f24;--muted:#6b7280;--border:#e3e6ea;--accent:#2f6fde;--accent-text:#fff;--pos:#1a7f4b;--error:#c0392b;--success-bg:#e8f5ee;--series-1:#2a78d6;--series-2:#eb6834;--chart-grid:#ecedf0;--chart-ink:#3d4148;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}@media (prefers-color-scheme:dark){:root{--bg:#121418;--surface:#1b1e24;--text:#e6e8eb;--muted:#9aa1ab;--border:#2c3038;--accent:#5b8ff0;--pos:#4cc38a;--error:#ef6b5e;--success-bg:#17301f;--series-1:#3987e5;--series-2:#d95926;--chart-grid:#2a2e35;--chart-ink:#c3c7ce;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1,h2{margin:0 0 .75rem}button,input{font:inherit;color:inherit}input:not([type=checkbox]):not([type=file]){border:1px solid var(--border);background:var(--surface);border-radius:6px;width:100%;padding:.5rem .6rem}button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:6px;padding:.45rem .9rem}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.link{color:var(--accent);background:0 0;border:none;padding:0}label{gap:.3rem;font-weight:500;display:grid}.muted{color:var(--muted)}.small{font-size:.85em}.error{color:var(--error)}.success{background:var(--success-bg);border-radius:6px;margin-top:.75rem;padding:.75rem}.spacer{flex:1}.nowrap{white-space:nowrap}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--pos)}.badge{background:var(--accent);color:var(--accent-text);border-radius:4px;margin-left:.5rem;padding:.1rem .4rem;font-size:.75em}.center{place-items:center;min-height:100vh;padding:1rem;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem}.login{gap:1rem;width:min(360px,100%);display:grid}.account-form{gap:1rem;width:min(420px,100%);display:grid}.account-form h3{margin:0}label.check{align-items:center;gap:.5rem;font-weight:400;display:flex}button.link.active{text-decoration:underline}.shell{max-width:1100px;margin:0 auto;padding:0 1rem 2rem}.topbar{flex-wrap:wrap;align-items:center;gap:1rem;padding:.9rem 0;display:flex}.topbar nav{flex-wrap:wrap;gap:.25rem;min-width:0;display:flex}.tab{color:var(--muted);background:0 0;border:none}.tab.active{color:var(--text);background:var(--surface);border:1px solid var(--border)}.accounts{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.account{text-align:left;gap:.2rem;display:grid}.account.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.txns{border-collapse:collapse;background:var(--surface);width:100%}.txns th,.txns td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .6rem}.txns th{color:var(--muted);font-size:.85em;font-weight:600}.txns th.num,.txns td.num{text-align:right}.txns tr.dup td{color:var(--muted);text-decoration:line-through}.txn-table-wrap{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow-x:auto}.txn-table-wrap .txns{min-width:560px}.import,.stmt{gap:.75rem;display:grid}.stmt.excluded{opacity:.6}.stmt-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.stmt-head .name{max-width:260px}.actions{gap:.5rem;display:flex}.anyway{gap:.15rem;font-weight:400;text-decoration:none}.inline{color:var(--text);align-items:center;gap:.3rem;display:inline-flex}.txns tr.dup td:last-child{text-decoration:none}h3{margin:0 0 .5rem;font-size:1rem}select{font:inherit;color:inherit;border:1px solid var(--border);background:var(--surface);border-radius:6px;max-width:100%;padding:.4rem .5rem}select.unset{color:var(--muted);border-style:dashed}.muted-badge{background:var(--border);color:var(--text)}.small-btn{padding:.25rem .6rem;font-size:.85em}.row-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row-form input:not([type=checkbox]){flex:140px;width:auto}.row-form input.amount{flex:0 110px}.txns tr.editing td{background:var(--bg)}.txns tr.quiet td{color:var(--muted)}.filters{flex-wrap:wrap;align-items:center;gap:1rem;margin:.75rem 0;display:flex}.suggestions{margin-bottom:.75rem}.suggestions summary{cursor:pointer;font-weight:600}.suggestions table{max-height:320px;display:block;overflow-y:auto}.split-editor{gap:.5rem;display:grid}.auto-badge{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent)}.rule-suggestion{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.rules{gap:.75rem;display:grid}.rules-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.rules-head h2{margin-bottom:.25rem}.rules-head p{max-width:60ch;margin:0}.rule-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.rule{align-items:center;gap:.75rem;padding:.6rem .8rem;display:flex}.rule.disabled .rule-summary{opacity:.5}.rule-order{display:grid}.rule-order button{padding:.1rem;line-height:1}.rule-summary{flex:1}.rule-actions{align-items:center;gap:.6rem;display:flex}.rule-editor{gap:.9rem;display:grid}.rule-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:.75rem;display:grid}.rule-grid>label{grid-template-columns:minmax(0,1fr);min-width:0}.rule-grid>label:first-child{grid-column:1/-1}.rule-grid>label:not(:first-child) .row-form{flex-wrap:nowrap}.rule-grid .row-form input.amount{flex:1 1 0;min-width:0}.rule-preview p{margin:0 0 .4rem}.txns.compact td{padding:.3rem .5rem;font-size:.9em}.txn-filters input.search{flex:200px;width:auto;max-width:320px}.txn-filters input[type=date]{width:auto}.loading{opacity:.6;transition:opacity .15s}.pager{justify-content:center;align-items:center;gap:.75rem;margin:.75rem 0;display:flex}.payee-button{text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}.payee-button:hover,.payee-button[aria-expanded=true]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.note{color:var(--text);font-style:italic}.details-editor{gap:.6rem;display:grid}.details-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:start;gap:.6rem .75rem;display:grid}.details-grid>label{min-width:0}.bank-says{margin:1.6rem 0 0}button.danger{color:var(--error);border-color:color-mix(in srgb, var(--error) 40%, var(--border))}.add-txn{gap:.75rem;margin-bottom:.75rem;display:grid}.add-txn h3{margin:0}.accounts-page{gap:.75rem;display:grid}.account-list,.account-row{gap:.5rem;display:grid}.account-row.archived{opacity:.7}.account-main{align-items:flex-start;gap:.75rem;display:flex}.account-main .num strong{font-variant-numeric:tabular-nums;font-size:1.15rem}.neg-text{color:var(--error)}.ok-text{color:var(--pos)}.reconcile p{margin:0}.reconcile .row-form input[type=date]{flex:none;width:auto}.reconcile summary{cursor:pointer}.goal-bar{background:var(--border);border-radius:3px;max-width:220px;height:6px;margin-top:.35rem;overflow:hidden}.goal-bar span{background:var(--series-1);border-radius:3px;height:100%;display:block}.goal-bar.wide{border-radius:5px;max-width:none;height:10px;margin:.5rem 0}.goal-list{gap:.75rem;margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.goal-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:.85rem 1rem}.goal-head{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.goal-figures{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.status-badge{background:var(--border);border-radius:999px;margin-left:auto;padding:.1rem .5rem;font-size:.75em}.status-badge.reached{background:var(--success-bg);color:var(--pos)}.status-badge.paused{background:color-mix(in srgb, var(--text) 12%, transparent)}.close-out{gap:.6rem;margin-bottom:1rem;display:grid}.close-out h3{margin:0}.status-badge.past_due{background:color-mix(in srgb, var(--error) 15%, transparent);color:var(--error)}.funding-table{border-collapse:collapse;width:100%}.funding-table th,.funding-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}.funding-table .num{text-align:right;font-variant-numeric:tabular-nums}.funding-table tr.funding-cat td{border-bottom-style:dashed;padding-top:.25rem;padding-bottom:.25rem}.goal-amount{font-variant-numeric:tabular-nums}.goal-form{margin-top:.5rem}.goal-form input[type=month]{width:auto}.reports{gap:.75rem;display:grid}.reports>*,.report-split>.card,.chart,.chart-area{min-width:0}.chart-area{overflow:hidden}.segmented{border:1px solid var(--border);border-radius:6px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--border);border-radius:0}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--accent);color:var(--accent-text)}.filters input[type=month]{width:auto}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.stat{gap:.2rem;display:grid}.stat strong{font-variant-numeric:tabular-nums;font-size:1.4rem}.report-split{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:.75rem;display:grid}.report-split>.card{min-width:0}.category-bars{gap:.15rem;max-height:520px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.category-bar{text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;grid-template-columns:1fr auto;gap:.15rem .5rem;width:100%;padding:.4rem .5rem;display:grid}.category-bar:hover{background:var(--bg)}.category-bar.selected{border-color:var(--accent);background:var(--bg)}.cb-value{text-align:right;font-variant-numeric:tabular-nums}.cb-track{grid-column:1/-1;height:8px;position:relative}.cb-fill{background:var(--series-1);border-radius:0 4px 4px 0;position:absolute;top:0;bottom:0;left:0}.cb-target{background:var(--chart-ink);width:2px;position:absolute;top:-3px;bottom:-3px}.legend-note{align-items:center;gap:.4rem;margin:.5rem 0 0;display:flex}.table-scroll{overflow-x:auto}.report-table td,.report-table th{white-space:nowrap}.report-table .total-row td{font-weight:600}.chart{margin:0}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:1rem;min-height:1.2em;margin-bottom:.25rem;font-size:.85em;display:flex}.legend-item{align-items:center;gap:.35rem;display:inline-flex}.legend-swatch{border-radius:2px;width:10px;height:10px;display:inline-block}.legend-line{background:var(--chart-ink);width:14px;height:2px;display:inline-block}.chart-area{width:100%;position:relative}.chart-area svg{display:block;overflow:visible}.chart-area .grid{stroke:var(--chart-grid);stroke-width:1px}.chart-area .axis-zero{stroke:var(--muted);stroke-width:1px}.chart-area .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart-area .hover-band{fill:var(--chart-grid);opacity:.6}.chart-area .target-line{stroke:var(--chart-ink);stroke-width:2px;stroke-linecap:round}.chart-area rect[tabindex]:focus{outline:none}.chart-area rect[tabindex]:focus-visible{stroke:var(--accent);stroke-width:2px}.chart-tooltip{pointer-events:none;z-index:2;background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:150px;padding:.5rem .65rem;font-size:.85em;position:absolute;top:0;transform:translate(-50%);box-shadow:0 4px 14px #0000001f}.tooltip-title{margin-bottom:.25rem;font-weight:600}.tooltip-row{font-variant-numeric:tabular-nums;grid-template-columns:14px auto 1fr;align-items:center;gap:.4rem;display:grid}.tooltip-key{border-radius:2px;width:12px;height:3px}.tooltip-key.target{background:var(--chart-ink)}.tooltip-key.none{background:0 0}.budget{gap:.75rem;display:grid}.budget-head{grid-template-columns:1fr auto;align-items:center;gap:.75rem;display:grid}.budget-nav{z-index:2;background:var(--bg);padding:.5rem 0;position:sticky;top:0}.month-nav{align-items:center;gap:.5rem;display:flex}.month-nav h2{text-align:center;min-width:10ch;margin:0}.rta{gap:.15rem;display:grid}.rta strong{font-variant-numeric:tabular-nums;font-size:1.6rem}.rta.positive strong{color:var(--pos)}.rta.negative{border-color:var(--error)}.rta.negative strong{color:var(--error)}.head-actions{justify-items:end;gap:.5rem;display:grid}.move-form{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:.75rem;display:grid}.budget-table{border:1px solid var(--border);border-radius:10px;overflow:hidden}.budget-table tr.group-row th{background:var(--bg);color:var(--text);font-size:.9em}.budget-table input.amount{text-align:right;font-variant-numeric:tabular-nums;width:7.5rem;padding:.3rem .4rem}.budget-table tr.archived td{opacity:.6}.pill{font-variant-numeric:tabular-nums;background:var(--border);border-radius:999px;padding:.15rem .5rem;display:inline-block}.pill.ok{background:var(--success-bg);color:var(--pos)}.pill.neg{background:color-mix(in srgb, var(--error) 15%, transparent);color:var(--error)}.setup{gap:.9rem;max-width:520px;display:grid}.setup input[type=date]{max-width:220px}@media (width<=640px){.budget-table .nowrap{white-space:normal}.budget-table th,.budget-table td{padding:.45rem .35rem}.import-history td{overflow-wrap:anywhere}.import-history td.nowrap{white-space:normal}.topbar{gap:.5rem}.topbar nav{order:3;width:100%}.tab{padding:.4rem .6rem}.report-split{grid-template-columns:minmax(0,1fr)}.budget-head{grid-template-columns:1fr}.head-actions{justify-items:start}.budget-table tr:not(.editing)>:nth-child(3){display:none}.budget-table input.amount{width:4.75rem}.txn-table-wrap .txns td:nth-child(3),.txn-table-wrap .txns th:nth-child(3){display:none}}.suggestion{background:color-mix(in srgb, var(--series-1) 12%, transparent);text-align:left;border-radius:6px;margin-top:.3rem;padding:.35rem .5rem}.breakdown{text-align:left;margin-top:.25rem}.breakdown ul{margin:.25rem 0 0;padding-left:1.1rem}.funding-table tr.funding-detail td{text-align:left;white-space:normal;border-bottom-style:solid}.funding-table .num .small{white-space:normal}@media (width<=600px){.funding-table{font-size:.85rem}.funding-table th,.funding-table td{padding:.4rem .3rem}.funding-table th{white-space:normal}.goal-figures{flex-direction:column;gap:.1rem}}.savings h2{margin-top:1.75rem}.savings h2:first-child{margin-top:0}
