:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1320;--surface:#182030;--surface-2:#1f2a3d;--border:#2b3650;--ink:#e7ecf5;--muted:#8b95ad;--soft:#b8c2d8;--brand:#6366f1;--brand-ink:#a5b4fc;--chip:#232f47;--pos:#34d399;--neg:#f87171;--tithe:#c4b5fd;--err-bg:#2a1620;--err-border:#5b2330;--ok-bg:#0f2a22;--ok-border:#1f5544;--ok-ink:#4ade80;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000059;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6fb;--surface:#fff;--surface-2:#f7f9fd;--border:#e6e9f0;--ink:#1e2438;--muted:#8b93a7;--soft:#515a72;--brand:#4f46e5;--brand-ink:#4338ca;--chip:#eef0fb;--pos:#15a06a;--neg:#dc2626;--tithe:#7c3aed;--err-bg:#fef2f2;--err-border:#fecaca;--ok-bg:#ecfdf5;--ok-border:#a7f3d0;--ok-ink:#047857;--shadow:0 1px 2px #1418280a, 0 4px 16px #1418280f}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#root{height:100%}button{font:inherit;cursor:pointer}input,select{font:inherit;color:var(--ink);background:var(--surface)}.brand{align-items:center;gap:.55rem;display:flex}.brand h1,.brand strong{letter-spacing:-.01em;margin:0;font-size:1.05rem}.brand-mark{background:linear-gradient(135deg, var(--brand), #7c6cf6);color:#fff;border-radius:.55rem;place-items:center;width:1.9rem;height:1.9rem;font-weight:700;display:grid}.login-screen{background:radial-gradient(120% 120% at 50% 0%, var(--chip) 0%, var(--bg) 60%);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;flex-direction:column;gap:.85rem;width:100%;max-width:360px;padding:2rem;display:flex}.login-card .brand{justify-content:center;margin-bottom:.25rem}.login-sub{text-align:center;color:var(--muted);margin:0 0 .5rem;font-size:.9rem}.login-card label{color:var(--soft);flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.login-card input{border:1px solid var(--border);border-radius:.55rem;outline:none;padding:.6rem .7rem}.login-card input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #4f46e526}.login-card button[type=submit]{background:var(--brand);color:#fff;border:none;border-radius:.55rem;margin-top:.4rem;padding:.65rem;font-weight:600}.login-card button[type=submit]:disabled{opacity:.6}.form-error{background:var(--err-bg);color:var(--neg);border:1px solid var(--err-border);border-radius:.5rem;padding:.5rem .65rem;font-size:.85rem}.boot{min-height:100vh;color:var(--muted);place-items:center;display:grid}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:50;flex:none;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;display:flex;position:relative}.topbar-right{align-items:center;gap:1rem;display:flex}.who{align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;display:flex}.role-pill{letter-spacing:.04em;background:var(--chip);color:var(--brand-ink);border-radius:1rem;padding:.12rem .45rem;font-size:.65rem;font-weight:700}.link-btn{color:var(--muted);background:0 0;border:none;font-size:.85rem}.link-btn:hover{color:var(--ink)}.user-menu{position:relative}.who-btn{cursor:pointer;background:0 0;border:none;border-radius:.4rem;padding:.2rem .3rem}.who-btn:hover{background:var(--chip)}.menu-caret{color:var(--muted);margin-left:.1rem;font-size:.7rem}.user-menu-pop{background:var(--surface-2);border:1px solid var(--border);box-shadow:var(--shadow);z-index:200;border-radius:.5rem;flex-direction:column;min-width:10rem;padding:.3rem;display:flex;position:absolute;top:calc(100% + .35rem);right:0}.user-menu-pop button{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:.35rem;padding:.45rem .6rem;font-size:.85rem}.user-menu-pop button:hover{background:var(--chip)}.theme-toggle{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:.5rem;place-items:center;width:2rem;height:2rem;font-size:.95rem;line-height:1;display:grid}.theme-toggle:hover{border-color:var(--brand);color:var(--brand)}.content{max-width:960px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.controls select{border:1px solid var(--border);background:var(--surface);border-radius:.55rem;padding:.5rem .7rem;font-weight:600}.month-nav{align-items:center;gap:.5rem;display:flex}.month-nav button{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--ink);border-radius:.5rem;font-size:1.1rem;line-height:1}.month-nav button:hover{border-color:var(--brand);color:var(--brand)}.month-label{text-align:center;min-width:9.5rem;font-weight:700}.summary{grid-template-columns:repeat(3,1fr);gap:.85rem;margin-bottom:.85rem;display:grid}.stat{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.85rem;flex-direction:column;gap:.25rem;padding:.9rem 1.1rem;display:flex}.stat span{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem;font-weight:600}.stat strong{letter-spacing:-.02em;font-size:1.45rem}.stat-income strong{color:var(--pos)}.stat-expense strong{color:var(--neg)}.stat-pos strong{color:var(--pos)}.stat-neg strong{color:var(--neg)}.buckets{flex-wrap:wrap;gap:.5rem;padding-bottom:.5rem;display:flex}.bucket{background:var(--surface);border:1px solid var(--border);border-radius:2rem;align-items:center;gap:.45rem;padding:.35rem .8rem;font-size:.85rem;display:flex}.bucket-name{color:var(--soft);font-weight:600}.bucket-amt{font-variant-numeric:tabular-nums;font-weight:700}.dot{border-radius:50%;width:.6rem;height:.6rem;display:inline-block}.add-row{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.75rem;grid-template-columns:8.5rem 1.4fr 1.2fr 7rem 9rem 7rem auto;gap:.5rem;margin-bottom:1rem;padding:.6rem;display:grid}.add-row input,.add-row select{border:1px solid var(--border);border-radius:.45rem;min-width:0;padding:.45rem .55rem}.add-row input:focus,.add-row select:focus{border-color:var(--brand);outline:none}.add-row button{background:var(--brand);color:#fff;border:none;border-radius:.45rem;padding:0 1rem;font-weight:600}.table-wrap{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.85rem}table.ledger{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.9rem}table.ledger th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface-2);top:calc(var(--ltop,6rem) + var(--hh,48px));z-index:10;padding:.7rem .5rem;font-size:.72rem;position:sticky}table.ledger td{border-bottom:1px solid var(--border);padding:.5rem}table.ledger th:first-child,table.ledger td:first-child{white-space:nowrap;width:2.8rem}table.ledger th:nth-child(3),table.ledger td:nth-child(3){width:6.5rem}table.ledger th:nth-child(4),table.ledger td:nth-child(4){width:6rem}table.ledger th:nth-child(5),table.ledger td:nth-child(5){width:4.25rem;padding-right:.6rem}table.ledger td:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}table.ledger tr:last-child td{border-bottom:none}table.ledger tbody tr:hover{background:var(--surface-2)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.pos{color:var(--pos);font-weight:600}.neg{color:var(--ink);font-weight:600}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.tag{color:var(--soft);align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;display:inline-flex}.empty{text-align:center;color:var(--muted);padding:2.5rem 1rem}.del-btn{color:var(--muted);background:0 0;border:none;border-radius:.35rem;padding:.1rem .4rem;font-size:1.1rem;line-height:1}.del-btn:hover{background:var(--err-bg);color:var(--neg)}.del-link{border:1px solid var(--err-border);background:var(--err-bg);color:var(--neg);border-radius:.4rem;align-self:flex-start;margin-top:.2rem;padding:.25rem .6rem;font-size:.78rem;font-weight:600}.del-link:hover{background:var(--err-border)}.link-row{margin-top:.25rem}.link-select{border:1px dashed var(--border);color:var(--muted);background:0 0;border-radius:.35rem;max-width:100%;padding:.15rem .3rem;font-size:.75rem}.link-select:hover{border-color:var(--brand);color:var(--brand)}.linked{color:var(--brand-ink);background:var(--chip);border-radius:.35rem;align-items:center;gap:.25rem;padding:.1rem .2rem .1rem .45rem;font-size:.75rem;display:inline-flex}.split{flex:1;grid-template-columns:40% 8px 1fr;min-height:0;display:grid}.pane{flex-direction:column;min-width:0;height:100%;min-height:0;display:flex}.resizer{background:var(--border);cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.resizer:hover,.resizer:active{background:var(--brand)}.resizer:before{content:"";position:absolute;inset:0 -4px}.pane-head{background:var(--surface);border-bottom:1px solid var(--border);gap:.25rem;padding:.5rem .75rem 0;display:flex}.pane-tab{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.55rem .85rem;font-size:.85rem;font-weight:600}.pane-tab:hover{color:var(--ink)}.pane-tab.active{color:var(--brand-ink);border-bottom-color:var(--brand)}.pane-tab-static{color:var(--ink);cursor:default}.pane-body{flex:1;min-height:0;position:relative}.view{padding:0 1.1rem 1.1rem;position:absolute;inset:0;overflow-y:auto}.view>.rules-pane,.view>.placeholder{padding-top:1.1rem}.ledger-pane{--ltop:6.1rem}.ledger-top{z-index:30;background:var(--bg);border-bottom:1px solid var(--border);margin-bottom:.6rem;padding:.8rem 0 .6rem;position:sticky;top:0}.ledger-pane .controls{margin-bottom:.6rem}.ledger-top .add-row{margin-bottom:0}.add-row{grid-template-columns:8rem 1fr 6.5rem 8rem 6.5rem auto}.half{margin-bottom:1.5rem}.half-header{top:var(--ltop,6rem);z-index:20;background:var(--bg);padding-top:.4rem;position:sticky}.half-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;padding:.2rem 0 .5rem;display:flex}.half-title{align-items:baseline;gap:.5rem;display:flex}.half-title strong{font-size:1.05rem}.half-stats{font-variant-numeric:tabular-nums;gap:.85rem;font-size:.9rem;font-weight:700;display:flex}.neg-strong{color:var(--neg)}.cell-input,.cell-select{width:100%;font:inherit;background:0 0;border:1px solid #0000;border-radius:.35rem;padding:.3rem .4rem}.cell-input:hover,.cell-select:hover{border-color:var(--border)}.cell-input:focus,.cell-select:focus{border-color:var(--brand);background:var(--surface);color:var(--ink);outline:none;box-shadow:0 0 0 3px #6366f140}.cell-select.unlinked{color:var(--neg);font-weight:600}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}.amt-cell{width:100%;color:inherit;font:inherit;text-align:right;font-variant-numeric:tabular-nums;cursor:text;background:0 0;border:1px solid #0000;border-radius:.35rem;padding:.3rem .4rem}.amt-cell:hover{border-color:var(--border)}.placeholder{max-width:30rem}.placeholder h3{margin:0 0 .4rem;font-size:1.1rem}.placeholder ul{color:var(--soft);margin:.6rem 0 0;padding-left:1.1rem;font-size:.9rem;line-height:1.7}.import-btn{border:1px solid var(--border);background:var(--surface);color:var(--brand-ink);cursor:pointer;border-radius:.5rem;padding:.5rem .8rem;font-size:.85rem;font-weight:600}.import-btn:hover{border-color:var(--brand)}.import-msg{background:var(--ok-bg);color:var(--ok-ink);border:1px solid var(--ok-border);border-radius:.5rem;margin-bottom:.75rem;padding:.45rem .7rem;font-size:.85rem}.row-actions{white-space:nowrap;text-align:right}.more-btn{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:.35rem;margin-right:.35rem;padding:.15rem .45rem;font-size:.72rem;font-weight:600}.more-btn:hover{border-color:var(--brand);color:var(--brand)}.detail-row td{background:var(--surface-2);padding-top:.4rem!important;padding-bottom:.6rem!important}.raw-detail{color:var(--soft);flex-direction:column;gap:.2rem;font-size:.82rem;display:flex}.raw-detail em{color:var(--muted);margin-right:.35rem;font-style:normal;font-weight:600}.rules-pane{font-size:.9rem}.rules-scope{color:var(--muted);margin-bottom:1rem}.rules-h{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:1.2rem 0 .5rem;font-size:.8rem}.cat-chips{flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;display:flex}.cat-chip{background:var(--surface);border:1px solid var(--border);color:var(--soft);border-radius:2rem;align-items:center;gap:.4rem;padding:.25rem .5rem .25rem .65rem;font-weight:600;display:inline-flex}.chip-x{color:var(--muted);background:0 0;border:none;border-radius:.3rem;padding:0 .15rem;font-size:1rem;line-height:1}.chip-x:hover{color:var(--neg);background:var(--err-bg)}.add-inline{gap:.4rem;display:flex}.add-inline input{border:1px solid var(--border);border-radius:.45rem;flex:1;padding:.4rem .5rem}.add-inline button,.rule-new button{background:var(--brand);color:#fff;border:none;border-radius:.45rem;padding:0 .8rem;font-weight:600}.rule-new{background:var(--surface);border:1px solid var(--border);border-radius:.6rem;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem;padding:.5rem;display:flex}.rule-new select,.rule-new input{border:1px solid var(--border);border-radius:.45rem;padding:.4rem .5rem}.rule-new input{flex:1;min-width:4rem}.rule-new input.w-day{flex:0 0 3.2rem;min-width:0}.rule-new input.w-amt{text-align:right;flex:0 0 7rem;min-width:0}.rule-new input[type=checkbox]{flex:none;width:auto;min-width:0}.rule-new .nm-check{flex:none}.sort-legend{color:var(--muted);margin-left:auto;font-size:.78rem}.color-pick{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:.35rem;flex:none;width:1.6rem;height:1.6rem;padding:0}.color-pick::-webkit-color-swatch-wrapper{padding:2px}.color-pick::-webkit-color-swatch{border:none;border-radius:.2rem}.rule-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.rule-item{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;align-items:center;gap:.5rem;padding:.4rem .55rem;display:flex}.rule-item.off{opacity:.5}.rule-text{flex:1;line-height:1.4}.rule-text code{background:var(--chip);border-radius:.3rem;padding:.05rem .3rem;font-size:.82rem}.rule-sd{color:var(--muted)}.rule-prio{border:1px solid var(--border);text-align:center;border-radius:.4rem;width:3rem;padding:.3rem}.apply-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.2rem;display:flex}.apply-range{color:var(--soft);align-items:center;gap:.35rem;display:flex}.apply-range input{border:1px solid var(--border);border-radius:.45rem;padding:.35rem .45rem}.apply-hint{color:var(--muted);margin:.4rem 0 0;font-size:.8rem}.apply-opt{color:var(--soft);align-items:center;gap:.4rem;display:flex}.apply-btn{background:var(--brand);color:#fff;border:none;border-radius:.5rem;padding:.5rem 1rem;font-weight:600}.budget-head{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.8rem 0 .6rem;display:flex;position:sticky;top:0}.start-bal{color:var(--soft);background:var(--surface);border:1px solid var(--border);border-radius:.5rem;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.5rem .7rem;font-size:.82rem;font-weight:600;display:flex}.start-bal input{text-align:right;border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:.45rem;width:8rem;padding:.35rem .5rem}.bmonth{border-bottom:1px solid var(--border);align-items:flex-start;gap:.6rem;margin-bottom:.9rem;padding-bottom:.9rem;display:flex}.bmonth-tables{flex:1;gap:.5rem;min-width:0;display:flex}.cal{flex:0 0 9.5rem}.cal-title{margin-bottom:.25rem;font-size:.85rem;font-weight:700}.cal-grid{grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.cal-dow{color:var(--muted);text-align:center;font-size:.6rem;font-weight:600}.cal-day{text-align:center;color:var(--soft);border-radius:.25rem;padding:.12rem 0;font-size:.62rem}.cal-day.payday{background:var(--brand);color:#fff;font-weight:700}.bp-table{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;flex:1;min-width:0;padding:.35rem .45rem;font-size:.78rem}.bp-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:.25rem;padding-bottom:.25rem;font-weight:700;display:flex;position:relative}.bp-pay{color:var(--brand-ink)}.bp-head-right{align-items:center;gap:.35rem;display:flex}.bp-start{font-variant-numeric:tabular-nums;color:var(--muted)}.bp-plus{width:1.1rem;color:var(--brand-ink);background:0 0;border:none;border-radius:.3rem;padding:0;font-size:1.05rem;line-height:1}.bp-plus:hover{color:var(--brand)}.bp-add-menu{z-index:6;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.5rem;min-width:9rem;max-height:14rem;padding:.25rem;position:absolute;top:100%;right:0;overflow-y:auto}.bp-add-menu button{text-align:left;width:100%;color:var(--ink);background:0 0;border:none;border-radius:.35rem;padding:.3rem .5rem;font-size:.82rem;font-weight:500;display:block}.bp-add-menu button:hover{background:var(--chip)}.bp-oneoff-toggle{margin-top:.2rem;border-top:1px solid var(--border)!important;color:var(--accent,inherit)!important;padding-top:.4rem!important}.bp-oneoff-form{flex-direction:column;gap:.35rem;width:12rem;padding:.2rem;display:flex}.bp-oneoff-form input,.bp-oneoff-form select{border:1px solid var(--border);border-radius:.35rem;width:100%;padding:.3rem .4rem;font-size:.82rem}.bp-oneoff-form button{margin-top:.15rem}.bp-note{color:var(--muted);margin-left:.25rem;font-size:.72rem}.bp-linked{margin-left:.2rem;font-size:.68rem}.cal-col{flex-direction:column;flex:0 0 9.5rem;gap:.35rem;display:flex}.cal-col .cal{flex:none}.cal-copy{flex-wrap:wrap;gap:.3rem;display:flex}.cal-copy button{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:.35rem;padding:.15rem .4rem;font-size:.68rem}.cal-copy button:hover{border-color:var(--brand);color:var(--brand)}.colpick{display:inline-block;position:relative}.colpick-btn{border:1px solid var(--border);width:1.5rem;height:1.5rem;color:var(--muted);cursor:pointer;border-radius:.35rem;font-size:.8rem;line-height:1}.colpick-pop{z-index:8;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.5rem;align-items:center;gap:.25rem;margin-right:.3rem;padding:.3rem;display:flex;position:absolute;top:50%;right:100%;transform:translateY(-50%)}.colpick-pop.open-right{margin-left:.3rem;margin-right:0;left:100%;right:auto}.colpick-sw{border:1px solid var(--border);cursor:pointer;border-radius:.3rem;width:1.3rem;height:1.3rem}.colpick-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:.72rem}.palette-editor{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:.75rem}.palette-swatches{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pal-item{align-items:center;gap:.15rem;display:inline-flex}.pal-add{border:1px dashed var(--border);color:var(--muted);background:0 0;border-radius:.4rem;padding:.25rem .5rem;font-size:.78rem}.pal-add:hover{border-color:var(--brand);color:var(--brand)}.item-drag{cursor:grab}.item-drag.dragging{opacity:.4}.extras-badge{color:var(--brand-ink);background:var(--chip);font-variant-numeric:tabular-nums;border-radius:1rem;padding:.2rem .6rem;font-size:.8rem;font-weight:700}.extras-badge.neg-strong{color:var(--neg)}.extras-list{flex-direction:column;display:flex}.extras-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto;gap:0 1rem;padding:.35rem .5rem;font-size:.88rem;display:grid}.extras-row .num{text-align:right;min-width:6rem}.extras-head{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.72rem;font-weight:600}.extras-pay{color:var(--muted);font-size:.78rem}.extras-bal{font-weight:700}.bp-line{border-bottom:1px solid var(--border);grid-template-columns:2rem 1fr auto auto 1.1rem;align-items:center;gap:0 .35rem;padding:.1rem 0;display:grid}.bp-line.editable{cursor:grab}.bp-line.dragging{opacity:.4}.bp-date{color:var(--muted);font-size:.7rem;position:relative}.bp-date-btn{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.bp-date-btn:hover{color:var(--brand);text-decoration:underline}.bp-date-input{z-index:6;border:1px solid var(--brand);background:var(--surface);width:8.5rem;color:var(--ink);border-radius:.3rem;padding:.1rem .2rem;font-size:.75rem;position:absolute;top:-.1rem;left:0}.bp-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.3rem;min-width:0;display:flex;overflow:hidden}.bp-amt{font-variant-numeric:tabular-nums;text-align:right;justify-content:flex-end;align-items:center;min-width:4.5rem;display:flex}.bp-amt .amt-cell{width:auto;min-width:3.5rem;color:inherit;padding:.1rem .15rem}.bp-bal{text-align:right;font-variant-numeric:tabular-nums;color:var(--soft);min-width:5rem;font-weight:600}.bp-del{color:var(--muted);opacity:0;background:0 0;border:none;border-radius:.3rem;padding:0;font-size:.95rem;line-height:1}.bp-line.editable:hover .bp-del{opacity:1}.bp-del:hover{color:var(--neg)}.bp-check{color:var(--pos);text-align:center;cursor:default;font-size:.9rem;line-height:1}.paycheck-line{font-weight:600}.bp-lock{text-align:center;opacity:.5;cursor:default;font-size:.75rem}.bucket-line .bp-amt.over{color:var(--neg);font-weight:700}.bp-final{cursor:pointer;width:.95rem;height:.95rem;accent-color:var(--pos);margin:0 auto}.link-banner{background:var(--chip);border:1px solid var(--brand);border-radius:.4rem;justify-content:space-between;align-items:center;gap:.75rem;margin:0 .5rem .4rem;padding:.4rem .7rem;font-size:.85rem;display:flex}.bp-line.dim{opacity:.3;pointer-events:none}.bp-line.linkable{cursor:pointer;outline:1px dashed var(--brand);outline-offset:-1px}.bp-line.linkable *{pointer-events:none}.bp-line.linkable:hover{box-shadow:var(--shadow);outline-style:solid;transform:scale(1.015)}.choosing{color:var(--brand-ink);font-size:.8rem;font-style:italic}.bp-add{border:1px dashed var(--border);width:100%;color:var(--muted);background:0 0;border-radius:.45rem;margin-top:.35rem;padding:.3rem .4rem;font-size:.8rem}.bp-add:hover{border-color:var(--brand);color:var(--brand-ink)}.nm-check{color:var(--muted);white-space:nowrap;align-items:center;gap:.25rem;font-size:.72rem;display:inline-flex}.sort-row{color:var(--muted);align-items:center;gap:.35rem;margin:.6rem 0;font-size:.8rem;display:flex}.sort-row button{border:1px solid var(--border);background:var(--surface);color:var(--soft);border-radius:.4rem;padding:.2rem .5rem;font-size:.78rem}.sort-row button.on{border-color:var(--brand);color:var(--brand-ink);font-weight:600}.items-table{border-collapse:collapse;width:100%}.items-table td{border-bottom:1px solid var(--border);padding:.1rem .15rem}.w-day{width:2.6rem}.w-amt{width:6rem}@media (width<=860px){.split{grid-template-columns:1fr;height:auto}.pane{border-right:none;border-bottom:1px solid var(--border)}.add-row{grid-template-columns:1fr 1fr}}.debts-pane{padding:.5rem .75rem 2rem}.deb-tabs{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.deb-tab{background:var(--chip);border:1px solid var(--border);color:var(--soft);cursor:pointer;border-radius:1rem;padding:.2rem .7rem;font-size:.8rem}.deb-tab.active{color:var(--ink);border-color:var(--brand);background:var(--surface-2)}.deb-new{border:1px solid var(--border);background:var(--surface-2);width:1.6rem;height:1.6rem;color:var(--brand-ink);cursor:pointer;border-radius:50%;font-size:1.1rem;line-height:1}.deb-empty{margin-top:1rem}.deb-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:.5rem;margin-top:.75rem;padding:.75rem}.deb-panel h4{margin:0 0 .5rem}.deb-form{flex-direction:column;gap:.5rem;display:flex}.deb-form label{color:var(--muted);flex-direction:column;gap:.15rem;font-size:.75rem;display:flex}.deb-form input{font-size:.9rem}.deb-form-row{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.deb-actions{align-items:center;gap:.75rem;margin-top:.75rem;display:flex}.deb-primary{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:.4rem;padding:.4rem .9rem}.deb-danger{color:var(--neg);border:1px solid var(--err-border);cursor:pointer;background:0 0;border-radius:.4rem;margin-left:auto;padding:.35rem .7rem}.deb-detail{margin-top:.75rem}.deb-cards{grid-template-columns:repeat(2,1fr);gap:.5rem;display:grid}.deb-card{background:var(--surface-2);border:1px solid var(--border);border-radius:.5rem;flex-direction:column;gap:.15rem;padding:.5rem .65rem;display:flex}.deb-card-k{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.68rem}.deb-card-v{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.deb-terms{justify-content:space-between;align-items:center;gap:.5rem;margin:.75rem 0 .25rem;font-size:.88rem;display:flex}.deb-warn{color:var(--neg);margin:.5rem 0;font-size:.82rem}.deb-alt-note{color:var(--soft);margin:.35rem 0;font-size:.82rem}.deb-h{margin:1rem 0 .35rem}.deb-pay-new{grid-template-columns:auto 6rem 1fr auto;align-items:center;gap:.4rem;display:grid}.deb-pay-list{margin:.5rem 0 0;padding:0;list-style:none}.deb-pay{border-bottom:1px solid var(--border);grid-template-columns:3rem auto 1fr 1.1rem;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.85rem;display:grid}.deb-pay-amt{font-variant-numeric:tabular-nums;color:var(--pos);font-weight:600}.deb-pay-note{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.deb-sched-toggle{color:var(--brand-ink);cursor:pointer;background:0 0;border:none;margin-top:1rem;padding:0;font-size:.85rem}.deb-sched{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:.5rem;font-size:.82rem}.deb-sched th,.deb-sched td{border-bottom:1px solid var(--border);text-align:left;padding:.25rem .5rem}.deb-sched th.num,.deb-sched td.num{text-align:right}.deb-sched th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.deb-sched tr.proj td{color:var(--muted)}.cat-list{margin:0 0 .5rem;padding:0;list-style:none}.cat-row{border-bottom:1px solid var(--border);cursor:grab;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.3rem 0;font-size:.85rem;display:flex}.cat-row.dragging{opacity:.4}.cat-main{flex:1;align-items:center;gap:.4rem;min-width:0;display:flex}.cat-name{font-weight:600}.cat-tag{text-transform:uppercase;letter-spacing:.04em;background:var(--chip);color:var(--brand-ink);border-radius:.8rem;padding:.05rem .4rem;font-size:.65rem}.cat-tag.envelope{color:var(--pos)}.cat-sum{color:var(--muted);font-variant-numeric:tabular-nums}.cat-edit{flex-basis:100%;padding:.4rem 0 .2rem}.cat-edit-actions{gap:.75rem;margin-top:.4rem;display:flex}.cat-new{flex-direction:column;gap:.4rem;margin-bottom:.5rem;display:flex}.cat-budget{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.cat-budget select,.cat-budget input[type=number]{max-width:9rem;font-size:.82rem}.cat-roundup{color:var(--soft);align-items:center;gap:.25rem;font-size:.78rem;display:flex}.env-card{border:1px solid var(--border);background:var(--surface-2);border-radius:.5rem;margin:.5rem 0;padding:.4rem .6rem}.env-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.env-toggle{color:var(--ink);cursor:pointer;background:0 0;border:none;padding:.2rem 0;font-size:.95rem;font-weight:600}.env-total{font-variant-numeric:tabular-nums;font-weight:700}.modal-backdrop{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:.6rem;flex-direction:column;gap:.7rem;width:22rem;max-width:90vw;padding:1.25rem;display:flex}.modal h3{margin:0 0 .25rem}.modal label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.8rem;display:flex}.modal-actions{align-items:center;gap:.75rem;margin-top:.25rem;display:flex}.ok-msg{color:var(--pos);font-weight:600}.paycheck-settings{background:var(--surface-2);border:1px solid var(--border);border-radius:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.paycheck-settings h4{margin:0 0 .3rem}.paycheck-settings .muted{margin:0 0 .6rem;font-size:.82rem}.paycheck-fields{flex-wrap:wrap;gap:1rem;display:flex}.paycheck-fields label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.78rem;display:flex}.paycheck-fields select{min-width:18rem}.paycheck-fields input{max-width:10rem}.anchor-editor{color:var(--soft);background:var(--surface);border:1px solid var(--border);border-radius:.5rem;flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:1rem;padding:.5rem .7rem;font-size:.82rem;font-weight:600;display:flex}.anchor-label{white-space:nowrap}.anchor-editor select{font-size:.82rem}.anchor-year{width:4.5rem}.anchor-eq{color:var(--muted)}.anchor-balance{text-align:right;width:8rem;color:var(--ink);font-weight:700}.bp-line.needs-reconciliation .bp-name span:first-child,.bp-line.needs-reconciliation .bp-amt{color:var(--neg)}.bp-line.uncategorized{opacity:.85}.bp-line.uncategorized .bp-name,.bp-line.uncategorized .bp-amt{color:var(--neg);font-weight:700}.bmonth-context{opacity:.45;filter:grayscale(.5);pointer-events:none}.bp-line.absorbed{opacity:.55}.bp-line.absorbed .bp-note{font-style:italic}
