:root{
  --paper:#FBF8F2; --paper-raised:#FFFFFF; --ink:#1B1A17; --ink-soft:#5B564C; --line:#E3DDCF;
  --accent:#C97A2B; --accent-soft:#F3E0C4; --accent-2:#33506B; --accent-2-soft:#DCE6EC;
  --good:#3F7856; --good-soft:#DEEAE2; --bad:#B14A3A; --bad-soft:#F5E1DC;
  --shadow: 0 1px 2px rgba(27,26,23,0.06), 0 8px 24px -12px rgba(27,26,23,0.12);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#16151A; --paper-raised:#1E1D23; --ink:#EFEAE0; --ink-soft:#B6AF9F; --line:#39373C;
    --accent:#E6A24F; --accent-soft:#3A2F1D; --accent-2:#8FB2CE; --accent-2-soft:#20313F;
    --good:#7FBB98; --good-soft:#1E3327; --bad:#E08876; --bad-soft:#3A2420;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px -12px rgba(0,0,0,0.5);
  }
}
:root[data-theme="dark"]{
  --paper:#16151A; --paper-raised:#1E1D23; --ink:#EFEAE0; --ink-soft:#B6AF9F; --line:#39373C;
  --accent:#E6A24F; --accent-soft:#3A2F1D; --accent-2:#8FB2CE; --accent-2-soft:#20313F;
  --good:#7FBB98; --good-soft:#1E3327; --bad:#E08876; --bad-soft:#3A2420;
  --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 8px 24px -12px rgba(0,0,0,0.5);
}
*{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
body{ background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,-apple-system,sans-serif; padding-inline:16px; padding-block:24px 60px; line-height:1.5; margin:0; }
.doc{ max-width:640px; margin:0 auto; }
h1,h2,h3{ font-family:'Fraunces',Georgia,serif; font-weight:600; text-wrap:balance; color:var(--ink); margin:0; }
h1{ font-size:1.5rem; }
h2{ font-size:1.15rem; margin-bottom:4px; }
h3{ font-size:.95rem; font-weight:600; }
p{ margin:0; }
a{ color:var(--accent-2); }
.masthead{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.wordmark{ display:flex; align-items:center; gap:8px; text-decoration:none; }
.wordmark .mark{ font-family:'Fraunces',serif; font-weight:700; font-size:.85rem; background:var(--ink); color:var(--paper); padding:3px 8px; border-radius:3px; }
.wordmark span.name{ font-family:'Fraunces',serif; font-weight:600; font-size:1.05rem; color:var(--ink); }
.badge{ font-family:'IBM Plex Mono',monospace; font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); background:var(--accent-soft); padding:3px 8px; border-radius:20px; }
.nav-actions{ display:flex; align-items:center; gap:10px; }
.nav-actions span.who{ font-size:.8rem; color:var(--ink-soft); }
.nav-actions form{ margin:0; }
.linkbtn{ font-family:'Inter',sans-serif; font-size:.8rem; color:var(--ink-soft); background:none; border:none; text-decoration:underline; cursor:pointer; padding:0; }

.dots{ display:flex; gap:6px; margin-bottom:18px; }
.dot{ height:4px; flex:1; border-radius:3px; background:var(--line); }
.dot.done{ background:var(--accent); }

.card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:20px 18px; box-shadow:var(--shadow); }
.eyebrow{ font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:6px; }
.step-lede{ color:var(--ink-soft); font-size:.9rem; margin-top:4px; margin-bottom:18px; }

.chip-grid{ display:flex; flex-direction:column; gap:10px; }
.chip-option{ display:flex; align-items:flex-start; gap:10px; text-align:left; width:100%; border:1.5px solid var(--line); background:var(--paper); color:var(--ink); border-radius:10px; padding:12px 14px; font-family:inherit; font-size:.92rem; cursor:pointer; }
.chip-option b{ display:block; font-size:.94rem; margin-bottom:2px; }
.chip-option small{ color:var(--ink-soft); font-size:.8rem; }
.chip-option.selected{ border-color:var(--accent); background:var(--accent-soft); }

