/* Marketing > Consumer Finance view (view key: finance). All rules are scoped under .cf-root.
   Uses the portal tokens (--bg, --surface, --ink, --accent, --line, --muted, --good, --bad, --warn)
   with fallbacks so the standalone design-truth page renders identically. */
.cf-root{--cf-bg:var(--bg,#f7f3ea);--cf-surface:var(--surface,#fff);--cf-surface-2:var(--surface-2,#faf6ed);
  --cf-ink:var(--ink,#1d3540);--cf-ink-soft:var(--ink-soft,#4a6573);--cf-muted:var(--muted,#7a8893);
  --cf-line:var(--line,#e3dccb);--cf-accent:var(--accent,#e87722);--cf-accent-soft:var(--accent-soft,#fbe5d2);
  --cf-good:var(--good,#2d8540);--cf-bad:var(--bad,#c83a1f);--cf-warn:var(--warn,#c98a1d);
  --cf-navy:#1d3540;--cf-brass:#b8863c;--cf-sage:#6b8f78;--cf-slate:#5a7ca8;--cf-plum:#7b4b7a;--cf-sand:#9a8c6b;
  color:var(--cf-ink);font-size:13px;line-height:1.45;font-variant-numeric:tabular-nums}
.cf-root *{box-sizing:border-box}
.cf-testing{display:flex;align-items:center;gap:10px;background:#fbeacb;border:1px solid #e9c98a;color:#6b4a05;
  border-radius:6px;padding:8px 12px;margin-bottom:14px;font-size:12px}
.cf-testing b{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;background:var(--cf-warn);color:#fff;
  border-radius:3px;padding:2px 7px}
.cf-banner{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;font-size:11.5px;color:var(--cf-ink-soft);margin-bottom:14px}
.cf-banner .cf-pill{background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:4px;padding:3px 9px}
.cf-banner a{color:var(--cf-accent);cursor:pointer;text-decoration:underline}
/* sub-tabs */
.cf-tabs{display:flex;gap:2px;border-bottom:1px solid var(--cf-line);margin-bottom:16px;flex-wrap:wrap}
.cf-tabs button{font:inherit;font-size:13px;font-weight:600;color:var(--cf-muted);background:transparent;border:none;
  border-bottom:2px solid transparent;padding:10px 14px;cursor:pointer;white-space:nowrap;margin-bottom:-1px}
.cf-tabs button:hover{color:var(--cf-ink)}
.cf-tabs button.active{color:var(--cf-ink);border-bottom-color:var(--cf-accent)}
/* controls */
.cf-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}
.cf-controls label{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--cf-muted);font-weight:700}
.cf-controls select,.cf-controls input{font:inherit;font-size:12.5px;padding:6px 10px;border:1px solid var(--cf-line);
  border-radius:4px;background:var(--cf-surface);color:var(--cf-ink);min-width:120px}
.cf-controls .cf-btn{font:inherit;font-size:12px;font-weight:600;padding:6px 12px;border-radius:4px;border:1px solid var(--cf-line);
  background:var(--cf-surface);color:var(--cf-ink-soft);cursor:pointer}
.cf-controls .cf-btn:hover{border-color:var(--cf-accent);color:var(--cf-ink)}
.cf-controls .cf-btn.active{background:var(--cf-ink);border-color:var(--cf-ink);color:#fff}
.cf-controls .cf-note{font-size:11.5px;color:var(--cf-muted)}
/* KPI tiles */
.cf-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px}
.cf-kpi{background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:10px;padding:14px 16px;position:relative;overflow:hidden}
.cf-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--cf-accent)}
.cf-kpi .l{font-size:10px;color:var(--cf-muted);text-transform:uppercase;letter-spacing:1px;font-weight:700}
.cf-kpi .v{font-size:24px;font-weight:700;letter-spacing:-.4px;margin-top:4px;line-height:1.1}
.cf-kpi .d{font-size:11.5px;margin-top:4px;color:var(--cf-ink-soft)}
.cf-kpi .d.up{color:var(--cf-good)} .cf-kpi .d.down{color:var(--cf-bad)}
.cf-kpi .d .ctx{color:var(--cf-muted)}
.cf-kpi .basis{font-size:10px;color:var(--cf-muted);margin-top:5px}
/* cards + grid */
.cf-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media (max-width:1100px){.cf-grid2{grid-template-columns:1fr}}
.cf-card{background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:10px;padding:16px 18px;margin-bottom:16px}
.cf-grid2 .cf-card{margin-bottom:0}
.cf-card h3{margin:0 0 2px;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--cf-ink)}
.cf-card h3 .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cf-accent);margin-right:8px;vertical-align:middle}
.cf-card .sub{font-size:11.5px;color:var(--cf-muted);margin-bottom:12px}
.cf-card .sub b{color:var(--cf-ink-soft);font-weight:600}
.cf-chart{position:relative;height:280px} .cf-chart.tall{height:340px} .cf-chart.short{height:220px}
.cf-callout{display:flex;gap:14px;align-items:flex-start;background:var(--cf-navy);color:#e8e4da;border-radius:8px;padding:14px 18px;margin-bottom:16px;font-size:12.5px;line-height:1.55}
.cf-callout .tag{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#d9ad6b;white-space:nowrap;padding-top:2px;font-weight:700}
.cf-callout b{color:#fff}
.cf-empty{border:1.5px dashed var(--cf-line);border-radius:8px;padding:30px;text-align:center;background:var(--cf-surface-2);color:var(--cf-ink-soft)}
.cf-empty h4{margin:0 0 6px;font-size:16px;color:var(--cf-ink)}
.cf-empty code{background:#fff;border:1px solid var(--cf-line);border-radius:3px;padding:1px 5px;font-size:11.5px}
/* tables */
.cf-tablewrap{overflow-x:auto}
table.cf-table{width:100%;border-collapse:collapse;font-size:12.5px}
table.cf-table th,table.cf-table td{text-align:right;padding:7px 9px;border-bottom:1px solid var(--cf-line);white-space:nowrap}
table.cf-table th:first-child,table.cf-table td:first-child{text-align:left}
table.cf-table th{font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--cf-muted);font-weight:700;cursor:pointer;user-select:none;background:var(--cf-surface-2);position:sticky;top:0}
table.cf-table th.sorted{color:var(--cf-ink)}
table.cf-table th.sorted::after{content:" \25BE";font-size:9px} table.cf-table th.sorted.asc::after{content:" \25B4"}
table.cf-table tr:hover td{background:rgba(232,119,34,.05)}
table.cf-table td.up{color:var(--cf-good);font-weight:600} table.cf-table td.down{color:var(--cf-bad);font-weight:600}
table.cf-table td.muted,table.cf-table th.muted{color:var(--cf-muted)}
table.cf-table tr.total td{font-weight:700;border-top:2px solid var(--cf-line)}
table.cf-table td .bar{display:inline-block;height:8px;background:var(--cf-accent);border-radius:2px;vertical-align:middle;margin-right:6px;opacity:.85}
.cf-legacy{font-size:9.5px;border:1px solid var(--cf-line);border-radius:3px;padding:1px 5px;color:var(--cf-muted);margin-left:6px;vertical-align:middle}
/* notes drawer */
.cf-notes{background:var(--cf-surface);border:1px solid var(--cf-line);border-radius:10px;padding:14px 18px;margin-bottom:16px;display:none}
.cf-notes.open{display:block}
.cf-notes h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--cf-ink)}
.cf-notes ol{margin:0 0 10px 18px;padding:0;font-size:12px;color:var(--cf-ink-soft)} .cf-notes li{margin-bottom:5px}
.cf-notes table{font-size:11.5px;width:100%;border-collapse:collapse} .cf-notes td{padding:4px 8px 4px 0;vertical-align:top;border-bottom:1px solid var(--cf-line);color:var(--cf-ink-soft)}
.cf-notes td:first-child{font-weight:600;color:var(--cf-ink);white-space:nowrap}
.cf-foot{font-size:11px;color:var(--cf-muted);margin-top:6px;line-height:1.6}
.cf-error{padding:30px;text-align:center;color:var(--cf-bad)}
