/* ────────────────────────────────────────
   funnies.css — Sunday Funnies (Digital Edition)
   Quiet newsprint B/W with one faded comic-red accent.
   Halftone is subtle gray. Comic panels, speech bubbles,
   hand-lettered asides. Finley & Melvin POV.
   ──────────────────────────────────────── */

@import url('https://fonts.googleapis.com/css2?family=Comic+Neue:ital,wght@0,400;0,700;1,700&family=Patrick+Hand&family=Bree+Serif&display=swap');

:root {
  /* Paper & ink */
  --paper:#FAFAF7;
  --paper-deep:#F2F0EA;
  --paper-warm:#F6F3EB;
  --white:#FFFFFF;
  --ink:#1B1B1B;
  --ink-soft:rgba(27,27,27,0.62);
  --ink-mute:rgba(27,27,27,0.42);
  --rule:rgba(27,27,27,0.22);
  --rule-strong:rgba(27,27,27,0.55);

  /* The one accent — a faded Sunday-paper red, much quieter than CMYK */
  --accent:#A8362F;
  --accent-deep:#7C2620;
  --accent-soft:rgba(168,54,47,0.10);
  --accent-tint:rgba(168,54,47,0.18);
  --accent-wash:rgba(168,54,47,0.04);

  /* Neutral washes for alternation */
  --wash-1:rgba(27,27,27,0.035);
  --wash-2:rgba(27,27,27,0.065);
  --wash-3:rgba(27,27,27,0.10);

  /* Stable category palette — Fixed Costs (newsprint warm) */
  --cat-fixed-1:#A8362F; /* Home — faded comic red */
  --cat-fixed-2:#5C5C5C; /* Groceries — charcoal */
  --cat-fixed-3:#8A6A4A; /* Auto — sepia */
  --cat-fixed-4:#9A4A3A; /* Health — muted brick */
  --cat-fixed-5:#B89878; /* Subs — buff */

  /* Stable category palette — Guilt-Free (newsprint cool) */
  --cat-guilt-1:#3D3D3D; /* Allowances — graphite */
  --cat-guilt-2:#7C2620; /* Restaurants — deep accent */
  --cat-guilt-3:#6E6E6E; /* Joint Amazon — mid gray */
  --cat-guilt-4:#A8362F; /* Entertainment — accent */
  --cat-guilt-5:#8C8C8C; /* Coffee — light gray */

  /* CSP-level bucket palette — used by the income waffle */
  --csp-fixed:#1B1B1B;     /* Fixed Costs — ink */
  --csp-investing:#5C5C5C; /* Investing — charcoal */
  --csp-savings:#9A9A9A;   /* Savings — mid gray */
  --csp-shared:#7C2620;    /* Shared GF — deep accent */
  --csp-personal:#A8362F;  /* Personal GF — accent */
}

body {
  background:var(--paper);
  color:var(--ink);
  font-family:'Comic Neue', cursive;
  font-weight:400;
  font-size:15px;
  line-height:1.45;
  padding:60px 40px 100px;
  position:relative;
  -webkit-font-smoothing:antialiased;
}

/* Quiet gray halftone — single channel, low opacity */
body::before {
  content:'';
  position:fixed; inset:0;
  pointer-events:none; z-index:998;
  opacity:0.10;
  background-image:radial-gradient(circle, #1B1B1B 1px, transparent 1.4px);
  background-size:7px 7px;
  background-position:0 0;
  mix-blend-mode:multiply;
}
/* Subtle paper grain */
body::after {
  content:'';
  position:fixed; inset:0;
  pointer-events:none; z-index:999;
  opacity:0.22; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2 0 0 0 0 0.18 0 0 0 0 0.16 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ── Theme picker overrides ── */
.theme-picker-button {
  background:var(--paper) !important;
  border:2px solid var(--ink) !important;
  color:var(--ink) !important;
  box-shadow:2px 2px 0 var(--ink) !important;
  font-family:'Comic Neue', cursive !important;
  font-weight:700 !important;
  border-radius:0 !important;
}
.theme-picker-menu {
  background:var(--paper) !important;
  border:2px solid var(--ink) !important;
  box-shadow:3px 3px 0 var(--accent) !important;
}
.theme-picker-option { color:var(--ink) !important; border-bottom-color:rgba(27,27,27,0.15) !important }
.theme-picker-option:hover { background:var(--wash-1) !important }
.theme-picker-option.active { background:var(--accent-soft) !important }
.theme-picker-option.active::after { color:var(--accent) !important }
.theme-picker-section {
  color:var(--accent) !important;
  background:var(--wash-1) !important;
  font-weight:700 !important;
}

/* ── Masthead (comic banner, quieted) ── */
.masthead {
  background:var(--paper);
  color:var(--ink);
  padding:22px 28px;
  border:3px solid var(--ink);
  display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center; gap:24px;
  box-shadow:5px 5px 0 var(--ink);
  margin-bottom:32px;
  position:relative;
}
.masthead::after {
  content:''; position:absolute;
  top:5px; left:5px; right:5px; bottom:5px;
  border:1px solid var(--ink);
  pointer-events:none;
}
.meta {
  font-family:'Bree Serif', serif;
  font-weight:400; font-size:12px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-soft); line-height:1.7;
}
.meta-stack { display:flex; flex-direction:column; gap:2px }
.meta-r { text-align:right; color:var(--ink-soft) !important }
.masthead-title {
  font-family:'Comic Neue', cursive;
  font-weight:700;
  font-size:clamp(34px, 5vw, 52px);
  line-height:0.95; text-align:center;
  letter-spacing:-0.02em;
  color:var(--ink);
  text-shadow:2px 2px 0 var(--accent-tint);
  position:relative; z-index:1;
}
.masthead-title em {
  font-style:italic; font-weight:700;
  color:var(--accent);
  text-shadow:none;
}
.subhead {
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 4px 32px;
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--ink);
}
.dateline {
  font-family:'Patrick Hand', cursive;
  font-style:normal; font-weight:400;
  font-size:20px;
  color:var(--accent);
  letter-spacing:0; text-transform:none;
  background:var(--paper);
  padding:4px 14px;
  border:2px solid var(--ink);
  box-shadow:2px 2px 0 var(--ink);
  transform:rotate(-2deg);
  display:inline-block;
}

