/* ============================================================
   Money Command Center — editorial design system
   ============================================================ */
:root{
  --paper:#F8F6F0; --paper-2:#FFFFFF; --paper-3:#EEF2F6;
  --ink:#071827; --ink-2:#405064; --ink-3:#7B8492;
  --line:#DEE5EA; --line-2:#C8D2DB;
  --green:#C7A15A; --green-2:#DDBB72; --green-soft:#F7EFD9;
  --active-bg:#071B31; --active-fg:#FFFFFF;
  --accent:#0B2A4A; --accent-2:#164872; --accent-soft:#E7EEF6;
  --glow:#0B2A4A; --glow-rgb:11,42,74; --glow-soft:rgba(11,42,74,.14);
  --gold:#C7A15A; --gold-soft:#F7EFD9;
  --teal:#2F6F92; --teal-soft:#E3EEF4;
  --danger:#B23A3A; --danger-soft:#F4E0DE;
  --shadow:0 1px 2px rgba(26,24,18,.04), 0 8px 24px -12px rgba(26,24,18,.12);
  --shadow-lg:0 2px 6px rgba(26,24,18,.05), 0 24px 60px -24px rgba(26,24,18,.22);
  --r:8px; --r-sm:7px; --r-lg:12px;
  --sans:"Inter","Helvetica Neue",Arial,sans-serif;
  --display:"Fraunces Display 0","Fraunces Display 1","Fraunces Display 2","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;
  --serif:var(--display);
  --maxw:1080px;
  --glass:rgba(255,255,255,.85);
}
:root[data-theme="dark"]{
  --paper:#06111F; --paper-2:#0B1828; --paper-3:#102033;
  --ink:#F8F6EF; --ink-2:#C4CBD4; --ink-3:#8995A4;
  --line:#26384A; --line-2:#34495D;
  --green:#D8B86C; --green-2:#E8CB83; --green-soft:rgba(216,184,108,.14);
  --active-bg:#D8B86C; --active-fg:#06111F;
  --accent:#D8B86C; --accent-2:#F0D48A; --accent-soft:rgba(216,184,108,.14);
  --glow:#D8B86C; --glow-rgb:216,184,108; --glow-soft:rgba(216,184,108,.16);
  --gold:#D8B86C; --gold-soft:rgba(216,184,108,.14);
  --teal:#7FB4D8; --teal-soft:rgba(127,180,216,.14);
  --danger:#FF8A82; --danger-soft:rgba(255,138,130,.14);
  --glass:rgba(15,17,21,.86);
  --shadow:0 1px 2px rgba(0,0,0,.35), 0 14px 34px -18px rgba(0,0,0,.72);
  --shadow-lg:0 2px 8px rgba(0,0,0,.4), 0 28px 70px -28px rgba(0,0,0,.8);
}
html{transition:background .3s,color .3s}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans); background:var(--paper); color:var(--ink);
  line-height:1.5; font-size:15px; -webkit-font-smoothing:antialiased;
  font-feature-settings:"cv05","ss01"; letter-spacing:0;
}
.tnum{font-variant-numeric:tabular-nums lining-nums}
h1,h2,h3,h4{font-family:var(--serif); font-weight:680; letter-spacing:0; line-height:1.08}
button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit}
input,select,textarea{font-family:inherit; color:inherit}
input:not([type="range"]),select,textarea{
  -webkit-appearance:none;
  appearance:none;
}
input,select,textarea,button{font-size:16px}
a{color:inherit}

/* ---------- App shell ---------- */
.app{display:grid; grid-template-columns:248px 1fr; min-height:100vh}
.sidebar{
  position:sticky; top:0; height:100vh; border-right:1px solid var(--line);
  background:linear-gradient(180deg,var(--paper-2),var(--paper-3));
  padding:26px 18px; display:flex; flex-direction:column; gap:6px;
}
.brand{display:flex; align-items:center; gap:11px; padding:4px 8px 22px}
.brand-mark{width:38px;height:38px;border-radius:50%;object-fit:cover;object-position:center top;flex:none;
  border:1.5px solid var(--line-2);box-shadow:var(--shadow)}
.brand-mark.sm{width:30px;height:30px}
.brand-mark.fallback{border-radius:50%;background:var(--active-bg);display:grid;place-items:center;
  color:#fff;font-family:var(--serif);font-size:14px;border:none}
.theme-tog{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:var(--ink-3);flex:none}
.theme-tog:hover{background:var(--accent-soft);color:var(--ink)}
.theme-tog .ni{width:17px;height:17px;opacity:.9}
.btn-ghost.ico{padding:8px;width:36px;justify-content:center;border-radius:9px}
.btn-ghost.ico .ni{width:17px;height:17px}
.brand-name{font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.05}
.brand-sub{font-size:11px;color:var(--ink-3);letter-spacing:.04em;text-transform:uppercase}
.nav-label{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
  padding:14px 10px 6px;font-weight:600}
.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;
  color:var(--ink-2);font-weight:500;font-size:14.5px;transition:.15s;width:100%;text-align:left}
.nav-item:hover{background:var(--accent-soft);color:var(--ink)}
.nav-item.active{background:var(--active-bg);color:var(--active-fg)}
.nav-item.active .ni{opacity:1}
.ni{width:18px;height:18px;flex:none;opacity:.7;stroke-width:1.9}
.nav-spacer{flex:1}
.nav-foot{font-size:11.5px;color:var(--ink-3);padding:10px;border-top:1px solid var(--line);line-height:1.5}

.main{
  min-width:0;
  padding:0 0 90px;
  background-color:var(--paper);
  background:
    radial-gradient(1200px 440px at 52% -260px,rgba(199,161,90,.20),rgba(11,42,74,.07) 46%,rgba(var(--glow-rgb),0) 82%),
    linear-gradient(180deg,#EEF3F8 0,#F5F7F9 140px,var(--paper) 520px),
    var(--paper);
}
:root[data-theme="dark"] .main{
  background-color:var(--paper);
  background:
    radial-gradient(1200px 460px at 52% -270px,rgba(216,184,108,.22),rgba(127,180,216,.06) 48%,rgba(var(--glow-rgb),0) 84%),
    linear-gradient(180deg,#07182A 0,#071421 170px,var(--paper) 580px),
    var(--paper);
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.page-head{padding:40px 0 10px}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600}
.page-title{font-size:40px;margin-top:8px;letter-spacing:0}
.page-sub{color:var(--ink-2);font-size:16px;margin-top:10px;max-width:60ch}
.section-divider{height:1px;background:var(--line);margin:34px 0}

/* ---------- Cards ---------- */
.card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.card-pad{padding:22px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,1fr)} .g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.card-title{font-family:var(--serif);font-size:18px;font-weight:560}
.card-eyebrow{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:14px}

/* ---------- Stat tiles ---------- */
.hero{background:#06111F;color:#F8F6EF;border-radius:var(--r-lg);padding:34px 36px;
  position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}
.hero::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;
  background:radial-gradient(circle,rgba(199,161,90,.38),transparent 70%);pointer-events:none}