.field{ margin-bottom:16px; }
.field label{ display:block; font-size:.85rem; font-weight:600; margin-bottom:6px; }
.field .hint{ display:block; font-size:.78rem; color:var(--ink-soft); font-weight:400; margin-top:4px; }
.row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.row3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
input[type="number"], input[type="text"], input[type="date"], input[type="email"], input[type="password"], select{
  width:100%; font-family:'IBM Plex Mono',monospace; font-size:.9rem; padding:9px 10px;
  border:1.5px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink);
}
select{ font-family:'Inter',sans-serif; -webkit-appearance:none; appearance:none; }
input:focus, select:focus{ outline:none; border-color:var(--accent); }
.seg{ display:flex; border:1.5px solid var(--line); border-radius:8px; overflow:hidden; }
.seg button{ flex:1; padding:9px 6px; font-size:.82rem; font-family:'Inter',sans-serif; border:none; background:var(--paper); color:var(--ink-soft); cursor:pointer; border-right:1px solid var(--line); }
.seg button:last-child{ border-right:none; }
.seg button.on{ background:var(--accent); color:#fff; font-weight:600; }
.toggle-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); }
.toggle-row:last-child{ border-bottom:none; }
.toggle-row .lab b{ display:block; font-size:.9rem; }
.toggle-row .lab small{ color:var(--ink-soft); font-size:.78rem; }
.switch{ position:relative; width:42px; height:24px; border-radius:20px; background:var(--line); border:none; flex-shrink:0; cursor:pointer; }
.switch.on{ background:var(--accent); }
.switch .knob{ position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .15s ease; }
.switch.on .knob{ transform:translateX(18px); }
.subfields{ padding-top:10px; }

.pay-list{ display:flex; flex-direction:column; gap:8px; margin:10px 0 8px; }
.pay-row, .src-custom-row{ display:grid; grid-template-columns:1fr 90px 30px; gap:7px; align-items:center; }
.pay-row input[type="date"], .src-custom-row input[type="date"]{ font-size:.78rem; padding:8px 6px; }
.pay-row input[type="number"], .src-custom-row input[type="number"]{ text-align:right; }
.pay-remove{ width:30px; height:34px; border-radius:8px; border:1.5px solid var(--line); background:var(--paper); color:var(--ink-soft); font-size:.85rem; cursor:pointer; }
.pay-remove:disabled{ opacity:.3; cursor:default; }
.pay-add{ font-family:'Inter',sans-serif; font-size:.82rem; font-weight:600; color:var(--accent-2); background:none; border:1.5px dashed var(--line); border-radius:8px; padding:8px 10px; width:100%; cursor:pointer; margin-top:2px; }
.pay-total{ font-family:'IBM Plex Mono',monospace; font-size:.78rem; color:var(--ink-soft); margin-top:8px; }

.ov-list{ display:flex; flex-direction:column; gap:10px; margin:10px 0 8px; }
.ov-row{ border:1.5px dashed var(--line); border-radius:10px; padding:10px; background:var(--paper); }
.ov-top{ display:flex; gap:8px; margin-bottom:8px; }
.ov-top .ov-label{ flex:1; font-family:'Inter',sans-serif; }
.ov-remove{ width:34px; height:34px; flex-shrink:0; border-radius:8px; border:1.5px solid var(--line); background:var(--paper-raised); color:var(--ink-soft); font-size:.85rem; cursor:pointer; }
.ov-mini-label{ display:block; font-size:.68rem; color:var(--ink-soft); margin-bottom:3px; }
.ov-row .row2{ margin-bottom:8px; }
.ov-row .row2:last-child{ margin-bottom:0; }
.ov-add{ font-family:'Inter',sans-serif; font-size:.82rem; font-weight:600; color:var(--accent-2); background:none; border:1.5px dashed var(--line); border-radius:8px; padding:8px 10px; width:100%; cursor:pointer; }

.nav-row{ display:flex; gap:10px; margin-top:20px; }
.btn{ font-family:'Inter',sans-serif; font-weight:600; font-size:.92rem; padding:12px 16px; border-radius:9px; border:1.5px solid var(--line); background:var(--paper); color:var(--ink); cursor:pointer; }
.btn.primary{ background:var(--ink); border-color:var(--ink); color:var(--paper); flex:1; }
.btn.ghost{ background:transparent; }
.btn:disabled{ opacity:.4; cursor:default; }
.btn-link{ display:inline-block; text-decoration:none; }

.hero-row{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
.hero-value{ font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:2.4rem; line-height:1; color:var(--ink); }
.hero-label{ font-size:.85rem; color:var(--ink-soft); margin-top:4px; }
.stat-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:16px 0; }
.stat{ background:var(--paper-raised); border:1px solid var(--line); border-radius:10px; padding:12px 13px; }
.stat .v{ font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:1.1rem; font-variant-numeric:tabular-nums; }
.stat .l{ font-size:.74rem; color:var(--ink-soft); margin-top:2px; }