/* ── Verdict ── */
.verdict {
  background:var(--paper);
  border:3px solid var(--ink);
  display:grid; grid-template-columns:auto 1fr auto;
  gap:24px; align-items:center;
  padding:24px 28px; margin-bottom:40px;
  box-shadow:5px 5px 0 var(--ink);
  position:relative;
}
.verdict::before {
  content:'POW!'; position:absolute;
  top:-18px; right:-14px;
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:17px;
  background:var(--accent); color:var(--paper);
  padding:7px 14px; border:2px solid var(--ink);
  box-shadow:2px 2px 0 var(--ink);
  transform:rotate(7deg); z-index:2;
  letter-spacing:0.06em;
}
.verdict-left, .verdict-right {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--ink); background:var(--paper);
  padding:6px 12px; border:2px solid var(--ink);
  white-space:nowrap;
}
.verdict-right {
  text-align:center;
}
.verdict-quote {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:22px;
  line-height:1.4; text-align:center;
  color:var(--ink);
}
.verdict-quote::before, .verdict-quote::after { content:none }

/* ── Sections (comic panels) ── */
.section {
  background:var(--paper);
  border:3px solid var(--ink);
  padding:24px 28px; margin-bottom:40px;
  position:relative;
  box-shadow:5px 5px 0 var(--ink);
}
.section:nth-child(odd of .section) { background:var(--paper-deep) }

.section-head {
  border-bottom:2.5px solid var(--ink) !important;
  padding-bottom:14px;
  margin-bottom:24px;
  position:relative;
}
/* PANEL N tag (rotated, quieted) */
.section-head::before {
  content:'PANEL'; position:absolute;
  top:-34px; left:-22px;
  background:var(--paper); color:var(--ink);
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  padding:5px 14px; border:2px solid var(--ink);
  box-shadow:2px 2px 0 var(--ink);
  transform:rotate(-4deg);
  letter-spacing:0.08em; z-index:5;
  text-transform:uppercase;
}
.section-head::after { content:none }
.section-num {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  color:var(--paper); background:var(--ink);
  padding:6px 12px; border:2px solid var(--ink);
  letter-spacing:0.06em;
}
.section-title {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:28px;
  letter-spacing:-0.01em; line-height:1;
  color:var(--ink);
  text-shadow:1.5px 1.5px 0 var(--accent-tint);
}
.section-title em {
  font-style:italic; font-weight:700;
  color:var(--accent);
  text-shadow:none;
}
.section-tag {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:17px;
  color:var(--ink-soft); letter-spacing:0;
  text-transform:none;
}

/* ── §I Exec stats ── */
.stats {
  border:3px solid var(--ink);
  background:var(--paper); gap:0;
}
.stat {
  padding:24px 22px; border-right:2.5px solid var(--ink);
  position:relative; text-align:center;
}
.stat:last-child { border-right:none }
.stat:nth-child(1) { background:var(--wash-1) }
.stat:nth-child(2) { background:var(--wash-2) }
.stat:nth-child(3) { background:var(--accent-soft) }
.stat:nth-child(4) { background:var(--wash-1) }
.stat-label {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--ink-soft); margin-bottom:12px;
}
.stat-value {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:36px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
}
.stat-delta {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:16px;
  color:var(--ink-soft); margin-top:8px;
}
.stat-delta.neg { color:var(--accent) }
.stat-delta.pos { color:var(--ink) }
.stat-delta.flat { color:var(--ink-mute) }

/* ── §II Gauge ── */
.gauge-wrap {
  background:var(--wash-1);
  border:2.5px solid var(--ink);
  padding:28px 30px; box-shadow:4px 4px 0 var(--ink);
  position:relative;
}
.gauge-current {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:48px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
  text-shadow:2px 2px 0 var(--accent-tint);
}
.gauge-label {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:17px;
  color:var(--ink-soft); margin-top:6px;
}
.gauge-bar {
  height:16px; background:var(--paper);
  border:2px solid var(--ink);
  margin:18px 0 8px; position:relative;
  overflow:hidden;
}
.gauge-fill {
  height:100%; background:var(--ink);
}
.gauge-marker {
  position:absolute; top:-4px; bottom:-4px;
  border-left:2px dashed var(--ink); width:1px;
}
.gauge-marker.target { border-left-color:var(--accent) }
.gauge-legend {
  display:flex; justify-content:space-between;
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.06em; color:var(--ink-soft);
  text-transform:uppercase; margin-bottom:16px;
}
.gauge-note {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:18px;
  color:var(--ink); line-height:1.4;
  padding-top:16px;
  border-top:2px dashed var(--ink);
}

