:root{--ground: #fbfbfa;--ink: #1a1a18;--muted: #55554e;--faint: #7a7a72;--rule: #e3e0d8;--band: #eceae5;--bar: #2f3437;--admin-bar: #4a148c;--accent: #9a5c00;--good: #2e7d32;--good-bg: #e3f0e2;--low: #f6e3c9;--grow: #7a8b6f;--allow-ink: #1f4e79;--today-bg: #fff066;--chip-pay: #ffe600;--chip-pay-ink: #7a4a00;--chip-spend: #e2e8f0;--chip-spend-ink: #3d4a5c;--alarm: #a01f1f;--alarm-bg: #fbeaea;--drift-yellow: #8f7300;--drift-orange: #a15c00;--drift-red-orange: #b23a00;--alarm-strong-bg: #f2acac;--warn: #8a5a00;--warn-bg: #f3dfa3;--opening-bg: #bfdbfe;--checkbook-bg: #93c5fd;--plan-bg: #e6defa;--tray-bg: #948e7c;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font-size:17px;line-height:1.4}.shell{max-width:560px;margin:0 auto;padding-bottom:56px}.bar{background:var(--bar);color:#fff;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;min-height:60px}.tabs{position:fixed;bottom:0;left:0;right:0;height:56px;display:flex;border-top:1px solid var(--rule);background:var(--ground)}.tabs button{font-size:16px}.num{font-variant-numeric:tabular-nums}.neg{color:#8a2f2f}.pos{color:var(--good)}.tag{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--faint);margin-left:6px}.notice{padding:10px 14px;background:var(--band);color:var(--muted);font-size:13px}.notice p{margin:0}.notice p+p,.notice p+.notice-examples{margin-top:6px}.notice-examples{margin:0;padding-left:18px}.signin{padding:64px 24px;text-align:center}.lede{color:var(--muted)}.banner{background:var(--low);color:#6a4a10}.empty{padding:48px 24px;text-align:center}.empty h2{font-size:18px;margin-bottom:4px}.month .bar h1,.payoff .bar h1,.settings .bar h1,.home .bar h1,.admin-bar h1{font-size:19px;margin:0;font-weight:600}html,body{height:100%}.shell{display:flex;flex-direction:column;height:100vh;height:100dvh}.month{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.month-header{flex:0 0 auto}.month-body{flex:1 1 auto;min-height:0;overflow-y:auto}.dayhdr{display:flex;justify-content:space-between;align-items:center;padding:6px 14px;margin:0;background:var(--band);font-size:20px;font-weight:600;letter-spacing:.2px}.dayhdr.low{background:var(--low)}.dayhdr.alert{background:var(--alarm-strong-bg);color:var(--alarm)}.dayhdr-right{display:flex;align-items:center;gap:6px}.rows{list-style:none;margin:0;padding:0}.dt{color:var(--faint);font-variant-numeric:tabular-nums;margin-right:6px}.clr-icon{vertical-align:text-bottom;margin-right:4px}.row{display:flex;justify-content:space-between;align-items:center;padding:4px 14px 4px 22px}.rows.scroll{max-height:220px;overflow-y:auto}.history{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:6px 0;margin:10px 0}.divider-above{border-top:1px solid var(--rule);padding-top:8px;margin-top:8px}.history>.sub{margin:4px 14px}.history .row{padding-left:0;padding-right:0}.history .row .nm{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history .row .amt{flex-shrink:0}.agenda .rows .row{border-bottom:1px solid var(--faint)}.agenda .rows .row:last-child{border-bottom:0}.plan-row{color:var(--faint);background:var(--plan-bg);font-style:italic;font-weight:700}.plan-row .amt{color:inherit}.plan-chip{display:inline-flex;align-items:center;padding:1px 8px;border-radius:9px;background:var(--muted);color:#fff;font-style:normal}.agenda{background:var(--tray-bg);padding:4px;display:flex;flex-direction:column;gap:4px}.day-group{background:var(--ground);border-radius:8px;overflow:hidden}.agenda-empty{padding:16px;text-align:center;color:var(--faint)}.opening-row{background:var(--opening-bg);font-weight:700;padding-left:14px;padding-top:10px;padding-bottom:10px}@media (max-width: 480px){.cardrow{flex-wrap:wrap;row-gap:6px}.cardrow input{flex:1 1 100%}}.rowbtn{flex:1;text-align:left;background:none;border:0;font:inherit;color:inherit;padding:0}.tag.pay{color:var(--chip-pay-ink);background:var(--chip-pay);font-weight:700;padding:2px 6px;border-radius:4px}.tag.spend{color:var(--chip-spend-ink);background:var(--chip-spend);font-weight:700;padding:2px 6px;border-radius:4px}.amt{padding-left:12px;display:inline-flex;align-items:center;gap:6px}.row.is-marked{color:var(--muted);background:var(--warn-bg)}.row.is-marked .amt{color:var(--muted)}.amt-icon{font-size:22px}.amt-icon.alarm{color:var(--alarm)}.amt-icon.warn{color:var(--warn)}.row.is-overdue{color:var(--alarm);background:var(--alarm-bg)}.row.is-overdue .nm{font-weight:600}.row.is-overdue .amt{color:var(--alarm)}.tag.alarm{color:var(--alarm);font-weight:700}.row.is-stale{color:var(--warn);background:var(--warn-bg)}.row.is-stale .amt{color:var(--warn)}.tag.warn{color:var(--warn);font-weight:600}.row.is-ahead{color:var(--good);background:var(--good-bg)}.row.is-ahead .amt{color:var(--good)}.row.is-behind{color:var(--alarm);background:var(--alarm-bg)}.row.is-behind .amt{color:var(--alarm)}.row.is-on-track{color:var(--warn);background:var(--warn-bg)}.row.is-on-track .amt{color:var(--warn)}.row.is-tight{color:#6a4a10;background:var(--low)}.row.is-tight .amt{color:#6a4a10}.checkbook-actual{font-weight:700}.row.is-cleared{color:var(--muted)}.row.is-cleared .nm,.row.is-cleared .amt{text-decoration:line-through}.month-actions{display:flex;align-items:center;gap:8px;padding:8px 14px}.month-picker-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--rule)}.grid .head{background:var(--ground);text-align:center;font-size:11px;color:var(--faint);padding:4px 0}.cell{background:var(--ground);min-height:52px}.cell[data-low=true]{background:var(--low)}.cell .d{font-size:10px;color:var(--faint)}.cell .b{font-size:11px}.cell .dot{width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:2px}.block{padding:14px;border-bottom:1px solid var(--rule)}.leaf.confirm .block{border-bottom:0;padding:0}.leaf.confirm .block+.block{margin-top:12px}.leaf.spending-form .block{border-bottom:0;padding:0}.leaf.spending-form .block+.block{margin-top:12px}.leaf>.block:last-child{border-bottom:0}.lbl{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--faint);margin:0 0 4px}.big{font-size:27px;font-weight:600;letter-spacing:-.5px;margin:0}.balance-row{display:flex;justify-content:space-between;align-items:baseline}.sub{font-size:13px;color:var(--muted);margin:2px 0 0}.ladder{list-style:none;margin:4px 0 0;padding:0}.ladder li{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:13px}.lname{width:84px}.ltrack{flex:1;background:var(--rule);border-radius:3px;height:9px;overflow:hidden}.lfill{display:block;background:var(--grow);height:100%}.ldate{width:74px;text-align:right;color:var(--muted);font-size:12px}.curve{background:var(--band);border-radius:6px;padding:6px 4px 2px;margin:4px 0 0}.cwindow{margin-top:4px}.cwindow .MuiToggleButton-root{font-size:11px;padding:2px 4px;background:var(--ground);border-color:var(--faint);color:var(--muted)}.cwindow .MuiToggleButton-root.Mui-selected{background:var(--accent);color:#fff;border-color:var(--accent)}.cwindow .MuiToggleButton-root.Mui-selected:hover{background:var(--accent)}.curve-plot{position:relative}.curve-plot svg{display:block}.cdot{position:absolute;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:var(--grow)}.cdot-low{width:7px;height:7px;margin:-3.5px 0 0 -3.5px;background:var(--accent)}.vline{position:absolute;top:0;bottom:0;width:1px}.vline-today{background:var(--accent)}.hline{position:absolute;left:0;right:0;height:1px}.hline-low{background:var(--accent);opacity:.35}.cboundaries{position:relative;height:12px;margin:2px 0 14px}.cboundary-label{position:absolute;top:0;transform:translate(-50%);font-size:10px;color:var(--faint);white-space:nowrap}.cnote-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:4px 0 0}.clegend{display:flex;gap:14px;font-size:11px;color:var(--muted);padding:2px 6px 4px;margin-left:auto}.clegend .swatch{display:inline-block;width:14px;height:2px;margin-right:4px;vertical-align:middle}.clegend .swatch.plan{background:var(--grow)}.clegend .swatch.actual{background-image:linear-gradient(to right,var(--accent) 60%,transparent 0%);background-size:5px 2px;background-repeat:repeat-x}.trend{background:var(--band);border-radius:6px;padding:8px 10px 6px;margin:4px 0 0}.trend-bars{display:flex;align-items:flex-end;justify-content:space-around;gap:8px}.trend-bar-col{display:flex;align-items:flex-end;height:100%;flex:1;justify-content:center}.trend-bar{display:block;width:20px;min-height:2px;border-radius:2px 2px 0 0}.trend-bar.neg{background:#8a2f2f}.trend-bar.pos{background:var(--good)}.trend-labels{display:flex;justify-content:space-around;gap:8px;margin-top:4px}.trend-label{flex:1;text-align:center;font-size:10px;color:var(--faint)}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.field{display:block;margin-bottom:12px}.field span{display:block;font-size:12px;color:var(--faint);margin-bottom:3px}.field input{width:100%;padding:8px 10px;border:1px solid var(--rule);border-radius:6px;font:inherit}.field textarea{width:100%;padding:8px 10px;border:1px solid var(--rule);border-radius:6px;font:inherit;resize:vertical}.field:has(input[type=checkbox]){display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.field:has(input[type=checkbox]) input[type=checkbox]{order:-1;width:20px;height:20px;padding:0;border:0;flex:0 0 auto}.field:has(input[type=checkbox]) span{margin-bottom:0}.field.invalid input,.field.invalid textarea,input[aria-invalid=true]{border-color:#8a2f2f}.field-err{margin:4px 0 0;font-size:12px;color:#8a2f2f}.toggle{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px}.toggle input{margin-top:3px}.toggle .sub{display:block}.leaf{padding:14px}.leaf h1{font-size:20px;margin:8px 0 2px}#plan-balance-title{margin:0}.plan-balance-rows .row{padding-left:14px;padding-right:14px}.plan-balance-rows .row-spacer{flex:1 0 auto;min-width:8ch}.plan-balance-rows .plan-row{border:2px solid var(--allow-ink);border-radius:8px;font-style:normal}.plan-balance-rows .checkbook-actual{border:2px solid var(--good);border-radius:8px;margin-top:6px}.plan-balance-rows .formula{justify-content:flex-start}.plan-balance-rows .formula .nm{color:var(--muted);font-size:13px;white-space:normal}.actions{display:flex;flex-wrap:wrap;gap:8px}.payoff>.block:last-child,.settings>.block:last-child{margin-bottom:56px}.home-grid{margin-bottom:56px}.err{margin:8px 14px;color:var(--accent);font-size:13px}.shell.wide{max-width:820px}.admin-bar{background:var(--admin-bar)}.admin h2{font-size:15px;margin:0 0 8px}.admin .block:first-of-type{border-top:1px solid var(--rule)}.admin .field select{width:100%;padding:8px 10px;border:1px solid var(--rule);border-radius:6px;font:inherit}.admin .row button,.admin .block button{margin-left:8px}.admin .row button:first-of-type,.admin .block button:first-of-type{margin-left:0}.fields-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px 12px}.fields-grid .field{margin-bottom:8px}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding:14px}.home-grid .home-hero{grid-column:1 / -1}.home-grid .home-hero .balance-line{display:flex;align-items:center;justify-content:flex-end;gap:8px}.home [data-testid=home-next-7-days] .row,.home [data-testid=home-tight-months] .row,.home [data-testid=home-recent-unplanned] .row{padding-left:0;padding-right:0}.fields-grid .field:has(input[type=checkbox]){grid-column:1 / -1}@media (max-width: 560px){.admin{padding-left:0;padding-right:0}.admin .block{padding-left:10px;padding-right:10px}.admin .row{padding-left:11px;padding-right:7px}}.action-row{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px}.action-row .MuiButton-root{min-width:min(100px,calc((100% - 28px) / 3))}.action-row .sub{margin:0 auto 0 0;flex:1 1 12ch}.sheet{border:0!important;background:var(--ground);color:var(--ink);width:calc(100% - 24px)!important;max-width:560px!important;max-height:85vh!important;overflow-y:auto;margin:auto!important}.sheet .leaf{padding-bottom:24px}.MuiBackdrop-root{background:#00000073}.drift-chip{display:inline-flex;align-items:center;padding:1px 6px;border-radius:9px;font-size:11px;font-weight:700;line-height:1.5;color:#fff}.drift-chip.pos{background:var(--good)}.drift-chip.neg{background:var(--alarm)}.balance-status-value .drift-chip{width:20px;height:20px;padding:0;border-radius:50%;justify-content:center;font-size:12px}.drift-chip.up-strong{background:var(--good)}.drift-chip.up-mild{background:var(--drift-yellow)}.drift-chip.flat{background:var(--drift-orange)}.drift-chip.down-mild{background:var(--drift-red-orange)}.drift-chip.down-strong{background:var(--alarm)}.balance-status{margin:0;padding:10px 14px;font-size:15px;font-weight:700;color:var(--ink);background:var(--checkbook-bg);display:flex;align-items:center;justify-content:space-between}.balance-status.tappable{padding:0}.balance-status-value{display:inline-flex;align-items:center;gap:8px}.balance-status-label{font-size:17px}.balance-status .num{font-size:17px;font-weight:700}.agenda .is-today .dayhdr{font-weight:600}.agenda .is-today .dayhdr:not(.low):not(.alert){background:var(--today-bg)}.agenda .is-today .row{background:var(--today-bg)}.agenda .is-today .row.is-overdue{background:var(--alarm-bg)}.agenda .is-today .row.is-stale{background:var(--warn-bg)}.agenda .is-today .row.plan-row{background:var(--plan-bg)}.cell.is-today{outline:2px solid var(--bar);outline-offset:-2px}.cell.is-today .d{font-weight:700}.row.is-spending,.row.is-spending .amt{color:var(--allow-ink);font-weight:600}.row.is-spending.is-overdue,.row.is-spending.is-overdue .amt{color:var(--alarm)}.row.is-spending.is-stale,.row.is-spending.is-stale .amt{color:var(--warn)}.row.is-spending.is-cleared,.row.is-spending.is-marked{color:var(--muted)}.row.is-added,.row.is-added .sub{color:var(--good)}.row.is-deleted,.row.is-deleted .sub{color:var(--alarm)}.changelog-rows{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.changelog-rows .row{flex-direction:column;align-items:stretch}.changelog-rows .row .nm{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.changelog-rows .row .sub{text-align:left}.today-marker{display:flex;justify-content:space-between;align-items:center;margin:0;padding:6px 14px;font-size:20px;font-weight:600;letter-spacing:.2px;color:var(--muted);background:var(--today-bg);border-radius:8px}@media (max-width: 560px){.agenda .rows .row,.agenda .dayhdr,.agenda .today-marker{padding-top:12px;padding-bottom:12px}}
