:root{color:#16201d;background:#f4f1e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #16201d;--muted: #5e6b65;--line: #d9d3c4;--paper: #fffdf7;--green: #23615a;--green-soft: #d9ebe7;--gold: #d5b46a;--red: #9a3b33;--blue: #335c7d}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.shell{width:min(1220px,calc(100% - 32px));margin:0 auto;padding:32px 0 48px}.authShell{min-height:100vh;width:min(1040px,calc(100% - 32px));display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,420px);gap:32px;align-items:center;margin:0 auto;padding:32px 0}.configErrorShell{min-height:100vh;width:min(760px,calc(100% - 32px));display:grid;place-items:center;margin:0 auto;padding:32px 0}.configErrorPanel{display:grid;gap:14px;padding:24px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.configErrorPanel h1{font-size:2rem;line-height:1.1;color:var(--green)}.configErrorPanel p{margin:0;color:var(--muted);line-height:1.55}.configErrorPanel code{color:var(--ink);font-weight:700}.authBrand{display:grid;gap:18px}.authBrand img{width:min(680px,100%);height:auto}.authBrand p{margin:0;color:var(--muted);font-size:1.08rem}.authCard{display:flex;justify-content:center}.welcomeHeader{margin-bottom:24px}.welcomeHeader h1{margin:0 0 4px;font-size:1.8rem;font-weight:700;color:var(--green)}.welcomeHeader p{margin:0;color:var(--muted);font-size:1.1rem}.appHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:10px 0 18px}.eyebrow{margin:0 0 8px;color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3{margin:0;letter-spacing:0}h1{max-width:760px;font-size:clamp(2.15rem,4vw,4.6rem);line-height:.98}h2{font-size:1.18rem}h3{font-size:1rem}.brandMark{min-width:0}.brandMark img{display:block;width:min(720px,100%);height:auto}.statusPanel{min-width:320px;display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);background:var(--paper);border-radius:8px;color:var(--green)}.statusPanel .cl-rootBox{margin-left:2px}.statusPanel strong,.statusPanel span{display:block}.statusPanel span{color:var(--muted);font-size:.9rem}.resetButton{min-height:34px;margin-left:auto;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted)}.resetButton:hover{border-color:var(--green);color:var(--green)}.tabs{display:flex;gap:8px;padding:8px;margin-bottom:18px;border:1px solid var(--line);background:#ece6d7;border-radius:8px;overflow-x:auto}.tab{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:0;border-radius:6px;color:var(--muted);background:transparent;white-space:nowrap}.tab.active{color:#fff;background:var(--green)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.dashboardLayout,.goalsLayout{grid-template-columns:1fr}.primaryColumn,.sideColumn{display:grid;gap:18px}.metricGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metricCard,.panel{border:1px solid var(--line);background:var(--paper);border-radius:8px}.metricCard{min-height:142px;padding:18px}.metricCard span,.allocation span,.field span,.goalItem span,.debtRow span{color:var(--muted);font-size:.88rem}.metricCard strong{display:block;margin-top:16px;font-size:1.75rem}.metricCard p{margin:10px 0 0;color:var(--muted);line-height:1.4}.panel{padding:18px}.panel.compact{position:sticky;top:16px}.panel.fullWidth{max-width:900px}.scenarioPanel{padding:14px 16px 16px}.incomeTimingPanel{padding:16px 18px 18px}.incomeTimingGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.incomeTimingItem{min-height:104px;display:grid;gap:6px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.incomeTimingItem.pending{border-color:var(--gold);background:#fff8e8}.incomeTimingItem.total{border-color:#9ccbc3;background:var(--green-soft)}.incomeTimingItem span,.incomeTimingItem small{color:var(--muted)}.incomeTimingItem span{font-size:.82rem;font-weight:800;text-transform:uppercase}.incomeTimingItem strong{color:var(--ink);font-size:1.35rem}.quickLogGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.quickLogPanel{background:var(--paper);border:1px solid var(--line);padding:14px 16px 16px}.quickLogTracker{display:grid;gap:16px}.quickLogInfo{display:flex;justify-content:space-between;gap:16px}.quickLogMetric span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:2px}.quickLogMetric strong{font-size:1.25rem;color:var(--green)}.quickLogAdd{display:flex;gap:12px}.quickLogAdd input{flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:4px;font-size:1rem}.quickLogAdd .addButton{padding:0 20px}.spendProgressShell{width:100%}.spendProgressTrack{height:8px;background:#ece6d7;border-radius:4px;overflow:hidden}.spendProgressFill{height:100%;background:var(--green);border-radius:4px;transition:width .3s ease}.spendProgressFill.danger{background:#d9534f}.groceryQuickAdd{display:flex;gap:12px}.groceryQuickAdd input{flex:1;padding:8px 12px;border:1px solid var(--line);border-radius:4px;font-size:1rem}.groceryQuickAdd .addButton{padding:0 20px}.scenarioPanel .sectionHeader{align-items:center;margin-bottom:12px}.scenarioGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scenarioGrid .field{margin-top:0}.sectionHeader{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.expensePlanner{display:grid;gap:16px}.expensePlannerHeader{align-items:center;margin-bottom:0}.expenseModeSwitch{width:min(280px,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.expenseSnapshot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.expenseSnapshot div{display:grid;gap:5px}.expenseSnapshot span{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.expenseSnapshot strong{color:var(--ink);font-size:1.25rem}.expensePane{display:grid;gap:16px}.expensePaneHeader{display:flex;align-items:center;justify-content:space-between;gap:16px}.allocationGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.setupGrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.setupItem{min-height:78px;display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.setupItem.done{color:var(--green);background:var(--green-soft)}.setupItem div{display:grid;gap:4px}.setupItem strong{color:var(--ink)}.setupItem span{font-size:.84rem}.allocation{min-height:96px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--green-soft)}.allocation strong{display:block;margin-top:18px;font-size:1.55rem}.payoffCallout{display:grid;gap:6px;margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.payoffCallout strong{font-size:1.05rem}.payoffCallout span{color:var(--muted);line-height:1.45}.emptyState{display:grid;gap:6px;padding:18px;border:1px dashed var(--line);border-radius:8px;background:#fff}.emptyState strong{color:var(--ink)}.emptyState span{color:var(--muted);line-height:1.45}.warningList{display:grid;gap:10px;margin:18px 0 0;padding:0;list-style:none}.warningList li{display:flex;align-items:start;gap:10px;color:var(--red)}.field{display:grid;gap:8px;margin-top:14px}.field input,.field select{width:100%;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fff}.monthField,.monthPickerWrap{position:relative}.monthPickerTrigger{width:100%;min-height:42px;display:inline-flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fff;text-align:left}.monthPickerTrigger:hover,.monthPickerTrigger:focus-visible{border-color:var(--green)}.monthPickerTrigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monthPickerPanel{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:min(320px,92vw);padding:12px;border:1px solid var(--line);border-radius:10px;background:#fffdf7;box-shadow:0 18px 40px #1d2a1c29}.monthPickerHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.monthPickerHeader strong{color:var(--ink);font-size:1rem}.monthPickerYearButton{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--green)}.monthPickerGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.monthPickerMonth{min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}.monthPickerMonth.active{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:800}.monthPickerFooter{display:flex;justify-content:space-between;gap:8px;margin-top:12px}.monthPickerYearButton:hover,.monthPickerMonth:hover{border-color:var(--green)}.field input:disabled,.cardEditRow input:disabled{cursor:not-allowed;color:var(--muted);background:#ece6d7}.field.noMargin{margin-top:0}.expenseAddGrid{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(130px,.7fr) minmax(140px,.8fr) 120px 140px 92px;gap:10px;align-items:end;margin-bottom:16px}.cardAddGrid{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(128px,.9fr) minmax(104px,.75fr) minmax(104px,.75fr) minmax(82px,.55fr) minmax(104px,.75fr) 92px;gap:10px;align-items:end;margin-bottom:16px}.activityAddGrid{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.8fr) minmax(110px,.7fr) minmax(130px,.8fr) minmax(150px,1fr) 116px;gap:10px;align-items:end;margin-bottom:16px}.paymentAddGrid{display:grid;grid-template-columns:minmax(170px,1fr) minmax(130px,.8fr) minmax(130px,.8fr) minmax(180px,1fr) 116px;gap:10px;align-items:end;margin-bottom:16px}.goalAddGrid{display:grid;grid-template-columns:minmax(170px,1.2fr) minmax(120px,.75fr) minmax(120px,.75fr) minmax(150px,1fr) 120px 92px;gap:10px;align-items:end;margin-bottom:16px}.paymentRemaining{min-height:58px;display:grid;gap:4px;align-content:center;padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;margin-bottom:16px}.paymentRemaining span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.paymentRemaining strong{color:var(--ink)}.toggleField,.rowCheck{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.toggleField{min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#fff}.toggleField input,.rowCheck input{width:16px;height:16px;accent-color:var(--green)}.addButton,.iconButton,.secondaryButton{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--green);border-radius:6px;background:var(--green);color:#fff}.addButton:disabled{cursor:not-allowed;opacity:.55}.secondaryButton{border-color:var(--line);background:#fff;color:var(--green)}.iconButton{width:42px;border-color:var(--line);background:#fff;color:var(--muted)}.iconButton.danger:hover{border-color:var(--red);color:var(--red)}.expenseList,.cardList,.paymentList,.goalEditList{display:grid;gap:8px}.expenseRow{display:grid;grid-template-columns:minmax(180px,1.3fr) minmax(120px,.7fr) minmax(140px,.8fr) 112px 140px 42px;gap:10px;align-items:center;min-height:58px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.expenseRow input,.expenseRow select{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fffdf7}.cardEditRow{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(120px,.9fr) minmax(100px,.7fr) minmax(80px,.55fr) minmax(100px,.7fr) minmax(150px,1fr) 42px;gap:10px;align-items:center;min-height:58px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.cardEditRow input,.cardEditRow select{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fffdf7}.cardCheckboxes{display:grid;gap:6px}.rowHint{display:inline-flex;min-height:38px;align-items:center;color:var(--muted);font-size:.84rem}.paymentSummaryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.paymentSummary{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.paymentSummary span,.paymentSummary small{color:var(--muted)}.paymentRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,auto) 42px;gap:10px;align-items:center;min-height:58px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.paymentRow div{display:grid;gap:4px}.paymentRow span{color:var(--muted)}.positiveAmount{color:var(--green)}.negativeAmount{color:var(--red)}.goalEditRow{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(100px,.65fr) minmax(100px,.65fr) minmax(130px,.9fr) 112px minmax(240px,1.4fr) 42px;gap:10px;align-items:center;min-height:70px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.goalEditRow input{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fffdf7}.goalProgressCell{display:grid;gap:8px;align-content:start}.goalProgressSummary{display:flex;flex-wrap:wrap;gap:4px 12px}.goalProgressSummary span{color:var(--muted);font-size:.84rem}.goalCadenceControl{display:grid;gap:8px;margin-bottom:16px}.goalCadenceControl>span{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.goalCadenceButtons{display:flex;flex-wrap:wrap;gap:8px}.goalCadenceButtons .choice{min-width:120px}.goalSavingsBreakdown{display:grid;grid-template-columns:minmax(0,1fr)}.goalSavingsMetric{display:grid;gap:4px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fffdf7}.goalSavingsMetric strong{color:var(--green);font-size:1rem}.goalSavingsMetric span,.goalSavingsMetric small{color:var(--muted);font-size:.74rem;font-weight:800;text-transform:uppercase}.goalSavingsMetric small{font-style:normal}.goalSavingsMetric.primary{background:linear-gradient(135deg,#fffdf7,#f3f7ef)}.goalSavingsMetric.primary strong{font-size:1.18rem}.goalSavingsHint{margin:0;color:var(--muted);font-size:.84rem;line-height:1.45}.paycheckGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px}.plainText{margin:0 0 16px;color:var(--muted);line-height:1.55}.forecastSummaryGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}.forecastControls{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px;align-items:end}.forecastControlGroup{display:grid;gap:8px}.forecastControlGroup>span{color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.forecastButtons{display:flex;flex-wrap:wrap;gap:8px}.forecastButtons .choice{min-width:84px;padding:0 10px}.forecastSummary{min-height:116px;display:grid;gap:6px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.forecastSummary span,.forecastSummary small{color:var(--muted)}.forecastSummary strong{font-size:1.35rem}.actualSummaryGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:stretch}.actualSummaryGrid div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.actualSummaryGrid span,.actualExpenseHeader,.actualExpenseRow span{color:var(--muted)}.actualSummaryGrid strong{font-size:1.18rem}.actualExpenseTable{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.actualExpenseHeader,.actualExpenseRow{display:grid;grid-template-columns:minmax(180px,1.2fr) 120px 140px 140px;gap:10px;align-items:center;min-width:640px;padding:10px 12px}.actualExpenseHeader{background:#ece6d7;font-size:.82rem;font-weight:800;text-transform:uppercase}.actualExpenseRow{border-top:1px solid var(--line)}.actualExpenseRow input{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fffdf7}.compactSelect{min-width:180px}.closeoutGrid{display:grid;grid-template-columns:minmax(170px,1fr) repeat(4,minmax(120px,.8fr));gap:10px;align-items:stretch}.closeoutMetric{display:grid;gap:5px;align-content:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.closeoutMetric span,.closeoutActions span{color:var(--muted)}.closeoutNotes{margin-top:14px}.closeoutActions{display:flex;align-items:center;gap:12px;margin-top:14px}.monthlyExpenseTable{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.monthlyExpenseHeader,.monthlyExpenseRow,.monthlyExpenseFooter{display:grid;grid-template-columns:minmax(170px,1.2fr) 130px repeat(12,120px);gap:10px;align-items:center;min-width:1760px;padding:10px 12px}.monthlyExpenseHeader{position:sticky;top:0;z-index:1;background:#ece6d7;color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.monthlyExpenseRow,.monthlyExpenseFooter{border-top:1px solid var(--line)}.monthlyExpenseRow span,.monthlyExpenseFooter span{color:var(--muted)}.monthlyExpenseRow input{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--line);border-radius:6px;color:var(--ink);background:#fffdf7}.monthlyExpenseFooter{background:#fffdf7}.tableLike,.goalList,.checklist{display:grid;gap:10px}.debtRow{display:grid;grid-template-columns:minmax(0,1.4fr) 100px 100px 120px;gap:12px;align-items:center;min-height:68px;padding:12px;border:1px solid var(--line);border-radius:8px}.debtRow strong,.debtRow span{display:block}.tag{justify-self:start;padding:6px 10px;border-radius:999px;background:#ece6d7;color:var(--muted);font-size:.82rem}.tag.attention{background:#f7dfd8;color:var(--red)}.strategyButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.strategyControl{display:grid;gap:12px;margin-bottom:16px}.choice{min-height:42px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);text-align:left;padding:0 12px;text-transform:capitalize}.choice.active{border-color:var(--green);background:var(--green);color:#fff}.helperText,.priorityList{color:var(--muted);line-height:1.55}.helperText.noBottom{margin-bottom:0}.priorityList{margin:0;padding-left:20px}.timelineTable{max-height:440px;margin-top:16px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.timelineHeader,.timelineRow{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;align-items:center;min-width:620px;padding:11px 12px}.timelineHeader{position:sticky;top:0;z-index:1;background:#ece6d7;color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase}.timelineRow{border-top:1px solid var(--line)}.timelineRow span{color:var(--muted)}.timelineRow strong{color:var(--ink)}.goalItem{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(180px,1fr) auto;gap:14px;align-items:center;min-height:74px;padding:12px;border:1px solid var(--line);border-radius:8px}.goalItem strong,.goalItem span{display:block}.progressShell{height:12px;border-radius:999px;overflow:hidden;background:#ece6d7}.progressBar{height:100%;min-width:4px;border-radius:inherit;background:var(--green)}.checkItem{min-height:54px;display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.checkItem input{width:18px;height:18px;accent-color:var(--green)}.checkItem svg{color:var(--green)}@media (max-width: 960px){.appHeader,.layout,.authShell,.quickLogGrid{grid-template-columns:1fr}.authCard{justify-content:start}.metricGrid,.allocationGrid,.incomeTimingGrid,.setupGrid,.strategyButtons,.forecastSummaryGrid,.forecastControls,.actualSummaryGrid,.closeoutGrid,.expenseSnapshot,.scenarioGrid,.expenseAddGrid,.expenseRow,.cardAddGrid,.cardEditRow,.activityAddGrid,.paymentAddGrid,.paymentSummaryGrid,.paymentRow,.goalAddGrid,.goalEditRow,.paycheckGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.addButton,.iconButton{width:100%}.panel.compact{position:static}}@media (max-width: 640px){.shell{width:min(100% - 20px,1220px);padding-top:18px}.metricGrid,.allocationGrid,.incomeTimingGrid,.setupGrid,.strategyButtons,.forecastSummaryGrid,.forecastControls,.actualSummaryGrid,.closeoutGrid,.expenseSnapshot,.scenarioGrid,.expenseAddGrid,.expenseRow,.cardAddGrid,.cardEditRow,.activityAddGrid,.paymentAddGrid,.paymentSummaryGrid,.paymentRow,.goalAddGrid,.goalEditRow,.paycheckGrid,.debtRow,.goalItem,.goalSavingsBreakdown{grid-template-columns:1fr}.expensePlannerHeader,.expensePaneHeader{align-items:stretch;flex-direction:column}.expenseModeSwitch{width:100%}.statusPanel{min-width:0}.authShell{width:min(100% - 20px,1040px);padding-top:18px}}