/* ── §III Investments ── */
.invest-grid { gap:24px }
.invest-table {
  background:var(--paper);
  border:2.5px solid var(--ink);
  padding:22px 24px;
  width:100%; border-collapse:collapse;
  box-shadow:4px 4px 0 var(--ink);
}
.invest-table th {
  text-align:left;
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--accent); padding:8px 4px 12px;
  border-bottom:2.5px solid var(--ink);
}
.invest-table th:not(:first-child) { text-align:right }
.invest-table td {
  padding:14px 4px 12px;
  border-bottom:1.5px dashed var(--rule);
  font-family:'Comic Neue', cursive;
  font-weight:400; font-size:17px;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
}
.invest-table td:not(:first-child) { text-align:right; font-weight:700 }
.invest-table tr.total td {
  border-top:2.5px solid var(--ink); border-bottom:0;
  padding-top:14px; font-weight:700; font-size:19px;
  color:var(--ink);
}
.delta-pos { color:var(--ink) }
.delta-neg { color:var(--accent) }
.delta-flat { color:var(--ink-mute) }
.chart-wrap {
  background:var(--paper);
  border:2.5px solid var(--ink);
  padding:18px 20px; height:300px;
  box-shadow:4px 4px 0 var(--ink);
  position:relative;
}
.chart-label {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:18px;
  color:var(--accent); margin-bottom:10px;
  text-align:center;
}

/* ── §IV Goals ── */
.goal {
  background:var(--paper); border:2.5px solid var(--ink);
  padding:20px 22px; box-shadow:4px 4px 0 var(--ink);
  position:relative;
}
.goal:nth-child(1) { background:var(--wash-1) }
.goal:nth-child(2) { background:var(--wash-2) }
.goal:nth-child(3) { background:var(--accent-soft) }
.goal:nth-child(4) { background:var(--wash-1) }
.goal-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:12px }
.goal-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:17px;
  color:var(--ink);
}
.goal-status {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:17px;
}
.goal-status.pos { color:var(--ink) }
.goal-status.warn { color:var(--accent) }
.goal-status.neg { color:var(--accent) }
.goal-status.flat { color:var(--ink-mute) }
.goal-bar {
  height:9px; background:var(--paper);
  border:1.5px solid var(--ink);
  margin-bottom:10px; overflow:hidden;
}
.goal-fill { height:100%; background:var(--ink) }
.goal-fill.warn { background:var(--accent) }
.goal-fill.neg { background:var(--accent) }
.goal-detail {
  display:flex; justify-content:space-between;
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:15px;
  color:var(--ink);
}
.goal-detail .muted { color:var(--ink-mute); font-style:italic }

/* ── §V Buckets ── */
.bucket {
  background:var(--paper); border:2.5px solid var(--ink);
  padding:20px; position:relative;
  box-shadow:4px 4px 0 var(--ink);
  transition:transform 0.15s;
}
.bucket:nth-child(1) { background:var(--wash-1) }
.bucket:nth-child(2) { background:var(--wash-2) }
.bucket:nth-child(3) { background:var(--accent-soft) }
.bucket:nth-child(4) { background:var(--wash-1) }
.bucket:hover { transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--ink) }
.bucket-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--paper); background:var(--ink);
  padding:6px 10px; border:2px solid var(--ink);
  margin-bottom:12px; text-align:center;
}
.bucket-actual {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:38px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
  margin-bottom:6px; text-align:center;
  text-shadow:2px 2px 0 var(--accent-tint);
}
.bucket-target {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:15px;
  color:var(--ink-soft); margin-bottom:12px;
  text-align:center;
}
.bucket-bar {
  height:9px; background:var(--paper);
  border:1.5px solid var(--ink);
  margin-bottom:12px; overflow:hidden;
}
.bucket-bar-fill { height:100%; background:var(--ink) }
.bucket-bar-fill.warn { background:var(--accent-deep); opacity:0.7 }
.bucket-bar-fill.over { background:var(--accent) }
.bucket-status {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:18px;
  text-align:center;
}
.bucket-status.pos { color:var(--ink) }
.bucket-status.neg { color:var(--accent) }

.bucket:hover .bucket-detail { opacity:1; pointer-events:auto; transform:translateY(0) }
.bucket-detail {
  background:var(--ink); color:var(--paper);
  border:2.5px solid var(--ink);
  box-shadow:4px 4px 0 var(--accent);
}
.bucket-detail::before {
  background:var(--ink);
  border-top:2.5px solid var(--ink);
  border-left:2.5px solid var(--ink);
}
.bucket-detail-head {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--paper);
  letter-spacing:0.14em;
  border-bottom-color:rgba(250,250,247,0.3);
}
.bucket-detail-row { border-bottom-color:rgba(250,250,247,0.18) }
.bucket-detail-row .name {
  font-family:'Patrick Hand', cursive;
  font-style:normal; font-size:16px;
  color:var(--paper);
}
.bucket-detail-row .amt {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--paper);
}
.bucket-detail-row .var {
  font-family:'Patrick Hand', cursive;
  font-size:15px;
}
.bucket-detail-row .var.pos { color:rgba(250,250,247,0.85) }
.bucket-detail-row .var.neg { color:#E89A95 }
.bucket-detail-row .var.flat { color:rgba(250,250,247,0.5) }
.bucket-detail-total { border-top-color:var(--paper) }
.bucket-detail-total .label {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-style:normal;
  color:var(--paper); text-transform:uppercase;
  letter-spacing:0.04em;
}
.bucket-detail-total .total-amt {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--paper);
}
.bucket-detail-total .total-pct {
  font-family:'Patrick Hand', cursive;
  color:rgba(250,250,247,0.7); background:transparent;
}
.bucket-detail-foot {
  font-family:'Patrick Hand', cursive;
  font-style:normal; color:rgba(250,250,247,0.7);
}

/* ── §VI Pace ── */
.pace-card {
  background:var(--wash-1);
  border:2.5px solid var(--ink);
  padding:24px 28px;
  box-shadow:4px 4px 0 var(--ink);
}
.pace-note {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:17px;
  color:var(--ink); margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:2px dashed var(--ink);
  line-height:1.5;
}
.pace-row {
  display:grid; grid-template-columns:140px 1fr 200px;
  gap:18px; align-items:center;
  padding:11px 0; border-bottom:1px dashed var(--rule);
}
.pace-row:last-child { border-bottom:none }
.pace-label {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:15px;
  color:var(--ink);
}
.pace-bars { display:flex; flex-direction:column; gap:4px }
.pace-track {
  height:8px; background:var(--paper);
  border:1.5px solid var(--ink);
}
.pace-actual { height:100%; background:var(--ink) }
.pace-actual.warn { background:var(--accent-deep); opacity:0.7 }
.pace-actual.neg { background:var(--accent) }
.pace-target { height:100%; background:var(--ink); opacity:0.35 }
.pace-amt {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  text-align:right; font-variant-numeric:tabular-nums;
  color:var(--ink);
}

