/* Multi-card Find money — mockup palette (Hanken Grotesk + deeper greens),
   scoped under .td-fm so it never leaks into the app's other stages.
   Layout mirrors graphics/Trajectory Dashboard.html. */
.td-fm{
  /* Ivory Glass palette (Compass · Step 4). */
  --td-ink:#22303F; --td-muted:#5C6B80; --td-muted2:#7E8CA0; --td-faint:#9AA7B8; --td-faint2:#B0B9C6;
  --td-green:#2F7A57; --td-greenD:#25603F; --td-ref:#B3ADA2; --td-gridln:rgba(60,72,96,.12);
  --td-glass:linear-gradient(155deg,#FFFFFF,#F6F9FC); --td-cardbd:rgba(255,255,255,.9); --td-line2:rgba(60,72,96,.12);
  --td-chip:rgba(255,255,255,.6); --td-chipbd:rgba(60,72,96,.12);
  --td-int:#41506A; --td-spd:#41506A; --td-pay:#41506A;
  --td-sans:'Space Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  --td-serif:'Newsreader',Georgia,serif;
  --td-shadow:0 30px 70px -50px rgba(60,72,96,.5),inset 0 1px 0 rgba(255,255,255,.9);
  font-family:var(--td-sans); color:var(--td-ink);
}
/* cursor spotlight layers (painted by the app.js spotlight controller) */
.td-fm [data-spot]{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s ease;border-radius:inherit}

/* ── main: chart | find ──
   The find column's content lives in an ABSOLUTELY-positioned .td-find-inner, so it
   contributes 0 to the grid row height — the row is sized by the chart panel alone.
   align-items:stretch then makes the (empty-intrinsic) find cell fill that height, and
   .td-find-inner scrolls internally. Net: expanding options never grows the panel or
   the page; the right column just scrolls. */
.td-fm .td-main{display:grid;grid-template-columns:1fr 384px;gap:28px;align-items:stretch;margin-top:4px}
@media(max-width:1040px){.td-fm .td-main{grid-template-columns:1fr}}

.td-fm .td-chartcard{position:relative;overflow:hidden;background:var(--td-glass);border:1px solid var(--td-cardbd);
  border-radius:24px;padding:28px 32px 24px;box-shadow:var(--td-shadow);display:flex;flex-direction:column;min-height:0}
/* soft radial blob, top-right */
.td-fm .td-chartcard::before{content:"";position:absolute;top:-120px;right:-40px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(120,160,220,.16),transparent 68%);pointer-events:none;z-index:0}
.td-fm .td-chartcard>*{position:relative;z-index:1}
.td-fm .td-chart-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.td-fm .td-chart-title{font-family:var(--td-serif);font-size:26px;font-weight:600;color:var(--td-ink)}
.td-fm .td-toggle{display:inline-flex;background:var(--td-chip);border:1px solid rgba(255,255,255,.85);border-radius:12px;
  padding:3px;box-shadow:0 6px 16px -12px rgba(60,72,96,.5)}
.td-fm .td-toggle button{border:0;background:transparent;padding:8px 18px;border-radius:9px;
  font-family:var(--td-sans);font-size:13px;font-weight:600;color:var(--td-muted);cursor:pointer}
.td-fm .td-toggle button.on{background:linear-gradient(135deg,#4F6B92,#33496B);color:#fff}

.td-fm .td-chart{margin-top:10px}
.td-fm .td-svg{width:100%;height:auto;display:block}
.td-fm .td-ax{fill:var(--td-faint);font-size:11px;font-weight:600}
.td-fm .td-endlbl{fill:var(--td-ink);font-size:13px;font-weight:700}
.td-fm .td-scrublbl{fill:var(--td-muted);font-size:11px;font-weight:700}
.td-fm .td-pline{transition:stroke-width .12s,opacity .12s}

.td-fm .td-chart-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;
  margin-top:10px;padding-top:14px;border-top:1px solid var(--td-gridln)}
.td-fm .td-lbl{font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--td-faint)}
.td-fm .td-pathwrap{flex:1;min-width:0}
.td-fm .td-paths{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:7px}
.td-fm .td-chip{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;
  border:1px solid var(--td-chipbd);border-radius:11px;background:var(--td-chip);padding:9px 12px;cursor:pointer;
  text-align:left;transition:.14s;min-width:0}
