/*
 * Tax Planning Analyzer — 2026
 * Copyright (c) 2026 Piquay LLC. All rights reserved.
 * Unauthorized use, reproduction, or distribution is
 * strictly prohibited without written permission.
 */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,500;1,9..144,400;1,9..144,600&family=Geist+Mono:wght@300;400;500&family=Geist:wght@300;400;500;600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* Warm cream palette */
  --bg:#f2efe8;
  --bg2:#ede9e0;
  --bg3:#e8e3d8;
  --surface:#ffffff;
  --surface2:#faf8f4;

  /* Navy / ink */
  --navy:#1c2b3a;
  --navy2:#243447;
  --ink:#1a2535;

  /* Text */
  --text:#1c2b3a;
  --text2:#4a5568;
  --muted:#8896a4;
  --muted2:#a8b4be;

  /* Borders */
  --border:#ddd8ce;
  --border2:#ccc6ba;
  --border3:#e8e3d8;

  /* Accent — terracotta/rust (from risk tool) */
  --rust:#c4622d;
  --rust2:#d4703a;
  --rust-dim:rgba(196,98,45,0.08);
  --rust-mid:rgba(196,98,45,0.15);

  /* Teal — positive / gap indicator */
  --teal:#1a7a72;
  --teal2:#218f86;
  --teal-dim:rgba(26,122,114,0.08);
  --teal-mid:rgba(26,122,114,0.15);

  /* Semantic */
  --green:#1a6b3a;
  --green-dim:rgba(26,107,58,0.08);
  --red:#b53a2a;
  --red-dim:rgba(181,58,42,0.08);
  --amber:#9a6010;
  --amber-dim:rgba(154,96,16,0.08);

  /* Navy accent (CTA buttons, active states) */
  --navy-dim:rgba(28,43,58,0.06);
}

html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Geist',sans-serif;
  min-height:100vh;
  font-size:15px;
  overflow:hidden;
}

/* =====================================================
   HEADER
   ===================================================== */
.header{
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,0.08);
  position:relative;
  z-index:50;
}
.header-row1{
  padding:10px 24px 8px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.header-row1-right{display:flex;align-items:center;gap:10px}
.header-row2{
  padding:8px 24px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo-mark{
  font-family:'Fraunces',serif;
  font-size:22px;
  color:#f2efe8;
  font-style:italic;
  letter-spacing:-0.3px;
}
.logo-divider{width:1px;height:18px;background:rgba(255,255,255,0.2)}
.logo-sub{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:2.5px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.4);
}
.year-badge{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:1.5px;
  color:rgba(255,255,255,0.5);
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.12);
  padding:4px 10px;
  border-radius:4px;
  white-space:nowrap;
}
.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.guide-btn{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;text-decoration:none;
  color:rgba(255,255,255,0.6);
  background:rgba(255,255,255,0.07);
  border:1px solid rgba(255,255,255,0.15);
  padding:5px 12px;border-radius:4px;
  transition:all .2s;white-space:nowrap;
}
.guide-btn:hover{
  color:#f2efe8;
  background:rgba(255,255,255,0.12);
  border-color:rgba(255,255,255,0.3);
}
.print-btn{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;cursor:pointer;
  color:#1c2b3a;
  background:#f2c97a;
  border:none;
  padding:6px 14px;border-radius:4px;
  transition:all .2s;white-space:nowrap;font-weight:500;
}
.print-btn:hover{background:#f0b83a}

/* Client / Spouse fields */
.header-clients{
  display:flex;
  align-items:center;
  gap:8px;
  flex:1;
  min-width:0;
}
.hc-group{display:flex;align-items:center;gap:5px;min-width:0}
.hc-divider{
  width:1px;height:24px;
  background:rgba(255,255,255,0.15);
  flex-shrink:0;
  margin:0 4px;
}
.hc-name{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:5px;
  padding:5px 10px;
  color:#f2efe8;
  font-family:'Geist',sans-serif;
  font-size:13px;
  outline:none;
  width:124px;
  transition:border-color .2s,background .2s;
}
.hc-name:focus{border-color:rgba(255,255,255,0.4);background:rgba(255,255,255,0.12)}
.hc-name::placeholder{color:rgba(255,255,255,0.3)}

.hc-age-input{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:5px;
  padding:5px 6px;
  color:#f2c97a;
  font-family:'Geist Mono',monospace;
  font-size:12px;
  outline:none;
  width:50px;
  text-align:center;
  transition:border-color .2s;
  -moz-appearance:textfield;
}
.hc-age-input::-webkit-outer-spin-button,.hc-age-input::-webkit-inner-spin-button{-webkit-appearance:none}
.hc-age-input:focus{border-color:rgba(255,255,255,0.4)}
.hc-age-input::placeholder{color:rgba(255,255,255,0.25);font-size:10px}

.hc-sep{
  font-size:9px;
  color:rgba(255,255,255,0.25);
  font-family:'Geist Mono',monospace;
  letter-spacing:.5px;
  flex-shrink:0;
}
.hc-dob{
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.14);
  border-radius:5px;
  padding:5px 7px;
  color:rgba(255,255,255,0.55);
  font-family:'Geist Mono',monospace;
  font-size:11px;
  outline:none;
  width:118px;
  transition:border-color .2s;
  color-scheme:dark;
}
.hc-dob:focus{border-color:rgba(255,255,255,0.4)}