/* ── §VII Income ── */
.income-strip {
  background:var(--paper);
  border:3px solid var(--ink);
  padding:28px 30px;
  box-shadow:5px 5px 0 var(--ink);
  position:relative;
}
.income-strip::before {
  content:''; position:absolute; inset:7px;
  border:1.5px dashed var(--ink);
  pointer-events:none;
}
.income-label {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--ink-soft); line-height:1.5;
}
.income-value {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:64px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
  text-align:center;
  text-shadow:3px 3px 0 var(--accent-tint);
}
.income-note {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:16px;
  color:var(--ink-soft); max-width:280px;
  text-align:right; line-height:1.5;
}

/* ── §VIII Treemap ── */
.treemap-meta {
  display:flex; align-items:baseline; gap:18px;
  padding:0 4px 18px; flex-wrap:wrap;
  justify-content:center; text-align:center;
}
.treemap-eyebrow {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--accent);
}
.treemap-total {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:48px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
  text-shadow:2px 2px 0 var(--accent-tint);
}
.treemap-note {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:18px;
  color:var(--ink-soft);
}
.treemap {
  border:3px solid var(--ink);
  background:var(--paper);
  box-shadow:4px 4px 0 var(--ink);
}
.tm-bucket { border-right:2.5px solid var(--ink) }
.tm-bucket-head {
  padding:14px 22px 12px;
  background:var(--ink); color:var(--paper);
  border-bottom:2.5px solid var(--ink);
}
.tm-bucket-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-style:normal;
  font-size:19px;
}
.tm-bucket-total {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:22px;
  color:var(--paper); font-feature-settings:normal;
}
.tm-bucket.guilt .tm-bucket-name { color:var(--paper) }
.tm-bucket.guilt .tm-bucket-total { color:var(--accent-tint); color:rgba(250,250,247,0.75) }
.tm-tile {
  border-bottom:1.5px solid var(--ink);
  padding:14px 20px;
  position:relative;
}
.tm-bucket.fixed .tm-tile:nth-child(1) { background:var(--wash-3) }
.tm-bucket.fixed .tm-tile:nth-child(2) { background:var(--wash-2) }
.tm-bucket.fixed .tm-tile:nth-child(3) { background:rgba(27,27,27,0.05) }
.tm-bucket.fixed .tm-tile:nth-child(4) { background:rgba(27,27,27,0.03) }
.tm-bucket.fixed .tm-tile:nth-child(5) { background:rgba(27,27,27,0.015) }
.tm-bucket.guilt .tm-tile:nth-child(1) { background:var(--accent-tint) }
.tm-bucket.guilt .tm-tile:nth-child(2) { background:rgba(168,54,47,0.10) }
.tm-bucket.guilt .tm-tile:nth-child(3) { background:rgba(168,54,47,0.06) }
.tm-bucket.guilt .tm-tile:nth-child(4) { background:rgba(168,54,47,0.035) }
.tm-bucket.guilt .tm-tile:nth-child(5) { background:rgba(168,54,47,0.02) }
.tm-tile-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-style:normal;
  font-size:18px; color:var(--ink);
}
.tm-tile-sub {
  font-family:'Patrick Hand', cursive;
  font-style:normal; font-weight:400;
  font-size:13px; color:var(--ink-soft);
  margin-top:4px;
}
.tm-tile-amt {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:26px;
  letter-spacing:-0.02em; color:var(--ink);
  font-feature-settings:normal;
}
.tm-tile-pct {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:13px;
  color:var(--ink-soft); letter-spacing:0;
  text-transform:none;
}

/* ── §IV Spending pies (Sunday Funnies) ── */
.pie-card {
  background:var(--paper);
  border:2.5px solid var(--ink);
  padding:20px 22px;
  box-shadow:4px 4px 0 var(--ink);
}
.pie-head { padding-bottom:12px; border-bottom:2px dashed var(--ink) }
.pie-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:19px;
  color:var(--ink);
}
.pie-total {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:16px;
  color:var(--accent); letter-spacing:0;
  font-variant-numeric:tabular-nums;
}
.pie-center-num {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:26px;
  line-height:1; color:var(--ink);
  font-variant-numeric:tabular-nums;
  text-shadow:2px 2px 0 var(--accent-tint);
}
.pie-center-lbl {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:14px;
  color:var(--ink-soft); margin-top:6px;
}
.pie-legend-header {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom-color:var(--ink); opacity:1;
}
.pie-legend-row {
  border-bottom:1.5px dashed var(--rule);
}
.pie-legend-row:last-child { border-bottom:0 }
.pie-swatch { box-shadow:0 0 0 1.5px var(--ink) }
.pie-cat {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:16px;
  color:var(--ink);
}
.pie-amt-sub {
  font-family:'Patrick Hand', cursive;
  font-size:13px; letter-spacing:0;
  color:var(--ink-soft); text-transform:none;
}
.pie-pct-pill {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
}