.hero-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,243,236,.6);font-weight:600}
.hero-num{font-family:var(--serif);font-size:64px;font-weight:560;letter-spacing:0;margin-top:6px;line-height:1}
.hero-meta{margin-top:16px;display:flex;gap:22px;flex-wrap:wrap;color:rgba(246,243,236,.78);font-size:14px}
.hero-meta b{color:#F7F4EC;font-weight:600}
.hero-definition{margin-top:14px;color:rgba(247,244,236,.66);font-size:13.5px}
.nw-equation{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-top:26px;
  padding-top:16px;
  max-width:100%;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(247,244,236,.68);
  font-size:13px;
  line-height:1.25;
}
.nw-equation span,.nw-equation strong{
  display:inline-flex;
  align-items:baseline;
  gap:5px;
  white-space:nowrap;
}
.nw-equation b{
  color:#F7F4EC;
  font-size:14px;
  font-weight:780;
}
.nw-equation strong{
  color:#F7F4EC;
  font-weight:760;
}
.nw-equation strong b{font-size:15px}
.nw-equation i{
  color:rgba(247,244,236,.42);
  font-style:normal;
  font-weight:760;
}
.nw-hero{
  padding:26px 30px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
}
.nw-hero-copy{min-width:0}
.nw-hero-viz{
  flex:0 0 auto;
  width:min(390px,38%);
}
.nw-pie-card{
  display:grid;
  grid-template-columns:150px minmax(128px,1fr);
  align-items:center;
  gap:18px;
  padding:14px 16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:12px;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 20px 44px -34px rgba(0,0,0,.75);
}
.nw-pie{
  width:150px;
  height:150px;
  overflow:visible;
  filter:drop-shadow(0 16px 22px rgba(0,0,0,.28));
}
.nw-pie-legend{
  display:grid;
  gap:8px;
  min-width:0;
}
.nw-pie-legend > div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  color:rgba(247,244,236,.72);
  font-size:12.5px;
  line-height:1.2;
}
.nw-pie-legend span{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.nw-pie-legend b{
  color:#F7F4EC;
  font-size:13px;
}
.nw-pie-empty{
  border:1px dashed rgba(255,255,255,.18);
  border-radius:12px;
  padding:18px;
  color:rgba(247,244,236,.68);
  background:rgba(255,255,255,.04);
  font-size:13px;
}
.history-copy{
  margin:6px 0 12px;
  color:var(--ink-2);
  font-size:13px;
  line-height:1.45;
}
.history-manager{
  margin-top:12px;
  display:grid;
  gap:12px;
}
.history-form{
  display:grid;
  grid-template-columns:minmax(270px,1.25fr) minmax(190px,.85fr) auto;
  gap:12px;
  align-items:end;
  padding:14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:
    radial-gradient(520px 180px at 0% 0%,rgba(216,184,108,.12),transparent 62%),
    linear-gradient(135deg,var(--paper-2),var(--paper-3));
}
.history-form label{
  display:block;
  margin-bottom:6px;
  color:var(--ink-3);
  font-size:10.5px;
  font-weight:760;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.history-date-field{
  min-width:0;
}
.history-date-grid{
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(96px,.58fr);
  gap:8px;
}
.history-form input,
.history-form select,
.history-form .select-wrap select{
  min-height:46px;
  width:100%;
  border:1px solid var(--line-2);
  border-radius:8px;
  background:var(--paper-2);
  color:var(--ink);
  font:inherit;
  font-size:15.5px;
  padding:10px 12px;
}
.history-form input:focus,
.history-form select:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
}
.history-year-input{
  text-align:center;
  font-variant-numeric:tabular-nums;
}
.history-date-help{
  margin-top:7px;
  color:var(--ink-3);
  font-size:12px;
  line-height:1.35;
}
.history-year-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}
.history-year-chip{
  min-height:30px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:999px;
  background:linear-gradient(180deg,var(--paper-2),var(--paper-3));
  color:var(--ink-2);
  font-size:12px;
  font-weight:760;
  font-variant-numeric:tabular-nums;
  transition:.14s ease;
}
.history-year-chip:hover,
.history-year-chip:focus-visible{
  border-color:rgba(var(--glow-rgb),.5);
  background:var(--accent-soft);
  color:var(--accent);
  outline:none;
  box-shadow:0 0 0 3px var(--glow-soft);
}
.history-form .money-in input{padding-left:30px}
.history-form .btn{
  min-height:46px;
  white-space:nowrap;
}
.history-list{
  display:grid;
  gap:7px;
  max-height:250px;
  overflow:auto;
  padding-right:2px;
}
.history-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 30px;
  gap:10px;
  align-items:center;
  min-height:46px;
  padding:8px 9px 8px 11px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-2);
}
.history-row b{
  display:block;
  color:var(--ink);
  font-size:13px;
  line-height:1.2;
}
.history-row span{
  display:block;
  margin-top:2px;
  color:var(--ink-3);
  font-size:11.5px;
  line-height:1.2;
}
.history-row strong{
  color:var(--ink);
  font-size:15px;
  white-space:nowrap;
}
.overview-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,430px);
  gap:40px;
  align-items:center;
  background:
    radial-gradient(820px 340px at 6% 0%,rgba(216,184,108,.16),transparent 62%),
    radial-gradient(620px 360px at 96% 100%,rgba(47,111,146,.22),transparent 68%),
    linear-gradient(135deg,#06111F,#0A1A2D 52%,#081827);
}
.overview-hero-ledger{
  align-self:stretch;
  display:grid;
  align-content:center;
  gap:18px;
  padding-left:34px;
  border-left:1px solid rgba(255,255,255,.12);
  position:relative;
}
.overview-hero-ledger::before{
  content:"";
  position:absolute;
  left:-1px;
  top:12%;
  bottom:12%;
  width:1px;
  background:linear-gradient(180deg,transparent,rgba(var(--glow-rgb),.52),transparent);
}
.ledger-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.ledger-head span{
  color:rgba(247,244,236,.54);
  font-size:10px;
  font-weight:760;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.ledger-head b{
  color:#F7F4EC;
  font-size:13px;
  font-weight:760;
  text-align:right;
}
.ledger-summary{
  display:grid;
  gap:4px;
  padding-bottom:2px;
}
.ledger-summary span{
  color:rgba(247,244,236,.50);
  font-size:11px;
  font-weight:720;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.ledger-summary b{
  color:#F7F4EC;
  font-size:26px;
  font-weight:800;
  line-height:1;
}
.ledger-summary i{
  color:rgba(247,244,236,.56);
  font-size:12px;
  font-style:normal;
}
.ledger-rows{
  display:grid;
  gap:14px;
}
.ledger-row{
  display:grid;
  gap:7px;
}
.ledger-row-top{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:14px;
  color:rgba(247,244,236,.72);
  font-size:13px;
  font-weight:650;
}
.ledger-row-top b{
  color:#F7F4EC;
  font-size:14px;
  font-weight:780;
  white-space:nowrap;
}
.ledger-track{
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.075);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.32);
}
.ledger-track i{
  display:block;
  width:var(--share);
  min-width:6px;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(255,255,255,.16),rgba(255,255,255,.04));
}
.ledger-row.cash .ledger-track i{background:linear-gradient(90deg,#70DCE1,#2C8797)}
.ledger-row.invest .ledger-track i{background:linear-gradient(90deg,#49DCA2,#0D765C)}
.ledger-row.property .ledger-track i{background:linear-gradient(90deg,#E5BE5E,#B98621)}
.ledger-row.debt .ledger-row-top b{color:#FFAAA4}
.ledger-row.debt .ledger-track i{background:linear-gradient(90deg,#E97873,#B94A5C)}
.ledger-note{
  padding-top:4px;
  color:rgba(247,244,236,.58);
  font-size:12px;
  line-height:1.45;
}
.ledger-empty{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.04);color:rgba(247,244,236,.66)}
.overview-hero-chart{
  display:grid;
  grid-template-columns:188px minmax(0,1fr);
  align-items:center;
  gap:20px;
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:8px;
  background:
    radial-gradient(circle at 24% 20%,rgba(255,255,255,.10),transparent 34%),
    linear-gradient(135deg,rgba(255,255,255,.09),rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 28px 70px -48px rgba(0,0,0,.9);
}
.overview-hero-chart .chart{filter:drop-shadow(0 20px 28px rgba(0,0,0,.30))}
.overview-metrics{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.overview-metric{
  position:relative;
  min-height:120px;
  padding:18px 20px;
}
.overview-metric .lab{
  color:var(--ink-3);
  font-size:11px;
  font-weight:760;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.overview-metric .val{
  margin-top:8px;
  color:var(--ink);
  font-size:29px;
  font-weight:780;
  line-height:1;
}
.overview-metric .val.pos{color:var(--green)}
.overview-metric .val.neg{color:var(--danger)}
.overview-metric .sub{margin-top:8px;color:var(--ink-2);font-size:12.5px}
.overview-metric > .info{position:absolute;right:12px;top:12px}
.overview-adjust-note{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:14px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-left:3px solid var(--green);
  border-radius:8px;
  background:var(--green-soft);
  color:var(--ink-2);
  font-size:13px;
  line-height:1.45;
}
.overview-adjust-note b{color:var(--ink);white-space:nowrap}
.overview-flow-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:18px;
}
.overview-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}
.overview-card-head .card-eyebrow{margin-bottom:0}
.overview-card-head .add-row{margin-top:-4px;padding:0;font-size:13px}
.overview-donut-layout{
  display:grid;
  grid-template-columns:188px minmax(0,1fr);
  gap:20px;
  align-items:center;
  margin-top:16px;
}
.overview-donut .chart{max-width:188px!important;filter:drop-shadow(0 18px 30px rgba(17,20,17,.10))}
.overview-legend{
  display:grid;
  gap:7px;
  min-width:0;
}
.overview-legend > div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:8px 0;
  border-bottom:1px solid var(--line);
  color:var(--ink-2);
  font-size:13px;
  line-height:1.25;
}
.overview-legend > div:last-child{border-bottom:0}
.overview-legend span{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.overview-legend span i{
  display:grid;
  gap:2px;
  min-width:0;
  font-style:normal;
}
.overview-legend span small{
  color:var(--ink-3);
  font-size:11px;
  line-height:1.25;
}
.overview-legend b{
  display:flex;
  gap:8px;
  align-items:baseline;
  color:var(--ink);
  white-space:nowrap;
  font-weight:760;
}
.overview-legend em{
  color:var(--ink-3);
  font-style:normal;
  font-size:11px;
  font-weight:700;
}
.overview-legend.dark > div{border-color:rgba(255,255,255,.13);color:rgba(247,244,236,.72)}
.overview-legend.dark b{color:#F7F4EC}
.overview-legend.dark em{color:rgba(247,244,236,.55)}
.overview-legend.dark span small{color:rgba(247,244,236,.50)}
.networth-legend .legend-liability{
  margin-top:2px;
  padding-top:8px;
  border-top:1px solid rgba(255,255,255,.08);
}
.networth-legend .legend-liability b{color:#FFAAA4}
.networth-legend .networth-legend-total{
  margin-top:4px;
  padding:10px 0 0;
  border-top:1px solid rgba(255,255,255,.18);
  border-bottom:0;
  color:rgba(247,244,236,.64);
}
.networth-legend .networth-legend-total span{
  color:rgba(247,244,236,.62);
  font-size:11px;
  font-weight:760;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.networth-legend .networth-legend-total b{font-size:14px;color:#F7F4EC}
.overview-card-copy{
  margin-top:14px;
  color:var(--ink-2);
  font-size:12.8px;
  line-height:1.5;
}
.overview-money-map{
  margin-top:18px;
  padding:28px 30px;
  overflow:hidden;
  position:relative;
  color:#F7F4EC;
  border-color:rgba(255,255,255,.10);
  background:
    radial-gradient(760px 320px at 10% 0%,rgba(216,184,108,.18),transparent 58%),
    radial-gradient(620px 320px at 94% 88%,rgba(47,111,146,.20),transparent 64%),
    linear-gradient(135deg,#06111F,#0A1B2E 48%,#071827);
  box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.08);
}
.overview-money-map::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(115deg,rgba(255,255,255,.06),transparent 34%,rgba(255,255,255,.025) 68%,transparent);
  pointer-events:none;
}
.overview-map-head{
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
.overview-map-head .card-eyebrow{margin-bottom:6px;color:rgba(247,244,236,.58)}
.overview-map-head .add-row{margin-top:0;padding:0;white-space:nowrap;color:var(--accent)}
.overview-map-title{
  max-width:820px;
  color:#F7F4EC;
  font-family:var(--serif);
  font-size:23px;
  font-weight:650;
  line-height:1.18;
  letter-spacing:0;
}
.overview-map-body{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(260px,360px) minmax(0,1fr);
  gap:30px;
  align-items:center;
  margin-top:24px;
}
.overview-map-viz{
  display:grid;
  justify-items:center;
  gap:12px;
  padding:20px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:
    radial-gradient(circle at 50% 42%,rgba(var(--glow-rgb),.18),transparent 54%),
    linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,.03));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 28px 72px -48px rgba(0,0,0,.95);
}
:root[data-theme="dark"] .overview-map-viz{
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 28px 60px -44px rgba(0,0,0,.86);
}
.overview-map-viz .overview-donut .chart{
  max-width:228px!important;
  width:228px;
  filter:drop-shadow(0 22px 34px rgba(17,20,17,.16));
}
.overview-map-center-note{
  max-width:260px;
  color:rgba(247,244,236,.66);
  font-size:12.5px;
  line-height:1.45;
  text-align:center;
}
.overview-map-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.overview-map-list > div{
  min-height:116px;
  padding:18px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 18px 44px -36px rgba(0,0,0,.85);
}
.overview-map-list > div.source{
  border-color:rgba(247,244,236,.18);
  background:linear-gradient(135deg,rgba(247,244,236,.10),rgba(255,255,255,.035));
}
.overview-map-list > div.expense{border-color:rgba(200,106,75,.28);background:linear-gradient(135deg,rgba(200,106,75,.14),rgba(255,255,255,.035))}
.overview-map-list > div.invest{border-color:rgba(var(--glow-rgb),.28);background:linear-gradient(135deg,rgba(var(--glow-rgb),.14),rgba(255,255,255,.035))}
.overview-map-list > div.pos{border-color:rgba(var(--glow-rgb),.30);background:linear-gradient(135deg,rgba(var(--glow-rgb),.14),rgba(255,255,255,.035))}
.overview-map-list > div.neg{border-color:rgba(185,74,92,.30);background:linear-gradient(135deg,rgba(185,74,92,.15),rgba(255,255,255,.035))}
.overview-map-list > div.workplace{border-color:rgba(216,184,108,.26);background:linear-gradient(135deg,rgba(216,184,108,.12),rgba(255,255,255,.028))}
.overview-map-list span{
  display:flex;
  align-items:flex-start;
  gap:9px;
  color:rgba(247,244,236,.78);
  font-size:13px;
  line-height:1.25;
}
.overview-map-list span i{display:grid;gap:3px;font-style:normal}
.overview-map-list span small{color:rgba(247,244,236,.52);font-size:12px;line-height:1.35}
.overview-map-list b{
  display:block;
  margin-top:12px;
  color:#F7F4EC;
  font-size:30px;
  line-height:1;
  font-weight:780;
}
.overview-map-list .expense b{color:#EFA082}
.overview-map-list .invest b{color:#64E1AE}
.overview-map-list .pos b{color:#A6E2DA}
.overview-map-list .neg b{color:#F79AA5}
.overview-map-list .workplace b{color:#F0D48A}
.overview-map-foot{
  position:relative;
  z-index:1;
  margin-top:18px;
  padding:13px 15px;
  border-radius:8px;
  border:1px solid rgba(49,211,138,.22);
  border-left:3px solid var(--green);
  background:rgba(49,211,138,.11);
  color:rgba(247,244,236,.76);
  font-size:13.5px;
  line-height:1.5;
}
.overview-map-foot.neg{
  border-left-color:var(--danger);
  border-color:rgba(255,138,130,.22);
  background:rgba(255,138,130,.12);
  color:#FFD8D5;
}

.tile{padding:18px 20px}
.tile .lab{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.tile .val{font-family:var(--serif);font-size:30px;font-weight:560;letter-spacing:0;margin-top:7px;line-height:1}
.tile .sub{font-size:12.5px;color:var(--ink-2);margin-top:6px}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:middle}
.c-cash{color:var(--teal)} .bg-cash{background:var(--teal)}
.c-invest{color:var(--green)} .bg-invest{background:var(--green)}
.c-prop{color:var(--gold)} .bg-prop{background:var(--gold)}
.c-debt{color:var(--danger)} .bg-debt{background:var(--danger)}
.pos{color:var(--green-2)} .neg{color:var(--danger)}

/* ---------- Dials / sliders ---------- */
.dials{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:20px}
.dial .dl{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.dial .dname{font-size:12.5px;color:var(--ink-2);font-weight:600;letter-spacing:.01em}
.dial .dval{font-family:var(--serif);font-size:19px;color:var(--ink);font-weight:560}
input[type=range]{-webkit-appearance:none;width:100%;height:4px;border-radius:4px;
  background:var(--line-2);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;
  background:var(--paper-2);border:2px solid var(--green);cursor:pointer;box-shadow:0 2px 6px rgba(26,24,18,.2);transition:.1s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}
input[type=range].acc::-webkit-slider-thumb{border-color:var(--accent)}

/* ---------- Editable rows / inputs ---------- */
.row-list{display:flex;flex-direction:column}
.erow{display:grid;grid-template-columns:1fr 138px 28px;align-items:center;gap:8px;
  padding:7px 0;border-bottom:1px solid var(--line)}
.erow:last-child{border-bottom:none}
.erow .nm{border:none;background:none;font-size:14.5px;padding:6px 4px;border-radius:7px;color:var(--ink)}
.erow .nm:focus{background:var(--paper-3);outline:1px solid var(--line-2)}
.money-in{position:relative}
.money-in input{width:100%;text-align:right;padding:9px 12px 9px 22px;border:1px solid var(--line-2);
  border-radius:9px;background:var(--paper-3);font-size:14.5px;font-variant-numeric:tabular-nums;transition:.12s}
.money-in input:focus{outline:none;border-color:var(--glow);background:#fff;box-shadow:0 0 0 3px var(--glow-soft)}
.money-in.acc input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.money-in::before{content:"$";position:absolute;left:10px;top:50%;transform:translateY(-50%);
  color:var(--ink-3);font-size:13px;pointer-events:none}
.del{color:var(--ink-3);font-size:17px;line-height:1;border-radius:6px;width:26px;height:26px;opacity:0;transition:.12s}
.erow:hover .del{opacity:1}
.del:hover{background:var(--danger-soft);color:var(--danger)}
.add-row{display:inline-flex;align-items:center;gap:7px;color:var(--accent);font-weight:600;font-size:13.5px;padding:11px 2px;margin-top:4px}
.add-row:hover{color:var(--accent-2)}
.totrow{display:flex;justify-content:space-between;align-items:center;padding:14px 2px 2px;margin-top:6px;border-top:2px solid var(--ink)}
.totrow .tl{font-weight:600;font-size:13px;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-2)}
.totrow .tv{font-family:var(--serif);font-size:24px;font-weight:560}

/* ---------- Progress ---------- */
.bar{height:9px;border-radius:6px;background:var(--line);overflow:hidden}
.bar > span{display:block;height:100%;border-radius:6px;background:var(--active-bg);transition:width .5s cubic-bezier(.2,.7,.2,1)}
.barwrap{display:flex;align-items:center;gap:12px}
.stack{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--line)}
.stack > i{height:100%;display:block}

/* ---------- Buttons / pills ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:11px;font-weight:600;font-size:14px;transition:.15s}
.btn-pri{background:var(--active-bg);color:var(--active-fg);box-shadow:0 8px 20px -10px rgba(var(--glow-rgb),.7)}
.btn-pri:hover{background:var(--accent-2);transform:translateY(-1px)}
.btn-ghost{border:1px solid var(--line-2);color:var(--ink)}
.btn-ghost:hover{background:var(--paper-3);border-color:var(--ink-3)}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 11px;border-radius:999px;letter-spacing:.01em}
.pill-green{background:var(--green-soft);color:var(--green)}
.pill-gold{background:var(--gold-soft);color:var(--gold)}
.pill-accent{background:var(--accent-soft);color:var(--accent)}
.pill-danger{background:var(--danger-soft);color:var(--danger)}

/* ---------- Empty / prompts ---------- */
.muted{color:var(--ink-3)}
.empty{color:var(--ink-3);font-size:14px;font-style:normal}
.callout{background:var(--accent-soft);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;
  font-size:14px;color:var(--ink);display:block}
.callout:has(> span:first-child){display:flex;gap:12px;align-items:flex-start}
.benchmark-note{
  margin-top:12px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-3);
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.5;
}

/* ---------- Charts ---------- */
.chart-card{padding:22px 20px 14px}
.chart-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:8px;
}
.chart-head > div:first-child{
  min-width:0;
}
.chart-head p{
  margin-top:6px;
  max-width:78ch;
  color:var(--ink-2);
  font-size:13.5px;
  line-height:1.5;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
.chart-head .add-row{
  flex:none;
  margin-top:2px;
}
svg.chart{display:block;width:100%;overflow:visible}
.axis{fill:var(--ink-3);font-size:11px}
.gridline{stroke:var(--line);stroke-width:1}
.tip{position:fixed;pointer-events:none;background:#06111F;color:#F8F6EF;padding:8px 11px;border-radius:9px;
  font-size:12.5px;box-shadow:var(--shadow-lg);opacity:0;transition:opacity .1s;z-index:50;font-variant-numeric:tabular-nums}

/* ---------- Mobile nav ---------- */
.mobnav{display:none}
.topbar{display:none}

@media(max-width:880px){
  .app{grid-template-columns:1fr}
  .sidebar{display:none}
  .topbar{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:40;
    background:var(--glass);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:13px 18px}
  .wrap{padding:0 18px}
  .page-title{font-size:30px} .hero-num{font-size:48px} .page-head{padding:24px 0 6px}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .g4.keep,.g2.keep{grid-template-columns:1fr 1fr}
  .main{padding-bottom:78px}
  .mobnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--glass);
    backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:6px 4px 8px;justify-content:space-around}
  .mtab{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-3);font-size:10px;font-weight:600;padding:6px 8px;border-radius:10px;flex:1}
.mtab.active{color:var(--accent)}
  .mtab .ni{width:21px;height:21px;opacity:1}
  .erow{grid-template-columns:1fr 116px 24px}
  .chart-head{display:block}
  .chart-head .add-row{margin-top:8px}
  .nw-hero{display:grid;gap:20px}
  .nw-hero-viz{width:100%}
  .nw-pie-card{grid-template-columns:140px 1fr}
  .nw-pie{width:140px;height:140px}
}

/* ---------- Onboarding ---------- */
.scrim{position:fixed;inset:0;background:rgba(26,24,18,.45);backdrop-filter:blur(4px);z-index:60;
  display:grid;place-items:center;padding:20px;opacity:0;animation:fade .25s forwards}
@keyframes fade{to{opacity:1}}
.modal{background:var(--paper);border-radius:var(--r-lg);max-width:480px;width:100%;box-shadow:var(--shadow-lg);
  overflow:hidden;animation:pop .3s cubic-bezier(.2,.8,.2,1);
  display:flex;flex-direction:column;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px)}
@keyframes pop{from{transform:translateY(14px) scale(.98);opacity:.6}to{transform:none;opacity:1}}
.modal-head{padding:30px 30px 0;flex:none}
.modal-body{padding:18px 30px 8px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1 1 auto}
.modal-foot{padding:18px 30px 26px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex:none;flex-wrap:wrap}
.ob-skip{font-size:12.5px;color:var(--ink-3)}
.ob-group{font-family:var(--serif);font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:.01em;
  margin:10px 0 -6px;padding-top:14px;border-top:1px solid var(--line)}
.ob-group:first-child{border-top:none;padding-top:0;margin-top:0}
.ob-note{font-size:12px;color:var(--ink-3);margin:7px 0 0;line-height:1.55}
.ob-note a{color:var(--accent);font-weight:600;text-decoration:underline}
.ob-debt-terms{display:flex;gap:10px;margin-top:8px}
.ob-mini{flex:1 1 0;min-width:0}
.ob-mini > span{display:block;font-size:11px;color:var(--ink-3);margin-bottom:4px}
.ob-mini .num-suffix{width:100%}
/* income step live readout panel */
.ob-readout{background:var(--paper-3);border:1px solid var(--line);border-radius:14px;padding:4px 16px;margin-top:6px}
.ob-readout-empty{padding:15px 16px;color:var(--ink-3);font-size:13px;line-height:1.5}
.obr-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.obr-l{font-size:13px;color:var(--ink-2)}
.obr-v{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--ink);text-align:right;line-height:1.2;font-variant-numeric:tabular-nums}
.obr-v small{display:block;font-family:inherit;font-size:11px;font-weight:500;color:var(--ink-3);letter-spacing:0}
.obr-foot{font-size:11px;color:var(--ink-3);padding:9px 0 4px;line-height:1.45}
.ob-assump{padding:12px 0;border-top:1px solid var(--line)}
.ob-assump:first-child{border-top:none;padding-top:2px}
.ob-assump .ob-note{margin:8px 0 0}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.field input{width:100%;padding:12px 14px;border:1px solid var(--line-2);border-radius:11px;font-size:16px;background:#fff}
.field input:focus{outline:none;border-color:var(--glow);box-shadow:0 0 0 3px var(--glow-soft)}
.select-wrap{position:relative}
.select-wrap select{width:100%;min-height:44px;padding:11px 38px 11px 13px;border:1px solid var(--line-2);border-radius:8px;background:var(--paper-2);color:var(--ink);font:inherit;font-size:15px;appearance:none}
.select-wrap::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:1.6px solid var(--ink-3);border-bottom:1.6px solid var(--ink-3);transform:translateY(-65%) rotate(45deg);pointer-events:none}
.select-wrap select:focus{outline:none;border-color:var(--glow);box-shadow:0 0 0 3px var(--glow-soft)}
.dotrow{display:flex;gap:6px}
.pdot{width:7px;height:7px;border-radius:50%;background:var(--line-2)}
.pdot.on{background:var(--active-bg);width:20px;border-radius:4px;transition:.3s}
.fadein{animation:fin .4s ease both}
@keyframes fin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- info buttons + explanation modal ---------- */
.tile{position:relative}
.info{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;
  border:1.3px solid var(--line-2);color:var(--ink-3);font-size:10.5px;font-weight:700;line-height:1;
  vertical-align:middle;margin-left:5px;transition:.12s;flex:none}
.info:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.tile > .info{position:absolute;top:13px;right:13px;margin:0}
.info-light{position:absolute;top:18px;right:18px;border-color:rgba(246,243,236,.35);color:rgba(246,243,236,.75);
  width:22px;height:22px;font-size:12px;cursor:pointer}
.info-light:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.12)}
.ex-modal{max-width:520px}
.ex-body{max-height:62vh;overflow:auto;gap:0}
.ex-note{font-size:13.5px;color:var(--ink-2);line-height:1.6;margin:2px 0 14px}
.ex-li{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.ex-li span{color:var(--ink-2)} .ex-li b{font-weight:600;white-space:nowrap}
.ex-eq{margin-top:14px;padding:13px 15px;background:var(--green-soft);border-radius:11px;font-size:14px;text-align:center;color:#1d4a37}
.ex-block{margin:14px 0;padding:14px 15px;background:var(--paper-3);border:1px solid var(--line);border-radius:12px}
.ex-h{font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}
.ex-block .ex-note{margin:8px 0 0;font-size:12.5px}

/* ---------- watermark / footer / share ---------- */
.site-foot{max-width:var(--maxw);margin:34px auto 0;padding:22px 32px;border-top:1px solid var(--line);
  color:var(--ink-3);font-size:12.5px;text-align:left}
.site-foot b{color:var(--ink-2);font-weight:600}
.foot-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-bottom:14px;
}
.foot-person{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  color:var(--ink-2);
  min-width:0;
}
.foot-person img{
  width:42px;
  height:42px;
  border-radius:50%;
  object-fit:cover;
  object-position:center top;
  border:1px solid var(--line-2);
  box-shadow:var(--shadow);
}
.foot-person div{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}
.foot-person b{color:var(--ink);font-weight:760}
.foot-person span{font-size:11.5px;color:var(--ink-3)}
.foot-links{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  align-items:center;
  gap:7px 14px;
  padding-top:2px;
}
.foot-links > *{display:inline-flex;align-items:center;min-height:28px}
.foot-links > * + *::before{
  content:"";
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--line-2);
  margin-right:14px;
}
.foot-disclaimer{
  margin-top:6px;
  text-align:center;
  font-size:11.5px;
  line-height:1.4;
}
.linklike{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.linklike:hover{color:var(--accent-2)}
@media(max-width:880px){
  .site-foot{margin-top:24px;padding:20px 18px}
  .foot-top{display:grid;gap:10px;justify-items:start}
  .foot-links{justify-content:flex-start}
  .foot-links > * + *::before{display:none}
  .info-light{top:14px;right:14px}
}

/* ---------- advisor CTA ---------- */
.cta{display:flex;gap:20px;align-items:center;padding:24px 26px;
  background:linear-gradient(135deg,#06111F,#0B2A4A 62%,#183A5D);color:#F8F6EF;border:none;box-shadow:var(--shadow-lg)}
.cta-mark{width:56px;height:56px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:rgba(246,243,236,.14);border:1.5px solid rgba(246,243,236,.3);
  font-family:var(--serif);font-size:20px;font-weight:600;color:#fff}
.cta-mark img{width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:inherit;display:block}
.cta-h{font-family:var(--serif);font-size:20px;font-weight:560}
.cta-p{color:rgba(246,243,236,.82);font-size:13.5px;line-height:1.55;margin:6px 0 14px;max-width:54ch}
.cta .btn-pri{background:#F6F3EC;color:#163A6B;box-shadow:none}
.cta .btn-pri:hover{background:#fff;transform:translateY(-1px)}
.cta-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cta .btn-ghost{background:transparent;color:#F6F3EC;border:1.5px solid rgba(246,243,236,.45)}
.cta .btn-ghost:hover{background:rgba(246,243,236,.12);border-color:rgba(246,243,236,.7)}
.cta-email{margin-top:12px;font-size:12.5px;color:rgba(246,243,236,.72)}
.cta-email a{color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:2px}
@media(max-width:880px){ .cta{flex-direction:column;align-items:flex-start;text-align:left;padding:22px} }

/* ---------- the potential of each dollar (motivation) ---------- */
.dollars{
  margin-top:18px;padding:24px 26px;
  background:radial-gradient(130% 150% at 0% 0%, var(--gold-soft) 0%, transparent 58%), var(--paper-2);
  border:1px solid var(--line);
}
.dollars-kicker{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:800;margin-bottom:9px}
.dollars-head{font-family:var(--serif);font-size:21px;line-height:1.32;color:var(--ink);max-width:60ch;font-weight:560}
.dollars-head b{color:var(--green);font-weight:700}
.dollars-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:18px}
.dollars-grid > div{border:1px solid var(--line);border-radius:11px;background:var(--paper);padding:15px 17px}
.dollars-grid span{display:block;font-size:12.5px;color:var(--ink-2)}
.dollars-grid b{display:block;font-family:var(--serif);font-size:27px;line-height:1.05;color:var(--green);margin:5px 0 4px}
.dollars-grid small{display:block;font-size:11.5px;color:var(--ink-3);line-height:1.45}
.dollars-link{display:inline-block;margin-top:16px;font-weight:600}
.budget-potential{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  padding:14px 18px;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:10px;
  background:var(--green-soft);font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.budget-potential b{color:var(--ink)}
.budget-potential .linklike{font-weight:600;white-space:nowrap}

/* reactive monthly-surplus message */
.surplus-msg{margin-top:14px;padding:12px 16px;border-radius:10px;font-size:13.5px;line-height:1.5;color:var(--ink-2);border:1px solid var(--line);border-left:3px solid var(--line-2)}
.surplus-msg.pos{background:var(--green-soft);border-left-color:var(--green)}
.surplus-msg.neg{background:var(--danger-soft);border-left-color:var(--danger)}
.surplus-msg.even{background:var(--paper-3);border-left-color:var(--gold)}

/* employer-match nudge — "don't leave free money on the table" */
.match-nudge{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  padding:15px 18px;border-radius:11px;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.match-nudge b{color:var(--ink)}
.match-nudge.gap{border:1px solid var(--gold);border-left:3px solid var(--gold);
  background:radial-gradient(130% 160% at 0% 0%, var(--gold-soft) 0%, transparent 62%), var(--paper-2)}
.match-nudge.ok{border:1px solid var(--line);border-left:3px solid var(--green);background:var(--green-soft)}
.match-nudge .linklike{font-weight:600;white-space:nowrap}

/* emergency-fund readout */
.emfund{margin-top:16px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--paper-2)}
.emfund-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.emfund-lab{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.emfund-num{display:block;font-family:var(--serif);font-size:24px;color:var(--ink);margin-top:3px}
.emfund-num small{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);font-weight:400}
.emfund-pill{font-size:11.5px;font-weight:700;padding:5px 11px;border-radius:999px;white-space:nowrap}
.emfund.strong .emfund-pill{background:var(--green-soft);color:var(--green)}
.emfund.building .emfund-pill{background:var(--gold-soft);color:var(--gold)}
.emfund.thin .emfund-pill{background:var(--danger-soft);color:var(--danger)}
.emfund-bar{margin-top:14px}
.emfund.strong .emfund-bar span{background:var(--green)}
.emfund.building .emfund-bar span{background:var(--gold)}
.emfund.thin .emfund-bar span{background:var(--danger)}
.emfund-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-3);margin-top:5px}
.emfund-note{font-size:12.5px;color:var(--ink-2);margin-top:10px;line-height:1.5}

/* high-interest debt alert */
.debt-alert{margin-top:14px;padding:13px 16px;border:1px solid var(--danger-soft);border-left:3px solid var(--danger);
  border-radius:9px;background:var(--danger-soft);font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.debt-alert b{color:var(--ink)}

/* overview priority next-move callout */
.priority-alert{border-left:3px solid var(--gold)}

/* projection: nest-egg-to-monthly-income translation */
.retire-income{margin-top:16px;padding:15px 18px;border:1px solid var(--line);border-left:3px solid var(--green);
  border-radius:11px;background:var(--green-soft);display:flex;flex-direction:column;gap:6px}
.retire-income .ri-tag{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--green);font-weight:800}
.retire-income .ri-body{font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.retire-income .ri-body b{color:var(--ink)}
.retire-income .ri-num{color:var(--green);font-family:var(--serif);font-size:17px}

/* ---------- daily quote ---------- */
.quote-card{margin-top:18px;padding:22px 26px 22px 30px;background:var(--paper-2);border:1px solid var(--line);
  border-left:3px solid var(--green);border-radius:var(--r);position:relative;overflow:hidden}
.quote-card .quote-mark{position:absolute;left:16px;top:30px;font-family:var(--sans);font-size:58px;line-height:0;color:var(--green);opacity:.14;font-weight:760}
.quote-card blockquote{font-family:var(--sans);font-size:18px;font-style:normal;font-weight:620;line-height:1.45;color:var(--ink);padding-left:22px}
.quote-card cite{display:block;margin-top:11px;padding-left:22px;font-size:12.5px;font-style:normal;color:var(--ink-3);font-weight:600;letter-spacing:.03em;text-transform:uppercase}
@media(max-width:880px){ .quote-card{padding:18px 18px 18px 24px} .quote-card blockquote{font-size:16.5px;padding-left:16px} .quote-card cite{padding-left:16px} .quote-card .quote-mark{font-size:48px;left:10px} }

/* ============================================================
   Siegel Financial - coin logo, intro, quote, save status, lock
   ============================================================ */
.brand{cursor:pointer}
/* flippable logo badge — your full logo on the front, your photo on the back */
.logo-static{flex:none}
.logo-face{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  display:grid;place-items:center;overflow:hidden;background:#06111F;border:1px solid rgba(199,161,90,.34);box-shadow:var(--shadow)}
.logo-front img{width:100%;height:100%;object-fit:contain;display:block}
.logo-head{width:132px;height:76px}
.logo-head .logo-face{border-radius:13px}
.logo-xs{width:52px;height:52px}

/* segmented control */
.segmented{display:flex;gap:4px;background:var(--paper-3);border:1px solid var(--line);border-radius:11px;padding:3px}
.segmented button{flex:1;padding:8px 4px;border-radius:8px;font-size:11.5px;font-weight:600;color:var(--ink-2);transition:.12s;line-height:1.1}
.segmented button.on{background:var(--active-bg);color:var(--active-fg);box-shadow:var(--shadow)}
.segmented button:hover:not(.on){background:var(--accent-soft);color:var(--ink)}

/* typeable dial value */
.dval{display:inline-flex;align-items:baseline;gap:1px}
.dnum{font-family:var(--serif);font-size:19px;color:var(--ink);font-weight:560;width:52px;text-align:right;border:none;background:none;padding:2px 3px;border-radius:7px;font-variant-numeric:tabular-nums;cursor:text}
.dnum:hover{background:var(--paper-3)}
.dnum:focus{outline:none;background:var(--accent-soft);box-shadow:0 0 0 2px var(--glow-soft)}
.dsuf{font-family:var(--serif);font-size:19px;color:var(--ink-2);font-weight:560}

/* static brand emblem for intro + lock */
.brand-emblem{flex:none;display:grid;place-items:center;overflow:hidden;background:#06111F;border:1px solid rgba(216,184,108,.34);
  border-radius:18px;box-shadow:0 22px 60px -22px rgba(0,0,0,.68),0 0 0 1px rgba(255,255,255,.05) inset}
.brand-emblem img{width:100%;height:100%;object-fit:contain;display:block;position:relative;z-index:1}
.med-lock{width:96px;height:96px;margin-bottom:4px}

/* opening intro */
html.intro-running-root,html.intro-running-root body{overflow:hidden}
.intro{position:fixed;inset:0;z-index:200;display:grid;place-items:center;overflow:hidden;
  transition:transform .9s cubic-bezier(.7,0,.2,1), opacity .55s ease .18s}
.intro-brand{
  background:
    radial-gradient(circle at 50% 43%,rgba(216,184,108,.16),transparent 34%),
    radial-gradient(circle at 50% 64%,rgba(49,92,140,.22),transparent 44%),
    linear-gradient(150deg,#06111F 0%,#0A1B2E 48%,#030A13 100%),
    #06111F;
}
.intro-brand::before,
.intro-brand::after{
  content:"";
  position:absolute;
  pointer-events:none;
}
.intro-brand::before{
  inset:-18%;
  background:
    radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.12) 0%,rgba(255,255,255,.045) 28%,transparent 62%);
  opacity:0;
  transform:scale(.96);
  animation:introBackdrop 3.1s ease forwards;
}
.intro-brand::after{
  inset:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,.025),transparent 24%,transparent 72%,rgba(0,0,0,.24)),
    radial-gradient(ellipse at 50% 100%,rgba(0,0,0,.34),transparent 48%);
  opacity:1;
}
.intro-out{opacity:0;pointer-events:none}
.intro-lift{transform:translateY(-102%);opacity:0;pointer-events:none}
.intro-lift .intro-med{transform:translateY(-18vh) scale(1.06);opacity:0;transition:transform .8s cubic-bezier(.55,0,.2,1), opacity .5s ease}
.intro-lift .intro-tag{opacity:0;transition:opacity .3s ease}
.intro-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:20px;z-index:1;padding:28px;text-align:center}
.intro-med{
  width:min(420px,84vw);
  height:min(239px,48vw);
  position:relative;
  overflow:hidden;
  z-index:1;
  border-radius:20px;
  border-color:rgba(255,255,255,.28);
  background:#06111F;
  box-shadow:
    0 34px 92px -38px rgba(0,0,0,.96),
    0 0 80px -30px rgba(216,184,108,.62),
    0 18px 34px -28px rgba(216,184,108,.56) inset,
    0 0 0 1px rgba(216,184,108,.16);
  opacity:0;
  transform:translateY(10px) scale(.96);
  animation:introLogoIn 1s cubic-bezier(.16,.84,.24,1) .1s forwards;
}
.intro-med::before{
  content:"";
  position:absolute;
  inset:-54px;
  z-index:-1;
  border-radius:50%;
  background:radial-gradient(circle at 50% 46%,rgba(216,184,108,.24),rgba(49,92,140,.10) 44%,transparent 70%);
  opacity:0;
  transform:scale(.82);
  animation:introGlow 1.85s ease .1s forwards;
}
.intro-tag{
  position:relative;
  z-index:1;
  font-size:12.5px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(248,246,239,.78);
  opacity:0;
  animation:fadeup .65s ease 1.25s forwards;
}
@keyframes introBackdrop{0%{opacity:0;transform:scale(.96)}35%,84%{opacity:.7}100%{opacity:.34;transform:scale(1)}}
@keyframes introLogoIn{to{opacity:1;transform:none}}
@keyframes introGlow{0%{opacity:0;transform:scale(.82)}50%{opacity:1}100%{opacity:.92;transform:scale(1)}}
@keyframes fadeup{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:520px){
  .intro-stage{padding:20px;gap:18px}
  .intro-med{width:310px;height:176px;border-radius:18px}
  .intro-tag{font-size:11px;letter-spacing:.18em}
}
@media(prefers-reduced-motion:reduce){
  .intro-brand::before,.intro-med,.intro-med::before,.intro-tag{animation:none!important;opacity:1;transform:none}
}

/* top-right daily quote */
.ph-row{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}
.quote-mini{max-width:310px;text-align:right;position:relative;padding-top:6px}
.quote-mini .qm-mark{position:absolute;right:-2px;top:-16px;font-family:var(--sans);font-size:42px;color:var(--green);opacity:.14;line-height:0;font-weight:760}
.quote-mini p{font-family:var(--sans);font-style:normal;font-weight:560;font-size:14px;line-height:1.42;color:var(--ink-2)}
.quote-mini cite{display:block;margin-top:7px;font-size:10.5px;font-style:normal;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
@media(max-width:880px){.ph-row{flex-direction:column;gap:14px}.quote-mini{max-width:none;text-align:left;border-left:3px solid var(--green);padding:2px 0 2px 14px}.quote-mini .qm-mark{display:none}}

/* save assurance */
.savestat{font-size:11.5px;color:var(--ink-3);margin-bottom:10px;line-height:1.4}
.savedot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--green);background:var(--green-soft);transition:.2s;font-weight:700}
.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:#06111F;color:#F8F6EF;padding:10px 18px;border-radius:999px;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;z-index:120;transition:.25s cubic-bezier(.2,.8,.2,1)}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:880px){.toast{bottom:80px}}

/* settings rows */
.setrow{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}
.setrow:last-child{border-bottom:none}
.setrow > div{min-width:0}
.setrow .btn{white-space:nowrap}
.account-trust-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:14px 0 2px;
}
.account-trust-grid > div{
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-3);
  padding:12px;
  min-height:96px;
}
.account-trust-grid b{
  display:block;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--green);
  margin-bottom:6px;
}
.account-trust-grid span{
  display:block;
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.45;
}

/* passcode lock */
.lock{position:fixed;inset:0;z-index:210;background:var(--paper);display:grid;place-items:center;padding:24px}
.lock-out{opacity:0;transition:opacity .3s;pointer-events:none}
.lock-box{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:300px}
.lock-box.shake{animation:shake .4s}
.lock-t{font-size:15px;color:var(--ink-2);font-weight:600}
.pin-dots{display:flex;gap:15px}
.pin-dots span{width:13px;height:13px;border-radius:50%;border:1.6px solid var(--ink-3);transition:.15s}
.pin-dots span.on{background:var(--green);border-color:var(--green)}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:248px}
.keypad button{height:64px;border-radius:50%;background:var(--paper-2);border:1px solid var(--line);font-family:var(--serif);font-size:25px;color:var(--ink);transition:.1s}
.keypad button:active{background:var(--green-soft);transform:scale(.95)}
.keypad .bio{border:none;background:none}.keypad .bio .ni{width:27px;height:27px;color:var(--green)}
@keyframes shake{0%,100%{transform:none}20%,60%{transform:translateX(-9px)}40%,80%{transform:translateX(9px)}}

/* debt terms */
.debt-item{padding:10px 0;border-bottom:1px solid var(--line)}
.debt-item:last-child{border-bottom:none}
.debt-terms{display:flex;gap:12px;margin-top:6px;padding-left:2px}
.dt-field{flex:1}
.dt-field label{display:block;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:4px}
.num-suffix{display:flex;align-items:center;border:1px solid var(--line-2);border-radius:9px;background:var(--paper-3);padding:0 10px 0 0;transition:.12s}
.num-suffix:focus-within{border-color:var(--glow);background:#fff;box-shadow:0 0 0 3px var(--glow-soft)}
.num-suffix input{width:100%;border:none;background:none;padding:9px 4px 9px 11px;font-size:14px;font-variant-numeric:tabular-nums;text-align:right;outline:none}
.num-suffix span{color:var(--ink-3);font-size:13px;font-weight:600}

/* onboarding account error */
.ob-err{color:var(--danger);font-size:12.5px;font-weight:600;padding:0 30px 16px;text-align:right}
.modal-body input.shake{animation:shake .4s;border-color:var(--danger)!important}

/* ============================================================
   Consumer polish pass
   ============================================================ */
:root{
  --paper:#F8F6F0;
  --paper-2:#FFFFFF;
  --paper-3:#EEF2F6;
  --ink:#071827;
  --ink-2:#405064;
  --ink-3:#7B8492;
  --line:#DEE5EA;
  --line-2:#C8D2DB;
  --green:#C7A15A;
  --green-2:#DDBB72;
  --green-soft:#F7EFD9;
  --active-bg:#071B31;
  --active-fg:#FFFFFF;
  --accent:#0B2A4A;
  --accent-2:#164872;
  --accent-soft:#E7EEF6;
  --glow:#0B2A4A;
  --glow-rgb:11,42,74;
  --glow-soft:rgba(11,42,74,.14);
  --gold:#C7A15A;
  --gold-soft:#F7EFD9;
  --teal:#2F6F92;
  --teal-soft:#E3EEF4;
  --danger:#B73E4A;
  --danger-soft:#F7E2E4;
  --r:8px;
  --r-sm:7px;
  --r-lg:12px;
  --shadow:0 1px 2px rgba(20,26,20,.04),0 12px 30px -22px rgba(20,26,20,.28);
  --shadow-lg:0 4px 14px rgba(20,26,20,.07),0 32px 70px -38px rgba(20,26,20,.38);
}
:root[data-theme="dark"]{
  --paper:#06111F;
  --paper-2:#0B1828;
  --paper-3:#102033;
  --ink:#F8F6EF;
  --ink-2:#C4CBD4;
  --ink-3:#8995A4;
  --line:#26384A;
  --line-2:#34495D;
  --green:#D8B86C;
  --green-2:#E8CB83;
  --green-soft:rgba(216,184,108,.14);
  --active-bg:#D8B86C;
  --active-fg:#06111F;
  --accent:#D8B86C;
  --accent-2:#F0D48A;
  --accent-soft:rgba(216,184,108,.14);
  --glow:#D8B86C;
  --glow-rgb:216,184,108;
  --glow-soft:rgba(216,184,108,.16);
  --gold:#D8B86C;
  --gold-soft:rgba(216,184,108,.14);
  --teal:#7FB4D8;
  --teal-soft:rgba(127,180,216,.14);
  --danger:#FF8A82;
  --danger-soft:rgba(255,138,130,.14);
  --glass:rgba(15,17,21,.86);
}
body{
  background:
    linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,0) 260px),
    var(--paper);
  letter-spacing:0;
}
h1,h2,h3,h4{letter-spacing:0}
.sidebar{
  background:linear-gradient(180deg,var(--paper-2),var(--paper-3));
  padding:24px 16px;
}
.nav-item{
  border:1px solid transparent;
  border-radius:8px;
}
.nav-item:hover{
  background:var(--accent-soft);
  border-color:var(--line);
}
.nav-item.active{
  background:var(--active-bg);
  color:var(--active-fg);
  box-shadow:0 10px 24px -18px rgba(var(--glow-rgb),.85);
}
.wrap{max-width:1120px}
.page-head{padding:38px 0 14px}
.page-title{
  max-width:780px;
  font-size:clamp(30px,4vw,44px);
}
.page-sub{
  color:var(--ink-2);
  max-width:68ch;
}
.card{
  box-shadow:var(--shadow);
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.card:hover{
  border-color:var(--line-2);
  box-shadow:0 2px 4px rgba(20,26,20,.04),0 18px 42px -30px rgba(20,26,20,.34);
}
.card-pad{padding:24px}
.card-eyebrow{
  color:var(--ink-3);
  letter-spacing:.12em;
}
.hero{
  background:linear-gradient(135deg,#06111F,#0B2A4A 62%,#173A5F);
  border-radius:12px;
  padding:38px 40px;
}
.hero::after{
  right:0;
  top:0;
  width:100%;
  height:100%;
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.08));
  opacity:.65;
}
.hero-num{font-size:clamp(48px,6vw,70px)}
.hero-meta{gap:16px 24px}
.tile{
  min-height:136px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.tile .lab{letter-spacing:.08em}
.tile .val{font-size:clamp(25px,3vw,33px)}
.tile .sub{line-height:1.35}
.btn{
  min-height:42px;
  border-radius:8px;
}
.btn-pri{
  background:var(--active-bg);
  color:var(--active-fg);
  box-shadow:0 14px 30px -18px rgba(var(--glow-rgb),.9);
}
.btn-pri:hover{background:var(--accent-2);transform:translateY(-1px)}
.btn-ghost{border-radius:8px;background:rgba(255,255,255,.38)}
.callout{
  border-radius:8px;
  background:var(--accent-soft);
}
.callout-welcome{
  background:linear-gradient(135deg,var(--accent-soft),var(--teal-soft));
  border-color:#C7D7EB;
}
.modal{
  border:1px solid var(--line);
  border-radius:12px;
}
.modal-body{overflow-x:hidden}
.modal-foot{
  background:linear-gradient(180deg,rgba(255,255,255,0),rgba(0,0,0,.025));
  border-top:1px solid var(--line);
}
.field input,.money-in input,.num-suffix{
  border-radius:8px;
}
.segmented{border-radius:8px}
.segmented button{border-radius:6px}
.erow{grid-template-columns:minmax(0,1fr) 138px 30px}
.del{opacity:.55}
.empty-chart{
  min-height:300px;
  display:grid;
  place-content:center;
  text-align:center;
  padding:32px 18px;
  border:1px dashed var(--line-2);
  border-radius:8px;
  background:linear-gradient(180deg,var(--paper-2),var(--paper-3));
}
.empty-chart-kicker{
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--green);
}
.empty-chart-title{
  margin-top:8px;
  font-family:var(--serif);
  font-size:22px;
  line-height:1.15;
}
.empty-chart-copy{
  margin-top:8px;
  color:var(--ink-2);
  font-size:13.5px;
}
.cta{
  background:linear-gradient(135deg,#06111F,#0B2A4A 62%,#173A5F);
  border-radius:12px;
}
.cta-mark{border-radius:50%}
.quote-mini p{letter-spacing:0}
.proj-note{
  margin-top:14px;
  font-size:12.5px;
  line-height:1.55;
  color:var(--ink-3);
}
.proj-note .linklike{font-weight:600}
.plan-score{
  min-width:116px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-3);
  padding:14px 16px;
  text-align:center;
}
.plan-score span{
  display:block;
  font-family:var(--serif);
  font-size:30px;
  font-weight:600;
  line-height:1;
  color:var(--green);
}
.plan-score small{
  display:block;
  margin-top:5px;
  font-size:10.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-3);
  font-weight:700;
}
.checkin{
  margin-bottom:18px;
}
.checkin-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
.check-score{flex:none}
.check-steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:18px;
}
.check-step{
  text-align:left;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-2);
  padding:13px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 9px;
  min-height:100px;
  transition:.16s ease;
}
.check-step:hover{
  border-color:var(--green);
  background:var(--green-soft);
}
.check-step > span{
  grid-row:1 / span 2;
  color:var(--ink-3);
  font-weight:800;
}
.check-step b{
  font-size:13px;
}
.check-step small{
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.4;
}
.check-step.done{
  border-color:rgba(15,95,70,.25);
  background:var(--green-soft);
}
.check-step.done > span{color:var(--green)}
.check-signal{
  margin-top:14px;
  padding:13px 16px;
  border:1px solid var(--line);
  border-left:3px solid var(--green);
  border-radius:8px;
  background:var(--green-soft);
  font-size:13.5px;
  line-height:1.55;
  color:var(--ink-2);
}
.check-signal b{color:var(--ink)}
.launch-list > div{
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-2);
  padding:13px;
}
.launch-list b{
  display:block;
  font-size:12.5px;
  color:var(--ink);
  margin-bottom:6px;
}
.launch-list small{
  display:block;
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.45;
}
.method-modal{max-width:720px}
.method-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.method-grid > div{
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-3);
  padding:14px;
}
.method-grid b{
  display:block;
  color:var(--ink);
  font-size:13px;
  margin-bottom:6px;
}
.method-grid span{
  display:block;
  color:var(--ink-2);
  font-size:12.8px;
  line-height:1.5;
}
.method-note{
  margin-top:14px;
  border:1px solid rgba(var(--glow-rgb),.18);
  background:var(--accent-soft);
  color:var(--ink-2);
  border-radius:8px;
  padding:14px;
  font-size:13px;
  line-height:1.55;
}
.launch-list{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:14px;
}
.launch-list > div{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 9px;
  padding:12px;
}
.launch-list span{
  grid-row:1 / span 2;
  font-weight:800;
  color:var(--ink-3);
}
.launch-list .done{
  background:var(--green-soft);
  border-color:rgba(15,95,70,.25);
}
.launch-list .done span{color:var(--green)}