.section-title{ display:flex; align-items:baseline; justify-content:space-between; margin:26px 0 10px; }
.section-title h2{ font-size:1.05rem; }
.chart-wrap{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:14px 10px 8px; box-shadow:var(--shadow); position:relative; }
.chart-note{ font-size:.78rem; color:var(--ink-soft); padding:0 6px 4px; }
svg.chart{ width:100%; height:auto; display:block; touch-action:pan-y; }
.tooltip{ position:absolute; pointer-events:none; background:var(--ink); color:var(--paper); font-family:'IBM Plex Mono',monospace; font-size:.72rem; padding:6px 9px; border-radius:7px; white-space:nowrap; transform:translate(-50%,-115%); opacity:0; transition:opacity .1s; z-index:5; }
.tooltip.show{ opacity:1; }
.tooltip .row{ display:flex; gap:6px; align-items:center; }
.tooltip .sw{ width:7px; height:7px; border-radius:2px; }

.risk-callout{ display:flex; gap:10px; align-items:flex-start; background:var(--bad-soft); border-left:3px solid var(--bad); border-radius:8px; padding:12px 14px; margin-top:12px; }
.risk-callout p{ font-size:.86rem; color:var(--ink); }
.risk-callout b{ color:var(--bad); }
.ok-callout{ background:var(--good-soft); border-left:3px solid var(--good); }
.ok-callout b{ color:var(--good); }

.timeline{ display:flex; flex-direction:column; gap:0; background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }
.tl-item{ display:grid; grid-template-columns:64px 1fr auto; gap:10px; align-items:center; padding:12px 14px; border-bottom:1px solid var(--line); }
.tl-item:last-child{ border-bottom:none; }
.tl-date{ font-family:'IBM Plex Mono',monospace; font-size:.72rem; color:var(--ink-soft); }
.tl-what b{ display:block; font-size:.88rem; }
.tl-what small{ color:var(--ink-soft); font-size:.76rem; }
.tl-amt{ font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:.9rem; font-variant-numeric:tabular-nums; }
.tl-amt.in{ color:var(--good); }
.tl-amt.out{ color:var(--ink); }

.pot-card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:16px; box-shadow:var(--shadow); margin-bottom:10px; }
.pot-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
.pot-top b{ font-size:.92rem; }
.pot-top span{ font-family:'IBM Plex Mono',monospace; font-size:.82rem; color:var(--ink-soft); }
.bar-track{ height:8px; background:var(--accent-2-soft); border-radius:6px; overflow:hidden; }
.bar-fill{ height:100%; background:var(--accent-2); border-radius:6px; }
.pot-foot{ font-size:.78rem; color:var(--ink-soft); margin-top:6px; }

.example-tag{ font-family:'IBM Plex Mono',monospace; font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); background:var(--line); padding:2px 7px; border-radius:20px; }

.score-card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:18px; box-shadow:var(--shadow); }
.score-top{ display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.score-num{ font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:2.6rem; line-height:1; }
.score-label{ font-weight:700; font-size:.92rem; font-family:'Inter',sans-serif; }
.score-sub{ font-size:.76rem; color:var(--ink-soft); margin-top:2px; }
.meter-row{ margin-bottom:10px; }
.meter-row:last-child{ margin-bottom:0; }
.meter-lab{ display:flex; justify-content:space-between; font-size:.78rem; color:var(--ink-soft); margin-bottom:4px; font-family:'IBM Plex Mono',monospace; }

.advice-card{ background:var(--paper-raised); border:1px solid var(--line); border-left:3px solid var(--accent-2); border-radius:10px; padding:14px 16px; margin-bottom:10px; box-shadow:var(--shadow); }
.advice-card h3{ font-size:.9rem; margin-bottom:4px; }
.advice-card p{ font-size:.86rem; color:var(--ink-soft); }

.whatif-card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:16px; box-shadow:var(--shadow); }
.whatif-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
.whatif-top b{ font-size:.92rem; }
.whatif-top span{ font-family:'IBM Plex Mono',monospace; font-weight:600; color:var(--accent); }
input[type="range"]{ width:100%; accent-color:var(--accent); margin-bottom:10px; }
.whatif-result{ font-size:.84rem; color:var(--ink-soft); }
.whatif-result b{ font-family:'IBM Plex Mono',monospace; }