/* ── §IV Income Waffle (Sunday Funnies) ── */
.waffle-card {
  background:var(--paper);
  border:2.5px solid var(--ink);
  padding:30px 32px;
  box-shadow:4px 4px 0 var(--ink);
}
.waffle-caption {
  font-family:'Patrick Hand', cursive;
  font-size:14px; color:var(--ink-soft);
  text-align:center;
}
.waffle-legend-header {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:2px dashed var(--ink);
}
.waffle-legend-row {
  border-bottom:1.5px dashed var(--rule);
}
.waffle-legend-row:last-child { border-bottom:0 }
.waffle-swatch { box-shadow:0 0 0 1.5px var(--ink); }
.waffle-cat {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:17px;
  color:var(--ink);
}
.waffle-amt-sub {
  font-family:'Patrick Hand', cursive;
  font-size:13px; text-transform:none;
  letter-spacing:0; color:var(--ink-soft);
}
.waffle-pill {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
}
.waffle-cell {
  background:rgba(27,27,27,0.06);
}

/* ── §IX Recurring ── */
.recurring-table {
  background:var(--paper);
  border:2.5px solid var(--ink);
  border-collapse:collapse; width:100%;
  box-shadow:4px 4px 0 var(--ink);
}
.recurring-table th {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--accent); padding:14px 18px;
  border-bottom:2.5px solid var(--ink);
  background:var(--wash-1); text-align:left;
}
.recurring-table th.right { text-align:right }
.recurring-table td {
  padding:11px 18px;
  border-bottom:1.5px dashed var(--rule);
  font-family:'Comic Neue', cursive;
  font-weight:400; font-size:15px;
  color:var(--ink);
}
.recurring-table td.right {
  text-align:right; font-weight:700;
  font-variant-numeric:tabular-nums;
}
.recurring-table td.muted {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:14px;
  color:var(--ink-soft); letter-spacing:0;
}
.recurring-table .total-row td {
  border-top:2.5px solid var(--ink);
  background:var(--wash-1);
  font-weight:700; font-size:16px;
  color:var(--accent);
}
.recurring-note {
  margin-top:14px; padding:14px 18px;
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:17px;
  color:var(--ink); line-height:1.5;
}
.recurring-note strong {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--accent);
}

/* ── §X Spending detail ── */
.spending {
  background:var(--paper);
  border:2.5px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
}
details.sub { border-bottom:1.5px dashed var(--rule) }
details.sub:last-child { border-bottom:none }
.disclosure {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:14px;
  color:var(--accent); width:18px;
  transition:transform 0.15s;
}
details.master { border-bottom:2.5px solid var(--ink) }
details.master:last-child { border-bottom:none }
details.master > summary {
  padding:18px 14px;
  background:var(--wash-1);
  grid-template-columns:auto 1fr auto auto; gap:18px;
  border-bottom:1.5px solid var(--ink);
}
details.master:nth-of-type(2) > summary { background:var(--accent-soft) }
details.master > summary:hover { filter:brightness(0.97) }
.cat-name.master-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:24px;
  letter-spacing:-0.01em; color:var(--ink);
}
.cat-name.master-name em {
  font-style:italic; font-weight:700;
  color:var(--accent);
}
.cat-amount.master-amount {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:24px;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}
details.sub > summary { padding:13px 14px 13px 36px }
details.sub > summary:hover { background:var(--wash-1) }
.cat-name {
  font-family:'Comic Neue', cursive;
  font-weight:400; font-size:17px;
  color:var(--ink);
}
.cat-count {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:14px;
  color:var(--ink-soft); letter-spacing:0;
  text-transform:none;
}
.cat-amount {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:19px;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
}
.cat-children {
  padding:8px 36px 16px 60px;
  background:var(--paper-deep);
}
.cat-child {
  display:flex; justify-content:space-between;
  padding:5px 0;
  font-family:'Patrick Hand', cursive;
  color:var(--ink); font-size:15px;
  border-bottom:1px dotted var(--rule);
}
.cat-child:last-child { border-bottom:none }
.cat-child .amount {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}

/* ── §XI Sinking ── */
.sinking-card {
  background:var(--paper); border:2.5px solid var(--ink);
  padding:18px 20px; box-shadow:4px 4px 0 var(--ink);
}
.sinking-card:nth-child(odd) { background:var(--wash-1) }
.sinking-card:nth-child(even) { background:var(--wash-2) }
.sinking-card:last-child {
  background:var(--ink); color:var(--paper);
}
.sinking-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--accent); margin-bottom:10px;
}
.sinking-card:nth-child(even) .sinking-name { color:var(--ink-soft) }
.sinking-card:last-child .sinking-name { color:var(--paper) }
.sinking-bal {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:32px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
  margin-bottom:6px;
}
.sinking-card:last-child .sinking-bal {
  color:var(--paper);
}
.sinking-target {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:14px;
  color:var(--ink-soft); letter-spacing:0;
}
.sinking-card:last-child .sinking-target { color:rgba(250,250,247,0.75) }
.sinking-note {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:17px;
  color:var(--ink); line-height:1.5;
  padding:16px 20px;
  background:var(--wash-1);
  border:2.5px solid var(--ink);
  box-shadow:3px 3px 0 var(--ink);
}

/* ── §XII Top 5 ── */
.top5-card {
  background:var(--paper); border:2.5px solid var(--ink);
  padding:18px 16px; position:relative;
  box-shadow:4px 4px 0 var(--ink);
  transition:all 0.15s;
}
.top5-card:nth-child(1) { background:var(--wash-1) }
.top5-card:nth-child(2) { background:var(--wash-2) }
.top5-card:nth-child(3) { background:var(--accent-soft) }
.top5-card:nth-child(4) { background:var(--wash-1) }
.top5-card:nth-child(5) { background:var(--wash-2) }
.top5-card:hover { transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--ink) }
.top5-rank {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  background:var(--ink); color:var(--paper);
  display:inline-block; padding:3px 9px;
  border:2px solid var(--ink);
  transform:rotate(-3deg);
  letter-spacing:0.06em;
  margin-bottom:12px;
}
.top5-payee {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:15px;
  line-height:1.2; margin-bottom:10px;
  color:var(--ink);
}
.top5-cat {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:14px;
  text-transform:none; color:var(--ink-soft);
  letter-spacing:0; margin-bottom:14px;
}
.top5-amount {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:28px;
  letter-spacing:-0.02em;
  font-variant-numeric:tabular-nums; line-height:1;
  color:var(--ink);
  text-shadow:1.5px 1.5px 0 var(--accent-tint);
}