.td-fm .td-chip:hover{border-color:rgba(60,72,96,.24)}
.td-fm .td-chip.on{background:linear-gradient(135deg,#33496B,#22303F);border-color:rgba(255,255,255,.15)}
.td-fm .td-chip-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.td-fm .td-chip-title{font-family:var(--td-serif);font-size:15px;font-weight:600;color:var(--td-ink);line-height:1.15}
.td-fm .td-chip-time{font-size:12.5px;font-weight:700;color:var(--td-green);white-space:nowrap;flex:none}
.td-fm .td-chip-sub{font-size:10.5px;color:var(--td-muted2);margin-top:1px;line-height:1.25}
.td-fm .td-chip.on .td-chip-title{color:#fff}
.td-fm .td-chip.on .td-chip-time{color:#8FD3AF}
.td-fm .td-chip.on .td-chip-sub{color:#B7C2D4}

/* Chart-top tools: view toggle stacked over the global "no additional spending" toggle, right-aligned */
.td-fm .td-chart-tools{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}
/* "With no additional spending" — global toggle, applies to every payment path */
.td-fm .td-minspend{display:inline-flex;align-items:center;gap:9px;cursor:pointer;
  padding:6px 11px;border:1px solid var(--td-chipbd);border-radius:10px;background:var(--td-chip);
  font-size:12px;font-weight:600;color:var(--td-muted);user-select:none;white-space:nowrap}
.td-fm .td-minspend:hover{border-color:rgba(60,72,96,.24)}
.td-fm .td-minspend input{position:absolute;opacity:0;width:0;height:0}
.td-fm .td-minspend-sw{position:relative;flex:0 0 auto;width:34px;height:19px;border-radius:999px;
  background:var(--td-faint2);transition:.18s}
.td-fm .td-minspend-sw::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;
  background:#fff;box-shadow:0 1px 2px rgba(42,39,36,.28);transition:.18s}
.td-fm .td-minspend input:checked + .td-minspend-sw{background:var(--td-green)}
.td-fm .td-minspend input:checked + .td-minspend-sw::after{transform:translateX(15px)}
.td-fm .td-minspend input:focus-visible + .td-minspend-sw{box-shadow:0 0 0 3px rgba(47,122,87,.25)}
.td-fm .td-minspend-lbl{color:var(--td-ink)}

.td-fm .td-stats{display:flex;gap:34px;flex:none}
.td-fm .td-stat-v{font-family:var(--td-serif);font-size:28px;font-weight:600;color:var(--td-ink);line-height:1.15;margin-top:2px}

/* ── find money column: its OWN internal scroll, pinned to the chart's height ──
   .td-find is stretched by the grid to the chart card's height; its content is
   absolutely positioned so expanding accordion options scrolls INSIDE the column
   and never grows the row (so the chart panel never stretches, page never moves). */
.td-fm .td-find{position:relative;overflow:hidden;min-height:0;background:var(--td-glass);border:1px solid var(--td-cardbd);
  border-radius:24px;box-shadow:var(--td-shadow)}
.td-fm .td-find::before{content:"";position:absolute;bottom:-120px;left:-40px;width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle,rgba(196,164,110,.16),transparent 66%);pointer-events:none;z-index:0}
.td-fm .td-find-inner{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;min-height:0;padding:24px 26px 22px}
.td-fm .td-find-scroll{flex:1;min-height:0;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable}
.td-fm .td-find-foot{flex:none;padding-top:16px;margin-top:14px;border-top:1px solid var(--td-line2);
  font-family:var(--td-serif);font-size:17px;font-style:italic;color:var(--td-green)}
.td-fm .td-found-b{font-weight:600}
.td-fm .td-find-empty{color:var(--td-faint);font-style:italic;font-family:var(--td-sans);font-size:13px}

/* the real accordion (find-money.css) harmonised to the mockup greens inside this page */
.td-fm .fm-group-h{font-family:var(--td-serif);font-size:24px;color:var(--td-ink)}
/* Goal box — leads the panel; the coach sets debt-free-in-N ↔ commit $X/mo (auto-fill) and it draws the goal line */
.td-fm .fm-goal{background:var(--td-glass);border:1px solid var(--td-cardbd);border-radius:16px;padding:16px 18px;
  margin-bottom:16px;box-shadow:0 10px 30px -26px rgba(60,72,96,.5),inset 0 1px 0 rgba(255,255,255,.9)}
.td-fm .fm-goal-eyebrow{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#A07E3E;margin-bottom:9px}
.td-fm .fm-goal-line{font-family:var(--td-serif);font-size:20.5px;line-height:1.4;color:var(--td-ink);font-weight:500}
.td-fm .fm-goal-in{width:52px;border:0;border-bottom:2px solid rgba(160,126,62,.42);background:transparent;
  font-family:var(--td-serif);font-size:20px;font-weight:600;color:#A07E3E;text-align:center;padding:0 2px 1px;margin:0 3px;
  outline:none;-moz-appearance:textfield}
.td-fm .fm-goal-in::-webkit-outer-spin-button,.td-fm .fm-goal-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.td-fm .fm-goal-in:focus{border-bottom-color:#A07E3E}
.td-fm .fm-goal-in::placeholder{color:var(--td-faint2);font-weight:400}
.td-fm .fm-goal-hint{margin-top:10px;font-size:12.5px;font-weight:600;color:var(--td-muted2)}
.td-fm .fm-goal-hint:empty{display:none;margin:0}
.td-fm .fm-goal-hint.warn{color:#C25441}
/* source rows carry the cursor color-shift (data-spot) like the design's rows */
.td-fm .fm-src-head{position:relative;overflow:hidden}
/* the "+" new-recommendation button → the design's gold gradient chip */
.td-fm .fm-add-src{top:0;width:32px;height:32px;border:0;border-radius:10px;color:#1A1204;font-size:18px;font-weight:600;
  background:linear-gradient(135deg,#D9BE86,#C4A46E);box-shadow:0 8px 18px -10px rgba(196,164,110,.7)}
.td-fm .fm-add-src:hover{background:linear-gradient(135deg,#E0C793,#CBAB74);color:#1A1204}
.td-fm .fm-opt.on{border-color:var(--td-green);background:#F1F8F3}
.td-fm .fm-opt.on .fm-opt-radio{border-color:var(--td-green)}
.td-fm .fm-opt.on .fm-opt-radio::after{background:var(--td-green)}
.td-fm .fm-opt-money,.td-fm .fm-src-pill,.td-fm .fm-opt-chip{color:var(--td-greenD)}
/* option: title uses the FULL width; the $ amount sits on its own right-aligned row below it */
.td-fm .fm-opt{align-items:flex-start}
.td-fm .fm-opt-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.td-fm .fm-opt-label{white-space:normal}
.td-fm .fm-opt-from,.td-fm .fm-opt-how{display:none}   /* subtitles dropped — they ate too much space */
.td-fm .fm-opt-moneyrow{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:5px;flex-wrap:wrap}

/* ── bottom: per-card cards (dynamic shrink + wrap, compact) ── */
.td-fm .td-bottom{margin-top:26px}
.td-fm .td-bottom-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.td-fm .td-bottom-lbl{margin-bottom:0}
.td-fm .td-bottom-lbl span{color:var(--td-faint2);font-weight:500;text-transform:none;letter-spacing:0}
/* "Add debt source" pill (design): glass pill + gold "+" square */
.td-fm .td-adddebt{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.6);border:1px solid rgba(60,72,96,.14);
  border-radius:999px;padding:7px 14px 7px 10px;box-shadow:0 6px 16px -12px rgba(60,72,96,.5);cursor:pointer;font-family:inherit}
.td-fm .td-adddebt:hover{border-color:rgba(60,72,96,.26)}
.td-fm .td-adddebt.on{border-color:rgba(196,164,110,.6);background:rgba(255,251,244,.8)}
.td-fm .td-adddebt-ic{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,#D9BE86,#C4A46E);
  display:flex;align-items:center;justify-content:center;color:#1A1204;font-size:15px;font-weight:600;line-height:1}
.td-fm .td-adddebt-t{font-size:12px;font-weight:600;letter-spacing:.04em;color:#5C6B80}
/* Add-debt form (placeholder, styled like the add-recommendation form): name · amount · rate */
.td-fm .td-adddebt-form[hidden]{display:none}
.td-fm .td-adddebt-form{margin-bottom:16px}
.td-fm .td-debt-inner{border:1px solid rgba(60,72,96,.16);background:rgba(255,255,255,.55);border-radius:14px;padding:16px 18px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.td-fm .td-debt-title{font-family:var(--td-serif);font-size:16px;font-weight:600;color:var(--td-ink)}
.td-fm .td-debt-title span{display:block;font-family:var(--td-sans);font-size:12px;font-weight:500;color:var(--td-muted2);margin-top:2px}
.td-fm .td-debt-name{display:block;width:100%;margin-top:12px;border:1px solid rgba(60,72,96,.18);border-radius:10px;
  padding:11px 13px;font-family:inherit;font-size:14.5px;background:rgba(255,255,255,.7);color:var(--td-ink)}
.td-fm .td-debt-name::placeholder{color:var(--td-faint)}
.td-fm .td-debt-name:focus{outline:none;border-color:#4F6B92;box-shadow:0 0 0 3px rgba(79,107,146,.15)}
.td-fm .td-debt-row{display:flex;gap:14px;margin-top:12px;flex-wrap:wrap}
.td-fm .td-debt-field{display:flex;flex-direction:column;gap:6px;flex:1;min-width:160px}
.td-fm .td-debt-lab{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--td-faint)}
.td-fm .td-debt-amtwrap{display:inline-flex;align-items:center;gap:3px;border:1px solid rgba(60,72,96,.18);border-radius:10px;
  padding:0 12px;background:rgba(255,255,255,.7)}
.td-fm .td-debt-amtwrap:focus-within{border-color:#4F6B92;box-shadow:0 0 0 3px rgba(79,107,146,.15)}
.td-fm .td-debt-pre,.td-fm .td-debt-post{color:var(--td-faint);font-weight:600;font-size:13.5px;white-space:nowrap}
.td-fm .td-debt-amt,.td-fm .td-debt-rate,.td-fm .td-debt-pay,.td-fm .td-debt-spend{flex:1;min-width:0;border:0;
  background:transparent;padding:11px 2px;font-family:inherit;font-size:14.5px;font-variant-numeric:tabular-nums;color:var(--td-ink)}
.td-fm .td-debt-amt:focus,.td-fm .td-debt-rate:focus,.td-fm .td-debt-pay:focus,.td-fm .td-debt-spend:focus{outline:none}
.td-fm .td-debt-name.bad{border-color:#C25441;box-shadow:0 0 0 3px rgba(194,84,65,.12)}
.td-fm .td-debt-amt.bad,.td-fm .td-debt-rate.bad{color:#C25441}
.td-fm .td-debt-actions{display:flex;gap:10px;margin-top:14px}
.td-fm .td-debt-save{border:0;border-radius:10px;background:linear-gradient(135deg,#33496B,#22303F);color:#F2F5FA;
  font-family:inherit;font-weight:700;font-size:13.5px;padding:10px 18px;cursor:pointer}
.td-fm .td-debt-save:hover{background:linear-gradient(135deg,#3B547A,#2A3B4F)}
.td-fm .td-debt-cancel{border:1px solid rgba(60,72,96,.18);border-radius:10px;background:rgba(255,255,255,.6);color:var(--td-muted);
  font-family:inherit;font-weight:600;font-size:13.5px;padding:10px 16px;cursor:pointer}
/* The design's exact 4-column grid (the whole stage is fixed-width + zoomed to fit). */
.td-fm .td-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;align-items:start}
/* each grid column = the card with its compass disc hung on the bottom margin (compass lives outside the panel) */
.td-fm .td-card-cell{display:flex;flex-direction:column;align-items:center;min-width:0}
/* glass card tile (design: header · Balance+APR · 3 metrics · Net/mo). Selection = dim/undim. */
.td-fm .td-card{width:100%;box-sizing:border-box;min-width:0;position:relative;overflow:hidden;background:var(--td-glass);
  border:1px solid var(--td-cardbd);border-radius:18px;padding:18px 20px;
  box-shadow:0 20px 46px -34px rgba(60,72,96,.5),inset 0 1px 0 rgba(255,255,255,.9);
  cursor:pointer;transition:box-shadow .18s,opacity .18s}
.td-fm .td-card.off{opacity:.5}
.td-fm .td-card-h{position:relative;z-index:1;display:flex;align-items:center;gap:9px}
.td-fm .td-dot{width:11px;height:11px;border-radius:50%;flex:none}
/* Compass = the ONLY select/deselect control — a gold disc hung centered on the card's bottom margin
   (copied from the Ivory-Glass design). Hover levitates it; clicking greys it out (removes the card). */
.td-fm .td-compass-btn{position:relative;z-index:2;flex:none;margin-top:-19px;width:38px;height:38px;padding:0;
  border-radius:50%;border:1px solid rgba(196,164,110,.55);cursor:pointer;
  background:radial-gradient(circle at 50% 42%,rgba(255,252,244,.95),rgba(247,240,224,.85));
  box-shadow:0 6px 16px -8px rgba(122,92,34,.5),inset 0 1px 0 rgba(255,255,255,.9);
  display:flex;align-items:center;justify-content:center;
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease}
.td-fm .td-compass-btn:hover{transform:translateY(-2px) scale(1.06);
  box-shadow:0 10px 22px -8px rgba(122,92,34,.6),inset 0 1px 0 rgba(255,255,255,.9)}
.td-fm .td-compass-case,.td-fm .td-compass-needle{position:absolute;left:50%;top:50%;user-select:none;-webkit-user-drag:none;pointer-events:none}
.td-fm .td-compass-case{width:34px;height:34px;transform:translate(-50%,-50%);opacity:.92}  /* asset is already gold */
.td-fm .td-compass-needle{width:30px;height:30px;transform-origin:50% 50%;
  transform:translate(-50%,-50%) rotate(var(--rot,0deg));
  filter:drop-shadow(0 1px 1px rgba(122,92,34,.4));
  transition:transform .8s cubic-bezier(.2,.8,.25,1)}
/* Deselected: the disc + compass grey out (the card itself also dims via .td-card.off) */
.td-fm .td-compass-btn.off{border-color:rgba(150,160,175,.5);
  background:radial-gradient(circle at 50% 42%,#F5F6F8,#E7EAEF);
  box-shadow:0 5px 14px -9px rgba(60,72,96,.5),inset 0 1px 0 rgba(255,255,255,.9)}
.td-fm .td-compass-btn.off .td-compass-case{filter:grayscale(1) brightness(1.05);opacity:.75}
.td-fm .td-compass-btn.off .td-compass-needle{filter:grayscale(1) brightness(.95)}
/* per-field undo — a tiny ↺ next to an edited value; reverts only that field (no layout shift) */
.td-fm .td-fld-undo{border:0;background:transparent;padding:0;margin:0 0 0 5px;cursor:pointer;
  color:var(--td-muted2);font-family:var(--td-sans);font-size:12px;font-weight:700;line-height:1;
  vertical-align:middle;transition:color .12s,transform .2s}
.td-fm .td-fld-undo:hover{color:#A07E3E;transform:rotate(-40deg)}
/* APR box is narrow + right-aligned, so its ↺ floats at the bottom-right under the value (never consumes its width) */
.td-fm .td-fld-undo-abs{position:absolute;right:13px;bottom:11px;margin:0;font-size:12.5px}
.td-fm .td-fld-undo-abs:hover{transform:rotate(-40deg)}
.td-fm .td-card-name{flex:1;min-width:0;font-family:var(--td-serif);font-size:18px;font-weight:600;color:var(--td-ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-fm .td-card-last{flex:none;font-family:var(--td-serif);font-size:15px;font-weight:600;color:var(--td-muted);letter-spacing:.03em}
.td-fm .td-card-top{display:flex;gap:10px;margin-top:16px}
.td-fm .td-balbox,.td-fm .td-aprbox{position:relative;overflow:hidden;min-width:0;border:1px solid rgba(60,72,96,.16);
  border-radius:12px;background:rgba(255,255,255,.5);display:flex;flex-direction:column;gap:6px}
.td-fm .td-balbox{flex:2.2;padding:13px 16px}
.td-fm .td-aprbox{flex:1;padding:13px 13px;text-align:right}
.td-fm .td-b-k{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--td-faint)}
.td-fm .td-bal-v{font-family:var(--td-serif);font-size:34px;font-weight:500;color:var(--td-ink);line-height:1;
  cursor:pointer;border-bottom:1px dashed transparent;align-self:flex-start;white-space:nowrap}
.td-fm .td-bal-v:hover{border-bottom-color:var(--td-faint2)}
/* a field turns GOLD only once its value has been changed away from the original */
.td-fm .td-bal-v.ed{color:#A07E3E}
.td-fm .td-card-apr{font-family:var(--td-serif);font-size:21px;font-weight:600;color:var(--td-ink);line-height:1;
  white-space:nowrap;cursor:pointer;border-bottom:1px dashed transparent;align-self:flex-end}
.td-fm .td-card-apr:hover{border-bottom-color:var(--td-faint2)}
.td-fm .td-card-apr.ed{color:#A07E3E}
.td-fm .td-deltas{position:relative;overflow:hidden;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;
  border:1px solid rgba(60,72,96,.16);border-radius:12px;background:rgba(255,255,255,.5);padding:14px 18px}
.td-fm .td-d{display:flex;flex-direction:column;gap:3px;min-width:0}
.td-fm .td-d-c{text-align:center}.td-fm .td-d-r{text-align:right}
.td-fm .td-d-k{font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--td-faint);white-space:nowrap}
.td-fm .td-d-v{font-family:var(--td-serif);font-size:18px;font-weight:500;color:#41506A;font-variant-numeric:tabular-nums;line-height:1}
/* Avg spend / Avg pay are click-to-edit; gold once changed */
.td-fm .td-d-edit{cursor:pointer;border-bottom:1px dashed transparent}
.td-fm .td-d-edit:hover{border-bottom-color:var(--td-faint2)}
.td-fm .td-d-v.ed{color:#A07E3E}
/* inline edit inputs (balance + APR + avg spend/pay) */
.td-fm .td-editwrap{font-family:var(--td-serif);font-size:34px;font-weight:500;color:var(--td-ink);display:inline-flex;align-items:baseline;gap:1px}
.td-fm .td-card-apr .td-editwrap{font-size:21px;font-weight:600}
.td-fm .td-editwrap-sm{font-size:18px;font-weight:500;color:#41506A}
.td-fm .td-editwrap-sm .td-edit-in{width:4ch}
.td-fm .td-edit-in{font:inherit;color:inherit;width:5ch;border:0;border-bottom:2px solid var(--td-green);background:transparent;outline:none;padding:0 2px;text-align:left}
.td-fm .td-card-apr .td-edit-in{width:4ch}
.td-fm .td-edit-in.bad{border-bottom-color:#C25441}
.td-fm .td-net{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;
  margin-top:12px;padding:11px 15px;border-radius:12px}
.td-fm .td-net-k{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--td-muted2);white-space:nowrap}
.td-fm .td-net-r{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.td-fm .td-net-v{font-family:var(--td-serif);font-size:24px;font-weight:600}
.td-fm .td-net-tag{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.td-fm .td-net.climb{background:rgba(194,84,65,.09)} .td-fm .td-net.climb .td-net-v,.td-fm .td-net.climb .td-net-tag{color:#C25441}
.td-fm .td-net.down{background:rgba(47,122,87,.1)} .td-fm .td-net.down .td-net-v,.td-fm .td-net.down .td-net-tag{color:#2F7A57}
.td-fm .td-net.flat{background:rgba(60,72,96,.08)} .td-fm .td-net.flat .td-net-v,.td-fm .td-net.flat .td-net-tag{color:var(--td-muted)}
.td-fm .td-nocards{padding:40px;text-align:center;color:var(--td-faint)}

/* chart scrub balance readouts */
.td-fm .td-scrubval{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}

/* chart line reveals: the dashed reference draws in on first paint; the green "this plan"
   line + area is introduced (left-to-right) only when an option is first selected */
@keyframes tdReveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.td-fm .td-anim-draw{animation:tdReveal .85s ease-out both}
.td-fm .td-anim-in{animation:tdReveal .55s ease-out both}

/* animate the found-money pool figure whenever an option is toggled */
@keyframes tdFoundPulse{0%{transform:scale(1)}28%{transform:scale(1.05)}100%{transform:scale(1)}}
.td-fm .td-find-foot{transform-origin:left center}
.td-fm .td-find-foot.td-found-pulse{animation:tdFoundPulse .5s ease-out}
.td-fm .td-find-foot.td-found-pulse .td-found-b{animation:tdFoundPulse .5s ease-out}