/* =====================================================
   LAYOUT
   ===================================================== */
.layout{
  display:grid;
  grid-template-columns:440px 1fr;
  height:calc(100vh - var(--header-h, 80px));
  overflow:hidden;
}

/* =====================================================
   LEFT PANEL
   ===================================================== */
.left{
  background:var(--surface2);
  border-right:1px solid var(--border);
  overflow-y:hidden;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.left-sections{
  flex:1;
  overflow-y:auto;
  min-height:0;
}
.left-sections::-webkit-scrollbar{width:3px}
.left-sections::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
.left-bottom{
  flex-shrink:0;
  border-top:1px solid var(--border);
}

/* Filing status row */
.filing-row{
  padding:10px 16px;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.filing-label{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}
.seg{
  display:flex;
  border:1px solid var(--border2);
  border-radius:5px;
  overflow:hidden;
  flex:1;
}
.seg-btn{
  flex:1;
  padding:6px 2px;
  border:none;
  background:transparent;
  color:var(--muted);
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:.5px;
  text-transform:uppercase;
  cursor:pointer;
  border-right:1px solid var(--border2);
  transition:all .15s;
}
.seg-btn:last-child{border-right:none}
.seg-btn.on{background:var(--navy);color:#f2efe8;font-weight:500}
.seg-btn:not(.on):hover{background:var(--bg2)}

/* Section accordion */
.section{border-bottom:1px solid var(--border)}
.sec-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:11px 18px;
  cursor:pointer;
  user-select:none;
  transition:background .15s;
  background:var(--surface2);
}
.sec-head:hover{background:var(--bg2)}
.sec-left{display:flex;align-items:center;gap:8px}
.sec-dot{
  width:5px;height:5px;border-radius:50%;
  background:var(--border2);flex-shrink:0;transition:background .2s;
}
.sec-dot.active{background:var(--teal)}
.sec-title{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--text2);
}
.sec-right{display:flex;align-items:center;gap:8px}
.sec-total{
  font-family:'Geist Mono',monospace;
  font-size:13px;
  color:var(--navy);
  font-weight:500;
}
.sec-chevron{color:var(--muted2);font-size:10px;transition:transform .2s;line-height:1}
.sec-chevron.open{transform:rotate(90deg)}
.sec-body{display:none;padding:4px 16px 14px;background:var(--surface)}
.sec-body.open{display:block}

/* Input rows */
.f-row{
  display:grid;
  grid-template-columns:1fr 110px;
  gap:6px;
  align-items:center;
  padding:4px 0;
}
.f-label{font-size:13px;color:var(--text2);line-height:1.3}
.f-label small{display:block;font-size:11px;color:var(--muted);margin-top:1px}

.ni{
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:5px;
  padding:7px 10px;
  color:var(--ink);
  font-family:'Geist Mono',monospace;
  font-size:13px;
  outline:none;
  text-align:right;
  width:100%;
  transition:border-color .2s,background .2s;
  -moz-appearance:textfield;
}
.ni::-webkit-outer-spin-button,.ni::-webkit-inner-spin-button{-webkit-appearance:none}
.ni:focus{border-color:var(--teal);background:var(--surface)}
.ni::placeholder{color:var(--border2);font-weight:300}
.ni.has-val{
  border-color:rgba(26,122,114,0.35);
  background:rgba(26,122,114,0.04);
  color:var(--navy);
}
select.ni{background:var(--surface2);color:var(--ink)}

/* Deduction toggle */
.ded-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0}
.ded-label{font-size:12px;color:var(--text2)}
.radio-g{
  display:flex;
  border:1px solid var(--border2);
  border-radius:5px;
  overflow:hidden;
}
.rb{
  padding:5px 10px;
  border:none;
  background:transparent;
  color:var(--muted);
  font-family:'Geist Mono',monospace;
  font-size:9px;
  letter-spacing:.5px;
  text-transform:uppercase;
  cursor:pointer;
  border-right:1px solid var(--border2);
  transition:all .15s;
}
.rb:last-child{border-right:none}
.rb.on{background:var(--navy);color:#f2efe8}

.std-deduct-box{
  display:flex;
  justify-content:space-between;
  align-items:center;
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:5px;
  padding:8px 10px;
  margin-top:4px;
}
.sdb-label{font-size:12px;color:var(--text2)}
.sdb-val{font-family:'Geist Mono',monospace;font-size:14px;color:var(--navy);font-weight:500}

/* Income summary bar */
.income-bar{
  padding:12px 16px;
  background:var(--navy);
  border-top:1px solid rgba(255,255,255,0.08);
  flex-shrink:0;
}
.ib-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:13px}
.ib-l{color:rgba(255,255,255,0.5)}
.ib-v{font-family:'Geist Mono',monospace;color:rgba(255,255,255,0.8)}
.ib-sep{border:none;border-top:1px solid rgba(255,255,255,0.1);margin:5px 0}
.ib-row.agi .ib-v{color:#f2c97a;font-size:14px}
.ib-row.taxable .ib-v{color:#7dd4ce;font-size:14px;font-weight:600}

/* Conversion control */
.conv-ctrl{
  padding:12px 16px;
  border-bottom:1px solid var(--border);
  background:var(--surface);
}
.ctrl-label{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}
.conv-scenarios{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-bottom:8px}
.conv-sc{
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:6px;
  padding:7px 5px;
  text-align:center;
  cursor:pointer;
  transition:all .2s;
}
.conv-sc:hover{border-color:var(--navy);background:var(--bg2)}
.conv-sc.on{
  border-color:var(--navy);
  background:var(--navy-dim);
}
.cs-l{
  font-family:'Geist Mono',monospace;
  font-size:9px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:3px;
}
.conv-sc.on .cs-l{color:var(--navy)}
.cs-v{
  font-family:'Geist Mono',monospace;
  font-size:13px;
  color:var(--text);
  font-weight:500;
}
.conv-sc.on .cs-v{color:var(--navy)}

.conv-slider-row{display:flex;align-items:center;gap:8px}
.conv-slider{
  flex:1;
  -webkit-appearance:none;
  height:3px;
  background:var(--border2);
  border-radius:2px;
  outline:none;
  cursor:pointer;
  accent-color:var(--navy);
}
.conv-val-box{
  background:var(--navy);
  border-radius:5px;
  padding:7px 10px;
  font-family:'Geist Mono',monospace;
  font-size:13px;
  color:#f2efe8;
  min-width:90px;
  text-align:center;
}

/* =====================================================
   RIGHT PANEL
   ===================================================== */
.right{overflow-y:auto;background:var(--bg)}
.right::-webkit-scrollbar{width:3px}
.right::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

/* View tabs */
.view-tabs{
  display:flex;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  padding:0 20px;
  position:sticky;
  top:0;
  z-index:40;
  box-shadow:0 1px 4px rgba(28,43,58,0.06);
}
.vtab{
  padding:14px 16px;
  border:none;
  background:none;
  color:var(--muted);
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  cursor:pointer;
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  transition:all .2s;
  white-space:nowrap;
}
.vtab.on{color:var(--navy);border-bottom-color:var(--rust)}
.vtab:not(.on):hover{color:var(--text2)}

.view{display:none;padding:20px 24px}
.view.on{display:block}

/* =====================================================
   BRACKET VISUALIZATION
   ===================================================== */
.bracket-viz{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  padding:18px;
  margin-bottom:16px;
  box-shadow:0 1px 4px rgba(28,43,58,0.06);
}
.bv-title{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:14px;
}
.bracket-stack{display:flex;flex-direction:column;gap:3px}
.bracket-row{
  display:grid;
  grid-template-columns:44px 1fr 90px 70px;
  gap:8px;
  align-items:center;
  padding:6px 8px;
  border-radius:5px;
  transition:background .15s;
}
.bracket-row:hover{background:var(--bg2)}
.bracket-row.current-bracket{
  background:rgba(196,98,45,0.06);
  border:1px solid rgba(196,98,45,0.18);
}
.br-rate{font-family:'Geist Mono',monospace;font-size:13px;font-weight:600}
.br-bar-wrap{
  background:var(--bg3);
  border-radius:3px;
  height:12px;
  overflow:hidden;
}
.br-bar{height:100%;border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);opacity:0.75}
.br-range{font-family:'Geist Mono',monospace;font-size:10px;color:var(--muted)}
.br-tax{font-family:'Geist Mono',monospace;font-size:12px;text-align:right;color:var(--text2)}

.gap-indicator{
  padding:10px 14px;
  border-radius:6px;
  margin-top:10px;
  background:var(--teal-dim);
  border:1px solid var(--teal-mid);
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.gap-label{font-size:12px;color:var(--teal)}
.gap-val{
  font-family:'Geist Mono',monospace;
  font-size:15px;
  color:var(--teal);
  font-weight:600;
}
.bump-warning{
  padding:8px 10px;
  border-radius:6px;
  margin-top:6px;
  background:var(--red-dim);
  border:1px solid rgba(181,58,42,0.2);
  font-size:12px;
  color:var(--red);
  line-height:1.5;
  display:none;
}
.bump-warning.show{display:block}

/* =====================================================
   METRICS GRID
   ===================================================== */
.metrics-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:16px;
}
.metric-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  padding:14px 16px;
  box-shadow:0 1px 3px rgba(28,43,58,0.05);
}
.mc-label{
  font-family:'Geist Mono',monospace;
  font-size:9px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.mc-val{
  font-family:'Fraunces',serif;
  font-size:28px;
  color:var(--navy);
  line-height:1;
}
.mc-val.good{color:var(--green)}
.mc-val.warn{color:var(--amber)}
.mc-val.bad{color:var(--red)}
.mc-val.accent{color:var(--rust)}
.mc-sub{font-size:11px;color:var(--muted);margin-top:5px}

/* =====================================================
   DETAIL CARDS
   ===================================================== */
.detail-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  padding:16px;
  margin-bottom:16px;
  box-shadow:0 1px 3px rgba(28,43,58,0.05);
}
.dc-title{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:12px;
  padding-bottom:8px;
  border-bottom:1px solid var(--border3);
}
.dl-row{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:6px 0;
  border-bottom:1px dashed var(--border3);
  font-size:13px;
}
.dl-row:last-child{border-bottom:none}
.dl-row.subtotal{
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  padding:7px 0;
  background:var(--bg2);
  margin:0 -16px;
  padding:7px 16px;
}
.dl-row.total-row{
  border-top:2px solid var(--border2);
  padding:8px 0;
}
.dl-l{color:var(--text2);font-size:13px}
.dl-v{font-family:'Geist Mono',monospace;font-size:13px;color:var(--ink)}
.dl-v.good{color:var(--green)}
.dl-v.bad{color:var(--red)}
.dl-v.warn{color:var(--amber)}
.dl-v.accent{color:var(--rust)}
.dl-v.big{font-size:17px;font-weight:500}