/* ── §XIII Trends ── */
.trends-grid {
  border:2.5px solid var(--ink);
  background:var(--paper); gap:0;
  box-shadow:4px 4px 0 var(--ink);
}
.trend-card {
  padding:18px 20px;
  border-right:1.5px solid var(--ink);
}
.trend-card:last-child { border-right:none }
.trend-card:nth-child(1) { background:var(--wash-1) }
.trend-card:nth-child(2) { background:var(--accent-soft) }
.trend-card:nth-child(3) { background:var(--wash-2) }
.trend-card:nth-child(4) { background:var(--wash-1) }
.trend-label {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--accent); margin-bottom:8px;
}
.trend-card:nth-child(3) .trend-label { color:var(--ink-soft) }
.trend-value {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:24px; line-height:1;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.trend-note {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:14px;
  margin-top:8px;
  color:var(--ink-soft);
}
.trend-note.muted { color:var(--ink-mute) }
.trend-chart-wrap {
  background:var(--paper);
  border:2.5px solid var(--ink);
  padding:18px 20px; height:300px;
  box-shadow:4px 4px 0 var(--ink);
}

/* ── §XIV DCA ── */
.dca-table {
  background:var(--paper);
  border:2.5px solid var(--ink);
  border-collapse:collapse; width:100%;
  box-shadow:4px 4px 0 var(--ink);
}
.dca-table th {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--accent); padding:14px 18px;
  border-bottom:2.5px solid var(--ink);
  background:var(--wash-1); text-align:left;
}
.dca-table th.right { text-align:right }
.dca-table td {
  padding:12px 18px;
  border-bottom:1.5px dashed var(--rule);
  font-family:'Comic Neue', cursive;
  font-weight:400; font-size:15px;
  color:var(--ink);
}
.dca-table td.right {
  text-align:right; font-weight:700;
  font-variant-numeric:tabular-nums;
}
.dca-table td.muted {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:14px;
  color:var(--ink-soft); letter-spacing:0;
}
.dca-table td.pos { color:var(--ink); font-weight:700 }
.dca-table td.neg { color:var(--accent); font-weight:700 }
.dca-table td.warn { color:var(--accent-deep); font-weight:700 }
.dca-table .total-row td {
  border-top:2.5px solid var(--ink);
  background:var(--wash-1);
  font-weight:700; font-size:16px;
  color:var(--accent);
}
.dca-note {
  margin-top:14px; padding:14px 18px;
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:16px;
  color:var(--ink); line-height:1.5;
}
.dca-note code {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  background:var(--wash-1);
  padding:2px 6px; border:1.5px solid var(--ink);
  color:var(--ink);
}

/* ── §XV Tax ── */
.quarter {
  background:var(--paper); border:2.5px solid var(--ink);
  padding:20px 22px; box-shadow:4px 4px 0 var(--ink);
  text-align:center; position:relative;
}
.quarter:nth-child(1) { background:var(--wash-1) }
.quarter:nth-child(2) { background:var(--accent-soft) }
.quarter:nth-child(3) { background:var(--wash-2) }
.quarter:nth-child(4) { background:var(--wash-1) }
.quarter-date {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--accent);
}
.quarter-label {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:15px;
  color:var(--ink-soft); margin-top:6px;
}
.quarter-amount {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:32px; line-height:1;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
  margin:14px 0 10px;
  text-shadow:2px 2px 0 var(--accent-tint);
}
.quarter-status {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:16px;
  color:var(--ink-soft);
}
.quarter-status.pos { color:var(--ink) }
.quarter-status.warn { color:var(--accent) }
.quarter-status.muted { color:var(--ink-mute) }
.tax-note {
  margin-top:18px; padding:18px 22px;
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:17px;
  color:var(--ink); line-height:1.5;
  background:var(--wash-1);
  border:2.5px solid var(--ink);
  box-shadow:3px 3px 0 var(--accent);
}
.tax-note strong {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--accent);
}
.tax-note a {
  color:var(--accent); text-decoration:underline;
  font-weight:700; font-family:'Comic Neue', cursive;
}

/* ── §XVI Carry-forward ── */
.carryforward-empty {
  background:var(--wash-1);
  border:2.5px dashed var(--ink);
  padding:32px 36px;
  display:grid; grid-template-columns:auto 1fr;
  gap:28px; align-items:center;
}
.carryforward-icon {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-style:normal;
  font-size:72px; color:var(--accent);
  text-shadow:3px 3px 0 var(--accent-tint);
  line-height:1;
}
.carryforward-text {
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:18px;
  color:var(--ink); line-height:1.5;
}
.carryforward-text strong {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--accent);
}

/* ── §XVII Notes ── */
.notes-col {
  background:var(--paper); border:2.5px solid var(--ink);
  padding:24px 26px;
  box-shadow:4px 4px 0 var(--ink);
}
.notes-col:nth-child(1) { background:var(--wash-1) }
.notes-col:nth-child(2) { background:var(--accent-soft) }
.notes-col h4 {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--accent); margin-bottom:16px;
  padding-bottom:10px;
  border-bottom:2.5px solid var(--ink);
}
.notes-col:nth-child(2) h4 { color:var(--ink) }
.notes-col li {
  padding:10px 0 10px 22px;
  border-bottom:1.5px dashed var(--rule);
  font-family:'Patrick Hand', cursive;
  font-weight:400; font-size:16px;
  color:var(--ink); line-height:1.5;
  position:relative;
}
.notes-col li:last-child { border-bottom:none }
.notes-col li::before {
  content:'!'; position:absolute; left:0; top:11px;
  background:var(--accent); color:var(--paper);
  width:14px; height:14px; line-height:14px;
  text-align:center; font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  border-radius:50%; border:1.5px solid var(--ink);
}
.notes-col:nth-child(2) li::before { background:var(--ink) }
.notes-col li strong {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--accent);
}
.notes-col:nth-child(2) li strong { color:var(--ink) }