.wk-table{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }
.wk-scroll{ max-height:340px; overflow-y:auto; }
.wk-row{ display:grid; grid-template-columns:60px 1fr 62px 62px; gap:6px; padding:8px 12px; border-bottom:1px solid var(--line); font-size:.76rem; align-items:center; }
.wk-row:last-child{ border-bottom:none; }
.wk-head{ position:sticky; top:0; background:var(--accent-2-soft); color:var(--accent-2); font-family:'IBM Plex Mono',monospace; font-size:.64rem; text-transform:uppercase; letter-spacing:.05em; font-weight:600; z-index:1; }
.wk-date{ font-family:'IBM Plex Mono',monospace; color:var(--ink-soft); }
.wk-note{ color:var(--ink-soft); font-size:.74rem; }
.wk-bal{ font-family:'IBM Plex Mono',monospace; text-align:right; font-variant-numeric:tabular-nums; }
.wk-worst{ color:var(--ink-soft); }
.wk-today{ background:var(--accent-soft); }
.wk-risk{ background:var(--bad-soft); }
.wk-row.wk-row1{ grid-template-columns:60px 1fr 74px; }
.wk-row.wk-row3{ grid-template-columns:52px 1fr 46px 46px 46px; font-size:.68rem; }
.wk-row.wk-row3 .wk-bal{ font-size:.68rem; }

.confirm-btn{ width:100%; margin-top:6px; padding:12px; border-radius:10px; border:1.5px dashed var(--line); background:transparent; color:var(--ink-soft); font-family:'Inter',sans-serif; font-weight:600; font-size:.85rem; cursor:pointer; }
.toast{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(20px); background:var(--good); color:#fff; padding:10px 18px; border-radius:30px; font-size:.85rem; font-weight:600; opacity:0; transition:all .2s ease; pointer-events:none; z-index:20; box-shadow:var(--shadow); }
.toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
.toast.error{ background:var(--bad); }

.restart-link{ display:block; text-align:center; margin-top:22px; font-size:.82rem; color:var(--ink-soft); background:none; border:none; text-decoration:underline; cursor:pointer; font-family:'Inter',sans-serif; width:100%; }

/* auth + landing */
.hero{ text-align:center; padding:36px 0 8px; }
.hero p.lede{ color:var(--ink-soft); font-size:1rem; max-width:46ch; margin:10px auto 0; }
.auth-actions{ display:flex; flex-direction:column; gap:10px; margin-top:24px; }
.error-note{ background:var(--bad-soft); color:var(--bad); border-radius:8px; padding:10px 12px; font-size:.85rem; margin-bottom:14px; }
.checkin-list{ display:flex; flex-direction:column; gap:0; background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }

/* landing page feature grid */
.feature-grid{ display:flex; flex-direction:column; gap:12px; margin-top:28px; }
.feature-card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; padding:16px 18px; box-shadow:var(--shadow); }
.feature-card h3{ font-size:.94rem; margin-bottom:6px; }
.feature-card p{ font-size:.85rem; color:var(--ink-soft); }

.preview-grid{ display:flex; flex-direction:column; gap:22px; margin-top:14px; }
.preview-shot{ background:var(--paper-raised); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow); }
.preview-shot img{ display:block; width:100%; height:auto; border-bottom:1px solid var(--line); background:var(--paper); }
.preview-cap{ padding:12px 16px 16px; }
.preview-cap h3{ font-size:.9rem; margin-bottom:4px; }
.preview-cap p{ font-size:.82rem; color:var(--ink-soft); margin:0; }

.demo-card{ margin-top:14px; }
#demoChart svg.chart{ width:100%; height:auto; display:block; }

.plan-grid{ display:flex; flex-direction:column; gap:14px; margin-top:18px; }
.plan-card{ text-align:center; }
.plan-card.plan-current{ border-color:var(--accent); }
.plan-price{ font-family:'Fraunces',serif; font-weight:600; font-size:1.8rem; margin:6px 0 4px; }
.plan-price span{ font-family:'Inter',sans-serif; font-weight:400; font-size:.85rem; color:var(--ink-soft); }
.plan-desc{ font-size:.85rem; color:var(--ink-soft); margin-bottom:14px; }
.plan-card form{ margin:0; }
.plan-card button{ width:100%; }

/* inline "edit balance" affordance on the dashboard hero */
.hero-value-row{ display:flex; align-items:baseline; gap:10px; }
.hero-edit-btn{ font-family:'Inter',sans-serif; font-size:.72rem; font-weight:600; color:var(--accent-2); background:var(--accent-2-soft); border:none; border-radius:20px; padding:4px 10px; cursor:pointer; }
.hero-edit-row{ display:flex; gap:8px; align-items:center; margin-top:4px; }
.hero-edit-row input{ width:140px; }
.hero-edit-row .btn{ padding:9px 12px; font-size:.8rem; }