/* =====================================================
   SCENARIOS
   ===================================================== */
.scenario-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-bottom:16px;
}
.sc-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 1px 3px rgba(28,43,58,0.05);
}
.sc-card.best{
  border-color:var(--teal);
  box-shadow:0 0 0 1px var(--teal), 0 4px 16px rgba(26,122,114,0.1);
}
.sc-header{
  padding:12px 14px;
  border-bottom:1px solid var(--border3);
  background:var(--surface2);
}
.sc-header.best{background:var(--teal-dim)}
.sc-name{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--muted);
}
.sc-card.best .sc-name{color:var(--teal)}
.sc-conv-amt{
  font-family:'Fraunces',serif;
  font-size:22px;
  color:var(--navy);
  margin-top:3px;
}
.sc-body{padding:12px 14px}
.sc-line{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:4px 0;
  border-bottom:1px dashed var(--border3);
  font-size:12px;
}
.sc-line:last-child{border-bottom:none}
.sc-line.total{
  border-top:1px solid var(--border2);
  border-bottom:none;
  font-weight:600;
  padding:6px 0;
  margin-top:3px;
}
.sc-ll{color:var(--text2)}
.sc-lv{font-family:'Geist Mono',monospace;font-size:12px;color:var(--ink)}
.sc-lv.good{color:var(--green)}
.sc-lv.bad{color:var(--red)}
.sc-lv.warn{color:var(--amber)}
.sc-lv.accent{color:var(--rust)}