/* ── Colophon ── */
.colophon {
  margin-top:48px; padding:14px 20px;
  background:var(--ink); color:var(--paper);
  border:2.5px solid var(--ink);
  display:flex; justify-content:space-between;
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.08em; text-transform:uppercase;
  box-shadow:4px 4px 0 var(--accent);
}

/* ── Part banners (Sunday Funnies) ── */
.part-banner {
  background:var(--paper);
  border:3px solid var(--ink);
  padding:24px 28px;
  margin:64px 0 36px;
  box-shadow:6px 6px 0 var(--ink);
  position:relative;
}
.part-banner::before {
  content:'PART';
  position:absolute;
  top:-14px; left:24px;
  background:var(--accent); color:var(--paper);
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  padding:4px 10px;
  border:2px solid var(--ink);
  box-shadow:2px 2px 0 var(--ink);
  letter-spacing:0.08em;
}
.part-num {
  font-family:'Comic Neue', cursive;
  font-weight:700;
  font-size:80px;
  color:var(--accent);
  line-height:0.85;
  text-shadow:3px 3px 0 var(--accent-tint);
  align-self:start;
}
.part-title {
  font-family:'Comic Neue', cursive;
  font-weight:700;
  font-size:38px;
  color:var(--ink);
  letter-spacing:-0.02em;
  line-height:1;
  text-shadow:2px 2px 0 var(--accent-tint);
}
.part-title em {
  font-style:italic;
  color:var(--accent);
  text-shadow:none;
}
.part-sub {
  font-family:'Patrick Hand', cursive;
  font-size:16px;
  color:var(--ink-soft);
  letter-spacing:0;
  text-transform:none;
}
.part-amt {
  font-family:'Patrick Hand', cursive;
  font-size:18px;
  color:var(--accent);
  align-self:end;
}

/* ── Pie toolbar + breadcrumb (Sunday Funnies) ── */
.pie-toolbar {
  font-family:'Patrick Hand', cursive;
  font-size:15px;
  color:var(--ink);
  border-bottom:2px dashed var(--ink);
  padding-bottom:8px;
}
.pie-crumb-link { color:var(--accent) }
.pie-crumb-current { color:var(--ink); font-weight:700 }
.pie-back {
  font-family:'Comic Neue', cursive;
  font-weight:700;
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--paper);
  border:2px solid var(--ink);
  box-shadow:2px 2px 0 var(--ink);
}
.pie-legend-row:hover { background:var(--wash-2) }
.pie-legend-row.dim { opacity:0.35 }

/* ── §XI DmixFund Tracker (Sunday Funnies) ── */
.dmix-headline {
  background:var(--paper);
  border:2.5px solid var(--ink);
  border-left:6px solid var(--accent);
  padding:22px 26px;
  box-shadow:4px 4px 0 var(--ink);
}
.dmix-blended-label {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-soft);
}
.dmix-blended-value {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:48px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
  text-shadow:3px 3px 0 var(--accent-tint);
}
.dmix-summary {
  font-family:'Patrick Hand', cursive;
  font-size:18px;
  color:var(--ink); line-height:1.5;
}
.dmix-summary strong {
  font-family:'Comic Neue', cursive;
  font-weight:700; color:var(--accent);
}
.dmix-caption {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--accent);
}
.dmix-bench-title {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:24px;
  color:var(--ink);
  text-shadow:2px 2px 0 var(--accent-tint);
}
.bench-list {
  background:var(--paper);
  border:2.5px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
}
.bench-row {
  border-bottom:1.5px dashed var(--rule);
}
.bench-row:last-child { border-bottom:none }
.bench-row--portfolio {
  background:var(--wash-2);
  border-bottom:2.5px solid var(--ink);
  border-left:6px solid var(--ink);
}
.bench-row--portfolio .bench-name { color:var(--ink) }
.bench-row--portfolio .bench-bar-fill { background:var(--ink); opacity:0.85 }
.bench-row--self {
  background:var(--accent-soft);
  border-bottom:2.5px solid var(--ink);
  border-left:6px solid var(--accent);
}
.bench-note {
  margin-top:10px;
  padding:6px 4px;
  font-family:'Patrick Hand', cursive;
  font-size:15px;
  color:var(--ink-soft);
  line-height:1.5;
}