.logo-static{position:relative;display:block}
.logo-static .logo-face{position:absolute;inset:0}
.logo-static .logo-front img{width:100%;height:100%;object-fit:contain}
.logo-head{width:132px;height:76px}
.logo-xs{width:52px;height:52px}
.brand{padding-bottom:18px}
.nav-label{line-height:1.25}
.cashflow-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.budget-workspace{
  display:grid;
  grid-template-columns:minmax(330px,.78fr) minmax(560px,1.22fr);
  gap:18px;
  align-items:start;
  margin-top:18px;
}
.budget-income-card{position:sticky;top:18px}
.budget-income-card .income-grid{grid-template-columns:1fr;gap:14px}
.budget-income-card .callout{line-height:1.5}
.budget-expense-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:start;
}
.budget-expense-grid .card{min-height:100%}
.budget-expense-grid .erow{grid-template-columns:minmax(0,1fr) 132px 28px}
.budget-expense-grid .card-eyebrow{margin-bottom:18px}
.account-entry{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  margin-bottom:18px;
  border:1px solid var(--line);
  border-radius:8px;
  background:
    radial-gradient(520px 180px at 0% 0%,rgba(var(--glow-rgb),.12),transparent 62%),
    var(--paper-2);
  padding:18px 20px;
  box-shadow:0 1px 2px rgba(17,20,17,.035),0 18px 46px -38px rgba(17,20,17,.32);
}
.account-entry-main{min-width:0}
.account-entry .card-eyebrow{margin-bottom:6px}
.account-entry b{font-size:17px;line-height:1.25}
.account-entry span{display:block;color:var(--ink-2);font-size:13.5px;line-height:1.5;margin-top:5px;max-width:62ch}
.account-entry-actions{
  display:flex;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
}
.account-entry-actions .btn{white-space:nowrap}
.account-entry.signed-in{
  grid-template-columns:1fr auto;
}
.projection-basis{margin-bottom:18px}
.projection-dial-section{margin-top:18px}
.projection-dials{
  grid-template-columns:repeat(auto-fit,minmax(142px,1fr));
  gap:14px;
  padding:16px 18px;
}
.projection-dials .dial .dl{margin-bottom:6px}
.projection-dials .dial .dname{font-size:12px;line-height:1.25}
.projection-dials .dial .dval{font-size:18px}
.projection-dials input[type=range]{height:3px}
.projection-dials input[type=range]::-webkit-slider-thumb{width:16px;height:16px}
.basis-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
.basis-head .linklike{
  flex:none;
  margin-top:2px;
  font-size:13px;
}
.basis-head .card-eyebrow{margin-bottom:5px}
.basis-copy{color:var(--ink-2);font-size:13.5px;line-height:1.4;max-width:74ch}
.basis-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:8px;
  margin-top:12px;
}
.basis-grid > div{
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-3);
  padding:10px 11px;
  min-height:88px;
}
.basis-grid span{display:block;color:var(--ink-3);font-size:10.5px;font-weight:760;text-transform:uppercase;letter-spacing:.08em}
.basis-grid b{display:block;color:var(--ink);font-size:16px;line-height:1.15;margin-top:6px}
.basis-grid small{display:block;color:var(--ink-2);font-size:11.5px;line-height:1.3;margin-top:6px}
.basis-actions{
  margin-top:10px;
  border-left:3px solid var(--green);
  padding:8px 10px;
  background:var(--green-soft);
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.35;
  border-radius:0 8px 8px 0;
}
.projection-check{
  margin-bottom:18px;
  padding:18px;
  background:
    radial-gradient(520px 180px at 0% 0%,rgba(var(--glow-rgb),.10),transparent 64%),
    var(--paper-2);
}
.projection-check-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
.projection-check-head .card-eyebrow{margin-bottom:5px}
.projection-check-head b{
  display:block;
  color:var(--ink);
  font-size:18px;
  line-height:1.2;
}
.projection-check-head p{
  max-width:68ch;
  color:var(--ink-2);
  font-size:13px;
  line-height:1.45;
  margin-top:5px;
}
.projection-check-status{
  flex:none;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 11px;
  border-radius:999px;
  border:1px solid var(--line);
  font-size:11px;
  font-weight:820;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.projection-check-status.ok{background:var(--green-soft);color:var(--green);border-color:rgba(15,95,70,.18)}
.projection-check-status.watch{background:var(--gold-soft);color:var(--gold);border-color:rgba(185,135,42,.2)}
.projection-check-status.risk{background:var(--danger-soft);color:var(--danger);border-color:rgba(183,62,74,.22)}
.projection-check-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin-top:14px;
}
.projection-check-item{
  display:grid;
  grid-template-columns:10px minmax(0,1fr);
  gap:10px;
  min-height:104px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper-3);
}
.projection-check-item > span{
  width:9px;
  height:9px;
  margin-top:4px;
  border-radius:999px;
  background:var(--accent);
  box-shadow:0 0 0 4px var(--accent-soft);
}
.projection-check-item.ok > span{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}
.projection-check-item.watch > span{background:var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.projection-check-item.risk > span{background:var(--danger);box-shadow:0 0 0 4px var(--danger-soft)}
.projection-check-item b{
  display:block;
  color:var(--ink);
  font-size:13px;
  line-height:1.25;
}
.projection-check-item small{
  display:block;
  color:var(--ink-2);
  font-size:11.8px;
  line-height:1.35;
  margin-top:5px;
}

/* ---------- public-app polish pass ---------- */
body{background:var(--paper);letter-spacing:0}
h1,h2,h3,h4{letter-spacing:0}
.sidebar{background:var(--paper-2)}
.brand-name{font-family:var(--serif);font-weight:680;letter-spacing:0}
.nav-item{border-radius:8px;font-weight:620}
.nav-item.active{background:var(--active-bg);color:var(--active-fg);box-shadow:none}
.wrap{max-width:1140px}
.page-head{padding:34px 0 16px}
.page-title{font-family:var(--serif);font-size:clamp(38px,4.6vw,64px);font-weight:680;line-height:1.02;letter-spacing:0;font-feature-settings:"liga" 1,"kern" 1}
.page-sub{font-size:15.5px;line-height:1.55}
.eyebrow,.card-eyebrow,.hero-label{font-family:var(--sans);font-weight:760;letter-spacing:.11em}
.card{border-radius:8px;box-shadow:0 1px 2px rgba(17,20,17,.04),0 12px 34px -28px rgba(17,20,17,.3)}
.card:hover{transform:none;box-shadow:0 1px 2px rgba(17,20,17,.04),0 16px 42px -32px rgba(17,20,17,.36)}
.card-pad{padding:22px}
.hero{background:#06111F;border-radius:8px;border:1px solid rgba(216,184,108,.14);padding:34px 36px}
.hero::after{display:none}
.hero-num{font-family:var(--serif);font-size:60px;font-weight:680;letter-spacing:0}
.hero.nw-hero{padding:26px 30px}
.tile{border-radius:8px;min-height:124px}
.tile .val,.totrow .tv,.dial .dval,.obr-v{font-family:var(--serif);font-weight:680;letter-spacing:0}
.btn{border-radius:8px;font-weight:720;letter-spacing:0}
.btn-pri{background:var(--active-bg);color:var(--active-fg);box-shadow:0 12px 26px -20px rgba(var(--glow-rgb),.9)}
.btn-pri:hover{background:var(--accent-2)}
.btn-ghost{background:var(--paper-2)}
.money-in input,.field input,.num-suffix{border-radius:8px;background:var(--paper-2)}
.money-in input:focus,.field input:focus,.num-suffix:focus-within{
  background:var(--paper-2);
  color:var(--ink);
}
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea{
  color:var(--ink);
  caret-color:var(--accent-2);
  -webkit-text-fill-color:var(--ink);
}
:root[data-theme="dark"] input:not([type="range"]),
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea{
  background:var(--paper-2);
  border-color:var(--line-2);
}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{
  color:var(--ink-3);
  -webkit-text-fill-color:var(--ink-3);
  opacity:1;
}
:root[data-theme="dark"] .money-in input:focus,
:root[data-theme="dark"] .field input:focus,
:root[data-theme="dark"] .modal input:not([type="range"]):focus,
:root[data-theme="dark"] .modal textarea:focus,
:root[data-theme="dark"] .num-suffix:focus-within,
:root[data-theme="dark"] .select-wrap select:focus,
:root[data-theme="dark"] .erow .nm:focus{
  background:var(--paper-3);
  color:var(--ink);
  -webkit-text-fill-color:var(--ink);
  border-color:var(--accent);
}
:root[data-theme="dark"] .num-suffix input{
  background:transparent;
  border-color:transparent;
  color:var(--ink);
  -webkit-text-fill-color:var(--ink);
}
:root[data-theme="dark"] input::selection{
  background:rgba(var(--glow-rgb),.32);
  color:var(--ink);
  -webkit-text-fill-color:var(--ink);
}
.field{min-width:0}
.field label{font-weight:720;color:var(--ink);margin-bottom:7px}
.modal{max-width:560px;border-radius:10px;background:var(--paper-2)}
.modal-wide{max-width:860px}
.modal-head{padding:28px 30px 0}
.modal-head h2{font-family:var(--serif);font-size:28px!important;font-weight:610;letter-spacing:0;line-height:1.08}
.modal-body{padding:20px 30px 10px;gap:18px}
.modal-foot{padding:18px 30px 24px;background:var(--paper-2)}
.share-modal{max-width:640px}
.share-modal .modal-head .muted{margin-top:10px;font-size:14px;line-height:1.55;max-width:58ch}
.share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.share-badge{
  flex:none;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:0 11px;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--accent-soft);
  color:var(--accent);
  font-size:11px;
  font-weight:820;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.share-preview{
  margin:0;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:#06111F;
  box-shadow:0 16px 42px -34px rgba(17,20,17,.7);
}
.share-preview img{
  display:block;
  width:100%;
  aspect-ratio:1200/630;
  object-fit:cover;
}
.share-preview figcaption{
  padding:10px 13px;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(247,244,236,.72);
  font-size:12px;
  line-height:1.45;
  background:rgba(10,15,11,.92);
}
.share-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.share-link-row input{min-width:0}
.share-link-row .btn{white-space:nowrap}
.share-message{
  width:100%;
  min-height:128px;
  resize:none;
  line-height:1.55;
  padding:12px 14px;
  border:1px solid var(--line-2);
  border-radius:8px;
  background:var(--paper-2);
  color:var(--ink);
  font:inherit;
  font-size:14px;
}
.share-actions{display:flex;gap:10px;flex-wrap:wrap}
.share-actions .btn{justify-content:center}
.share-private{font-size:13px;line-height:1.55}
.dotrow{gap:5px}
.pdot{height:5px;width:18px;border-radius:999px;background:var(--line)}
.pdot.on{width:26px;border-radius:999px;background:var(--active-bg)}
.ob-note{font-size:12.5px;line-height:1.5}
.ob-readout{border-radius:8px;background:var(--accent-soft);border-color:rgba(var(--glow-rgb),.18)}
.ob-debt-terms{gap:12px}
.ob-account-tools{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.ob-add-more{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.ob-add-title{
  margin-bottom:8px;
  color:var(--ink-3);
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.chip-btn{
  min-height:34px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--paper-3);
  color:var(--ink-2);
  font-size:12.5px;
  font-weight:720;
  transition:.15s ease;
}
.chip-btn:hover{
  border-color:var(--accent);
  background:var(--accent-soft);
  color:var(--ink);
}
.ob-account-list{
  display:grid;
  gap:10px;
}
.ob-account-row,.ob-debt-row,.ob-custom-row{
  display:grid;
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--paper);
}
.ob-account-row{grid-template-columns:minmax(180px,1fr) 160px 180px 34px}
.ob-debt-row{grid-template-columns:minmax(180px,1fr) 180px 110px 124px 34px}
.ob-custom-row{grid-template-columns:minmax(180px,1fr) 180px 34px}
.ob-account-row label,.ob-debt-row label,.ob-custom-row label{
  display:block;
  margin-bottom:6px;
  color:var(--ink-3);
  font-size:10.5px;
  font-weight:760;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.ob-account-row input,.ob-debt-row input,.ob-account-row select,.ob-custom-row input{
  width:100%;
  min-height:44px;
  font-size:15px;
}
.modal .field > input,
.modal .field .money-in input,
.modal .field .num-suffix,
.modal .select-wrap select{
  min-height:48px;
  font-size:16px;
}
.modal .field .money-in input,
.ob-account-row .money-in input,
.ob-debt-row .money-in input,
.ob-custom-row .money-in input{
  padding-left:30px;
  padding-right:14px;
}
.modal .field .money-in::before,
.ob-account-row .money-in::before,
.ob-debt-row .money-in::before,
.ob-custom-row .money-in::before{
  left:13px;
  font-size:14px;
}
.ob-account-row .money-in input,
.ob-debt-row .money-in input,
.ob-debt-row .num-suffix,
.ob-custom-row .money-in input{
  min-height:46px;
  font-size:16px;
}
.ob-account-row .num-suffix input,
.ob-debt-row .num-suffix input{
  min-height:44px;
  font-size:16px;
}
.ob-account-row > div,
.ob-debt-row > div,
.ob-custom-row > div{
  min-width:0;
}
.ob-custom-wrap{
  display:grid;
  gap:10px;
  margin-top:8px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.ob-custom-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.ob-custom-head b{
  display:block;
  color:var(--ink);
  font-size:13px;
  line-height:1.25;
}
.ob-custom-head span{
  display:block;
  margin-top:3px;
  max-width:62ch;
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.45;
}
.ob-del-row{
  width:34px;
  height:46px;
  border-radius:8px;
  display:grid;
  place-items:center;
  font-size:22px;
}
.ob-total{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:13px 15px;
  border:1px solid rgba(0,122,77,.16);
  border-radius:8px;
  background:var(--green-soft);
}
.ob-total span{
  color:var(--ink-2);
  font-size:12px;
  font-weight:760;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.ob-total b{
  font-family:var(--serif);
  font-size:25px;
  font-weight:610;
  line-height:1;
  color:var(--green);
}
.ob-total.debt{border-color:rgba(178,58,58,.18);background:var(--danger-soft)}
.ob-total.debt b{color:var(--danger)}
.ob-empty{
  border:1px dashed var(--line-2);
  border-radius:8px;
  padding:18px;
  color:var(--ink-2);
  background:var(--paper-3);
  font-size:13px;
  line-height:1.45;
}
.setrow{gap:20px;padding:16px 0}
.setrow .select-wrap{min-width:150px}
.account-trust-grid > div{border-radius:8px}
@media(max-width:880px){
  body{font-size:14px}
  .topbar{padding:10px 14px}
  .page-head{padding:24px 0 10px}
  .page-title{font-size:42px}
  .wrap{padding:0 16px}
  .g4.keep{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tile{min-height:124px;padding:16px}
  .tile .val{font-size:25px}
  .hero{padding:28px 24px}
  .card-pad{padding:18px}
  .modal{max-width:min(560px,calc(100vw - 28px))}
  .modal-wide{max-width:min(860px,calc(100vw - 28px))}
  .modal-head{padding:24px 24px 0}
  .modal-body{padding:16px 24px 8px}
  .modal-foot{padding:16px 24px 22px}
  .share-modal{max-width:min(640px,calc(100vw - 28px))}
  .share-preview figcaption{font-size:11.5px}
  .plan-score{text-align:left;display:flex;align-items:baseline;gap:10px}
  .account-trust-grid{grid-template-columns:1fr}
  .account-trust-grid > div{min-height:0}
  .account-entry,.account-entry.signed-in{grid-template-columns:1fr}
  .account-entry-actions{justify-content:flex-start}
  .overview-hero{grid-template-columns:1fr}
  .overview-hero-ledger{
    align-content:start;
    padding:24px 0 0;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.12);
  }
  .overview-hero-ledger::before{
    left:0;
    right:0;
    top:-1px;
    bottom:auto;
    width:auto;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(var(--glow-rgb),.42),transparent);
  }
  .overview-hero-chart{grid-template-columns:180px minmax(0,1fr)}
  .nw-equation{max-width:none}
  .overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .overview-flow-grid{grid-template-columns:1fr}
  .overview-money-map{padding:24px}
  .overview-map-body{grid-template-columns:1fr;gap:18px}
  .basis-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .projection-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .history-form{grid-template-columns:1fr 1fr}
  .history-form .btn{grid-column:1 / -1;justify-content:center}
  .basis-head{display:block}
  .basis-head .linklike{display:inline-block;margin-top:10px}
  .checkin-head{display:grid;grid-template-columns:1fr}
  .check-steps{grid-template-columns:1fr}
  .check-step{min-height:0}
  .method-grid{grid-template-columns:1fr}
  .budget-workspace{grid-template-columns:1fr}
  .budget-income-card{position:static}
  .budget-income-card .income-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .budget-expense-grid{grid-template-columns:1fr}
  .ob-account-row{grid-template-columns:1fr 1fr 1fr 30px}
  .ob-debt-row{grid-template-columns:1fr 1fr 1fr 1fr 30px}
  .ob-custom-row{grid-template-columns:1fr 1fr 30px}
}
@media(max-width:520px){
  .scrim{padding:10px}
  .modal{
    max-width:calc(100vw - 20px);
    max-height:calc(100vh - 20px);
    max-height:calc(100dvh - 20px);
  }
  .modal-head{padding:22px 18px 0}
  .modal-body{padding:16px 18px 8px;gap:16px}
  .modal-foot{padding:16px 18px 20px}
  .share-head{display:grid;gap:10px}
  .share-badge{justify-self:start}
  .share-link-row{grid-template-columns:1fr}
  .share-link-row .btn,.share-actions .btn{width:100%}
  .share-message{min-height:150px}
  .g4.keep,.g2.keep{grid-template-columns:1fr 1fr}
  .tile{min-height:118px}
  .tile .lab{font-size:10.5px}
  .tile .sub{font-size:12px}
  .hero-num{font-size:44px}
  .nw-equation{gap:7px;margin-top:16px}
  .nw-equation span,.nw-equation strong{white-space:normal}
  .overview-hero-ledger{padding-top:20px}
  .ledger-head{display:grid}
  .ledger-head b{text-align:left}
  .overview-hero-chart{grid-template-columns:1fr;justify-items:center}
  .overview-hero-chart .overview-legend{width:100%}
  .overview-metrics{grid-template-columns:1fr}
  .overview-adjust-note{display:block}
  .overview-adjust-note b{display:block;margin-bottom:4px}
  .overview-donut-layout{grid-template-columns:1fr;justify-items:center}
  .overview-donut-layout .overview-legend{width:100%}
  .overview-money-map{padding:20px}
  .overview-map-head{display:block}
  .overview-map-head .add-row{display:inline-block;margin-top:10px}
  .overview-map-title{font-size:18px}
  .overview-map-viz{padding:16px}
  .overview-map-viz .overview-donut .chart{width:208px;max-width:208px!important}
  .overview-map-list{grid-template-columns:1fr}
  .overview-map-list > div{min-height:0}
  .nw-pie-card{grid-template-columns:1fr;justify-items:center;text-align:left}
  .nw-pie-legend{width:100%}
  .history-form{grid-template-columns:1fr}
  .history-form .btn{width:100%}
  .history-row{grid-template-columns:minmax(0,1fr) auto 30px}
  .modal-foot{align-items:stretch}
  .modal-foot .btn{justify-content:center}
  .ob-debt-terms,.debt-terms{flex-direction:column}
  .basis-grid{grid-template-columns:1fr}
  .projection-check{padding:16px}
  .projection-check-head{display:grid;gap:10px}
  .projection-check-status{justify-self:start}
  .projection-check-grid{grid-template-columns:1fr}
  .projection-check-item{min-height:0}
  .budget-income-card .income-grid{grid-template-columns:1fr}
  .budget-expense-grid .erow{grid-template-columns:minmax(0,1fr) 118px 26px}
  .ob-account-row,.ob-debt-row,.ob-custom-row{
    grid-template-columns:minmax(0,1fr) 36px;
    gap:12px;
    padding:14px;
  }
  .ob-account-row .ob-row-main,.ob-debt-row .ob-row-main,.ob-custom-row .ob-row-main{grid-column:1;grid-row:1}
  .ob-account-row > div:not(.ob-row-main),
  .ob-debt-row > div:not(.ob-row-main),
  .ob-custom-row > div:not(.ob-row-main){grid-column:1 / -1}
  .ob-del-row{grid-column:2;grid-row:1;align-self:end;width:36px;height:48px;opacity:.72}
  .ob-custom-head{display:grid;gap:10px}
  .ob-custom-head .chip-btn{justify-self:start}
  .ob-account-tools{gap:6px}
  .chip-btn{font-size:12px;padding:7px 9px}
}

/* ============================================================
   Premium trust pass - coherent navy/gold product system
   ============================================================ */
:root{
  --display:Georgia,"Times New Roman",serif;
  --serif:var(--display);
  --navy-950:#03101F;
  --navy-900:#06172A;
  --navy-800:#0A2340;
  --navy-700:#123A62;
  --blue-500:#6EA7D6;
  --cream:#F8F5EC;
  --gold:#D6B164;
  --gold-2:#E8C979;
  --gold-soft:#F7EED8;
  --green:#D6B164;
  --green-2:#E8C979;
  --green-soft:#F7EED8;
  --accent:#0B2A4A;
  --accent-2:#123A62;
  --accent-soft:#E8EEF6;
  --active-bg:#06172A;
  --active-fg:#FFFFFF;
  --glow:#D6B164;
  --glow-rgb:214,177,100;
  --glow-soft:rgba(214,177,100,.18);
  --teal:#6EA7D6;
  --teal-soft:#E7F0F7;
  --danger:#B94656;
  --danger-soft:#F7E3E6;
  --shadow:0 1px 2px rgba(6,17,31,.05),0 18px 44px -34px rgba(6,17,31,.34);
  --shadow-lg:0 5px 18px rgba(6,17,31,.08),0 34px 90px -48px rgba(6,17,31,.44);
}
:root[data-theme="dark"]{
  --paper:#06111F;
  --paper-2:#0A182A;
  --paper-3:#102238;
  --ink:#F8F6EF;
  --ink-2:#C8D0DA;
  --ink-3:#8E9AA8;
  --line:#24364B;
  --line-2:#334A62;
  --active-bg:#D8B86C;
  --active-fg:#06111F;
  --accent:#D8B86C;
  --accent-2:#F0D48A;
  --accent-soft:rgba(216,184,108,.14);
  --gold:#D8B86C;
  --gold-2:#F0D48A;
  --gold-soft:rgba(216,184,108,.14);
  --green:#D8B86C;
  --green-2:#F0D48A;
  --green-soft:rgba(216,184,108,.14);
  --teal:#7EAED4;
  --teal-soft:rgba(126,174,212,.14);
  --danger:#FF909A;
  --danger-soft:rgba(255,144,154,.14);
  --glow:#D8B86C;
  --glow-rgb:216,184,108;
  --glow-soft:rgba(216,184,108,.18);
}
body{
  color-scheme:light;
  background:
    radial-gradient(980px 420px at 52% -250px,rgba(214,177,100,.16),transparent 68%),
    linear-gradient(180deg,#F6F8FA 0,#F8F6F0 420px),
    var(--paper);
}
:root[data-theme="dark"] body{color-scheme:dark}
.main{
  background:
    radial-gradient(900px 360px at 48% -220px,rgba(214,177,100,.18),transparent 70%),
    linear-gradient(180deg,#ECF2F8 0,#F7F8F6 210px,var(--paper) 620px),
    var(--paper);
}
:root[data-theme="dark"] .main{
  background:
    radial-gradient(980px 380px at 50% -230px,rgba(216,184,108,.16),transparent 72%),
    linear-gradient(180deg,#07192B 0,#071421 260px,var(--paper) 680px),
    var(--paper);
}
.sidebar{
  background:
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(242,246,249,.92)),
    var(--paper-2);
  box-shadow:1px 0 0 rgba(6,17,31,.04);
}
:root[data-theme="dark"] .sidebar{
  background:linear-gradient(180deg,#071625,#081321);
  box-shadow:1px 0 0 rgba(255,255,255,.04);
}
.page-title{
  font-family:var(--display);
  font-weight:700;
  line-height:1.03;
  text-wrap:balance;
  color:var(--ink);
}
.page-sub{text-wrap:pretty}
.eyebrow,.card-eyebrow,.hero-label,.nav-label{
  letter-spacing:.13em;
  font-weight:780;
}
.card{
  border-color:rgba(6,17,31,.11);
  box-shadow:var(--shadow);
}
:root[data-theme="dark"] .card{border-color:rgba(255,255,255,.09)}
.card:hover{
  border-color:rgba(11,42,74,.24);
  box-shadow:var(--shadow-lg);
}
:root[data-theme="dark"] .card:hover{border-color:rgba(216,184,108,.22)}
.btn{
  min-height:44px;
  border-radius:8px;
  font-weight:780;
}
.btn-pri{
  background:linear-gradient(135deg,var(--navy-900),var(--navy-700));
  color:#fff;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 16px 34px -24px rgba(6,17,31,.86);
}
.btn-pri:hover{
  background:linear-gradient(135deg,var(--navy-800),var(--navy-700));
}
:root[data-theme="dark"] .btn-pri{
  background:linear-gradient(135deg,var(--gold-2),var(--gold));
  color:#06111F;
  border-color:rgba(255,255,255,.18);
}
.btn-ghost{
  background:rgba(255,255,255,.7);
  border-color:var(--line);
}
:root[data-theme="dark"] .btn-ghost{background:rgba(255,255,255,.035)}
.linklike{
  color:var(--accent);
  font-weight:780;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.nav-item{
  position:relative;
  min-height:48px;
  border-radius:8px;
  font-weight:720;
}
.nav-item.active{
  background:linear-gradient(135deg,var(--navy-900),var(--navy-700));
  color:#fff;
  box-shadow:0 18px 40px -28px rgba(6,17,31,.95);
}
.nav-item.active::before{
  content:"";
  width:3px;
  border-radius:999px;
  background:var(--gold);
  position:absolute;
  left:7px;
  top:10px;
  bottom:10px;
}
:root[data-theme="dark"] .nav-item.active{
  background:linear-gradient(135deg,var(--gold-2),var(--gold));
  color:#06111F;
}
:root[data-theme="dark"] .nav-item.active::before{background:#06111F}
.topbar{
  background:rgba(248,250,252,.86);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(6,17,31,.08);
}
:root[data-theme="dark"] .topbar{
  background:rgba(6,17,31,.78);
  border-color:rgba(255,255,255,.08);
}
.logo-face,.brand-emblem{
  background:linear-gradient(145deg,#06111F,#081C31);
  border-color:rgba(216,184,108,.34);
}
.logo-face{box-shadow:0 16px 38px -28px rgba(6,17,31,.92)}
.overview-hero{
  grid-template-columns:minmax(0,.88fr) minmax(360px,.72fr);
  gap:36px;
  padding:46px 48px;
  border:1px solid rgba(216,184,108,.16);
  background:
    radial-gradient(760px 320px at 0% 0%,rgba(216,184,108,.18),transparent 66%),
    radial-gradient(680px 360px at 100% 100%,rgba(110,167,214,.15),transparent 70%),
    linear-gradient(135deg,#03101F 0,#06192B 48%,#09213A 100%);
  box-shadow:0 30px 90px -56px rgba(6,17,31,.9);
}
.overview-hero-copy{position:relative;z-index:1}
.overview-hero .hero-num{
  margin-top:10px;
  font-size:clamp(54px,8vw,92px);
  line-height:.94;
}
.overview-hero .hero-definition{
  margin-top:18px;
  max-width:48ch;
  font-size:15px;
  color:rgba(248,246,239,.74);
}
.nw-equation{
  margin-top:28px;
  padding-top:0;
  border-top:0;
  gap:9px;
}
.nw-equation span,.nw-equation strong{
  min-height:48px;
  padding:11px 13px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
}
.nw-equation i{
  min-width:16px;
  text-align:center;
  color:rgba(248,246,239,.48);
}
.overview-hero-ledger{
  align-self:center;
  padding:24px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:10px;
  background:
    radial-gradient(440px 220px at 0 0,rgba(216,184,108,.11),transparent 68%),
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 30px 72px -58px rgba(0,0,0,.95);
  border-left:1px solid rgba(255,255,255,.13);
}
.overview-hero-ledger::before{display:none}
.ledger-head b{color:rgba(248,246,239,.84)}
.ledger-summary{
  padding:12px 0 4px;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.ledger-summary b{font-size:30px}
.ledger-row-top{font-size:13.5px}
.ledger-track{height:7px}
.ledger-row.cash .ledger-track i{background:linear-gradient(90deg,#98C7E8,#4F8DBB)}
.ledger-row.invest .ledger-track i{background:linear-gradient(90deg,#F0D48A,#B58A35)}
.ledger-row.property .ledger-track i{background:linear-gradient(90deg,#DDAD57,#8E6728)}
.overview-adjust-note{
  border-left-color:var(--gold);
  background:linear-gradient(135deg,rgba(214,177,100,.14),rgba(110,167,214,.08));
}
.overview-money-map{
  padding:32px;
  border-color:rgba(216,184,108,.16);
  background:
    radial-gradient(760px 320px at 5% 0%,rgba(216,184,108,.17),transparent 62%),
    radial-gradient(640px 360px at 96% 100%,rgba(110,167,214,.16),transparent 66%),
    linear-gradient(135deg,#03101F,#07182A 52%,#09213A);
}
.overview-map-title{
  font-size:clamp(24px,2.7vw,34px);
  max-width:760px;
}
.overview-map-head .add-row{color:#F0D48A}
.overview-map-body{
  grid-template-columns:minmax(250px,330px) minmax(0,1fr);
  gap:28px;
}
.overview-map-viz{
  min-height:360px;
  align-content:center;
  border-color:rgba(216,184,108,.16);
  background:
    radial-gradient(circle at 50% 44%,rgba(216,184,108,.20),transparent 55%),
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
}
.overview-map-viz .overview-donut .chart{
  width:min(238px,100%);
  max-width:238px!important;
  filter:drop-shadow(0 22px 34px rgba(0,0,0,.32));
}
.overview-map-center-note{
  max-width:270px;
  color:rgba(248,246,239,.72);
}
.overview-map-list{
  gap:14px;
}
.overview-map-list > div{
  min-height:118px;
  padding:18px 20px;
  border-color:rgba(255,255,255,.12);
}
.overview-map-list > div.source{
  border-color:rgba(248,246,239,.18);
  background:linear-gradient(135deg,rgba(248,246,239,.11),rgba(255,255,255,.035));
}
.overview-map-list > div.expense{
  border-color:rgba(200,106,75,.34);
  background:linear-gradient(135deg,rgba(200,106,75,.17),rgba(255,255,255,.035));
}
.overview-map-list > div.invest{
  border-color:rgba(216,184,108,.34);
  background:linear-gradient(135deg,rgba(216,184,108,.16),rgba(255,255,255,.035));
}
.overview-map-list > div.pos{
  border-color:rgba(110,167,214,.34);
  background:linear-gradient(135deg,rgba(110,167,214,.15),rgba(255,255,255,.035));
}
.overview-map-list > div.workplace{
  border-color:rgba(216,184,108,.30);
  background:linear-gradient(135deg,rgba(216,184,108,.13),rgba(255,255,255,.032));
}
.overview-map-list b{
  font-family:var(--sans);
  font-size:clamp(28px,3vw,38px);
  letter-spacing:-.01em;
}
.overview-map-list .invest b{color:#F0D48A}
.overview-map-list .pos b{color:#A7CDED}
.overview-map-list .workplace b{color:#F0D48A}
.overview-map-foot{
  border-left-color:var(--gold);
  border-color:rgba(216,184,108,.22);
  background:rgba(216,184,108,.12);
}
.chart-card{
  border-radius:10px;
  padding:24px;
}
.chart-head p{
  max-width:72ch;
}
.money-in input,.field input,.num-suffix,.select-wrap select,textarea{
  color:var(--ink)!important;
  -webkit-text-fill-color:var(--ink)!important;
  background:var(--paper-2)!important;
}
:root[data-theme="dark"] .money-in input,
:root[data-theme="dark"] .field input,
:root[data-theme="dark"] .num-suffix,
:root[data-theme="dark"] .num-suffix input,
:root[data-theme="dark"] .select-wrap select,
:root[data-theme="dark"] textarea,
:root[data-theme="dark"] .erow .nm{
  color:#F8F6EF!important;
  -webkit-text-fill-color:#F8F6EF!important;
  background:#0D1D30!important;
  border-color:#38506A!important;
  caret-color:#F0D48A!important;
}
:root[data-theme="dark"] .num-suffix input{
  background:transparent!important;
  border-color:transparent!important;
}
:root[data-theme="dark"] input::placeholder,
:root[data-theme="dark"] textarea::placeholder{
  color:#91A0B2!important;
  -webkit-text-fill-color:#91A0B2!important;
}
:root[data-theme="dark"] input:focus,
:root[data-theme="dark"] textarea:focus,
:root[data-theme="dark"] select:focus,
:root[data-theme="dark"] .num-suffix:focus-within{
  border-color:#D8B86C!important;
  box-shadow:0 0 0 3px rgba(216,184,108,.18)!important;
}
.modal{
  border-radius:12px;
  box-shadow:0 26px 90px -42px rgba(6,17,31,.58);
}
.modal-head h2{
  line-height:1.05;
  text-wrap:balance;
}
.dotrow{
  padding:3px;
  border-radius:999px;
  background:var(--paper-3);
}
.pdot{
  background:rgba(11,42,74,.14);
}
.pdot.on{
  background:linear-gradient(90deg,var(--navy-900),var(--gold));
}
:root[data-theme="dark"] .pdot{background:rgba(255,255,255,.12)}
:root[data-theme="dark"] .pdot.on{background:linear-gradient(90deg,#F0D48A,#D8B86C)}
.modal .field > input,
.modal .field .money-in input,
.modal .field .num-suffix,
.modal .select-wrap select{
  min-height:54px;
  font-size:16.5px;
}
.ob-note{
  color:var(--ink-2);
}
.ob-account-row,.ob-debt-row,.ob-custom-row{
  background:linear-gradient(180deg,var(--paper-2),var(--paper-3));
}
.chip-btn{
  background:var(--paper-2);
  border-color:var(--line);
}
.chip-btn:hover{
  border-color:var(--gold);
  background:var(--gold-soft);
}
.site-foot{
  max-width:1140px;
}
@media(max-width:880px){
  .overview-hero{
    padding:32px 26px;
    grid-template-columns:1fr;
    gap:24px;
  }
  .overview-hero .hero-num{font-size:clamp(48px,14vw,76px)}
  .overview-hero-ledger{
    padding:22px;
    border-top:1px solid rgba(255,255,255,.13);
  }
  .overview-map-body{grid-template-columns:1fr}
  .overview-map-viz{min-height:0}
  .overview-map-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .budget-workspace{grid-template-columns:1fr}
}
@media(max-width:520px){
  html,body{
    max-width:100%;
    overflow-x:hidden;
  }
  .app,.main,.wrap,.card,.hero,.callout,.overview-adjust-note,.overview-money-map,.chart-card{
    max-width:100%;
    min-width:0;
  }
  .main{
    overflow-x:hidden;
  }
  .scrim{
    align-items:center;
    justify-content:center;
    padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));
    overflow-x:hidden;
  }
  .wrap{padding:0 15px}
  .page-title{font-size:clamp(36px,11vw,46px)}
  .page-sub{
    font-size:14.5px;
    max-width:100%;
    overflow-wrap:anywhere;
  }
  .callout,.overview-adjust-note{
    overflow-wrap:anywhere;
  }
  .overview-hero{
    padding:28px 22px;
    border-radius:10px;
  }
  .nw-equation{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .nw-equation i{
    min-height:0;
    line-height:1;
  }
  .nw-equation span,.nw-equation strong{
    width:100%;
    justify-content:space-between;
  }
  .overview-hero-ledger{padding:18px}
  .overview-money-map{padding:22px 18px}
  .overview-map-list{grid-template-columns:1fr}
  .overview-map-list > div{
    min-height:0;
    padding:16px;
  }
  .overview-map-list b{font-size:30px}
  .modal{
    width:100%;
    max-width:min(380px,calc(100vw - 28px));
    margin:auto;
    border-radius:12px;
    overflow:hidden;
  }
  .modal-head{padding:20px 16px 0}
  .modal-head .muted{
    max-width:100%;
    line-height:1.5;
  }
  .modal-body{padding:15px 16px 8px}
  .modal-foot{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    padding:15px 16px 18px;
  }
  .modal-foot .linklike{
    justify-self:center;
    order:3;
  }
  .modal .field > input,
  .modal .field .money-in input,
  .modal .field .num-suffix,
  .modal .select-wrap select,
  .ob-account-row input,
  .ob-debt-row input,
  .ob-custom-row input,
  .ob-account-row select{
    min-height:56px;
    font-size:17px;
  }
  .ob-account-row .money-in input,
  .ob-debt-row .money-in input,
  .ob-custom-row .money-in input,
  .ob-debt-row .num-suffix,
  .ob-debt-row .num-suffix input{
    min-height:56px;
  }
  .field{margin-bottom:2px}
  .money-in input{
    padding-left:34px!important;
    padding-right:14px!important;
  }
  .money-in::before{left:14px}
  .ob-account-tools{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .chip-btn{
    width:100%;
    min-height:40px;
  }
}

/* ---------- v152 polish: onboarding rows + footer trust line ---------- */
.ob-helper{
  margin-top:-2px;
  color:var(--ink-2);
  font-size:13px;
  line-height:1.5;
  max-width:76ch;
}
.ob-account-list{
  gap:12px;
}
.ob-account-row{
  grid-template-columns:minmax(240px,1.05fr) minmax(170px,.62fr) minmax(190px,.7fr) 38px;
  gap:14px;
  padding:14px;
}
.ob-debt-row{
  grid-template-columns:minmax(230px,1fr) minmax(180px,.75fr) minmax(108px,.42fr) minmax(126px,.48fr) 38px;
  gap:14px;
  padding:14px;
}
.ob-custom-row{
  grid-template-columns:minmax(240px,1fr) minmax(190px,.7fr) 38px;
  gap:14px;
  padding:14px;
}
.ob-account-row label,
.ob-debt-row label,
.ob-custom-row label{
  margin-bottom:7px;
}
.ob-value-help{
  margin-top:6px;
  color:var(--ink-3);
  font-size:11.5px;
  line-height:1.35;
}
.ob-account-row input,
.ob-debt-row input,
.ob-custom-row input,
.ob-account-row select{
  min-height:50px;
}
.ob-del-row{
  width:38px;
  height:50px;
  align-self:end;
  color:var(--ink-3);
  border:1px solid transparent;
}
.ob-del-row:hover{
  color:var(--danger);
  border-color:var(--danger-soft);
  background:var(--danger-soft);
}
.site-foot{
  display:grid;
  gap:14px;
  text-align:center;
}
.foot-top{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);
  align-items:center;
  gap:16px;
  margin-bottom:0;
}
.foot-person{
  justify-self:start;
  text-align:left;
}
.foot-status{
  justify-self:end;
  display:inline-flex;
  align-items:center;
  min-height:34px;
  max-width:100%;
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--paper-2);
  color:var(--ink-2);
  font-size:12px;
  line-height:1.25;
  white-space:nowrap;
  box-shadow:var(--shadow);
}
.foot-status::before{
  content:"";
  width:7px;
  height:7px;
  margin-right:8px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 3px var(--gold-soft);
}
.foot-links{
  margin-top:0;
}
@media(max-width:880px){
  .foot-top{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }
  .foot-person{
    justify-self:center;
    text-align:left;
  }
  .foot-status{
    justify-self:center;
    white-space:normal;
    text-align:center;
  }
  .foot-links{
    justify-content:center;
    gap:8px 12px;
  }
  .ob-account-row{
    grid-template-columns:minmax(190px,1.1fr) minmax(142px,.8fr) minmax(160px,.9fr) 38px;
  }
}
@media(max-width:520px){
  .ob-helper{
    font-size:12.5px;
  }
  .ob-account-row,
  .ob-debt-row,
  .ob-custom-row{
    grid-template-columns:minmax(0,1fr) 42px!important;
    gap:12px;
    padding:14px;
  }
  .ob-account-row .ob-row-main,
  .ob-debt-row .ob-row-main,
  .ob-custom-row .ob-row-main{
    grid-column:1!important;
    grid-row:1!important;
  }
  .ob-account-row > div:not(.ob-row-main),
  .ob-debt-row > div:not(.ob-row-main),
  .ob-custom-row > div:not(.ob-row-main){
    grid-column:1 / -1!important;
    grid-row:auto!important;
  }
  .ob-del-row{
    grid-column:2!important;
    grid-row:1!important;
    width:42px;
    height:42px;
  }
}

/* ---------- v157 polish: compact mobile onboarding cards ---------- */
@media(max-width:520px){
  .ob-account-list{
    gap:10px;
  }
  .ob-account-row,
  .ob-debt-row,
  .ob-custom-row{
    position:relative;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px;
    padding:12px;
  }
  .ob-account-row .ob-row-main,
  .ob-debt-row .ob-row-main,
  .ob-custom-row .ob-row-main{
    grid-column:1 / -1!important;
    grid-row:auto!important;
    padding-right:48px;
  }
  .ob-account-row > div:not(.ob-row-main),
  .ob-debt-row > div:not(.ob-row-main),
  .ob-custom-row > div:not(.ob-row-main){
    grid-column:auto!important;
    grid-row:auto!important;
  }
  .ob-debt-row > div:nth-of-type(2),
  .ob-custom-row > div:nth-of-type(2){
    grid-column:1 / -1!important;
  }
  .ob-del-row{
    position:absolute;
    top:35px;
    right:12px;
    grid-column:auto!important;
    grid-row:auto!important;
    width:40px;
    height:40px;
    background:rgba(255,255,255,.02);
    border-color:var(--line);
    opacity:.9;
  }
  .ob-account-row input,
  .ob-debt-row input,
  .ob-custom-row input,
  .ob-account-row select{
    min-height:52px;
    font-size:16px;
  }
  .ob-account-row .money-in input,
  .ob-debt-row .money-in input,
  .ob-custom-row .money-in input,
  .ob-debt-row .num-suffix,
  .ob-debt-row .num-suffix input{
    min-height:52px;
  }
  .ob-account-row label,
  .ob-debt-row label,
  .ob-custom-row label{
    margin-bottom:5px;
    font-size:10px;
  }
  .ob-debt-row{
    gap:8px;
    padding:11px 12px;
  }
  .ob-debt-row input,
  .ob-debt-row .money-in input,
  .ob-debt-row .num-suffix,
  .ob-debt-row .num-suffix input{
    min-height:46px;
    font-size:15.5px;
  }
}

/* ---------- v160 polish: mobile header hit targets + Check-In alignment ---------- */
.monthly-spend-card .erow{
  grid-template-columns:minmax(0,1fr) 112px 128px 76px!important;
  gap:14px;
  padding:12px 0;
  align-items:center;
}
.monthly-spend-card .erow > span:first-child{
  min-width:0;
  overflow-wrap:anywhere;
}
.monthly-spend-card .erow > .money-in{
  width:100%;
  min-width:0;
}
.monthly-spend-card .erow > .money-in input{
  min-height:42px;
}
@media(max-width:620px){
  .topbar{
    min-height:64px;
    padding:calc(env(safe-area-inset-top, 0px) + 10px) 14px 10px!important;
    align-items:center!important;
  }
  .topbar .brand{
    padding:0;
  }
  .topbar > div:last-child{
    gap:8px!important;
    align-items:center;
    padding-right:env(safe-area-inset-right, 0px);
  }
  .topbar .btn-ghost.ico{
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
    padding:0;
    border-radius:12px;
    display:grid;
    place-items:center;
  }
  .topbar .btn-ghost.ico .ni{
    width:20px;
    height:20px;
  }
  .topbar .savedot{
    width:34px;
    height:34px;
    min-width:34px;
    min-height:34px;
  }
  .monthly-spend-card .card-eyebrow + .erow{
    display:none;
  }
  .monthly-spend-card .erow{
    grid-template-columns:minmax(0,1fr) 126px!important;
    gap:6px 12px;
    padding:15px 0;
    align-items:center;
  }
  .monthly-spend-card .erow > span:first-child{
    grid-column:1;
    grid-row:1;
    color:var(--ink);
    font-size:14.5px!important;
    font-weight:700;
    line-height:1.25;
  }
  .monthly-spend-card .erow > span:last-child{
    grid-column:2;
    grid-row:1;
    min-height:30px;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    text-align:right!important;
  }
  .monthly-spend-card .erow > span:nth-child(2){
    grid-column:1;
    grid-row:2;
    text-align:left!important;
    color:var(--ink-2)!important;
    font-size:13px;
    line-height:1.25;
    align-self:end;
    padding-bottom:7px;
  }
  .monthly-spend-card .erow > span:nth-child(2)::before{
    content:"Planned";
    display:block;
    margin-bottom:2px;
    color:var(--ink-3);
    font-size:10px;
    font-weight:760;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .monthly-spend-card .erow > .money-in{
    grid-column:2;
    grid-row:2;
  }
  .monthly-spend-card .erow > .money-in::after{
    content:"Actual";
    position:absolute;
    left:0;
    top:-17px;
    color:var(--ink-3);
    font-size:10px;
    font-weight:760;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .monthly-spend-card .erow > .money-in input{
    min-height:46px;
  }
}

/* ---------- v162 polish: onboarding sign-in + Overview monthly check-in ---------- */
.overview-checkin-cta{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px 12px;
  width:min(100%,420px);
  margin:14px 0 18px auto;
  padding:13px 14px;
  overflow:hidden;
  border:1px solid rgba(216,184,108,.18);
  border-radius:10px;
  color:#F8F6EF;
  background:
    radial-gradient(360px 120px at 96% 0%,rgba(216,184,108,.13),transparent 72%),
    linear-gradient(135deg,rgba(6,17,31,.96),rgba(10,27,46,.96));
  box-shadow:0 16px 44px -34px rgba(6,17,31,.74),inset 0 1px 0 rgba(255,255,255,.07);
}
.overview-checkin-cta::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.045),transparent 42%,rgba(216,184,108,.055) 100%);
}
.checkin-cta-score,
.checkin-cta-copy,
.overview-checkin-cta .btn{
  position:relative;
  z-index:1;
}
.checkin-cta-score{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  align-content:center;
  border:1px solid rgba(216,184,108,.28);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.035));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 14px 34px -26px rgba(0,0,0,.9);
}
.checkin-cta-score span{
  display:block;
  font-family:var(--serif);
  font-size:18px;
  line-height:1;
  color:#F0D48A;
  font-weight:680;
}
.checkin-cta-score small{
  display:block;
  margin-top:3px;
  color:rgba(248,246,239,.62);
  font-size:8.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:760;
}
.checkin-cta-copy .card-eyebrow{
  margin-bottom:3px;
  color:rgba(248,246,239,.54);
}
.checkin-cta-copy b{
  display:block;
  color:#FFFFFF;
  font-family:var(--serif);
  font-size:17px;
  line-height:1.15;
  letter-spacing:0;
}
.checkin-cta-copy span{
  display:block;
  max-width:68ch;
  margin-top:4px;
  color:rgba(248,246,239,.70);
  font-size:12px;
  line-height:1.35;
}
.overview-checkin-cta .btn-pri{
  grid-column:2;
  justify-self:start;
  min-height:34px;
  padding:0 12px;
  font-size:12px;
  border-radius:8px;
  white-space:nowrap;
  background:#F8F6EF;
  color:#071827;
  border:1px solid rgba(216,184,108,.34);
  box-shadow:0 16px 34px -26px rgba(0,0,0,.9);
}
.overview-checkin-cta .btn-pri:hover{
  background:#FFFFFF;
  color:#071827;
}
.account-choice-note{
  padding:13px 15px;
  border:1px solid rgba(216,184,108,.24);
  border-left:3px solid var(--gold);
  border-radius:8px;
  background:linear-gradient(135deg,rgba(216,184,108,.13),rgba(110,167,214,.08));
  color:var(--ink-2);
  font-size:13px;
}
.account-choice-note b{color:var(--ink)}
@media(max-width:720px){
  .overview-checkin-cta{
    width:100%;
    grid-template-columns:auto minmax(0,1fr);
    padding:13px;
    gap:10px 12px;
  }
  .overview-checkin-cta .btn{
    grid-column:2;
    width:auto;
    justify-content:center;
  }
  .checkin-cta-score{
    width:52px;
    height:52px;
  }
  .checkin-cta-score span{font-size:18px}
  .checkin-cta-copy b{font-size:17px}
}
@media(max-width:420px){
  .overview-checkin-cta{
    grid-template-columns:auto minmax(0,1fr);
  }
  .checkin-cta-score{
    width:50px;
    height:50px;
    min-height:0;
    border-radius:8px;
  }
}

/* ---------- v165 polish: discreet Overview check-in + money-map equation ---------- */
.overview-page-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:22px;
}
.overview-page-copy{min-width:0}
.overview-page-head .overview-checkin-cta.compact{
  width:min(430px,38vw);
  margin:3px 0 0 auto;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:8px 10px;
  padding:10px 10px;
  align-self:start;
  border-color:rgba(216,184,108,.20);
  box-shadow:0 18px 42px -34px rgba(6,17,31,.70),inset 0 1px 0 rgba(255,255,255,.07);
}
.overview-checkin-cta.compact .checkin-cta-score{
  width:42px;
  height:42px;
  border-radius:7px;
}
.overview-checkin-cta.compact .checkin-cta-score span{font-size:16px}
.overview-checkin-cta.compact .checkin-cta-score small{
  margin-top:2px;
  font-size:7px;
}
.overview-checkin-cta.compact .checkin-cta-copy .card-eyebrow{
  margin-bottom:2px;
  font-size:9.5px;
  letter-spacing:.12em;
}
.overview-checkin-cta.compact .checkin-cta-copy b{
  font-family:var(--sans);
  font-size:13px;
  font-weight:780;
  line-height:1.18;
}
.checkin-mini-steps{display:none}
.overview-checkin-cta.compact .checkin-cta-support{display:none}
.overview-checkin-cta.compact .checkin-mini-steps{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:6px;
}
.overview-checkin-cta.compact .checkin-mini-steps span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 6px;
  border:1px solid rgba(248,246,239,.12);
  border-radius:999px;
  background:rgba(248,246,239,.055);
  color:rgba(248,246,239,.68);
  font-size:9.5px;
  line-height:1;
  white-space:nowrap;
}
.overview-checkin-cta.compact .checkin-mini-steps b{
  display:grid;
  place-items:center;
  width:14px;
  height:14px;
  border-radius:50%;
  background:rgba(240,212,138,.14);
  color:#F0D48A;
  font-family:var(--sans);
  font-size:9px;
  font-weight:800;
  line-height:1;
}
.overview-checkin-cta.compact .btn-pri{
  grid-column:auto;
  justify-self:end;
  min-height:31px;
  padding:0 10px;
  font-size:11.5px;
}
.overview-map-list > div{
  position:relative;
  padding-left:58px;
}
.overview-map-list .flow-op{
  position:absolute;
  left:18px;
  top:18px;
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border:1px solid rgba(248,246,239,.22);
  border-radius:999px;
  background:rgba(248,246,239,.08);
  color:rgba(248,246,239,.88);
  font-style:normal;
  font-size:14px;
  font-weight:820;
  line-height:1;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.overview-map-list .source .flow-op{
  border-color:rgba(248,246,239,.30);
  background:rgba(248,246,239,.12);
}
.overview-map-list .expense .flow-op{color:#EFA082;border-color:rgba(239,160,130,.32)}
.overview-map-list .invest .flow-op{color:#F0D48A;border-color:rgba(240,212,138,.32)}
.overview-map-list .pos .flow-op{color:#A7CDED;border-color:rgba(167,205,237,.32)}
.overview-map-list .neg .flow-op,
.overview-map-list .flow-op-gap{
  color:#F79AA5;
  border-color:rgba(247,154,165,.32);
}
.overview-map-list > div.flow-separate{
  grid-column:1 / -1;
  min-height:100px;
  padding:18px 20px;
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  column-gap:16px;
  align-items:start;
}
.overview-map-list .flow-op-separate{
  position:static;
  align-self:start;
  width:auto;
  min-width:0;
  max-width:150px;
  height:26px;
  padding:0 12px;
  color:#F0D48A;
  border-radius:999px;
  border-color:rgba(240,212,138,.34);
  background:rgba(216,184,108,.10);
  font-size:9.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.overview-map-list > div.flow-separate span{
  grid-column:2;
  min-width:0;
}
.overview-map-list > div.flow-separate b{
  grid-column:2;
  margin-top:10px;
}
@media(max-width:980px){
  .overview-page-head{
    grid-template-columns:1fr;
    gap:12px;
  }
  .overview-page-head .overview-checkin-cta.compact{
    width:min(100%,420px);
    margin:0;
  }
}
@media(max-width:520px){
  .overview-page-head .overview-checkin-cta.compact{
    grid-template-columns:auto minmax(0,1fr);
  }
  .overview-checkin-cta.compact .btn-pri{
    grid-column:2;
    justify-self:start;
  }
  .overview-map-list > div,
  .overview-map-list > div.flow-separate{
    padding-left:54px;
  }
  .overview-map-list > div.flow-separate{
    grid-template-columns:1fr;
    padding:16px;
  }
  .overview-map-list .flow-op{
    left:16px;
    top:16px;
  }
  .overview-map-list .flow-op-separate{
    position:static;
    width:max-content;
    max-width:100%;
    min-width:0;
    padding:0 10px;
    overflow:visible;
    color:#F0D48A;
  }
  .overview-map-list .flow-op-separate::before{
    content:none;
  }
  .overview-map-list > div.flow-separate span,
  .overview-map-list > div.flow-separate b{
    grid-column:1;
  }
}

/* ---------- v164 polish: advisor copy hierarchy + budget income spacing ---------- */
.budget-income-card .card-eyebrow{
  margin-bottom:18px;
}
.budget-income-card .income-grid{
  display:grid;
  gap:0;
}
.budget-income-line{
  padding:0 0 16px;
  margin:0 0 16px;
  border-bottom:1px solid rgba(8,25,43,.10);
}
:root[data-theme="dark"] .budget-income-line{
  border-bottom-color:rgba(255,255,255,.10);
}
.budget-income-line:last-child{
  padding-bottom:0;
  margin-bottom:0;
  border-bottom:0;
}
.budget-income-line > div:first-child > div:first-child{
  margin-bottom:8px!important;
  color:var(--ink)!important;
  font-size:14px!important;
  line-height:1.25!important;
  font-weight:760!important;
}
.budget-income-line .money-in input{
  min-height:54px;
  border-radius:10px;
  font-size:17px;
}
.budget-income-line .ig-note{
  margin-top:8px;
  max-width:52ch;
  color:var(--ink-2);
  font-size:12.8px;
  line-height:1.45;
}
.budget-income-summary{
  margin-top:18px!important;
  padding:13px 15px;
  border-radius:8px;
  color:var(--ink-2);
  font-size:12.8px!important;
  line-height:1.5!important;
}
.budget-income-summary b{
  color:var(--ink);
}
.modal .field{
  display:grid;
  gap:7px;
}
.modal .field label{
  margin-bottom:0;
}
.modal .field .ob-note{
  margin-top:0;
  max-width:58ch;
}
.ob-intro .callout{
  line-height:1.5;
}
@media(max-width:960px) and (min-width:521px){
  .budget-income-card .income-grid{
    gap:16px 18px;
  }
  .budget-income-line{
    padding:0 0 14px;
    margin:0;
  }
}
@media(max-width:520px){
  .budget-income-card .card-eyebrow{
    margin-bottom:16px;
  }
  .budget-income-line{
    padding-bottom:15px;
    margin-bottom:15px;
  }
  .budget-income-line .money-in input{
    min-height:56px;
    font-size:16px;
  }
  .budget-income-line .ig-note,
  .budget-income-summary{
    font-size:12.5px!important;
  }
}

/* ---------- v165 polish: net-worth recency context ---------- */
.networth-asof{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:12px;
  color:rgba(248,246,239,.66);
  font-size:13px;
  line-height:1.35;
}
.networth-asof b{
  color:#F7F4EC;
  font-weight:760;
}
.networth-asof-sep{
  color:rgba(248,246,239,.32);
}
.networth-asof .linklike{
  color:#F0D48A;
  font-size:13px;
  font-weight:760;
  text-decoration-color:rgba(240,212,138,.44);
  text-underline-offset:3px;
}
.networth-asof .linklike:hover{
  color:#FFFFFF;
  text-decoration-color:#FFFFFF;
}
#nw-balances:focus{
  outline:none;
}
@media(max-width:520px){
  .networth-asof{
    gap:8px;
    margin-top:10px;
    font-size:12.5px;
  }
}

/* ---------- v161 onboarding editable category rows ---------- */
.ob-expense-row,
.ob-invest-row{
  display:grid;
  grid-template-columns:minmax(240px,1fr) minmax(190px,.7fr) 38px;
  gap:14px;
  align-items:end;
  padding:14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:linear-gradient(180deg,var(--paper),var(--paper-2));
  box-shadow:0 12px 30px -28px rgba(6,17,31,.55);
}
.ob-expense-row label,
.ob-invest-row label{
  display:block;
  margin-bottom:7px;
  color:var(--ink-3);
  font-size:10.5px;
  font-weight:760;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.ob-expense-row input,
.ob-invest-row input{
  width:100%;
  min-height:50px;
  font-size:16px;
}
.ob-expense-row .money-in input,
.ob-invest-row .money-in input{
  min-height:50px;
  padding-left:30px;
  padding-right:14px;
}
.ob-expense-row .money-in::before,
.ob-invest-row .money-in::before{
  left:13px;
  font-size:14px;
}
.ob-help-card{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  margin-top:4px;
  padding:13px;
  border:1px solid rgba(var(--glow-rgb),.22);
  border-radius:10px;
  background:linear-gradient(135deg,rgba(var(--glow-rgb),.09),var(--paper-2) 62%,rgba(201,154,74,.08));
}
.ob-help-card img{
  width:44px;
  height:44px;
  border-radius:50%;
  object-fit:cover;
  border:1px solid rgba(201,154,74,.45);
}
.ob-help-card b{
  display:block;
  color:var(--ink);
  font-size:13.5px;
  line-height:1.25;
}
.ob-help-card span{
  display:block;
  margin-top:3px;
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.45;
}
.ob-help-card a{
  white-space:nowrap;
  color:var(--accent);
  font-weight:820;
  font-size:13px;
  text-decoration:underline;
  text-underline-offset:3px;
}
@media(max-width:520px){
  .ob-expense-row,
  .ob-invest-row{
    position:relative;
    grid-template-columns:1fr!important;
    gap:12px;
    padding:12px;
  }
  .ob-expense-row .ob-row-main,
  .ob-invest-row .ob-row-main{
    padding-right:48px;
  }
  .ob-expense-row .ob-del-row,
  .ob-invest-row .ob-del-row{
    position:absolute;
    top:35px;
    right:12px;
    width:40px;
    height:40px;
  }
  .ob-expense-row input,
  .ob-invest-row input,
  .ob-expense-row .money-in input,
  .ob-invest-row .money-in input{
    min-height:52px;
    font-size:16px;
  }
  .ob-help-card{
    grid-template-columns:auto minmax(0,1fr);
  }
  .ob-help-card a{
    grid-column:1 / -1;
    justify-self:start;
  }
}