/* =====================================================
   MULTI-YEAR
   ===================================================== */
.myr-controls{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  padding:16px;
  margin-bottom:14px;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:16px;
  box-shadow:0 1px 3px rgba(28,43,58,0.05);
}
.mc2-label{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:4px;
}
.mc2-val{
  font-family:'Geist Mono',monospace;
  font-size:15px;
  color:var(--navy);
  font-weight:500;
  margin-bottom:6px;
}
.myr-range{
  width:100%;
  -webkit-appearance:none;
  height:3px;
  background:var(--border2);
  border-radius:2px;
  outline:none;
  cursor:pointer;
  accent-color:var(--navy);
}

.myr-table{width:100%;border-collapse:collapse;font-size:12px}
.myr-table th{
  font-family:'Geist Mono',monospace;
  font-size:9px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--muted);
  padding:9px 10px;
  text-align:right;
  background:var(--surface);
  border-bottom:2px solid var(--border);
  position:sticky;
  top:0;
}
.myr-table th:first-child{text-align:left}
.myr-table td{
  padding:8px 10px;
  text-align:right;
  border-bottom:1px solid var(--border3);
  font-family:'Geist Mono',monospace;
  color:var(--text2);
  font-size:12px;
}
.myr-table td:first-child{text-align:left;color:var(--ink)}
.myr-table tr.rmd-row{background:rgba(154,96,16,0.05)}
.myr-table tr.rmd-row td{color:var(--amber)}
.myr-table tr:hover td{background:var(--bg2)}
.myr-table .conv-amt-cell{color:var(--navy);font-weight:600}
.myr-table .good{color:var(--green)}
.myr-table .bad{color:var(--red)}