/* ── §II What We Made (Sunday Funnies) ── */
.made-headline {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  border:2.5px solid var(--ink);
  background:var(--paper);
  margin-bottom:24px;
  box-shadow:4px 4px 0 var(--ink);
}
.made-stat {
  padding:22px 24px;
  border-right:2px solid var(--ink);
  display:flex;
  flex-direction:column;
  gap:6px;
}
.made-stat:last-child { border-right:none }
.made-stat:first-child {
  background:var(--accent-soft);
  border-right:2.5px solid var(--ink);
}
.made-stat-label {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-soft);
}
.made-stat-value {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:36px; line-height:1;
  color:var(--ink); font-variant-numeric:tabular-nums;
}
.made-stat:first-child .made-stat-value {
  font-size:44px;
  color:var(--accent);
  text-shadow:2px 2px 0 var(--accent-tint);
}
.made-stat-sub {
  font-family:'Patrick Hand', cursive;
  font-size:14px;
  color:var(--ink-soft);
}
.made-buffer-title {
  margin:32px 0 14px;
  padding-top:18px;
  border-top:2px dashed var(--ink);
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:22px;
  color:var(--ink);
  text-shadow:2px 2px 0 var(--accent-tint);
}
.made-buffer-title em {
  font-style:italic;
  color:var(--accent);
  text-shadow:none;
}
@media (max-width:780px) {
  .made-headline { grid-template-columns:1fr; }
  .made-stat { border-right:none; border-bottom:1.5px dashed var(--ink); }
  .made-stat:first-child { border-right:none; border-bottom:2.5px solid var(--ink); }
}
.bench-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:17px;
  color:var(--ink);
}
.bench-row--self .bench-name { color:var(--accent) }
.bench-type {
  font-family:'Patrick Hand', cursive;
  font-size:14px;
  color:var(--ink-soft);
}
.bench-bar {
  background:var(--wash-2);
  border:1.5px solid var(--ink);
}
.bench-bar-fill {
  background:var(--ink);
  opacity:0.55;
}
.bench-row--self .bench-bar-fill {
  background:var(--accent);
  opacity:1;
}
.bench-val {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:18px;
  color:var(--ink);
}
.bench-val.pos { color:var(--ink) }
.bench-val.neg { color:var(--accent) }
.bench-delta {
  font-family:'Patrick Hand', cursive;
  font-size:14px;
  color:var(--ink-soft);
}
.bench-delta.pos { color:var(--ink) }
.bench-delta.neg { color:var(--accent) }

/* ── §V Budget vs Actual chunky bars (Sunday Funnies) ── */
.vbar-legend {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.08em; text-transform:uppercase;
  color:var(--ink-soft);
}
.vbar-group-title {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:22px;
  color:var(--ink);
  text-shadow:2px 2px 0 var(--accent-tint);
  border-bottom:2.5px solid var(--ink);
}
.vbar-group-title em {
  font-style:italic; color:var(--accent);
  text-shadow:none;
}
.vbar-top {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:12px;
  color:var(--ink); font-variant-numeric:tabular-nums;
}
.vbar-shaft {
  background:var(--paper);
  border:2.5px solid var(--ink);
}
.vbar-target { border-top-color:var(--ink); }
.vbar-name {
  font-family:'Patrick Hand', cursive;
  font-size:14px; color:var(--ink);
}
.vbar-var {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
}
.vbar-var.flat { color:var(--ink-soft) }
/* under/over colors locked in _base.css — must stay green/red across themes */

/* Chunky horizontal bar (Sunday Funnies — typography only; colors locked in _base.css) */
.hbar-track {
  background:var(--paper);
  border:2.5px solid var(--ink);
}
.hbar-target {
  border-left:2.5px dashed var(--ink);
}
.hbar-amt {
  font-family:'Comic Neue', cursive;
  font-weight:700;
  font-size:26px;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.hbar-amt-plan {
  font-family:'Patrick Hand', cursive;
  font-weight:400;
  font-size:18px;
  color:var(--ink-soft);
}
.hbar-var {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
  letter-spacing:0.04em;
}
.hbar-var.flat { color:var(--ink-soft) }

/* ── Part III · May Contributions breakdown (Sunday Funnies) ── */
.invest-deposits {
  margin:-12px 0 28px;
  padding:22px 26px;
  background:var(--paper);
  border:2.5px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
}
.invest-deposits-title {
  margin:0 0 14px;
  font-family:'Comic Neue', cursive;
  font-weight:700;
  font-size:22px;
  color:var(--ink);
  text-shadow:2px 2px 0 var(--accent-tint);
  padding-bottom:10px;
  border-bottom:2px dashed var(--ink);
}
.invest-deposits-title em {
  font-style:italic;
  color:var(--accent);
  text-shadow:none;
}

/* ── §V Spending Detail Tree (Sunday Funnies) ── */
.spending-tree {
  background:var(--paper);
  border:2.5px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  color:var(--ink);
}
.st-header {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:11px;
  letter-spacing:0.12em; text-transform:uppercase;
  background:var(--wash-1);
  border-bottom:2px solid var(--ink);
  color:var(--ink-soft);
}
.st-master { border-bottom:2px dashed var(--ink) }
.st-master:last-of-type { border-bottom:0 }
.st-master-row { background:var(--wash-1); }
.st-master-row .st-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:22px;
  color:var(--ink);
  text-shadow:2px 2px 0 var(--accent-tint);
}
.st-master-row .st-name em {
  font-style:italic; color:var(--accent);
  text-shadow:none;
}
.st-master-row .st-amt {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:19px;
}
.st-master-row .st-plan,
.st-master-row .st-mom {
  font-family:'Patrick Hand', cursive;
  font-size:14px;
}
.st-sub { border-top:1.5px dashed var(--rule) }
.st-sub-row {
  background:var(--paper);
}
.st-sub-row .st-name {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:17px;
}
.st-sub-row .st-amt {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:16px;
}
.st-sub-row .st-plan,
.st-sub-row .st-mom {
  font-family:'Patrick Hand', cursive;
  font-size:13px;
}
.st-children {
  background:var(--wash-2);
  border-top:1.5px dashed var(--rule);
}
.st-leaf {
  border-bottom:1px dotted var(--rule);
}
.st-leaf:last-child { border-bottom:0 }
.st-leaf .st-name {
  font-family:'Patrick Hand', cursive;
  font-size:14px;
  color:var(--ink);
}
.st-leaf .st-amt {
  font-family:'Comic Neue', cursive;
  font-weight:700; font-size:13px;
}
.st-leaf .st-plan,
.st-leaf .st-mom {
  font-family:'Patrick Hand', cursive;
  font-size:12px;
}
/* tree variance colors locked in _base.css — must stay green/red across themes */
