:root{--budget-needs:#4d4d4d;--budget-wants:#a4a4a4;--budget-savings:#43a96e;--budget-over:#cf4040}@supports (color:lab(0% 0 0)){:root{--budget-needs:lab(32.72% -.0000149012 0);--budget-wants:lab(67.52% -.0000298023 0);--budget-savings:lab(62.2522% -41.3866 21.3307);--budget-over:lab(49.4737% 56.8232 34.3326)}}.dark{--budget-needs:#d7d7d7;--budget-wants:#717171;--budget-savings:#4ebe7d;--budget-over:#f66d67}@supports (color:lab(0% 0 0)){.dark{--budget-needs:lab(86.08% -.0000298023 0);--budget-wants:lab(47.8% 0 .0000119209);--budget-savings:lab(69.3433% -44.5479 22.9571);--budget-over:lab(63.526% 53.3685 30.8739)}}.g-needs{background:var(--budget-needs)}.g-wants{background:var(--budget-wants)}.g-savings{background:var(--budget-savings)}.budget-muted{color:var(--muted-foreground);margin:0;font-size:13px}.budget-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem;display:grid}.budget-stat{gap:.25rem;display:grid}.budget-stat span{color:var(--muted-foreground);font-size:13px}.budget-stat strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.5rem}.budget-stat small{color:var(--muted-foreground);font-size:12px}.budget-left.is-zero strong{color:var(--budget-savings)}.budget-left.is-over strong{color:var(--budget-over)}.budget-split-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;display:flex}.budget-split-head h2{align-items:center;gap:.5rem;margin:0;font-size:1.05rem;display:flex}.budget-split{margin-bottom:1rem}.budget-bar{background:var(--muted);border-radius:999px;height:14px;display:flex;overflow:hidden}.budget-bar span{transition:width .4s}.budget-legend{flex-wrap:wrap;gap:1.25rem;margin:.75rem 0 0;padding:0;font-size:14px;list-style:none;display:flex}.budget-legend i,.budget-dot{border-radius:50%;width:10px;height:10px;margin-right:.4rem;display:inline-block}.budget-nudge{border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem;display:flex}.budget-nudge p{margin:0;font-size:14px}.budget-grid{grid-template-columns:1.3fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.budget-group{margin-bottom:1rem}.budget-cols,.budget-row{grid-template-columns:minmax(0,2fr) minmax(80px,1fr) minmax(80px,1fr) 40px;align-items:center;gap:.5rem;display:grid}.budget-grid .budget-row{grid-template-columns:minmax(0,2fr) minmax(90px,1fr) 40px}.budget-cols{padding:0 0 .25rem}.budget-row{padding:.35rem 0}.budget-row input{font-variant-numeric:tabular-nums}.budget-row.is-auto{color:var(--muted-foreground);border-bottom:1px dashed var(--border);padding:.6rem 0;font-size:14px}.budget-row.is-auto a{color:inherit;margin-left:.35rem;font-size:12px}.budget-row.is-auto strong{color:var(--foreground);padding-left:.75rem;font-weight:500}.budget-item{gap:.3rem;display:grid}.budget-mini{background:var(--muted);border-radius:999px;height:3px;overflow:hidden}.budget-mini span{background:var(--budget-savings);height:100%;transition:width .3s;display:block}.budget-row.is-over .budget-mini span{background:var(--budget-over)}.budget-row.is-over input[aria-label]+*{color:var(--budget-over)}.budget-habits{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.budget-habits button{text-align:left;width:100%;color:var(--foreground);cursor:pointer;background:0 0;border:0;align-items:center;gap:.6rem;padding:.55rem .25rem;font:500 14px/1.3 inherit;display:flex}.budget-check{border:1.5px solid var(--border);border-radius:6px;flex:none;place-items:center;width:20px;height:20px;display:grid}.budget-habits button[aria-pressed=true] .budget-check{background:var(--budget-savings);border-color:var(--budget-savings);color:var(--background)}.budget-habits button[aria-pressed=true]{color:var(--muted-foreground)}.budget-cheer{color:var(--budget-savings);margin:.75rem 0 0;font-size:14px}.budget-foot{margin:1rem 0 2rem}@media (max-width:800px){.budget-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-grid{grid-template-columns:1fr}.budget-cols,.budget-row{grid-template-columns:minmax(0,1.5fr) minmax(64px,1fr) minmax(64px,1fr) 36px;gap:.35rem}}.budget-split-viz{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.budget-pie{flex:0 0 190px;max-width:190px}.budget-split-bars{flex:220px;min-width:0}.budget-pie-needs{fill:var(--budget-needs)}.budget-pie-wants{fill:var(--budget-wants)}.budget-pie-savings{fill:var(--budget-savings)}.budget-split .recharts-tooltip-wrapper .recharts-default-tooltip{color:var(--popover-foreground);border-radius:12px;background:var(--popover)!important;border:1px solid var(--border)!important}@media (max-width:560px){.budget-pie{flex-basis:100%;max-width:220px;margin:0 auto}}.budget-reports{margin-bottom:1rem}.budget-report-actions{flex:none;gap:.5rem;display:flex}.budget-trend{background:var(--muted);border-radius:999px;align-items:center;gap:.4rem;margin:0 0 .75rem;padding:.4rem .7rem;font-size:13px;display:inline-flex}.budget-trend.is-good{color:var(--budget-savings)}.budget-trend.is-bad{color:var(--budget-over)}.budget-chart{margin:.25rem 0 1rem}.budget-bar-income{fill:var(--budget-savings)}.budget-bar-spent{fill:var(--budget-needs)}.budget-grid-line{stroke:var(--border)}.budget-reports .recharts-default-tooltip{color:var(--popover-foreground);border-radius:12px;background:var(--popover)!important;border:1px solid var(--border)!important}.budget-table-wrap{overflow-x:auto}.budget-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.budget-table th{text-align:left;color:var(--muted-foreground);border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .6rem;font-weight:500}.budget-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:.5rem .6rem}.budget-table tr.is-current td{background:var(--muted);font-weight:600}.budget-table tr.is-current td:first-child{border-radius:8px 0 0 8px}.budget-table tr.is-current td:last-child{border-radius:0 8px 8px 0}.budget-table td.is-over{color:var(--budget-over)}.budget-report-note{align-items:center;gap:.35rem;margin-top:.75rem;display:flex}.insight-budget-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.insight-budget-head h2{margin:.25rem 0 0}.insight-budget-head .text-link{white-space:nowrap}.insight-budget-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0 .9rem;display:grid}.insight-budget-grid>div{gap:.2rem;display:grid}.insight-budget-grid span{color:var(--muted-foreground);font-size:13px}.insight-budget-grid strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.35rem}.insight-budget-grid small{color:var(--muted-foreground);font-size:12px}.insight-budget-grid .is-over strong{color:var(--budget-over)}@media (max-width:720px){.insight-budget-grid{grid-template-columns:repeat(2,1fr)}}
.dtrack{gap:1rem;margin:1rem 0 2rem;display:grid}.dtrack .budget-summary{margin:0}.dtrack h3{margin:0 0 .75rem;font-size:1.05rem}.dtrack-grid{grid-template-columns:1.2fr 1fr;gap:1rem;display:grid}.dtrack-nav{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.dtrack-nav h3{margin:0}.dtrack-cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.dtrack-wd{text-align:center;color:var(--muted-foreground);padding-bottom:4px;font-size:11px}.dtrack-day{border:1px solid var(--border);cursor:pointer;min-height:58px;font:inherit;color:var(--foreground);background:color-mix(in oklch, var(--goal-0) calc(var(--heat,0) * 100%), var(--card));border-radius:10px;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:4px;transition:transform .15s;display:flex;position:relative}.dtrack-day:hover{transform:translateY(-1px)}.dtrack-day b{font-size:12px;font-weight:500}.dtrack-day small{font-variant-numeric:tabular-nums;text-overflow:ellipsis;max-width:100%;font-size:10px;overflow:hidden}.dtrack-day.is-today{outline:2px solid var(--foreground);outline-offset:-2px}.dtrack-day.is-future{opacity:.55}.dtrack-streak{color:var(--goal-2);align-items:center;gap:.3rem;display:inline-flex}.dtrack-table{min-width:0;margin-top:.75rem}.dtrack-list{gap:.25rem;max-height:220px;margin:0 0 1rem;padding:0;list-style:none;display:grid;overflow:auto}.dtrack-list li{border-bottom:1px solid var(--border);grid-template-columns:1fr auto 36px;align-items:center;gap:.5rem;padding:.35rem 0;font-size:14px;display:grid}.dtrack-list small{color:var(--muted-foreground);font-size:12px;display:block}.dtrack-list strong{font-variant-numeric:tabular-nums;font-weight:500}.dtrack-list strong.is-in{color:var(--goal-0)}.dtrack-kind{gap:.5rem;display:flex}.dtrack-row{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}@media (max-width:800px){.dtrack-grid{grid-template-columns:1fr}.dtrack-day{min-height:48px}.dtrack-day small{font-size:9px}}.dtrack-entry{margin:1rem 0}.dtrack-entry-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:.75rem;margin-top:.75rem;display:grid}.dtrack-entry-form label{color:var(--muted-foreground);flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}.dtrack-outcome{grid-template-columns:1fr 1fr;gap:.9rem;margin:.75rem 0;padding:0;list-style:none;display:grid}.dtrack-outcome li{color:var(--muted-foreground);flex-direction:column;gap:.1rem;font-size:.8rem;display:flex}.dtrack-outcome b{color:var(--foreground);font-size:1.25rem}.dtrack-outcome li.is-over b{color:var(--destructive)}.dtrack-bar{background:var(--muted);border-radius:99px;height:10px;display:flex;overflow:hidden}.dtrack-bar .u{background:var(--muted-foreground)}.dtrack-bar .g{background:var(--primary)}.goals-table td.is-neg{color:var(--destructive)}
:root{--goal-0:#43a96e;--goal-1:#4d4d4d;--goal-2:#d1a84b;--goal-3:#8f8f8f;--goal-4:#4989a7;--goal-5:#c4c4c4;--goal-rest:#e4e4e4}@supports (color:lab(0% 0 0)){:root{--goal-0:lab(62.2522% -41.3866 21.3307);--goal-1:lab(32.72% -.0000149012 0);--goal-2:lab(71.2019% 8.24577 52.3464);--goal-3:lab(59.4% 0 0);--goal-4:lab(53.8112% -14.7779 -22.5227);--goal-5:lab(79.12% -.0000298023 -.0000119209);--goal-rest:lab(90.72% .0000298023 -.0000119209)}}.dark{--goal-0:#4ebe7d;--goal-1:#d7d7d7;--goal-2:#e1b75c;--goal-3:gray;--goal-4:#68a8c7;--goal-5:#555;--goal-rest:#2e2e2e}@supports (color:lab(0% 0 0)){.dark{--goal-0:lab(69.3433% -44.5479 22.9571);--goal-1:lab(86.08% -.0000298023 0);--goal-2:lab(77.0192% 7.95284 51.5616);--goal-3:lab(53.6% 0 0);--goal-4:lab(65.4275% -15.1515 -22.6274);--goal-5:lab(36.2% 0 .00000596046);--goal-rest:lab(18.8% 0 0)}}.goals{gap:1rem;margin:2rem 0 1rem;display:grid}.goals .budget-summary{margin:0}.goals-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.goals-head h2{letter-spacing:-.02em;margin:.15rem 0 .25rem;font-size:1.5rem}.goals-eyebrow{letter-spacing:.12em;color:var(--muted-foreground);margin:0;font-size:12px}.goals h3{margin:0 0 .75rem;font-size:1.05rem}.goals-charts{grid-template-columns:1fr 1.3fr;gap:1rem;display:grid}.goals-wide{grid-column:1/-1}.goals-chart{width:100%;min-width:0}.goals-chart text{fill:var(--muted-foreground)}.goals-grid line{stroke:var(--border)}.goal-c0,.goal-saved path,.goal-saved .recharts-rectangle{fill:var(--goal-0)}.goal-c1{fill:var(--goal-1)}.goal-c2{fill:var(--goal-2)}.goal-c3{fill:var(--goal-3)}.goal-c4{fill:var(--goal-4)}.goal-c5{fill:var(--goal-5)}.goal-bg0{background:var(--goal-0)}.goal-bg1{background:var(--goal-1)}.goal-bg2{background:var(--goal-2)}.goal-bg3{background:var(--goal-3)}.goal-bg4{background:var(--goal-4)}.goal-bg5{background:var(--goal-5)}.goal-rest path,.goal-rest .recharts-rectangle{fill:var(--goal-rest)}.goal-area .recharts-area-area{fill:var(--goal-0);fill-opacity:.18}.goal-area .recharts-area-curve{stroke:var(--goal-0)}.goals .recharts-tooltip-wrapper .recharts-default-tooltip{color:var(--popover-foreground);border-radius:12px;background:var(--popover)!important;border:1px solid var(--border)!important}.goals-table-scroll{overflow-x:auto}.goals-table{border-collapse:collapse;width:100%;min-width:760px;font-size:14px}.goals-table th{text-align:start;color:var(--muted-foreground);border-bottom:1px solid var(--border);padding:.5rem;font-size:12px;font-weight:500}.goals-table td{border-bottom:1px solid var(--border);vertical-align:middle;font-variant-numeric:tabular-nums;padding:.65rem .5rem}.goals-table td small{color:var(--muted-foreground);font-size:12px;display:block}.goals-prog{background:var(--muted);border-radius:999px;width:100px;height:8px;overflow:hidden}.goals-prog span{background:var(--goal-0);height:100%;transition:width .4s;display:block}.goals-status{border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.2rem .55rem;font-size:12px}.goals-status.is-done{color:var(--goal-0);border-color:var(--goal-0)}.goals-status.is-behind{color:var(--goal-2);border-color:var(--goal-2)}.goals-add{gap:.35rem;display:flex}.goals-add input{width:84px}.goals-badges{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.goals-badges button{text-align:center;border:1px dashed var(--border);width:100%;color:var(--muted-foreground);cursor:pointer;font:inherit;background:0 0;border-radius:16px;justify-items:center;gap:.3rem;padding:1rem .5rem;display:grid}.goals-badges button.is-earned{color:var(--foreground);background:linear-gradient(180deg, var(--card), var(--muted));border-style:solid}.goals-badges strong{font-size:14px;font-weight:500}.goals-badges small{color:var(--muted-foreground);font-size:12px}.goals-medal{background:var(--muted);border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.is-earned .goals-medal{background:var(--goal-2);color:var(--background)}.goals-form{gap:.8rem;display:grid}.goals-form label{gap:.3rem;font-size:14px;display:grid}.goals-select{border:1px solid var(--input);background:var(--background);height:2.5rem;color:var(--foreground);font:inherit;border-radius:.6rem;padding:0 .6rem}@media (max-width:800px){.goals-charts{grid-template-columns:1fr}}.goal-trackers{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin:1rem 0;display:grid}.goal-tracker{flex-direction:column;gap:.9rem;display:flex}.goal-tracker-top{align-items:center;gap:.9rem;display:flex}.goal-tracker-top>div:last-child{flex-direction:column;align-items:flex-start;gap:.2rem;display:flex}.goal-tracker-top small{color:var(--muted-foreground)}.goal-ring{--p:0;background:conic-gradient(var(--success,var(--primary)) calc(var(--p) * 1%), var(--muted) 0);border-radius:50%;flex:none;place-items:center;width:64px;height:64px;display:grid}.goal-ring span{background:var(--card);border-radius:50%;place-items:center;width:50px;height:50px;font-size:.8rem;font-weight:600;display:grid}.goal-tracker-facts{grid-template-columns:1fr 1fr;gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.goal-tracker-facts li{color:var(--muted-foreground);flex-direction:column;font-size:.8rem;display:flex}.goal-tracker-facts b{color:var(--foreground);font-size:.95rem}.goal-log-dialog{max-height:90dvh;overflow-y:auto}.goal-hist-title{margin:.5rem 0 0;font-weight:600}.goal-hist{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.goal-hist li{border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto;align-items:center;gap:.5rem;padding:.45rem 0;display:grid}.goal-hist li span{flex-direction:column;font-size:.9rem;display:flex}.goal-hist li small{color:var(--muted-foreground)}.goal-c2 path,.goal-c2 .recharts-rectangle{fill:var(--goal-2)}