/* =====================================================
   IRMAA ALERT
   ===================================================== */
.irmaa-box{
  background:var(--amber-dim);
  border:1px solid rgba(154,96,16,0.2);
  border-radius:8px;
  padding:12px 14px;
  margin-bottom:14px;
  display:none;
}
.irmaa-box.show{display:block}
.ib-title{
  font-family:'Geist Mono',monospace;
  font-size:10px;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--amber);
  margin-bottom:5px;
}
.ib-text{font-size:13px;color:var(--text2);line-height:1.6}
.ib-text table td,.ib-text table th{color:var(--text2)}

/* =====================================================
   MISC
   ===================================================== */
.note-text{
  font-size:11px;
  color:var(--muted);
  font-style:italic;
  line-height:1.5;
  margin-top:8px;
}
.section-sep{height:1px;background:var(--border);margin:0}

/* =====================================================
   SETUP MODAL
   ===================================================== */
.modal-overlay{
  position:fixed;inset:0;z-index:1000;
  background:rgba(10,16,24,0.72);
  display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(2px);
  transition:opacity .2s;
}
.modal-overlay.hidden{
  opacity:0;pointer-events:none;
}
.modal{
  background:var(--surface);
  border-radius:14px;
  box-shadow:0 24px 64px rgba(0,0,0,0.28);
  width:560px;max-width:calc(100vw - 32px);
  overflow:hidden;
  transform:translateY(0);
  transition:transform .25s cubic-bezier(.2,.8,.3,1);
}
.modal-overlay.hidden .modal{transform:translateY(16px)}
.modal-header{
  background:var(--navy);
  padding:24px 28px 20px;
}
.modal-eyebrow{
  font-family:'Geist Mono',monospace;font-size:9px;letter-spacing:3px;
  text-transform:uppercase;color:rgba(255,255,255,0.4);margin-bottom:6px;
}
.modal-title{
  font-family:'Fraunces',serif;font-size:26px;font-weight:300;
  color:#f2efe8;margin-bottom:6px;
}
.modal-sub{font-size:13px;color:rgba(255,255,255,0.45)}

.modal-body{padding:22px 28px 8px}

.mq-label{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--muted);margin-bottom:8px;
}
.mq-hint{
  font-family:'Geist',sans-serif;font-size:11px;letter-spacing:0;
  text-transform:none;color:var(--muted2);margin-left:6px;font-style:italic;
}
.mq-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
}
.mq-chip{
  background:var(--surface2);border:1px solid var(--border);
  border-radius:6px;padding:10px 10px;cursor:pointer;
  transition:all .15s;user-select:none;
  font-size:12px;color:var(--text2);
  text-align:center;line-height:1.2;
}
.mq-chip:hover{border-color:var(--navy);background:var(--bg2)}
.mq-chip.on{
  background:rgba(28,43,58,0.08);
  border-color:var(--navy);
  color:var(--navy);font-weight:600;
}