/* scenario view tabs (low / average / high / overlay) */
.scenario-tabs{ display:flex; border:1.5px solid var(--line); border-radius:10px; overflow:hidden; margin-bottom:12px; }
.scenario-tabs button{ flex:1; padding:9px 4px; font-size:.78rem; font-family:'Inter',sans-serif; font-weight:600; border:none; background:var(--paper-raised); color:var(--ink-soft); cursor:pointer; border-right:1px solid var(--line); }
.scenario-tabs button:last-child{ border-right:none; }
.scenario-tabs button.on{ background:var(--ink); color:var(--paper); }
.scenario-tabs button.locked{ color:var(--ink-soft); opacity:.65; }
.scenario-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:10px; }
.scenario-stat{ text-align:center; background:var(--paper-raised); border:1px solid var(--line); border-radius:10px; padding:10px 6px; }
.scenario-stat .v{ font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:.95rem; }
.scenario-stat .l{ font-size:.68rem; color:var(--ink-soft); margin-top:2px; }
.scenario-stat.sc-low .v{ color:var(--bad); }
.scenario-stat.sc-high .v{ color:var(--good); }

/* week-by-week: table/calendar toggle + calendar grid */
.wk-view-toggle{ display:flex; justify-content:flex-end; margin-bottom:8px; }
.wk-view-toggle button{ font-family:'Inter',sans-serif; font-size:.76rem; font-weight:600; color:var(--accent-2); background:var(--accent-2-soft); border:none; border-radius:20px; padding:5px 12px; cursor:pointer; }
.wk-view-toggle button.locked{ color:var(--ink-soft); background:var(--line); }
.wk-calendar{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; max-height:400px; overflow-y:auto; padding:4px; }
.wk-cal-cell{ background:var(--paper-raised); border:1px solid var(--line); border-radius:10px; padding:9px 8px; font-size:.72rem; }
.wk-cal-cell .wcc-date{ font-family:'IBM Plex Mono',monospace; color:var(--ink-soft); display:block; margin-bottom:4px; }
.wk-cal-cell .wcc-bal{ font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:.86rem; display:block; }
.wk-cal-cell .wcc-note{ color:var(--ink-soft); font-size:.66rem; margin-top:3px; display:block; }
.wk-cal-cell.wk-today{ border-color:var(--accent); }
.wk-cal-cell.wk-risk{ background:var(--bad-soft); }

/* credit card debt tracking */
.cc-card{ background:var(--paper-raised); border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:10px; }
.cc-top{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
.cc-top b{ font-size:.92rem; }
.cc-balance{ font-family:'IBM Plex Mono',monospace; font-weight:700; font-size:1.3rem; }
.cc-meta{ font-size:.76rem; color:var(--ink-soft); margin-bottom:10px; }
.cc-actions{ display:grid; grid-template-columns:1fr auto auto; gap:6px; }
.cc-actions input{ font-size:.82rem; }
.cc-actions .btn{ padding:9px 10px; font-size:.78rem; white-space:nowrap; }

/* free trial / freemium gating */
.access-banner{ display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; font-size:.8rem; border-radius:10px; padding:10px 14px; margin-bottom:16px; }
.access-banner a{ font-weight:600; white-space:nowrap; }
.access-trial{ background:var(--accent-soft); color:var(--ink); }
.access-trial a{ color:var(--accent); }
.access-free{ background:var(--accent-2-soft); color:var(--ink); }
.access-free a{ color:var(--accent-2); }
.locked-feature{ text-align:center; }
.locked-feature .btn{ width:100%; }

/* "Tell us in your own words" setup chat */
.ai-option{ border-color:var(--accent); background:var(--accent-soft); }
.ai-log{ display:flex; flex-direction:column; gap:8px; max-height:340px; overflow-y:auto; margin-bottom:12px; }
.ai-msg{ max-width:88%; padding:10px 12px; border-radius:12px; font-size:.9rem; line-height:1.45; overflow-wrap:anywhere; }
.ai-msg-bot{ align-self:flex-start; background:var(--paper); border:1px solid var(--line); color:var(--ink); }
.ai-msg-user{ align-self:flex-end; background:var(--accent-2-soft); color:var(--ink); }
.ai-typing{ color:var(--ink-soft); font-style:italic; }
.ai-input{ width:100%; font-family:'Inter',sans-serif; font-size:.9rem; padding:10px; border:1.5px solid var(--line); border-radius:8px; background:var(--paper); color:var(--ink); resize:vertical; }
.ai-review{ width:100%; margin-top:10px; }

/* What-if chart and account reset */
.whatif-chart-wrap{ margin-top:12px; }
.reset-link{ margin-top:8px; color:var(--bad); }
.ai-edit-btn{ display:block; width:100%; margin:10px 0 4px; border-color:var(--accent); }