/* Segmented controls for Q2/Q3 */
.mq-seg{
  display:flex;border:1px solid var(--border2);border-radius:6px;overflow:hidden;
  width:fit-content;
}
.mq-seg-btn{
  padding:7px 20px;border:none;background:transparent;
  color:var(--muted);font-family:'Geist Mono',monospace;
  font-size:11px;letter-spacing:.5px;text-transform:uppercase;
  cursor:pointer;border-right:1px solid var(--border2);
  transition:all .15s;display:block;
}
.mq-seg-btn:last-child{border-right:none}
.mq-seg-btn.on{background:var(--navy);color:#f2efe8;font-weight:500}
.mq-seg-btn:not(.on):hover{background:var(--bg2)}
/* Retired seg — wider labels */
#mq-retired-seg .mq-seg-btn{padding:7px 16px;font-size:10px}

.modal-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 28px 22px;border-top:1px solid var(--border3);
  margin-top:16px;
}
.modal-skip{
  background:none;border:none;cursor:pointer;
  font-family:'Geist',sans-serif;font-size:12px;
  color:var(--muted);text-decoration:underline;
  text-decoration-color:var(--border2);
  transition:color .15s;
}
.modal-skip:hover{color:var(--text2)}
.modal-go{
  background:var(--navy);color:#f2efe8;border:none;
  padding:10px 24px;border-radius:6px;cursor:pointer;
  font-family:'Geist',sans-serif;font-size:14px;font-weight:600;
  transition:background .15s;
}
.modal-go:hover{background:var(--navy2)}

/* Full Calculator button */
.full-calc-btn{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;cursor:pointer;
  color:rgba(255,255,255,0.55);
  background:transparent;
  border:1px solid rgba(255,255,255,0.15);
  padding:5px 12px;border-radius:4px;
  transition:all .2s;white-space:nowrap;
}
.full-calc-btn:hover{
  color:#f2efe8;
  border-color:rgba(255,255,255,0.35);
  background:rgba(255,255,255,0.08);
}
.full-calc-btn.filtered{
  color:#7dd4ce;
  border-color:rgba(125,212,206,0.4);
  background:rgba(125,212,206,0.08);
}
.full-calc-btn.filtered:hover{
  background:rgba(125,212,206,0.14);
  border-color:rgba(125,212,206,0.6);
}
.reset-btn{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;cursor:pointer;
  color:rgba(255,255,255,0.45);
  background:transparent;
  border:1px solid rgba(255,255,255,0.12);
  padding:5px 12px;border-radius:4px;
  transition:all .2s;white-space:nowrap;
}
.reset-btn:hover{
  color:#f07070;
  border-color:rgba(240,112,112,0.4);
  background:rgba(240,112,112,0.08);
}

/* Tax Budget row */
.tax-budget-row{
  display:flex;align-items:center;gap:8px;
  margin-top:8px;padding-top:8px;
  border-top:1px solid var(--border);
}
.tb-label{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1px;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.tb-input{
  flex:1;padding:7px 10px!important;
  font-size:13px!important;
}
.tb-result{
  font-family:'Geist Mono',monospace;font-size:12px;
  color:var(--teal);white-space:nowrap;min-width:80px;text-align:right;
}

/* Multi-Year mode toggle */
.myr-mode-row{
  display:flex;align-items:center;gap:12px;margin-bottom:12px;
}
.myr-mode-label{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.myr-mode-seg{
  display:flex;border:1px solid var(--border2);border-radius:6px;overflow:hidden;
}
.myr-mode-btn{
  padding:7px 18px;background:transparent;color:var(--muted);
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.5px;
  text-transform:uppercase;cursor:pointer;
  border-right:1px solid var(--border2);transition:all .15s;
}
.myr-mode-btn:last-child{border-right:none}
.myr-mode-btn.on{background:var(--navy);color:#f2efe8;font-weight:500}
.myr-mode-btn:not(.on):hover{background:var(--bg2)}

/* Goal-based summary bar */
.myr-goal-summary{
  display:grid;grid-template-columns:repeat(5,1fr);gap:10px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:10px;padding:14px 16px;margin-bottom:14px;
  box-shadow:0 1px 3px rgba(28,43,58,0.05);
}
.mgs-item{display:flex;flex-direction:column;gap:4px}
.mgs-label{
  font-family:'Geist Mono',monospace;font-size:9px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--muted);
}
.mgs-val{
  font-family:'Fraunces',serif;font-size:22px;color:var(--navy);line-height:1;
}
.mgs-val.bad{color:var(--red)}
.mgs-val.warn{color:var(--amber)}
.mgs-val.good{color:var(--green)}
.mgs-val.flag{color:var(--rust)}

/* =====================================================
   LOGO IMAGE (replaces text mark)
   ===================================================== */
.logo-img{
  height:32px;
  width:auto;
  display:block;
  object-fit:contain;
}

/* =====================================================
   RIGHT PANEL — STRATEGY VIEW
   ===================================================== */
.results-header{
  background:var(--surface);
  border-bottom:1px solid var(--border);
  padding:12px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  position:sticky;
  top:0;
  z-index:40;
  box-shadow:0 1px 4px rgba(28,43,58,0.06);
}
.rh-title{
  font-family:'Fraunces',serif;
  font-size:17px;
  color:var(--navy);
  font-weight:500;
  white-space:nowrap;
}
.rh-controls{display:flex;align-items:center;gap:18px}

/* RMD toggle */
.rmd-toggle-wrap{display:flex;align-items:center;gap:7px}
.rmd-toggle-label{
  font-family:'Geist Mono',monospace;
  font-size:9px;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;
}
.toggle-switch{
  width:34px;height:19px;
  background:var(--border2);border-radius:10px;
  cursor:pointer;position:relative;transition:background .2s;flex-shrink:0;
}
.toggle-switch.on{background:var(--teal)}
.toggle-knob{
  position:absolute;top:3px;left:3px;
  width:13px;height:13px;background:#fff;border-radius:50%;
  transition:transform .2s;
  box-shadow:0 1px 3px rgba(0,0,0,0.18);
}
.toggle-switch.on .toggle-knob{transform:translateX(15px)}
.toggle-state-label{
  font-family:'Geist Mono',monospace;font-size:10px;
  color:var(--muted);min-width:18px;
}

/* Rate pills */
.custom-rate-wrap{display:flex;align-items:center;gap:7px}
.custom-rate-label{
  font-family:'Geist Mono',monospace;font-size:9px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--muted);white-space:nowrap;
}
.rate-pills{display:flex;gap:3px}
.rate-pill{
  padding:4px 8px;border:1px solid var(--border2);border-radius:4px;
  background:transparent;font-family:'Geist Mono',monospace;font-size:10px;
  color:var(--muted);cursor:pointer;transition:all .15s;
}
.rate-pill:hover{border-color:var(--navy);color:var(--navy)}
.rate-pill.on{background:var(--navy);border-color:var(--navy);color:#f2efe8;font-weight:600}

/* Three posture cards */
.posture-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:14px;padding:18px 24px 14px;
}
.posture-card{
  background:var(--surface);border:2px solid var(--border);
  border-radius:12px;overflow:hidden;cursor:pointer;
  transition:border-color .2s,box-shadow .2s,transform .15s;
}
.posture-card:hover{
  border-color:var(--navy);
  box-shadow:0 4px 16px rgba(28,43,58,0.1);
  transform:translateY(-1px);
}
.posture-card.selected{
  border-color:var(--teal);
  box-shadow:0 4px 20px rgba(26,122,114,0.15);
}

.pc-stripe{height:4px;width:100%}
.pc-stripe.conservative{background:linear-gradient(90deg,var(--teal),var(--teal2))}
.pc-stripe.optimal{background:linear-gradient(90deg,var(--rust),var(--rust2))}
.pc-stripe.custom-stripe{background:linear-gradient(90deg,var(--navy),var(--navy2))}

.pc-inner{padding:14px}
.pc-label{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:2px;
  text-transform:uppercase;color:var(--text2);
  display:flex;align-items:center;gap:6px;margin-bottom:2px;
}
.pc-badge{
  background:var(--rust);color:#fff;font-size:8px;letter-spacing:0.5px;
  padding:2px 6px;border-radius:3px;font-weight:600;text-transform:uppercase;
}
.pc-ceiling-display{
  background:var(--navy-dim);color:var(--navy);font-size:9px;
  letter-spacing:0.5px;padding:2px 6px;border-radius:3px;font-weight:600;
  border:1px solid rgba(28,43,58,0.15);
}
.pc-sub{font-size:11px;color:var(--muted);margin-bottom:12px}

.pc-hero-wrap{
  text-align:center;padding:12px 0 10px;
  border-top:1px solid var(--border3);border-bottom:1px solid var(--border3);
  margin-bottom:12px;
}
.pc-hero-label{
  font-family:'Geist Mono',monospace;font-size:8px;letter-spacing:2px;
  text-transform:uppercase;color:var(--muted);margin-bottom:3px;
}
.pc-hero{
  font-family:'Fraunces',serif;font-size:46px;line-height:1;
  color:var(--navy);font-weight:600;
}
.pc-hero.good{color:var(--green)}
.pc-hero.warn{color:var(--amber)}
.pc-hero.bad{color:var(--red)}
.pc-hero.muted{color:var(--muted);font-size:26px;padding-top:10px}

.pc-metrics{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;
}
.pcm-label{
  font-family:'Geist Mono',monospace;font-size:8px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--muted);margin-bottom:3px;
}
.pcm-val{
  font-family:'Geist Mono',monospace;font-size:14px;
  color:var(--navy);font-weight:500;
}
.pcm-val.rust{color:var(--rust)}
.pcm-val.red{color:var(--red)}
.pcm-val.teal{color:var(--teal)}
.pcm-val.green{color:var(--green)}

.pc-legacy{
  background:var(--bg2);border:1px solid var(--border);border-radius:7px;
  padding:9px 11px;margin-bottom:8px;
}
.pcl-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:3px 0;font-size:11px;
}
.pcl-label{color:var(--muted)}
.pcl-val{font-family:'Geist Mono',monospace;font-size:12px;font-weight:500}
.pcl-val.red{color:var(--red)}
.pcl-val.teal{color:var(--teal)}

.pc-irmaa-flag{
  background:rgba(154,96,16,0.07);border:1px solid rgba(154,96,16,0.25);
  border-radius:6px;padding:6px 9px;font-size:10px;color:var(--amber);
  display:none;line-height:1.4;
}
.pc-irmaa-flag.show{display:block}

/* Baseline bar */
.baseline-bar{
  margin:0 24px 14px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:10px;padding:12px 18px;
  box-shadow:0 1px 3px rgba(28,43,58,0.05);
}
.bb-label{
  font-family:'Geist Mono',monospace;font-size:9px;letter-spacing:2px;
  text-transform:uppercase;color:var(--muted);margin-bottom:10px;
}
.bb-metrics{display:flex;gap:0;flex-wrap:wrap}
.bb-metric{
  flex:1;min-width:110px;padding:0 14px 0 0;
  border-right:1px solid var(--border3);margin-right:14px;
}
.bb-metric:last-child{border-right:none;margin-right:0}
.bb-ml{font-size:10px;color:var(--muted);display:block;margin-bottom:3px}
.bb-mv{font-family:'Geist Mono',monospace;font-size:14px;color:var(--navy);font-weight:500}
.bb-mv.red{color:var(--red)}

/* Ladder */
.ladder-section{
  margin:0 24px 24px;background:var(--surface);
  border:1px solid var(--border);border-radius:10px;overflow:hidden;
  box-shadow:0 1px 3px rgba(28,43,58,0.05);
}
.ladder-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 18px;border-bottom:1px solid var(--border3);
  background:var(--surface2);
}
.lh-title{
  font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--text2);
}
.lh-legend{display:flex;align-items:center;gap:10px}
.ll-dot{
  display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;
}
.ll-dot.rmd-dot{background:var(--amber)}
.ll-dot.be-dot{background:var(--teal)}
.ll-text{font-size:10px;color:var(--muted)}

.ladder-table-wrap{
  overflow-x:auto;max-height:340px;overflow-y:auto;
}
.ladder-table-wrap::-webkit-scrollbar{height:4px;width:3px}
.ladder-table-wrap::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}

.ladder-table{width:100%;border-collapse:collapse;font-size:11px}
.ladder-table th{
  font-family:'Geist Mono',monospace;font-size:8px;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--muted);
  padding:8px 10px;text-align:right;
  background:var(--surface2);border-bottom:1px solid var(--border);
  position:sticky;top:0;white-space:nowrap;
}
.ladder-table th.lt-left{text-align:left}
.ladder-table td{
  padding:6px 10px;text-align:right;
  border-bottom:1px solid var(--border3);
  font-family:'Geist Mono',monospace;color:var(--text2);
  font-size:11px;white-space:nowrap;
}
.ladder-table td:first-child,
.ladder-table td:nth-child(2){text-align:left;color:var(--text)}
.ladder-table tr:hover td{background:var(--bg2)}
.ladder-table tr.row-rmd td{background:var(--amber-dim)}
.ladder-table tr.row-rmd td:first-child,
.ladder-table tr.row-rmd td:nth-child(2){color:var(--amber)}
.ladder-table tr.row-crossover td{
  background:var(--teal-dim);
  border-top:2px solid var(--teal);
  border-bottom:2px solid var(--teal);
}
.ladder-table .lt-gold{color:var(--rust);font-weight:600}
.ladder-table .lt-teal{color:var(--teal);font-weight:500}
.ladder-table .lt-red{color:var(--red)}
.ladder-table .lt-amber{color:var(--amber)}
.ladder-table .lt-muted{color:var(--muted)}
.ladder-empty{
  text-align:center;color:var(--muted);padding:32px;
  font-style:italic;font-size:13px;
}
.rmd-badge{
  display:inline-block;background:var(--amber-dim);color:var(--amber);
  font-size:8px;letter-spacing:1px;text-transform:uppercase;
  padding:1px 5px;border-radius:3px;font-weight:600;
  vertical-align:middle;margin-left:3px;
  font-family:'Geist Mono',monospace;
}
.be-badge{
  display:inline-block;background:var(--teal-dim);color:var(--teal);
  font-size:9px;padding:0 4px;border-radius:3px;
  vertical-align:middle;margin-left:3px;
}
