@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/inter-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url(fonts/inter-rupee.woff2) format("woff2");unicode-range:U+20B9}
/* Selvayana – shared styles. Typeface: Inter (SIL Open Font License). */
:root{
  --bg:#F8F4EC; --bg-alt:#F1EADF; --surface:#FFFDF9; --ink:#2E2A24; --muted:#6F6658; --line:#E7DDCD;
  --accent:#7A5A3A; --accent-hover:#684C30; --accent-ink:#FFFFFF; --accent-soft:#EFE4D3;
  --nav-bg:rgba(248,244,236,.86); --shadow:0 1px 2px rgba(46,42,36,.04),0 10px 28px rgba(46,42,36,.06);
  --c-bal:#8C6A47; --c-add:#C8AD88; --c-grow:#E2D1B5; --c-cost:#B8664B; --c-alt:#A8957E; --c-muted:#DED4C5;
  --p-mint:#F1E8D9; --p-peach:#F1E8D9; --p-lav:#F1E8D9; --p-butter:#F1E8D9; --p-sky:#F1E8D9; --p-rose:#F6E4DA;
  --i-mint:#6B5236; --i-peach:#6B5236; --i-lav:#6B5236; --i-butter:#6B5236; --i-sky:#6B5236; --i-rose:#9C4A31;
  --pos:#6B5236; --neg:#A4472F; --warn:#8C5A2B;
  --font:"Inter", -apple-system, "Segoe UI", Roboto, "Noto Sans", Arial, sans-serif;
  --r-lg:22px; --r-md:16px; --r-sm:12px;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#1A1714; --bg-alt:#211D19; --surface:#26211C; --ink:#F2EBDF; --muted:#B5A995; --line:#3A332B;
    --accent:#D8B88F; --accent-hover:#E5C9A4; --accent-ink:#231A10; --accent-soft:#3A2F24;
    --nav-bg:rgba(26,23,20,.84); --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);
    --c-bal:#C9A57C; --c-add:#9C8366; --c-grow:#6E5D4A; --c-cost:#D98466; --c-alt:#B3A28C; --c-muted:#4A4239;
    --p-mint:#2F2821; --p-peach:#2F2821; --p-lav:#2F2821; --p-butter:#2F2821; --p-sky:#2F2821; --p-rose:#3A2621;
    --i-mint:#E2C9A6; --i-peach:#E2C9A6; --i-lav:#E2C9A6; --i-butter:#E2C9A6; --i-sky:#E2C9A6; --i-rose:#F0A58C;
    --pos:#E2C9A6; --neg:#F0A58C; --warn:#E4B47E;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
    --bg:#1A1714; --bg-alt:#211D19; --surface:#26211C; --ink:#F2EBDF; --muted:#B5A995; --line:#3A332B;
    --accent:#D8B88F; --accent-hover:#E5C9A4; --accent-ink:#231A10; --accent-soft:#3A2F24;
    --nav-bg:rgba(26,23,20,.84); --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 28px rgba(0,0,0,.35);
    --c-bal:#C9A57C; --c-add:#9C8366; --c-grow:#6E5D4A; --c-cost:#D98466; --c-alt:#B3A28C; --c-muted:#4A4239;
    --p-mint:#2F2821; --p-peach:#2F2821; --p-lav:#2F2821; --p-butter:#2F2821; --p-sky:#2F2821; --p-rose:#3A2621;
    --i-mint:#E2C9A6; --i-peach:#E2C9A6; --i-lav:#E2C9A6; --i-butter:#E2C9A6; --i-sky:#E2C9A6; --i-rose:#F0A58C;
    --pos:#E2C9A6; --neg:#F0A58C; --warn:#E4B47E;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
[hidden]{display:none!important}
html{scroll-padding-top:calc(64px + env(safe-area-inset-top,0px));-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 var(--font);-webkit-font-smoothing:antialiased;letter-spacing:-.011em}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
img,svg{max-width:100%}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:8px 14px;border-radius:8px;z-index:99}
.skip:focus{left:12px}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.wrap-narrow{max-width:780px;margin:0 auto;padding:0 22px}
h1,h2,h3{letter-spacing:-.035em;line-height:1.08;margin:0}

/* ---------- navigation ---------- */
.gnav{position:sticky;top:0;z-index:50;background:var(--nav-bg);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--line)}
.gnav .bar{display:flex;align-items:center;gap:6px;height:56px}
.logo{display:flex;align-items:center;gap:9px;font-weight:700;font-size:1.0625rem;color:var(--ink);letter-spacing:-.03em;margin-right:auto}
.logo:hover{text-decoration:none}
.logo svg{width:24px;height:24px}
.gnav .links{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.gnav .links>li{position:relative}
.gnav .links>li>a{display:block;padding:8px 12px;font-size:0.9375rem;color:var(--ink);opacity:.82;border-radius:8px}
.gnav .links>li>a:hover{opacity:1;text-decoration:none;background:var(--bg-alt)}
.flyout{position:absolute;left:50%;top:100%;transform:translateX(-50%);min-width:250px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);padding:10px;opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s}
.gnav .links>li:hover .flyout,.gnav .links>li:focus-within .flyout{opacity:1;visibility:visible}
.flyout a{display:block;padding:8px 12px;border-radius:10px;color:var(--ink);font-size:0.9375rem}
.flyout a:hover{background:var(--bg-alt);text-decoration:none}
.icon-btn{width:38px;height:38px;border:0;background:transparent;color:var(--ink);border-radius:10px;display:grid;place-items:center;cursor:pointer}
.icon-btn:hover{background:var(--bg-alt)}
.icon-btn svg{width:20px;height:20px}
.menu-btn{display:none}
.mnav{display:none}
@media (max-width:980px){
  .gnav .links{display:none}
  .menu-btn{display:grid}
  body.menu-open{overflow:hidden}
  body.menu-open .mnav{display:block;position:fixed;inset:56px 0 0;top:calc(56px + env(safe-area-inset-top,0px));background:var(--bg);overflow-y:auto;padding:12px 22px calc(40px + env(safe-area-inset-bottom,0px));z-index:49}
  .mnav h3{font-size:0.8125rem;color:var(--muted);font-weight:600;letter-spacing:0;margin:22px 0 6px}
  .mnav a{display:block;padding:10px 0;font-size:1.0625rem;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line)}
}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:999px;font:600 1.0625rem var(--font);border:1px solid transparent;cursor:pointer;transition:background .15s ease}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-outline{border-color:var(--accent);color:var(--accent);background:transparent}
.btn-outline:hover{background:var(--accent-soft)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 0.9375rem var(--font);cursor:pointer}
.pill:hover{border-color:var(--accent);color:var(--accent)}
.pill svg{width:17px;height:17px}

/* ---------- home ---------- */
.hero{text-align:center;padding:88px 0 40px}
.hero h1{font-size:clamp(2.5rem,7vw,5rem);font-weight:700;max-width:14ch;margin:0 auto}
.hero .lead{font-size:clamp(1.0625rem,2.2vw,1.3125rem);color:var(--muted);max-width:40ch;margin:22px auto 32px;line-height:1.4}
.hero .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.demo{max-width:880px;margin:56px auto 0;background:var(--bg-alt);border-radius:var(--r-lg);padding:clamp(24px,5vw,56px);text-align:center}
.demo .sentence{font-size:clamp(1.0625rem,2vw,1.3125rem);color:var(--muted);max-width:44ch;margin:0 auto;line-height:1.5}
.demo .sentence b{color:var(--ink);font-weight:600}
.demo .big{font-size:clamp(2.5rem,10vw,5rem);font-weight:700;letter-spacing:-.05em;line-height:1;margin:18px 0 8px;color:var(--accent);font-variant-numeric:tabular-nums}
.demo .controls{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px;text-align:left}
.demo label{font-size:0.9375rem;color:var(--muted);display:flex;justify-content:space-between}
.demo label output{color:var(--ink);font-weight:600}
@media (max-width:720px){.demo .controls{grid-template-columns:1fr}}

.section{padding:88px 0}
.section-head{text-align:center;margin-bottom:44px}
.section-head h2{font-size:clamp(1.75rem,4.5vw,3.5rem);font-weight:700}
.section-head p{color:var(--muted);font-size:1.3125rem;max-width:46ch;margin:14px auto 0}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}
.tile{background:var(--bg-alt);border-radius:var(--r-lg);padding:36px 34px;scroll-margin-top:80px}
.tile h3{font-size:1.75rem;font-weight:700;margin-bottom:8px}
.tile p{color:var(--muted);margin:0 0 20px}
.tile ul{list-style:none;padding:0;margin:0;columns:2;column-gap:18px}
.tile li{break-inside:avoid;margin:0 0 10px}
.tile li a{font-weight:400}
.tile.dark{background:var(--ink);color:var(--bg)}
.tile.dark p{color:color-mix(in srgb,var(--bg) 70%,transparent)}
.tile.dark a{color:var(--c-add)}
.tile.dark .btn-primary{color:var(--accent-ink)}
@media (max-width:420px){.tile ul{columns:1}}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;text-align:left}
.features h3{font-size:1.3125rem;font-weight:700;margin-bottom:8px}
.features p{color:var(--muted);margin:0}
@media (max-width:820px){.features{grid-template-columns:1fr;gap:28px}}
.cta-band{text-align:center;background:var(--bg-alt);border-radius:var(--r-lg);padding:64px 24px;margin:0 0 88px}
.cta-band h2{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700}
.cta-band p{color:var(--muted);font-size:1.0625rem;margin:14px auto 26px;max-width:44ch}

/* ---------- calculator page ---------- */
.calc-hero{text-align:center;padding:56px 22px 36px}
.crumb{font-size:0.9375rem;margin:0 0 14px}
.calc-hero h1{font-size:clamp(2.5rem,5.5vw,3.5rem);font-weight:700}
.calc-hero .lead{font-size:clamp(1.0625rem,2vw,1.3125rem);color:var(--muted);max-width:52ch;margin:16px auto 0;line-height:1.45}
.calc-shell{background:var(--bg-alt);border-radius:32px;padding:clamp(14px,2.5vw,28px);max-width:1180px;margin:0 auto}
@media (max-width:1224px){.calc-shell{margin:0 22px}}
@media (max-width:560px){.calc-shell{margin:0 10px;border-radius:24px}}
.calc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(12px,2vw,22px);align-items:start}
@media (max-width:980px){.calc-grid{grid-template-columns:1fr}}
.card{background:var(--surface);border-radius:var(--r-md);padding:clamp(18px,2.5vw,28px);box-shadow:var(--shadow)}
.results{position:sticky;top:76px}
@media (max-width:980px){.results{position:static}}
.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:20px 0 4px}

.field{padding:14px 0;border-bottom:1px solid var(--line)}
.field:first-child{padding-top:0}
.field:last-child{border-bottom:0;padding-bottom:0}
.field-row{display:flex;justify-content:space-between;align-items:center;gap:14px}
.field label{font-weight:400;font-size:0.9375rem}
.num{display:flex;align-items:center;background:var(--bg-alt);border-radius:10px;padding:0 12px;min-width:150px;max-width:190px;border:1px solid transparent}
.num:focus-within{border-color:var(--accent);background:var(--surface)}
.num span{color:var(--muted);font-size:0.9375rem}
.num input,.num select{border:0;background:transparent;font:600 1.0625rem var(--font);color:var(--ink);width:100%;padding:9px 4px;text-align:right;font-variant-numeric:tabular-nums}
.num select{text-align:left;padding-right:0;cursor:pointer}
.num input:focus,.num select:focus{outline:none}
.words{font-size:0.8125rem;color:var(--muted);text-align:right;min-height:1.15em;margin-top:2px}
.hint{font-size:0.8125rem;color:var(--muted);margin-top:6px;line-height:1.4}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;margin:6px 0 0;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--p,50%),var(--line) var(--p,50%))}
input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:var(--line)}
input[type=range]::-moz-range-progress{height:4px;border-radius:4px;background:var(--accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 4px rgba(0,0,0,.25),0 0 0 .5px rgba(0,0,0,.08);margin-top:-9px}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:0;box-shadow:0 1px 4px rgba(0,0,0,.25)}

.r-label{color:var(--muted);font-weight:400;margin:0}
.r-value{font-size:clamp(2.5rem,5.4vw,3.5rem);font-weight:700;letter-spacing:-.045em;line-height:1.05;margin:6px 0;color:var(--ink);word-break:break-word;font-variant-numeric:tabular-nums}
.r-value .per{font-size:.4em;font-weight:600;color:var(--muted);letter-spacing:-.01em}
.r-sub{margin:0 0 18px;color:var(--muted)}
.insight{background:var(--accent-soft);border-radius:var(--r-sm);padding:12px 16px;margin:0 0 18px;font-size:0.9375rem}
.note{background:color-mix(in srgb,var(--c-grow) 16%,transparent);border-radius:var(--r-sm);padding:12px 16px;margin:0 0 18px;font-size:0.9375rem}
.split{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--line);margin-bottom:12px}
.split span{display:block;height:100%;transition:width .4s cubic-bezier(.2,.8,.2,1)}
.legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 18px;padding:0;list-style:none;font-size:0.9375rem;color:var(--muted)}
.legend li{display:flex;align-items:center;gap:7px}
.legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.legend b{font-weight:600;color:var(--ink)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 18px}
.stats div{background:var(--bg-alt);border-radius:var(--r-sm);padding:12px 14px}
.stats dt{font-size:0.8125rem;color:var(--muted)}
.stats dd{margin:3px 0 0;font-weight:700;font-size:1.0625rem;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
@media (max-width:420px){.stats{grid-template-columns:1fr}}
.scen{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 18px;text-align:center}
.scen div{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 6px}
.scen div.on{border-color:var(--accent)}
.scen small{display:block;color:var(--muted);font-size:0.8125rem}
.scen b{font-size:1.0625rem;font-variant-numeric:tabular-nums}
.scen-title{font-size:0.9375rem;color:var(--muted);margin:0 0 8px}
.chart-box{position:relative;height:240px}
.chart-box canvas{width:100%;height:100%;display:block}

.breakdown{margin:28px auto 0;max-width:1180px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
@media (max-width:1224px){.breakdown{margin:28px 22px 0}}
.breakdown summary{cursor:pointer;padding:18px 24px;font-weight:700;font-size:1.0625rem;list-style:none;display:flex;justify-content:space-between;align-items:center}
.breakdown summary::-webkit-details-marker{display:none}
.breakdown summary::after,.faq summary::after{content:"+";font-size:1.3125rem;font-weight:400;color:var(--muted);transition:transform .2s}
.breakdown[open] summary::after,.faq[open] summary::after{transform:rotate(45deg)}
.table-scroll{overflow-x:auto;padding:0 24px 22px}
table{border-collapse:collapse;width:100%;font-size:0.9375rem;min-width:520px;font-variant-numeric:tabular-nums}
th,td{padding:10px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
th:first-child,td:first-child{text-align:left}
th{font-weight:600;color:var(--muted);font-size:0.8125rem}

.guide{padding:72px 22px 20px}
.guide h2{font-size:clamp(1.75rem,3vw,2.5rem);font-weight:700;margin:0 0 14px}
.guide p{color:var(--muted);margin:0 0 16px}
.guide .qa{margin-top:44px}
.faq{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:18px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:0 0 18px}
.related{padding:56px 0 20px}
.related h2{font-size:1.75rem;font-weight:700;margin-bottom:18px}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.rel-grid a{background:var(--bg-alt);border-radius:var(--r-md);padding:20px;color:var(--ink);font-weight:600}
.rel-grid a span{display:block;font-weight:400;color:var(--muted);font-size:0.9375rem;margin-top:4px}
.rel-grid a:hover{text-decoration:none;outline:1px solid var(--accent)}
.adviser{margin:64px auto 88px}

/* ---------- list editors (planners) ---------- */
.lhead,.lrow{display:grid;grid-template-columns:var(--cols);gap:8px;align-items:center}
.lhead{font-size:0.8125rem;color:var(--muted);padding:0 0 6px}
.lrow{padding:6px 0;border-top:1px solid var(--line)}
.lrow input,.lrow select{width:100%;min-width:0;border:1px solid transparent;background:var(--bg-alt);border-radius:8px;padding:9px 10px;font:600 0.9375rem var(--font);color:var(--ink)}
.lrow input:focus,.lrow select:focus{outline:none;border-color:var(--accent);background:var(--surface)}
.lrow input.n{text-align:right;font-variant-numeric:tabular-nums}
.lrm{width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1.3125rem;cursor:pointer}
.lrm:hover{background:var(--bg-alt);color:var(--c-cost)}
.ladd{margin-top:10px;border:1px dashed var(--line);background:transparent;color:var(--accent);border-radius:10px;padding:10px 14px;font:600 0.9375rem var(--font);cursor:pointer;width:100%}
.ladd:hover{border-color:var(--accent)}
.tool-block{margin-bottom:26px}
.tool-block:last-child{margin-bottom:0}
.tool-block h2{font-size:1.3125rem;font-weight:700;letter-spacing:-.02em;margin:0 0 10px}
.tool-block .field{border:0;padding:8px 0}
@media (max-width:640px){
  .lhead{display:none}
  .lrow{grid-template-columns:1fr 1fr;padding:12px 0}
  .lrow>*:first-child{grid-column:1/-1}
  .lrm{justify-self:end}
}

/* ---------- saved & contact ---------- */
.saved-list{display:grid;gap:12px;margin:0 auto 60px}
.saved-item{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--bg-alt);border-radius:var(--r-md);padding:18px 22px}
.saved-item h3{font-size:1.0625rem;letter-spacing:-.02em}
.saved-item p{margin:2px 0 0;color:var(--muted);font-size:0.9375rem}
.saved-item .btns{display:flex;gap:8px;flex-shrink:0}
.empty{text-align:center;color:var(--muted);padding:40px 0 80px}
.form{display:grid;gap:14px;max-width:560px;margin:0 auto 90px}
.form label{font-weight:400;font-size:0.9375rem;display:grid;gap:6px}
.form input,.form select,.form textarea{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px;font:400 1.0625rem var(--font);color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--accent)}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:999px;font-size:0.9375rem;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:60;max-width:calc(100% - 32px)}
.toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast a{color:var(--c-add);margin-left:8px}

/* ---------- footer ---------- */
.gfoot{background:var(--bg-alt);color:var(--muted);font-size:0.8125rem;padding:40px 0 calc(28px + env(safe-area-inset-bottom,0px));margin-top:40px}
.gfoot .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.gfoot h4{color:var(--ink);font-size:0.8125rem;margin:0 0 10px;font-weight:600}
.gfoot ul{list-style:none;padding:0;margin:0}
.gfoot li{margin:0 0 7px}
.gfoot a{color:var(--muted)}
.gfoot a:hover{color:var(--ink)}
.gfoot .legal{padding-top:18px}
.gfoot .legal p{margin:0 0 8px;max-width:72ch}

.print-only{display:none}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- print / PDF ---------- */
@media print{
  :root{--bg:#fff;--bg-alt:#f4f6f5;--surface:#fff;--ink:#000;--muted:#444;--line:#ccc}
  body{font-size:11pt}
  .gnav,.mnav,.actions,.gfoot,.related,.adviser,.guide,.skip,.toast,input[type=range]{display:none!important}
  .print-only{display:block}
  .calc-hero{padding:0 0 12px}
  .calc-shell{background:none;padding:0;margin:0}
  .calc-grid{grid-template-columns:1fr}
  .card{box-shadow:none;border:1px solid #ccc}
  .inputs{display:none}
  .results{position:static}
  .breakdown{border:0;margin:14px 0 0}
  .breakdown summary::after{display:none}
  .table-scroll{overflow:visible;padding:0}
  table{min-width:0;font-size:9pt}
  .print-head{display:flex;justify-content:space-between;border-bottom:1px solid #000;padding-bottom:6px;margin-bottom:14px;font-size:10pt}
  .print-inputs{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;margin:0 0 14px;font-size:10pt}
  .print-inputs dt{color:#444}.print-inputs dd{margin:0 0 4px;font-weight:600}
}

/* ---------- life plan ---------- */
.gnav .links>li>a.hl{color:var(--accent);opacity:1;font-weight:600}
.lp-wrap{max-width:1180px;margin:0 auto}
@media (max-width:1224px){.lp-wrap{margin:0 14px}}
.lp-steps{display:flex;gap:6px;overflow-x:auto;padding:6px;background:var(--bg-alt);border-radius:999px;margin:0 auto 22px;width:fit-content;max-width:100%;scrollbar-width:none}
.lp-steps::-webkit-scrollbar{display:none}
.lp-steps button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--muted);font:600 0.9375rem var(--font);padding:9px 16px;border-radius:999px;cursor:pointer;white-space:nowrap}
.lp-steps button span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--line);color:var(--ink);font-size:0.8125rem;font-weight:600}
.lp-steps button[aria-current]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.lp-steps button[aria-current] span{background:var(--accent);color:var(--accent-ink)}
.lp-body{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
.lp-body>*{min-width:0}
#lp{min-width:0;max-width:100%}
.lp-card h2{font-size:1.3125rem;font-weight:700;letter-spacing:-.025em;margin:0 0 6px}
.lp-sub{color:var(--muted);margin:0 0 16px;font-size:0.9375rem}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px 20px}
.pf{display:grid;gap:6px;align-content:start}
.pf>span:first-child{font-weight:400;font-size:0.9375rem}
.pf .num{max-width:none;min-width:0}
.pf small{color:var(--muted);font-size:0.8125rem;line-height:1.35}
.lp-list .lrow{grid-template-columns:var(--cols)}
.lp-list .lhead{grid-template-columns:var(--cols)}
.lp-list .lrow.fixed{grid-template-columns:1.6fr 4fr;color:var(--muted);font-size:0.9375rem;padding:12px 0}
.lp-list .lrow.fixed span:first-child{font-weight:600;color:var(--ink)}
.when{display:grid;gap:2px}
.cap{font-size:0.8125rem;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:9px 16px;font:600 0.9375rem var(--font);cursor:pointer}
.chip::before{content:"+ ";color:var(--accent);font-weight:700}
.chip:hover{border-color:var(--accent)}
.lp-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:24px 0 8px;flex-wrap:wrap}
.linkbtn{border:0;background:none;color:var(--accent);font:600 inherit var(--font);font-size:inherit;padding:0;cursor:pointer}
.linkbtn:hover{text-decoration:underline}
.lp-reset{font-size:0.9375rem;display:flex;gap:16px}
.lp-summary{padding:clamp(22px,3vw,36px)}
.lp-verdict{font-size:clamp(1.75rem,4.6vw,3.5rem);font-weight:700;margin:6px 0 8px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}
.kpis div{background:var(--bg-alt);border-radius:var(--r-sm);padding:14px 16px}
.kpis dt{font-size:0.8125rem;color:var(--muted)}
.kpis dd{margin:4px 0 0;font-weight:700;font-size:1.3125rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
@media (max-width:760px){.kpis{grid-template-columns:1fr 1fr}}
.lp-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.lp-sec{font-size:clamp(1.75rem,3.2vw,2.5rem);font-weight:700;margin:26px 0 4px}
.lp-sec-sub{color:var(--muted);margin:0 0 4px}
.goal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:16px}
@media (max-width:400px){.goal-grid{grid-template-columns:1fr}}
.goal h3{font-size:1.0625rem;font-weight:700;letter-spacing:-.02em}
.goal-top{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:12px}
.goal-meta{color:var(--muted);font-size:0.9375rem;margin:3px 0 0}
.goal-ret{outline:2px solid var(--accent);outline-offset:-2px}
.tag{font-size:0.8125rem;font-weight:600;padding:4px 9px;border-radius:999px;white-space:nowrap}
.t-Must{background:var(--accent-soft);color:var(--accent)}
.t-Important{background:color-mix(in srgb,var(--c-grow) 18%,transparent);color:var(--ink)}
.t-Nice{background:var(--bg-alt);color:var(--muted)}
.fund-bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.fund-bar span{display:block;height:100%;border-radius:4px;transition:width .35s cubic-bezier(.2,.8,.2,1)}
.fund p{font-size:0.9375rem;margin:8px 0 14px}
.lbl{font-size:0.8125rem;color:var(--muted);margin:0 0 6px}
.seg{display:flex;background:var(--bg-alt);border-radius:10px;padding:3px;gap:2px}
.seg button{flex:1;border:0;background:transparent;border-radius:8px;padding:8px 6px;font:600 0.8125rem var(--font);color:var(--muted);cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1);font-weight:600}
.opts{font-size:0.8125rem;color:var(--muted);margin:8px 0 12px;line-height:1.7}
.opts span{display:inline-block;margin-right:10px}
.opts span.on{color:var(--ink);font-weight:600}
.rr{padding:6px 0}
.rr-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rr-top label{font-size:0.9375rem;font-weight:400}
.num.sm{min-width:120px;max-width:150px}
.num.sm input{padding:6px 4px;font-size:0.9375rem}
.mini{font-size:0.8125rem;color:var(--muted);margin:4px 0 6px}
.goal-big{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;margin:4px 0 8px}
.goal-big small{font-size:0.9375rem;color:var(--muted);font-weight:400}
.lp-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px}
@media (max-width:900px){.lp-two{grid-template-columns:minmax(0,1fr)}}
.score{margin:0 0 12px}.score b{font-size:2.5rem;font-weight:700;letter-spacing:-.04em}.score span{color:var(--muted);font-size:1.0625rem}
.checks{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.checks li{display:flex;gap:12px;align-items:start}
.checks i{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:5px}
.ck-good i{background:var(--c-bal)}.ck-warn i{background:var(--c-grow)}.ck-bad i{background:var(--c-cost)}
.checks p{margin:2px 0 0;color:var(--muted);font-size:0.9375rem}
.tline{list-style:none;padding:0;margin:0;max-height:520px;overflow-y:auto}
.tline li{display:flex;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.tl-y{font-weight:700;min-width:44px;color:var(--accent);font-variant-numeric:tabular-nums}
.tline small{display:block;color:var(--muted);font-size:0.8125rem}
.tline p{margin:3px 0 0;font-size:0.9375rem}
.lp-cardhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.toggle{font-size:0.9375rem;color:var(--muted);display:flex;gap:8px;align-items:center;cursor:pointer}
.toggle input{accent-color:var(--accent);width:18px;height:18px}
.lp-body>.card,.lp-two .card{margin:0}
.lp-table{margin:16px 0 0!important;max-width:none}
.lp-body .chart-box{margin-top:6px}
.answer{font-size:clamp(1.3125rem,2.4vw,1.75rem)!important;color:var(--ink)!important}
.answer b{color:var(--accent)}
.variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0 0 20px}
.variants div{background:var(--bg-alt);border-radius:var(--r-sm);padding:14px}
.variants small{display:block;color:var(--muted);font-size:0.8125rem}
.variants b{font-size:1.0625rem}
@media (max-width:640px){.lp-list .lrow{grid-template-columns:1fr 1fr}.lp-list .lrow.fixed{grid-template-columns:1fr}}
@media print{
  .lp-steps,.lp-nav,.lp-btns,.seg,.rr,.mini,.chips,.toggle{display:none!important}
  .goal-grid{grid-template-columns:1fr 1fr}
  .goal,.lp-card,.lp-summary{break-inside:avoid;box-shadow:none;border:1px solid #ccc}
  .tline{max-height:none}
  .lp-wrap{margin:0}
}

/* ---------- planner v2: Arth flow ---------- */
.pl-shell{display:grid;grid-template-columns:220px minmax(0,1fr) 250px;gap:22px;max-width:1240px;margin:0 auto;padding:0 22px;align-items:start}
.pl-shell.is-plan{grid-template-columns:220px minmax(0,1fr)}
.pl-main{min-width:0}
.pl-rail{position:sticky;top:72px}
.pl-steps{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.pl-steps button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;color:var(--muted);font:600 0.9375rem var(--font);padding:9px 10px;border-radius:10px;cursor:pointer}
.pl-steps button span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--bg-alt);color:var(--muted);font-size:0.8125rem;font-weight:600;flex-shrink:0}
.pl-steps button.done{color:var(--ink)}
.pl-steps button.done span{background:var(--accent-soft);color:var(--accent)}
.pl-steps button.cur{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}
.pl-steps button.cur span{background:var(--accent);color:var(--accent-ink)}
.pl-steps button:disabled{opacity:.45;cursor:default}
.pl-steps button:not(:disabled):hover{background:var(--bg-alt)}
.pl-mprog{display:none}
.pl-snap{position:sticky;top:72px;padding:20px}
.pl-snap h3{font-size:0.9375rem;margin:0 0 12px;letter-spacing:-.01em}
.pl-snap dl{margin:0;display:grid;gap:12px}
.pl-snap dt{font-size:0.8125rem;color:var(--muted)}
.pl-snap dd{margin:2px 0 0;font-weight:700;font-size:1.3125rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pl-snap dd small{display:block;font-size:0.8125rem;font-weight:400;color:var(--muted)}
.pl-snap dd.neg{color:var(--c-cost)}
.pl-head h2{font-size:clamp(1.75rem,3.4vw,2.5rem);font-weight:700;margin:0 0 6px}
.pl-head p{color:var(--muted);margin:0 0 4px;max-width:62ch}
.pl-big{font-size:clamp(1.75rem,3.4vw,2.5rem)!important;font-weight:700!important;line-height:1.1}
.pl-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:14px;margin:18px 0;align-items:start}
.pl-box{background:var(--bg-alt);border-radius:var(--r-md);padding:18px 20px}
.pl-box h3{font-size:1.0625rem;margin:0 0 8px;letter-spacing:-.01em}
.pl-box ul{margin:0;padding-left:18px;color:var(--muted);font-size:0.9375rem}
.pl-box li{margin-bottom:6px}
.disc li{font-size:0.8125rem}
.consent{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;margin-top:10px}
.consent input{width:20px;height:20px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}
.q{border:0;margin:0}
.q legend{font-weight:600;font-size:1.0625rem;padding:0;margin-bottom:12px;float:left;width:100%}
.opt{display:flex;gap:12px;align-items:center;padding:11px 14px;border:1px solid var(--line);border-radius:12px;margin-top:8px;cursor:pointer;clear:both}
.opt input{accent-color:var(--accent);width:18px;height:18px;flex-shrink:0}
.opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.pl-err{color:var(--c-cost);font-weight:400;min-height:1.2em;margin:10px 0 0}
.echo{color:var(--muted);font-size:0.8125rem;text-align:right;min-height:1em}
.callout{border-radius:var(--r-md);padding:16px 20px;margin:0 0 16px;font-size:0.9375rem}
.callout ul{margin:8px 0 0;padding-left:18px}
.callout li{margin-bottom:4px}
.callout.ok{background:var(--accent-soft)}
.callout.warn{background:color-mix(in srgb,var(--c-grow) 16%,transparent)}
.callout.bad{background:color-mix(in srgb,var(--c-cost) 14%,transparent)}
.upsell{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.st{display:inline-block;font-size:0.8125rem;font-weight:600;padding:3px 10px;border-radius:999px;white-space:nowrap}
.st-ok{background:var(--accent-soft);color:var(--accent)}
.st-warn{background:color-mix(in srgb,var(--c-grow) 20%,transparent);color:var(--ink)}
.st-bad{background:color-mix(in srgb,var(--c-cost) 16%,transparent);color:var(--c-cost)}
.actions{margin:0;padding:0;list-style:none;counter-reset:a;display:grid;gap:14px}
.actions li{counter-increment:a;display:grid;grid-template-columns:34px 1fr;gap:2px 12px}
.actions li::before{content:counter(a);grid-row:span 2;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:700;font-size:0.9375rem}
.actions span{color:var(--muted);font-size:0.9375rem}
.pl-retline{margin:0 0 6px;font-size:1.0625rem}
.barlbl{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:0.9375rem;margin:14px 0 6px}
.barlbl span{color:var(--muted)}
td.wrap{white-space:normal;text-align:left}
tfoot td{border-top:2px solid var(--line);border-bottom:0}
.t-essential{background:var(--accent-soft);color:var(--accent)}
.t-important{background:color-mix(in srgb,var(--c-grow) 18%,transparent);color:var(--ink)}
.t-aspirational{background:var(--bg-alt);color:var(--muted)}
.lp-list .lrow.fixed{grid-template-columns:1.5fr 4fr}
@media (max-width:1100px){
  .pl-shell{grid-template-columns:200px minmax(0,1fr)}
  .pl-snap{grid-column:2;position:static}
  .pl-snap dl{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:820px){
  .pl-shell,.pl-shell.is-plan{grid-template-columns:minmax(0,1fr);gap:12px;padding:0 12px}
  .pl-rail{position:sticky;top:56px;z-index:5;background:var(--bg);padding:10px 2px;margin:0 -2px}
  .pl-steps{display:none}
  .pl-mprog{display:block}
  .pl-mprog span{font-size:0.8125rem;color:var(--muted);display:block}
  .pl-mprog b{display:block;margin:2px 0 8px}
  .pl-snap{grid-column:auto;padding:14px}
  .pl-snap h3{display:none}
  .pl-snap dl{grid-template-columns:1fr 1fr;gap:10px}
  .pl-snap .mini{display:none}
  .pl-two{grid-template-columns:1fr}
}
/* plans */
.pl-planhead{margin:0 0 24px}
.pl-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;align-items:stretch}
.pl-plan{position:relative;display:flex;flex-direction:column;padding:26px}
.pl-plan h3{font-size:1.3125rem;font-weight:700;letter-spacing:-.02em}
.pl-plan ul{list-style:none;padding:0;margin:14px 0 20px;display:grid;gap:8px;font-size:0.9375rem;flex:1;align-content:start}
.pl-plan li{padding-left:22px;position:relative}
.pl-plan li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}
.pl-plan li.no{color:var(--muted)}
.pl-plan li.no::before{content:"–";color:var(--muted)}
.pl-plan.popular{outline:2px solid var(--accent);outline-offset:-2px}
.badge{position:absolute;top:-11px;left:24px;background:var(--accent);color:var(--accent-ink);font-size:0.8125rem;font-weight:600;padding:4px 12px;border-radius:999px}
.pl-price{margin:10px 0 0}.pl-price b{font-size:1.75rem;font-weight:700;letter-spacing:-.03em}.pl-price span{color:var(--muted);margin-left:6px}
.pl-list{margin:0;padding-left:18px;color:var(--muted);font-size:0.9375rem}.pl-list li{margin-bottom:6px}
.pl-checkout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:820px){.pl-checkout{grid-template-columns:1fr}}
.pl-checkout h3{font-size:1.0625rem;margin:22px 0 8px}
.pl-paym{display:flex;gap:8px;flex-wrap:wrap}.pl-paym .opt{margin:0}
.pl-sum{position:sticky;top:76px}
.pl-sum dl{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin:14px 0 0;font-size:0.9375rem}
.pl-sum dt{color:var(--muted)}.pl-sum dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.pl-sum .tot{font-weight:700;color:var(--ink);font-size:1.0625rem;border-top:1px solid var(--line);padding-top:8px}
.pl-success{text-align:center;max-width:640px;margin:0 auto}
.pl-success ol{text-align:left;color:var(--muted)}
.tick{width:56px;height:56px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-size:1.75rem;margin:0 auto 12px}
@media print{.pl-rail,.pl-snap,.upsell{display:none!important}.pl-shell,.pl-shell.is-plan{display:block;padding:0}}

/* ---------- explore ---------- */
.xp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;align-items:start}
.xp-ctl h3{font-size:1.0625rem;letter-spacing:-.01em;margin:22px 0 6px;padding-top:16px;border-top:1px solid var(--line)}
.xp-ctl h3:first-child{margin-top:0;padding-top:0;border-top:0}
.xp-ctl .lbl{margin-top:8px}
.xp-out{position:sticky;top:72px}
.xp-out h3{font-size:1.0625rem;margin:0 0 10px;letter-spacing:-.02em}
.seg-sm button{font-size:0.8125rem;padding:7px 4px}
.xt{min-width:0;font-size:0.9375rem}
.xt td,.xt th{padding:9px 6px;white-space:normal}
.xt td:first-child{color:var(--muted);max-width:130px}
.xt small{color:var(--muted);font-weight:400;display:block}
.dl{font-size:0.8125rem;color:var(--muted);white-space:nowrap}
.dl-up{color:var(--accent);font-weight:600}
.dl-down{color:var(--c-cost);font-weight:600}
.btn:disabled{opacity:.45;cursor:default}
@media (max-width:1000px){.xp{grid-template-columns:minmax(0,1fr)}.xp-out{position:static}}
@media print{.xp,.xp+*{}.xp-ctl{display:none}.xp{grid-template-columns:1fr}}
/* calculators menu */
.flyout.mega{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:4px 14px;min-width:720px;padding:18px;left:50%;transform:translateX(-50%)}
.flyout.mega h4{font-size:0.8125rem;color:var(--muted);font-weight:600;margin:6px 12px 4px}
.flyout.mega .col{display:flex;flex-direction:column}
.gnav .links>li>a.cta{background:var(--accent);color:var(--accent-ink);opacity:1;border-radius:999px;padding:7px 16px;font-weight:600}
.gnav .links>li>a.cta:hover{background:var(--accent-hover)}
.calc-hero .lp-link{display:inline-block;margin-top:14px;font-size:0.9375rem}
.secondary-calcs .tile{padding:26px}
.secondary-calcs .tile h3{font-size:1.3125rem}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.feat-grid .card h3{font-size:1.3125rem;font-weight:700;letter-spacing:-.02em;margin:0 0 6px}
.feat-grid .card p{color:var(--muted);margin:0}
#x-table{overflow-x:auto}
.xt{width:100%;table-layout:fixed}
.xt th:first-child,.xt td:first-child{width:26%}
.xt .st,.xt .dl{white-space:normal}
.xp{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}

/* ---------- planner v3 ---------- */
.num .per{color:var(--muted);font-size:0.8125rem;white-space:nowrap;padding-left:2px}
.subtot{font-weight:600;color:var(--accent);font-size:0.9375rem;font-variant-numeric:tabular-nums}
.pl-sub3{font-size:0.9375rem;color:var(--muted);font-weight:600;margin:14px 0 10px;letter-spacing:0}
.lp-card .pl-sub3:first-of-type{margin-top:6px}
.earners{display:grid;gap:16px}
.earners.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.earners .pgrid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.sumcard{background:var(--accent-soft);box-shadow:none}
.bd{width:100%;min-width:0;font-size:0.9375rem}
.bd td,.bd th{white-space:normal;padding:9px 8px}
.bd td:first-child,.bd th:first-child{text-align:left}
.bd tr.tot td{font-weight:700;border-top:2px solid var(--line)}
.sumcard .bd td{border-color:color-mix(in srgb,var(--accent) 20%,transparent)}
.itable{display:grid;gap:8px}
.ihead,.irow{display:grid;grid-template-columns:1.3fr repeat(var(--ic),minmax(0,1fr));gap:10px;align-items:center}
.ihead span{font-size:0.8125rem;color:var(--muted)}
.irow{padding:6px 0;border-top:1px solid var(--line)}
.ilbl{font-weight:400;font-size:0.9375rem}
.irow .num{max-width:none;min-width:0}
@media (max-width:640px){.ihead{display:none}.irow{grid-template-columns:1fr}.irow>span:empty{display:none}}
.ge-list{display:grid;gap:16px}
.ge{padding:22px}
.ge-head{display:flex;gap:10px;align-items:center;margin-bottom:14px}
.ge-head h3{font-size:1.3125rem;margin-right:auto}
.ge-head input{flex:1;min-width:0;font:700 1.0625rem var(--font);border:1px solid transparent;background:var(--bg-alt);border-radius:10px;padding:9px 12px;color:var(--ink)}
.ge-head select{border:1px solid transparent;background:var(--bg-alt);border-radius:10px;padding:9px 10px;font:600 0.9375rem var(--font);color:var(--ink)}
.ge-head input:focus,.ge-head select:focus{outline:none;border-color:var(--accent);background:var(--surface)}
.ge-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}
.ge-fund{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.ge-ret .ge-fund{grid-template-columns:minmax(0,1fr)}
.ge-fund h4{font-size:0.9375rem;margin:0 0 8px;letter-spacing:-.01em}
.ear{display:grid;gap:8px}
.ear-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 32px;gap:8px;align-items:center}
.ear-row select{width:100%;min-width:0;border:1px solid transparent;background:var(--bg-alt);border-radius:8px;padding:9px 8px;font:600 0.9375rem var(--font);color:var(--ink)}
.ear-row .num{max-width:none;min-width:0}
.ear .linkbtn{justify-self:start;font-size:0.9375rem}
@media (max-width:700px){.ge-fund,.earners.two{grid-template-columns:minmax(0,1fr)}.ge-head{flex-wrap:wrap}.ge-head input{flex-basis:100%}}
.ret-choice{display:grid;gap:4px;margin-top:14px}
.ret-choice .pgrid{margin-top:10px}
.glance{min-width:760px}
.glance td{vertical-align:top}
.glance small{font-weight:400}
.st-cell{min-width:110px}
.st-cell .fund-bar{margin-top:6px}
.st-cell small{display:block;color:var(--muted);margin-top:4px}
.gd .bd{font-size:0.9375rem}
.gd .bd td:last-child{text-align:right;white-space:nowrap}
.gd-status{font-size:0.9375rem;color:var(--muted);margin:6px 0 10px}
.gd-ret{outline:2px solid var(--accent);outline-offset:-2px}
.xp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.xp-grid h3{font-size:1.0625rem;margin:0 0 8px;letter-spacing:-.02em}
@media (max-width:900px){.xp-grid{grid-template-columns:minmax(0,1fr)}}
#x-box{position:static}
.xt small{display:block;color:var(--muted);font-weight:400}
.ge-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:760px){.ge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ge-fund{grid-template-columns:minmax(0,1fr)}
.ear-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr) 32px}
.gnotes{margin-top:14px;padding:14px 16px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--c-grow) 12%,transparent)}
.gnotes h4{font-size:0.9375rem;margin:0 0 6px}
.gnotes ul{margin:0;padding-left:18px;font-size:0.9375rem}
.gnotes li{margin-bottom:5px}
.gnotes .mini{margin:6px 0 0}
.kpi-sub{display:block;font-size:0.8125rem;font-weight:400;color:var(--muted);letter-spacing:0;margin-top:2px}
.oth-list .lrow input{min-width:0}
@media (max-width:640px){.oth-list .lrow{grid-template-columns:1fr 1fr}}
/* ---------- plan explained ---------- */
.ex-step{margin-bottom:14px}
.ex-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}
.ex-head h3{font-size:1.3125rem;font-weight:700;letter-spacing:-.02em}
.ex-n{flex-shrink:0;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-weight:700}
.ex td:not(:first-child),.ex th:not(:first-child){text-align:right}
.ex td:last-child .fund-bar{width:90px;margin-left:auto}
.ex-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.ex-fig{background:var(--bg-alt);border-radius:var(--r-sm);padding:12px 14px}
.ex-fig small{display:block;color:var(--muted);font-size:0.8125rem}
.ex-fig b{display:block;font-size:1.3125rem;letter-spacing:-.02em;margin:2px 0;font-variant-numeric:tabular-nums}
@media (max-width:640px){.ex-row{grid-template-columns:1fr}}
.covbar{height:12px;border-radius:6px;background:var(--line);overflow:hidden;margin:0 0 14px}
.covbar span{display:block;height:100%;background:var(--c-bal)}
.bridge{display:grid;grid-template-columns:170px minmax(0,1fr);gap:10px 14px;align-items:center;margin:4px 0}
.bl{font-size:0.9375rem;color:var(--muted)}
.bt{display:flex;height:26px;border-radius:7px;overflow:hidden;background:var(--bg-alt)}
.bs{display:block;height:100%}
.b-exp{background:var(--c-muted)}.b-emi{background:var(--c-cost)}.b-inv{background:var(--c-bal)}.b-left{background:var(--c-add)}
.b-gap{background:transparent}.b-need{background:var(--c-grow)}
.b-short,.i-short{background:repeating-linear-gradient(45deg,var(--c-cost),var(--c-cost) 5px,color-mix(in srgb,var(--c-cost) 45%,transparent) 5px,color-mix(in srgb,var(--c-cost) 45%,transparent) 10px)}
@media (max-width:640px){.bridge{grid-template-columns:1fr}}
.flow{margin-top:14px;max-width:560px}
.flow tr.neg td{color:var(--c-cost)}.flow tr.pos td{color:var(--accent)}
.neg-t{color:var(--c-cost);font-weight:700}.pos-t{color:var(--accent);font-weight:700}
.xt td:first-child small{display:block;font-size:0.8125rem;color:var(--muted);margin-top:2px}
.howto-steps{margin:6px 0 0;padding-left:20px;color:var(--muted);font-size:0.9375rem}
.howto-steps li{margin-bottom:4px}
.howto-steps b{color:var(--ink)}

/* ---------- scenario workspace (full screen) ---------- */
.sx-mode .calc-hero,.sx-mode .guide,.sx-mode .cta-band{display:none}
.sx-shell{max-width:1480px;margin:0 auto;padding:18px 24px 40px}
@media (max-width:700px){.sx-shell{padding:12px}}
.sx-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.sx-top h2{font-size:clamp(1.75rem,3.4vw,2.5rem);font-weight:700}
.sx-top p{color:var(--muted);margin:6px 0 0;max-width:70ch}
.sx-actions{display:flex;gap:8px;flex-wrap:wrap}
.sx-bar{position:sticky;top:56px;z-index:20;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:10px 0 12px;margin:0 0 16px;border-bottom:1px solid var(--line)}
.sx-tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:10px 12px;min-width:0}
.sx-tile.changed{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.sx-tile small{display:block;font-size:0.8125rem;color:var(--muted);line-height:1.3}
.sx-tile b{display:block;font-size:1.0625rem;letter-spacing:-.02em;margin:2px 0;font-variant-numeric:tabular-nums}
.sx-tile .cn-o{font-size:0.8125rem}
.sx-hint{grid-column:1/-1;margin:2px 0 0;font-size:0.8125rem;color:var(--muted)}
@media (max-width:1100px){.sx-bar{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.sx-bar{display:flex;overflow-x:auto;scrollbar-width:none}.sx-tile{flex:0 0 150px}}
.sx-sec{margin-bottom:16px}
.sx-head{margin-bottom:12px}
.sx-head h3{font-size:1.3125rem;font-weight:700;letter-spacing:-.02em}
.sx-head p{color:var(--muted);margin:4px 0 0;font-size:0.9375rem}
.sx-two{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:1000px){.sx-two{grid-template-columns:minmax(0,1fr)}}
.sx-sub{font-size:0.9375rem;margin:18px 0 6px}
.sx-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px;margin-top:10px}
@media (max-width:640px){.sx-grid2{grid-template-columns:minmax(0,1fr)}}
.sgt{width:100%;min-width:1000px;font-size:0.9375rem}
.sgt th{white-space:normal;vertical-align:bottom}
.sgt td{vertical-align:middle;white-space:nowrap}
.sgt td small{display:block;margin-top:3px}
.sgt td:first-child{text-align:left}
.sgt .c-goal{display:flex;gap:10px;align-items:center;min-width:210px;white-space:normal}
.sgt .c-goal b{display:block}
.keep input{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}
.keep-dis{width:18px;height:18px;border-radius:4px;background:var(--accent);color:var(--accent-ink);font-size:0.8125rem;display:grid;place-items:center;flex-shrink:0}
.pri-sel{border:0;background:transparent;color:var(--muted);font:600 0.8125rem var(--font);padding:2px 0;cursor:pointer}
.sgt .num.sm{min-width:0;max-width:150px;margin-left:auto}
.sgt .num.nw{max-width:90px;min-width:70px}
.stp{display:inline-flex;align-items:center;gap:4px}
.stp button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:1.0625rem;cursor:pointer;line-height:1}
.stp button:hover{border-color:var(--accent);color:var(--accent)}
.stp .num{margin:0}
.cn-o{display:block;font-size:0.8125rem;color:var(--muted);text-decoration:line-through}
.cn-v{display:block;font-weight:600}
.cn-v.up{color:var(--accent)}.cn-v.down{color:var(--c-cost)}
.sgt td .fund-bar{width:100px;margin-left:auto}
tr.sg.skipped td:not(:first-child):not(:nth-child(2)):not(:nth-child(3)){opacity:.55}
tr.sg.skipped .c-goal b{text-decoration:line-through;color:var(--muted)}
tr.sg-more td{background:var(--bg-alt);text-align:left!important;white-space:normal}
.sg-opts{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:18px;padding:6px 4px}
.sg-opts .num.sm{margin-left:0}
@media (max-width:760px){.sg-opts{grid-template-columns:1fr}}
.money{min-width:0}
.money td{white-space:normal}
.money td:first-child small{display:block;color:var(--muted);font-size:0.8125rem;margin-top:4px}
.money td:first-child .num.sm{display:inline-flex;max-width:110px;margin:4px 0 0;vertical-align:middle}
.money td:first-child .seg{margin-top:6px}
.money td .num.sm{margin-left:auto}
.sx-move{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.sx-inline{display:grid;grid-template-columns:160px minmax(0,1fr);gap:10px;align-items:center}
.sx-inline .num.sm{max-width:none}
@media (max-width:640px){.sx-inline{grid-template-columns:1fr}}
@media (max-width:640px){.money td:first-child .seg{display:grid;grid-template-columns:repeat(3,1fr)}.money{font-size:0.9375rem}.money td,.money th{padding:8px 6px}}
.cap.over,small.over{color:var(--accent);font-weight:600}
.sx-rebal{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.sx-rebal>div{flex:1;min-width:260px}
.lk{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.lk-row{display:grid;grid-template-columns:minmax(0,1.3fr) 150px auto minmax(0,1.4fr);gap:10px;align-items:center;padding:4px 0}
.lk-row .num.sm{margin:0;max-width:none}
.lk-row select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px;font:600 0.9375rem var(--font);color:var(--ink);min-width:0}
.lk-l{font-weight:400;font-size:0.9375rem}
@media (max-width:760px){.lk-row{grid-template-columns:1fr 1fr}}

/* ---------- plan v4: summary, single goals table, accordions ---------- */
.callout.slim{padding:10px 16px;font-size:0.9375rem;margin-bottom:14px}
.sum1 .ex-row{margin:16px 0 14px}
.ex-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.ex-row.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sum-top{margin-top:16px}
.sum-top ol{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sum-top li{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}
.sum-top li b{display:block;font-size:0.9375rem}.sum-top li span{display:block;font-weight:700;font-size:1.0625rem;margin-top:2px}.sum-top li small{color:var(--muted);font-size:0.8125rem}
@media (max-width:760px){.sum-top ol{grid-template-columns:1fr}}
.sum-next{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin-top:18px}
.sum-calc{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.sum-calc summary{cursor:pointer;color:var(--accent);font-weight:400;font-size:0.9375rem}
.gtab{min-width:860px}
.gt td{vertical-align:middle}
.gt-det td{background:var(--bg-alt);white-space:normal}
.gt-det .bd td:last-child{text-align:right}
.more-acts summary{cursor:pointer;color:var(--accent);font-weight:400;margin-top:12px}
.accs{display:grid;gap:10px}
.acc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
.acc summary{list-style:none;cursor:pointer;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{content:"+";font-size:1.3125rem;color:var(--muted);transition:transform .2s}
.acc[open] summary::after{transform:rotate(45deg)}
.acc-t b{display:block;font-size:1.0625rem;letter-spacing:-.01em}
.acc-t small{display:block;color:var(--muted);font-size:0.9375rem;margin-top:2px}
.acc-b{padding:0 20px 20px}
.ge-ef{outline:2px solid var(--c-grow);outline-offset:-2px}
/* quick fixes */
.sx-qf{margin-bottom:16px}
.qf{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.qf-chip{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:12px 14px;cursor:pointer;font:inherit;color:var(--ink)}
.qf-chip b{display:block;font-size:0.9375rem}
.qf-chip small{display:block;color:var(--accent);font-weight:600;font-size:0.8125rem;margin-top:3px}
.qf-chip:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.qf-chip.weak small{color:var(--muted);font-weight:400}
.qf-chip.done{background:var(--accent-soft);border-color:var(--accent);cursor:default}
.qf-chip.done small{color:var(--ink)}
/* phone: tables become cards */
@media (max-width:760px){
  .sgt,.sgt tbody,.sgt tfoot,.sgt tr,.sgt td{display:block;width:100%}
  .sgt{min-width:0!important}
  .sgt thead{display:none}
  .sgt tr.sg,.sgt tr.gt,.sgt tfoot tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;background:var(--surface)}
  .sgt tr.sg td,.sgt tr.gt td,.sgt tfoot td{border:0;padding:0;text-align:left!important;white-space:normal}
  .sgt tr.sg td:first-child,.sgt tr.gt td:first-child,.sgt tfoot td:first-child{grid-column:1/-1}
  .sgt td[data-l]::before{content:attr(data-l);display:block;font-size:0.8125rem;color:var(--muted);margin-bottom:3px}
  .sgt td:empty{display:none}
  .sgt .num.sm{margin-left:0;max-width:none}
  .sgt td .fund-bar{margin-left:0;width:100%}
  .sgt .cn-o,.sgt .cn-v{text-align:left}
  .sgt tr.sg-more,.sgt tr.gt-det{margin:-6px 0 10px}
  .sgt tr.sg-more td,.sgt tr.gt-det td{border-radius:0 0 14px 14px}
  .money,.money tbody,.money tr,.money td{display:revert}
  .money thead{display:table-header-group}
  .money tr{border:0;padding:0;margin:0;background:none}
  .table-scroll:has(.gtab),.table-scroll:has(.sgt:not(.money)){overflow-x:visible}
}
@media (max-width:640px){
  .sx-bar{align-items:flex-start}
  .sx-bar .sx-hint{display:none}
  .sgt tr.sg td:first-child::before,.sgt tr.gt td:first-child::before,.sgt tfoot td:first-child::before{display:none}
}

/* ---------- plan v5: money today, needs, funding, result ---------- */
.pn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:1.0625rem;margin-right:12px;vertical-align:middle}
.flow-steps{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:14px 0 0;counter-reset:f}
.flow-steps li{counter-increment:f}
.flow-steps a{display:inline-block;padding:6px 12px;border-radius:999px;background:var(--bg-alt);font-size:0.9375rem;color:var(--ink)}
.flow-steps a::before{content:counter(f)". ";color:var(--accent);font-weight:700}
.ex-row.five{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1000px){.ex-row.five{grid-template-columns:repeat(2,minmax(0,1fr))}}
.two-lists{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:8px}
.two-lists h4{font-size:0.9375rem;margin:0 0 6px}
.two-lists .bd td:last-child{text-align:right}
@media (max-width:700px){.two-lists{grid-template-columns:minmax(0,1fr)}}
.fgrid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:16px;align-items:start}
@media (max-width:1100px){.fgrid{grid-template-columns:minmax(0,1fr)}.fpanel{order:-1}}
.fcards{display:grid;gap:14px;min-width:0}
.fcard{padding:20px}
.fcard.skipped{opacity:.55}
.f-ef{outline:2px solid var(--c-grow);outline-offset:-2px}
.f-ret{outline:2px solid var(--accent);outline-offset:-2px}
.fhead{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:10px}
.fhead h3{font-size:1.0625rem;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.fneed{text-align:right}
.fneed small{display:block;color:var(--muted);font-size:0.8125rem}
.fneed b{display:block;font-size:1.3125rem;letter-spacing:-.02em}
.fneed .cn-o{font-size:0.8125rem}
.fctls{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:flex-end;padding:12px 0;margin-bottom:6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fctl{display:grid;gap:4px}
.fctl label{font-size:0.8125rem;color:var(--muted)}
.fctl .num.sm{max-width:160px;margin:0}
.pri-sel2{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 8px;font:600 0.9375rem var(--font);color:var(--ink)}
.fmore{flex-basis:100%;display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:14px}
.fmore .num.sm{margin:0}
@media (max-width:760px){.fmore{grid-template-columns:1fr}}
.ftab{width:100%;font-size:0.9375rem;min-width:0}
.ftab th{font-size:0.8125rem}
.ftab td{vertical-align:middle}
.ftab td:first-child{text-align:left;white-space:normal}
.ftab td small{display:block}
.ftab .num.sm{max-width:130px;margin-left:auto}
.ftab .pctin{max-width:90px}
.ftab .empty-row td{text-align:left;color:var(--muted);font-size:0.9375rem;padding:12px 4px}
.nsrow td{background:var(--accent-soft)}
.fadd{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 6px}
.addsel{border:1px dashed var(--accent);background:transparent;color:var(--accent);border-radius:10px;padding:9px 10px;font:600 0.9375rem var(--font);cursor:pointer;max-width:100%}
.fres{margin-top:8px}
.fres p{margin:6px 0 0;font-size:0.9375rem}
.fpanel{position:sticky;top:72px;padding:18px;max-height:calc(100vh - 90px);overflow:auto}
@media (max-width:1100px){.fpanel{position:static;max-height:none}}
.fpanel h3{font-size:1.0625rem;margin:0}
.fpanel h4{font-size:0.8125rem;color:var(--muted);margin:14px 0 6px}
.srcl{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.srcl li{position:relative;display:flex;justify-content:space-between;gap:8px;font-size:0.8125rem;padding-bottom:6px}
.srcl li b{white-space:nowrap;font-weight:600}
.srcl li i{position:absolute;left:0;bottom:0;height:3px;border-radius:2px;background:var(--accent)}
.srcl li::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:2px;background:var(--line);z-index:-1}
.srcl li.full b{color:var(--muted)}
.srcl li.over b{color:var(--c-cost)}
.srcl li.over i{background:var(--c-cost)}
.rtab{min-width:760px}
.res-flow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start;margin-top:14px}
.res-flow .flow{margin:0;max-width:none}
@media (max-width:900px){.res-flow{grid-template-columns:minmax(0,1fr)}}
.ns-row{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:center}
.ns-row label{font-weight:600}
.ns-row .num.sm{max-width:170px;margin:0}
.sx-inline2{display:grid;grid-template-columns:auto 130px;gap:10px 14px;align-items:center;margin-top:14px;max-width:560px}
.sx-inline2 .num.sm{margin:0}
@media (max-width:640px){.sx-inline2{grid-template-columns:1fr}}
@media (max-width:760px){
  .ftab,.ftab tbody,.ftab tr,.ftab td{display:block;width:100%}
  .ftab thead{display:none}
  .ftab tr{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding:10px 0;border-top:1px solid var(--line)}
  .ftab td{border:0;padding:0;text-align:left!important}
  .ftab td:first-child{grid-column:1/-1}
  .ftab td[data-l]::before{content:attr(data-l);display:block;font-size:0.8125rem;color:var(--muted)}
  .ftab td:last-child:not([data-l]){position:absolute;right:0}
  .ftab tr{position:relative}
  .ftab .num.sm{margin:0;max-width:none}
  .fhead{flex-direction:column}.fneed{text-align:left}
}
.addsel{width:auto;max-width:300px;flex:0 1 auto}
.warn-t{color:#8A5300;font-weight:600}
:root[data-theme="dark"] .warn-t{color:var(--c-grow)}
.alloc-status{margin-top:12px}
#ns-card .seg{max-width:480px}
.t-new{background:var(--c-alt);color:#fff;font-size:0.8125rem;padding:2px 8px;border-radius:999px;vertical-align:middle;margin-left:4px}
.f-new{outline:2px dashed var(--c-alt);outline-offset:-2px}
.f-removed{padding:14px 20px;opacity:.75}
.f-removed .fhead{margin:0;align-items:center}
.frm{display:block;margin-top:6px;font-size:0.8125rem;color:var(--c-cost)}
.fname .num.sm{max-width:240px}
.sx-addg{margin-bottom:14px}
.rtab2{min-width:640px}
.rtab2 td{vertical-align:middle}
.rtab2 td:first-child small{display:block}
.rtab2 .num.sm{max-width:140px;margin-left:auto}
.rt-sec td{background:var(--bg-alt);font-weight:600;font-size:0.8125rem;color:var(--muted);text-align:left!important;padding:8px 10px}
.rt-new td{background:color-mix(in srgb,var(--c-grow) 14%,transparent);color:var(--ink)}
.rt-why{font-size:0.8125rem;color:var(--muted);text-align:left!important;white-space:normal}
.rt-why.down{color:var(--accent)}
.rt-why.up{color:#8A5300}
@media (max-width:760px){.rtab2 tr.rt-sec{display:block;padding:0;border:0;background:none}.rtab2 tr.rt-sec td{border-radius:8px}}
.rtab2{min-width:0;width:100%;table-layout:fixed}
.rtab2 th:nth-child(1){width:36%}.rtab2 th:nth-child(2){width:15%}.rtab2 th:nth-child(3){width:21%}.rtab2 th:nth-child(4){width:28%}
.rtab2 .num.sm{min-width:0;max-width:none;width:100%}
.rtab2 td:first-child{white-space:normal}
.rtab2 td.rt-why,.rtab2 td{white-space:normal}
.nc td:last-child,.nc th:last-child{text-align:left}.nc td:nth-child(2){white-space:nowrap}

/* ---------- layout fixes: tables fit their cards ---------- */
.sgt,.ntab,.rtab,.gtab{min-width:0!important;width:100%}
.ntab th,.rtab th,.gtab th{white-space:normal;vertical-align:bottom;line-height:1.3}
.ntab td,.rtab td{white-space:nowrap}
.ntab td:first-child,.rtab td:first-child{white-space:normal}
.ntab th:first-child,.rtab th:first-child{width:28%}
.rtab td .fund-bar{width:80px;margin-left:auto}
.accs{grid-template-columns:minmax(0,1fr)}
.acc,.acc-b{min-width:0}
@media (max-width:640px){
  .bd td,.bd th{padding:7px 5px;font-size:0.8125rem}
  #sum-income .bd td,#sum-income .bd th{white-space:normal}
}
.ytab{width:100%;font-size:0.8125rem}
.ytab th,.ytab td{padding:7px 5px}
.ytab th{white-space:normal;line-height:1.25}
.ytab td:nth-child(3){font-size:0.8125rem;color:var(--muted);min-width:90px}
@media (max-width:1100px){.ytab th:nth-child(3),.ytab td:nth-child(3),.ytab th:nth-child(5),.ytab td:nth-child(5),.ytab th:nth-child(6),.ytab td:nth-child(6),.ytab th:nth-child(7),.ytab td:nth-child(7){display:none}}
@media (max-width:640px){.ytab th:nth-child(4),.ytab td:nth-child(4),.ytab th:nth-child(9),.ytab td:nth-child(9){display:none}}
.ytab,.lp-body table.bd{min-width:0}
/* ---------- monthly statement ---------- */
.stmt{width:100%;min-width:0!important;border-collapse:collapse;font-size:0.9375rem;font-variant-numeric:tabular-nums}
.stmt th{font-size:0.8125rem;color:var(--muted);font-weight:600;text-align:right;padding:8px 10px;border-bottom:2px solid var(--ink)}
.stmt th:first-child{text-align:left;font-size:0.9375rem;color:var(--ink)}
.stmt td{padding:6px 10px;border:0;text-align:right;white-space:nowrap}
.stmt td:first-child{text-align:left;white-space:normal}
.stmt .st-item td:first-child{padding-left:26px;color:var(--muted)}
.stmt .st-item td b{font-weight:400}
.stmt .st-h td{padding-top:16px;font-size:0.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.stmt .st-sub td{border-top:1px solid var(--line);font-weight:600}
.stmt .st-sub2 td{background:var(--bg-alt);font-weight:700;border-top:1px solid var(--line)}
.stmt .st-grand td{font-weight:700;font-size:1.0625rem;border-top:2px solid var(--ink);border-bottom:4px double var(--ink);padding:10px}
.stmt .st-grand.neg td{color:var(--c-cost)}.stmt .st-grand.pos td{color:var(--accent)}
.stmt .st-pc{color:var(--muted);font-size:0.8125rem;width:90px}
.stmt.memo{margin-top:10px}
.stmt.memo td:last-child{white-space:normal;color:var(--ink)}
.stmt.memo td:first-child{color:var(--muted)}
@media (max-width:640px){.stmt{font-size:0.8125rem}.stmt td,.stmt th{padding:5px 4px}.stmt .st-item td:first-child{padding-left:12px}.stmt .st-pc{width:auto}}
.stmt{max-width:760px}
@media (max-width:640px){.stmt.two th:last-child,.stmt.two td.st-pc{display:none}}
/* ---------- financial statements ---------- */
.fs-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:1000px){.fs-two{grid-template-columns:minmax(0,1fr)}}
.stmt.fs{max-width:none}
.stmt th small{display:block;font-weight:400;font-size:0.8125rem;color:var(--muted);text-transform:none;letter-spacing:0}
.stmt td small.cap{display:block;font-size:0.8125rem}
.stmt.many th,.stmt.many td{padding:6px 6px}
.stmt.proj{font-size:0.8125rem;margin-bottom:14px}
.stmt.proj td:first-child{min-width:150px}
@media (max-width:820px){.stmt.proj{font-size:0.8125rem}.stmt.proj td:first-child{min-width:100px}}
.stmt.sched{font-size:0.8125rem;margin-bottom:10px}
.stmt.sched th{border-bottom:1px solid var(--ink)}
.stmt.sched .st-h td{text-transform:none;letter-spacing:0;font-size:0.8125rem;color:var(--ink);padding-top:10px}
.stmt.sched .st-h td:last-child{font-weight:600}
.stmt.sched .st-item td:first-child{padding-left:14px}
.st-left td{color:#8A5300;border-top:1px solid var(--line)}
.st-over td{color:var(--c-cost);border-top:1px solid var(--line)}
.fpanel h3{margin-bottom:2px}
.stmt th:first-child{white-space:normal}
.phone-only{display:none}
@media (max-width:640px){.stmt.proj .c-mid{display:none}.phone-only{display:block}.stmt.proj td:first-child{min-width:0}}

/* ---------- clean input layout ---------- */
.isec{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow);margin:0}
.isec>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 20px}
.isec>summary::-webkit-details-marker{display:none}
.isec>summary::before{content:"";width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .2s;flex-shrink:0;margin-right:2px}
.isec[open]>summary::before{transform:rotate(45deg)}
.isec-t{flex:1;min-width:0}
.isec-t b{display:block;font-size:1.0625rem;letter-spacing:-.01em}
.isec-t small{display:block;color:var(--muted);font-size:0.8125rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.isec[open] .isec-t small{display:none}
.isec-s{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.isec-b{padding:0 20px 14px}
.isec-i{margin:-4px 0 8px}
.ir{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px);gap:12px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}
.ir:first-child,.ir-g+.ir{border-top:0}
.ir-l{font-size:0.9375rem}
.ir-l small{display:block;color:var(--muted);font-size:0.8125rem;line-height:1.35;margin-top:1px}
.ir-c{display:grid;justify-items:end}
.ir-c .num{min-width:0;max-width:none;width:100%}
.ir-c .num input,.ir-c .num select{padding:7px 4px}
.ir-c .echo{min-height:0}
.ir-g{font-size:0.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:12px 0 4px;border-top:1px solid var(--line)}
.isec-b>.ir-g:first-child,.isec-i+.ir-g{border-top:0;padding-top:2px}
.ir-act{padding:10px 0 2px;border-top:1px solid var(--line)}
.linkbtn.danger{color:var(--c-cost)}
.lp-body .isec+.isec,.lp-body .isec+.card,.lp-body .card+.isec{margin-top:0}
@media (max-width:640px){
  .ir{grid-template-columns:minmax(0,1fr) 140px;gap:8px}
  .isec>summary{padding:14px 14px}.isec-b{padding:0 14px 12px}
  .ir-l{font-size:0.9375rem}
}
/* retirement table: compact rows on phones */
small.ph{display:none}
@media (max-width:640px){
  .rtab2 thead th:nth-child(2),.rtab2 thead th:nth-child(4),.rtab2 tbody td:nth-child(2),.rtab2 tbody td:nth-child(4),.rtab2 tfoot td:nth-child(4){display:none}
  .rtab2 th:nth-child(1){width:60%}.rtab2 th:nth-child(3){width:40%}
  .rtab2 small.ph{display:block;color:var(--muted);font-size:0.8125rem}
  .rtab2 tfoot td:nth-child(2){display:none}
}
@media (min-width:1100px){
  .isec.cols2 .isec-b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px}
  .isec.cols2 .isec-b>.ir-g,.isec.cols2 .isec-b>.isec-i,.isec.cols2 .isec-b>.ir-act,.isec.cols2 .isec-b>.ex-row,.isec.cols2 .isec-b>.lp-list,.isec.cols2 .isec-b>.ladd{grid-column:1/-1}
  .isec.cols2 .ir{grid-template-columns:minmax(0,1fr) 150px}
  .isec.cols2 .ir:nth-child(2){border-top:0}
}
.isec-b .lp-list{min-width:0}
.isec-b .lp-list .lrow input,.isec-b .lp-list .lrow select{min-width:0}
.isec{overflow:hidden}.isec-b .ladd{width:100%;max-width:100%}
.rtab2 th{white-space:normal;line-height:1.3}
.ir-l{overflow-wrap:anywhere;hyphens:auto}
@media (min-width:1100px){.isec.cols2 .ir{grid-template-columns:minmax(0,1fr) 140px}}

/* ================= foundations: touch, contrast, line length ================= */
/* contrast */
.warn-t,.rt-why.up{color:#8A5200}
:root[data-theme="dark"] .warn-t,:root[data-theme="dark"] .rt-why.up{color:#E8B04B}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .warn-t,:root:not([data-theme="light"]) .rt-why.up{color:#E8B04B}}
.st-bad{color:#A3303B}
.callout a,.callout .linkbtn{color:#0A5A3D}
:root[data-theme="dark"] .callout a,:root[data-theme="dark"] .callout .linkbtn{color:#6FD3A6}
/* touch targets: 44px minimum for anything you tap */
.btn,.pill,.chip,.ladd,.addsel,.qf-chip,.seg button,.lp-nav .btn{min-height:44px}
.num{min-height:44px}
.ftab .num.sm,.money .num.sm,.fctl .num.sm,.rtab2 .num.sm,.ns-row .num.sm,.sx-inline2 .num.sm{min-height:44px}
.lrm{min-width:44px;min-height:44px}
.stp button{width:44px;height:44px}
.icon-btn{min-width:44px;min-height:44px}
.isec>summary,.acc summary,.more-acts summary,.sum-calc summary{min-height:56px}
.linkbtn{min-height:44px;display:inline-flex;align-items:center}
p .linkbtn,.callout .linkbtn,.mini .linkbtn,li .linkbtn,td .linkbtn{min-height:0;display:inline}
.pl-steps button,.pl-steps a{min-height:44px}
.gnav .links>li>a{min-height:44px;display:inline-flex;align-items:center}
.pri-sel2,.pri-sel{min-height:44px}
.site-foot a,footer a{display:inline-block;padding:8px 0}
.keep{min-height:44px;display:inline-flex;align-items:center;gap:6px}
/* comfortable line length */
p{max-width:72ch}
.hero p,.section-head p,.cta-band p,.calc-hero p{margin-left:auto;margin-right:auto}
.num input,.num select{min-height:42px}
.lrow input,.lrow select{min-height:44px}
footer li a,.site-foot li a,.foot li a{display:inline-flex;align-items:center;min-height:44px;padding:0}
.flow-steps a{min-height:44px;display:inline-flex;align-items:center}
.flyout a,.mnav a{min-height:44px;display:flex;align-items:center}
input[type=checkbox]{width:22px;height:22px}
label.toggle,label.consent,.consent{min-height:44px;display:inline-flex;align-items:center;gap:8px}

/* ================= structure ================= */
.chap-bar{position:sticky;top:56px;z-index:15;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:8px;margin:14px 0 4px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:999px;border:1px solid var(--line)}
.chap-bar a{flex:1 0 auto;text-align:center;padding:0 16px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--muted);font-weight:600;text-decoration:none;white-space:nowrap}
.chap-bar a.on,.chap-bar a:hover{background:var(--ink);color:var(--bg);text-decoration:none}
.lp-sec{scroll-margin-top:130px}
.chap-key{font-size:1.3125rem;line-height:1.35;margin:-4px 0 18px;color:var(--muted);max-width:none}
.chap-key b{color:var(--ink)}
details.about{margin:6px 0 12px}
details.about>summary{cursor:pointer;color:var(--accent);font-weight:600;list-style:none;min-height:44px;display:inline-flex;align-items:center;gap:6px}
details.about>summary::-webkit-details-marker{display:none}
details.about>summary::before{content:"i";display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;border:1.5px solid currentColor;font-size:.8125rem;font-style:italic}
details.about>div{padding:2px 0 6px;color:var(--muted)}
/* one clear action: the step navigation stays in reach */
.pl-main .lp-nav{position:sticky;bottom:0;z-index:12;margin:18px -8px 0;padding:12px 8px calc(12px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
.fsumline{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0 2px;font-size:.9375rem;color:var(--muted)}
.fsumline b{color:var(--ink);font-weight:600;margin-right:4px}
.ftog{flex-shrink:0}
.fcard:not(.fopen) .fbody{display:none}
.fcard.fopen .fsumline [data-o="fsum"]{visibility:hidden}
.fcard .fres{margin-top:6px}

/* ================= polish ================= */
/* product previews (home) */
.preview{margin:8px auto 64px}
.pv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media (max-width:900px){.pv-grid{grid-template-columns:minmax(0,1fr)}}
.pv{margin:0}
.pv-frame{background:var(--bg-alt);border-radius:var(--r-lg);padding:22px;min-height:290px;display:flex;flex-direction:column;justify-content:center;gap:10px;pointer-events:none;user-select:none}
.pv figcaption{margin-top:14px;color:var(--muted);font-size:.9375rem;line-height:1.5}
.pv figcaption b{color:var(--ink)}
.pv-st{background:var(--surface);border-radius:14px;padding:6px;font-size:.8125rem}
.pv-st td,.pv-st th{padding:5px 10px}
.pv-card,.pv-chip,.pv-tile{background:var(--surface);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.pv-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px}
.pv-head small,.pv-need small,.pv-chip small,.pv-tile small{display:block;color:var(--muted);font-size:.8125rem}
.pv-need{text-align:right}.pv-need b{font-size:1.0625rem}
.pv-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;font-size:.8125rem;padding:6px 0;border-top:1px solid var(--line)}
.pv-row.add{grid-template-columns:1fr;color:var(--accent);font-weight:600}
.pv-res{font-size:.8125rem;margin:6px 0 0}
.pv-chip b{display:block;font-size:.9375rem}.pv-chip small{color:var(--accent);font-weight:600}
.pv-tile b{display:block;font-size:1.3125rem}
/* lighter disclaimers */
.disc-line{font-size:.8125rem;color:var(--muted);margin:0 0 12px}
.legal-acc>summary{cursor:pointer;list-style:none;min-height:56px;display:flex;flex-direction:column;justify-content:center}
.legal-acc>summary::-webkit-details-marker{display:none}
.legal-acc>summary small{color:var(--muted);font-size:.8125rem}
/* restrained motion */
html{scroll-behavior:smooth}
@keyframes reveal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.isec[open]>.isec-b,.acc[open]>.acc-b,details.about[open]>div,.fcard.fopen .fbody,.legal-acc[open]>*:not(summary),.sum-calc[open]>*:not(summary),.more-acts[open]>ol{animation:reveal .22s ease-out}
.btn,.pill,.chip,.qf-chip,.chap-bar a,.isec>summary,.fund-bar span{transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s,width .4s ease}
.btn:active,.pill:active,.chip:active,.qf-chip:active{transform:scale(.98)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.tile li a{display:flex;align-items:center;min-height:44px}.tile ul{margin-top:4px}
@media (max-width:1100px){.stmt.proj th,.stmt.proj td{padding:5px 3px}.stmt.proj th small{font-size:.8125rem}}
@media (max-width:640px){.stmt.proj{table-layout:fixed}.stmt.proj th:first-child,.stmt.proj td:first-child{width:40%;white-space:normal}}
@media (max-width:640px){.stmt.proj th,.stmt.proj th small{white-space:normal}}
.pv-frame{height:330px;min-height:0}@media (max-width:900px){.pv-frame{height:auto}}
.pl-steps button,.pl-steps a,.pl-steps li{font-weight:400}
.pl-steps .cur,.pl-steps .cur *{font-weight:700}
.chap-key+details.about,.chap-key+.card{margin-top:-6px}
details.about{margin:0 0 10px}
.lp-card details.about:last-child{margin-bottom:0}
/* ---------- benchmark polish: weights, line length, change highlight ---------- */
b,strong{font-weight:700}
.chap-key{max-width:60ch}
.site-footer p,footer p{max-width:72ch}
.pl-main p.lp-sub,.pl-main p.mini,.pl-main .disc-line,.sx-head p,.lp-sec-sub{max-width:72ch}
@keyframes flashbg{0%{background:color-mix(in srgb,var(--accent) 22%,transparent)}100%{background:transparent}}
.flash{animation:flashbg .9s ease-out;border-radius:6px}
.legal p{max-width:72ch}

/* ---------- table-style inputs ---------- */
.gt{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden}
.gt-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(var(--n),minmax(110px,150px)) 110px;gap:10px;align-items:center;padding:8px 20px}
.gt:not(.gt-tot) .gt-row{grid-template-columns:minmax(0,1fr) repeat(var(--n),minmax(130px,170px))}
.gt-hd{font-size:.8125rem;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);padding-top:14px;padding-bottom:10px}
.gt-hd span:not(:first-child),.gt-sv,.gt-t{text-align:right}
.gt-sec{box-shadow:none;border-radius:0;border-bottom:1px solid var(--line)}
.gt-sec:last-of-type{border-bottom:0}
.gt-sh{background:var(--bg-alt);cursor:pointer;list-style:none;min-height:48px;padding-top:10px;padding-bottom:10px}
.gt-sh::-webkit-details-marker{display:none}
.gt-sh::before{display:none!important}
.gt-st{display:flex;align-items:center;gap:10px;min-width:0}
.gt-st::before{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .2s;flex-shrink:0}
.gt-sec[open] .gt-st::before{transform:rotate(45deg)}
.gt-st b{font-size:.9375rem}
.gt-st small{color:var(--muted);font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gt-sec[open] .gt-st small{display:none}
.gt-sv{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.gt-svt{color:var(--ink)}
.gt-r{border-top:1px solid var(--line)}
.gt-sh+.gt-r,.gt-note+.gt-r{border-top:0}
.gt-l{font-size:.9375rem;min-width:0;overflow-wrap:anywhere}
.gt-l small{display:block;color:var(--muted);font-size:.8125rem}
.gt-c .num{min-width:0;width:100%}
.gt-c .num input{padding:8px 4px}
.gt-c .echo{display:none}
.gt-t{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.9375rem}
.gt-note{padding:8px 20px 0;margin:0}
.gt-gr{border-top:2px solid var(--ink);padding-top:12px;padding-bottom:14px}
.gt-gr .gt-sv{font-size:1.0625rem}
@media (max-width:700px){
  .gt-row,.gt:not(.gt-tot) .gt-row{grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:6px 10px;padding:8px 14px}
  .gt-tot .gt-row{grid-template-columns:repeat(var(--n),minmax(0,1fr)) 0}
  .gt-hd{display:none}
  .gt-l,.gt-st{grid-column:1/-1}
  .gt-c[data-l]::before,.gt-sv[data-l]::before{content:attr(data-l);display:block;font-size:.75rem;color:var(--muted);font-weight:400;text-align:left}
  .gt-sv{text-align:left}
  .gt-t,.gt-svt{display:none}
  .gt-empty{display:none}
  .gt-gr>span:first-child{grid-column:1/-1}
}
/* ---------- monthly budget ---------- */
.bud-top{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap}
.bud-big{font-size:clamp(1.75rem,4vw,2.5rem);margin:2px 0 4px;letter-spacing:-.02em}
.bud-k{margin:0;min-width:300px}
.wf{display:grid;gap:8px;margin-top:12px}
.wf-r{display:grid;grid-template-columns:200px minmax(0,1fr) 110px;gap:12px;align-items:center;min-height:34px}
.wf-l{font-size:.9375rem;color:var(--muted)}
.wf-key .wf-l{color:var(--ink);font-weight:600}
.wf-t{position:relative;height:26px}
.wf-b{position:absolute;top:0;bottom:0;border-radius:5px}
.wf-0{position:absolute;top:-4px;bottom:-4px;width:1px;background:var(--ink);opacity:.4}
.wf-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.wf-v.neg{color:var(--c-cost)}
.w-in{background:var(--c-bal)}.w-exp{background:var(--c-muted)}.w-emi{background:var(--c-cost)}.w-inv{background:var(--c-add)}
.w-sub{background:var(--accent)}.w-need{background:var(--c-grow)}.w-spare{background:var(--accent)}
.w-short{background:repeating-linear-gradient(45deg,var(--c-cost),var(--c-cost) 5px,color-mix(in srgb,var(--c-cost) 45%,transparent) 5px,color-mix(in srgb,var(--c-cost) 45%,transparent) 10px)}
.sb{display:grid;gap:8px;margin-top:6px}
.sb-r{display:grid;grid-template-columns:180px minmax(0,1fr) 150px;gap:12px;align-items:center}
.sb-l{font-size:.9375rem}
.sb-t{height:14px;background:var(--bg-alt);border-radius:7px;overflow:hidden}
.sb-t i{display:block;height:100%;background:var(--c-bal);border-radius:7px}
.sb-v{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.sb-v small{display:block;font-weight:400;color:var(--muted);font-size:.8125rem}
@media (max-width:700px){.wf-r{grid-template-columns:minmax(0,1fr) 92px;gap:4px 10px}.wf-t{grid-column:1/-1;order:3;height:20px}.sb-r{grid-template-columns:minmax(0,1fr) 110px;gap:4px 10px}.sb-t{grid-column:1/-1;order:3}}
.bud-link{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding:16px 18px;border-radius:var(--r-sm);background:var(--bg-alt)}
.bud-link b{display:block}.bud-link span{font-size:1.3125rem;font-weight:700}
.gt-sec.isec>summary.gt-sh{display:grid;justify-content:normal;padding:10px 20px}
.gt-sec.isec>summary.gt-sh::before{display:none}
.gt-hd small{display:block;font-weight:400;font-size:.75rem}
.gt-row{column-gap:14px}
.gt-r{padding-top:5px;padding-bottom:5px}
.gt-c .num{background:var(--surface);border:1px solid var(--line)}
.gt-c .num:focus-within{border-color:var(--accent)}
.gt-sh{min-height:44px}
@media (max-width:700px){.gt-sec.isec>summary.gt-sh{padding:10px 14px}}
.gt-c{min-width:0}.gt-c .num{box-sizing:border-box;max-width:100%}.gt-c .num input{min-width:0;width:100%}
/* ---------- list rows (children, other earners): each field its own visible box ---------- */
.lrow input,.lrow select,.ladd{box-sizing:border-box}
.lrow{gap:10px}
.lrow input,.lrow select{background:var(--surface);border:1px solid var(--line)}
.lrow input:focus,.lrow select:focus{border-color:var(--accent)}
.lrow input.n{text-align:center}
.lp-list .lhead,.lp-list .lrow{grid-template-columns:var(--cols)}
.lp-list .lhead span:nth-child(n+2){text-align:center}
.lrm{width:44px;height:44px;padding:0;justify-self:center}
.num{box-sizing:border-box;max-width:100%}
@media (max-width:640px){.lp-list .lrow{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 44px}.lp-list .lrow>*:first-child{grid-column:1/-1}.oth-list .lrow{grid-template-columns:1fr 1fr}}
/* ---------- three columns on Expenses: steps | expenses | income statement ---------- */
.pl-shell.is-3col{grid-template-columns:200px minmax(0,1fr) 380px;max-width:1520px}
.pl-shell.is-3col .pl-snap{max-height:calc(100vh - 90px);overflow:auto;padding:18px}
.pl-snap.snap-is h3{margin-bottom:8px}
.pl-snap .stmt{font-size:.8125rem}
.pl-snap .stmt td,.pl-snap .stmt th{padding:5px 6px}
.pl-snap .stmt .st-item td:first-child{padding-left:14px}
.pl-snap .stmt .st-pc{width:auto}
@media (max-width:1200px){
  .pl-shell.is-3col{grid-template-columns:200px minmax(0,1fr)}
  .pl-shell.is-3col .pl-snap{grid-column:2;position:static;max-height:none}
}
@media (max-width:820px){.pl-shell.is-3col{grid-template-columns:minmax(0,1fr)}.pl-shell.is-3col .pl-snap{grid-column:auto}}
.snap-note{margin:0 0 6px;text-align:right}
/* ---------- need / want tags ---------- */
.gt-lt{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nw{display:inline-flex;align-items:center;border:1px solid transparent;border-radius:999px;padding:0 10px;min-height:26px;font:600 .75rem var(--font);cursor:pointer;line-height:1;white-space:nowrap;position:relative}
.nw::after{content:"";position:absolute;inset:-9px -4px}
.nw-need{background:color-mix(in srgb,var(--c-bal) 14%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--c-bal) 35%,transparent)}
.nw-want{background:color-mix(in srgb,var(--c-grow) 20%,transparent);color:#8A5300;border-color:color-mix(in srgb,var(--c-grow) 45%,transparent)}
:root[data-theme="dark"] .nw-want{color:var(--c-grow)}
button.nw:hover{border-color:currentColor}
.nw-intro{display:block;font-size:.9375rem;color:var(--muted);margin:0 0 12px;line-height:1.7}
.nw-intro .nw{cursor:default;margin:0 2px}
.nw-ask{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.nw-ask em{font-style:normal;font-size:.8125rem;color:#8A5300;font-weight:600}
.nw-ask button{border:1px dashed var(--line);background:var(--surface);border-radius:999px;min-height:30px;padding:0 10px;font:600 .75rem var(--font);color:var(--ink);cursor:pointer}
.nw-ask button:hover{border-color:var(--accent);color:var(--accent)}
.gt-nw{display:inline-flex;gap:4px 10px;align-items:center;flex-wrap:wrap;font-size:.8125rem;color:var(--muted);font-weight:400;margin-left:6px}
.gt-nw b{font-weight:600;color:var(--ink)}
.nwd{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px}
.nwd.nw-need{background:var(--c-bal)}.nwd.nw-want{background:var(--c-grow)}
.gt-st{flex-wrap:wrap}
@media (max-width:700px){.gt-nw{margin-left:0;width:100%}}
.pl-snap .stmt.fs .st-grand td{font-size:.9375rem}.pl-snap .stmt th:not(:first-child){font-size:.8125rem}
.snap-gap{height:14px}
.pl-snap .stmt.memo td:last-child{min-width:84px}
.loan-tot{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;padding:14px 20px;border-radius:var(--r-md);background:var(--bg-alt);font-size:.9375rem}
.loan-tot>b{flex:1 1 100%}
@media (min-width:700px){.loan-tot>b{flex:0 0 auto}}
.loan-tot span b{font-variant-numeric:tabular-nums}

/* ---------- spacing fine-tune for the three-column steps ---------- */
.pl-steps .sl{font-style:normal}
.lp-in .calc-hero{display:none}
.lp-in #lp{padding-top:18px}
.pl-shell.is-3col{column-gap:28px}
@media (min-width:1500px){.pl-shell.is-3col{grid-template-columns:200px minmax(0,1fr) 400px}}
.pl-shell.is-3col .pl-snap{padding:20px 22px}
.pl-shell.is-3col .pl-head h2{font-size:clamp(1.75rem,2.6vw,2.25rem);margin-bottom:4px}
.pl-shell.is-3col .pl-head p{font-size:.9375rem;margin-bottom:12px}
.pl-shell.is-3col .nw-intro{margin-bottom:14px}
.pl-snap .stmt{font-size:.875rem}
.pl-snap .stmt td,.pl-snap .stmt th{padding:6px 6px}
.pl-snap .stmt th:first-child{font-size:.9375rem}
.pl-snap .snap-note{font-size:.8125rem}
/* mid-size screens: compact step list, so the middle column has room */
@media (min-width:1201px) and (max-width:1499px){
  .pl-shell.is-3col{grid-template-columns:60px minmax(0,1fr) 380px}
  .pl-shell.is-3col .pl-steps .sl{display:none}
  .pl-shell.is-3col .pl-steps button{justify-content:center;padding:8px 0}
  .pl-shell.is-3col .pl-steps button span{width:30px;height:30px}
}
.nw{font-size:.8125rem;min-height:32px;padding:0 12px}
.nw-ask button{font-size:.8125rem;min-height:36px;padding:0 12px}
.nw-ask em{font-size:.8125rem}
.gt-hd small{font-size:.8125rem}
.nw-need{color:#0A5C3F}
:root[data-theme="dark"] .nw-need{color:var(--accent)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .nw-need{color:var(--accent)}}

/* ---------- three-column fine-tune, round 2 ---------- */
/* use more of large screens */
@media (min-width:1700px){
  .pl-shell.is-3col{max-width:1760px;grid-template-columns:220px minmax(0,1fr) 430px;column-gap:32px}
}
/* category rows: compact, still a comfortable tap target */
.gt-sec>summary.gt-sh{min-height:0;padding:11px 20px}
.gt-r{padding-top:4px;padding-bottom:4px}
/* summary panel: tidy titles, memo labels and spacing */
.pl-snap .stmt.fs th:first-child{font-size:1rem;letter-spacing:-.01em}
.pl-snap .stmt.memo td:first-child{width:44%;padding-right:12px}
.pl-snap .stmt.memo td{vertical-align:top;line-height:1.45}
.pl-snap .snap-gap{height:22px}
.pl-snap .snap-note{margin:0 0 4px}
.pl-snap .stmt .st-item td:first-child{line-height:1.35}
/* retirement table: phone-only notes stay on phones; headings align with their values */
.rtab2 td:first-child small.ph{display:none}
.rtab2 th:last-child{text-align:left}
.rtab2 td{padding-top:8px;padding-bottom:8px}
@media (max-width:640px){.rtab2 td:first-child small.ph{display:block}}
@media (min-width:1700px){.lp-3col .gnav .wrap{max-width:1760px}}
@media (min-width:1201px) and (max-width:1699px){.lp-3col .gnav .wrap{max-width:none;padding-left:22px;padding-right:22px}}
@media (max-width:1100px){
  .fs-two{grid-template-columns:minmax(0,1fr)}
  .stmt.proj td:first-child{min-width:0}
  .stmt.proj th,.stmt.proj td{padding:5px 2px}
  .stmt.proj th small{white-space:normal}
}

/* =====================================================================
   Selvayana v2 – pastel redesign layer. Calm, clear, less text.
   Everything below overrides the earlier component styles.
   ===================================================================== */
body{font-size:16px;line-height:1.55;letter-spacing:-.006em;background:var(--bg)}
h1,h2,h3{letter-spacing:-.022em;font-weight:680}
.neg-t{color:var(--neg)}.pos-t{color:var(--pos)}
.warn-t,.rt-why.up{color:var(--warn)!important}
::selection{background:var(--p-lav)}
/* pastel helpers, used by icons, chips and tiles */
.t-mint{background:var(--p-mint);color:var(--i-mint)}.t-peach{background:var(--p-peach);color:var(--i-peach)}
.t-lav{background:var(--p-lav);color:var(--i-lav)}.t-butter{background:var(--p-butter);color:var(--i-butter)}
.t-sky{background:var(--p-sky);color:var(--i-sky)}.t-rose{background:var(--p-rose);color:var(--i-rose)}

/* ---------- navigation ---------- */
.gnav{border-bottom:1px solid var(--line)}
.gnav .bar{height:60px}
.logo svg rect,.logo svg path{transition:none}
.gnav .links>li>a{border-radius:999px;padding:8px 14px;opacity:.9}
.gnav .links>li>a:hover{background:var(--p-lav);color:var(--i-lav)}
.gnav .btn-primary,.gnav .btn{padding:9px 18px;font-size:.9375rem}
.flyout{border-radius:var(--r-md)}
.flyout a:hover{background:var(--p-mint);color:var(--i-mint)}

/* ---------- buttons ---------- */
.btn{border-radius:999px;font-weight:620;letter-spacing:-.01em;padding:12px 24px;transition:background .15s ease,box-shadow .15s ease,transform .1s ease}
.btn:active{transform:translateY(1px)}
.btn-primary{box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 6px 16px color-mix(in srgb,var(--accent) 22%,transparent)}
.btn-outline{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.btn-outline:hover{background:var(--surface);border-color:var(--accent);color:var(--accent)}
.pill{background:var(--surface);border:1px solid var(--line);font-weight:560}
.pill:hover{background:var(--p-mint);border-color:transparent;color:var(--i-mint)}
.linkbtn{color:var(--accent)}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}

/* ---------- home ---------- */
.hero{position:relative;padding-top:clamp(56px,9vw,112px)!important;padding-bottom:clamp(36px,6vw,64px)!important}
.hero::before{content:"";position:absolute;inset:-40px -10vw auto;height:120%;z-index:-1;pointer-events:none;
  background:radial-gradient(40% 55% at 18% 30%,var(--p-lav),transparent 70%),radial-gradient(38% 50% at 82% 26%,var(--p-peach),transparent 70%),radial-gradient(42% 50% at 55% 85%,var(--p-mint),transparent 70%)}
.hero h1{font-size:clamp(2.4rem,5.6vw,4.2rem);font-weight:720;letter-spacing:-.035em}
.hero .lead{font-size:clamp(1.0625rem,1.6vw,1.25rem);color:var(--muted);max-width:34ch;margin-left:auto;margin-right:auto}
.section-head h2{font-size:clamp(1.75rem,3.6vw,2.6rem)}
.section-head p{color:var(--muted)}
.pv-frame{border-radius:var(--r-lg);border:0;box-shadow:none}
.pv:nth-child(1) .pv-frame{background:var(--p-mint)}.pv:nth-child(2) .pv-frame{background:var(--p-lav)}.pv:nth-child(3) .pv-frame{background:var(--p-peach)}
.pv figcaption{color:var(--muted)}.pv figcaption b{color:var(--ink)}
.tile.dark{background:var(--p-lav)!important;color:var(--ink)!important}
.tile.dark h3,.tile.dark p,.tile.dark a{color:var(--ink)!important}
.tile.dark p{color:var(--muted)!important}
.features>div{background:var(--surface);border-radius:var(--r-md);padding:22px}
.features>div h3{font-size:1.0625rem}
.feat-grid .card{border:0;box-shadow:none}
.feat-grid .card:nth-child(6n+1){background:var(--p-mint)}.feat-grid .card:nth-child(6n+2){background:var(--p-peach)}.feat-grid .card:nth-child(6n+3){background:var(--p-lav)}
.feat-grid .card:nth-child(6n+4){background:var(--p-sky)}.feat-grid .card:nth-child(6n+5){background:var(--p-butter)}.feat-grid .card:nth-child(6n+6){background:var(--p-rose)}
.feat-grid .card p{color:var(--muted)}
.cta-band{background:linear-gradient(135deg,var(--p-mint),var(--p-sky))!important;border:0;border-radius:var(--r-lg)}
.cta-band p{color:var(--muted)}
.tiles .tile{border:0;box-shadow:none;border-radius:var(--r-lg)}
.tiles #invest{background:var(--p-mint)}.tiles #retire{background:var(--p-peach)}.tiles #tax{background:var(--p-butter)}.tiles #loans{background:var(--p-rose)}
.tiles #save{background:var(--p-sky)}.tiles #plan{background:var(--p-lav)!important}.tiles #more{background:var(--bg-alt)}
.tiles .tile p{color:var(--muted)}
.tiles .tile ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0}
.tiles .tile li{margin:0}
.tiles .tile li a{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border-radius:999px;background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--ink)!important;font-size:.9375rem;font-weight:520}
.tiles .tile li a:hover{background:var(--surface);text-decoration:none;box-shadow:var(--shadow)}
.rel-grid a{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:none}
.rel-grid a:hover{border-color:transparent;background:var(--p-lav);text-decoration:none}
.rel-grid a span{color:var(--muted)}
.gfoot{background:var(--bg-alt);border-top:1px solid var(--line)}

/* ---------- calculator pages ---------- */
.calc-hero{position:relative}
.calc-hero h1{font-size:clamp(2rem,4.4vw,3rem)}
.calc-hero .lead{color:var(--muted);max-width:52ch;margin-left:auto;margin-right:auto}
.crumb a{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--p-mint);color:var(--i-mint);font-size:.8125rem;font-weight:600}
.crumb a:hover{text-decoration:none;filter:brightness(.98)}
.lp-link{font-size:.9375rem}
.calc-shell{background:transparent!important;padding-top:8px!important}
.calc-grid{gap:20px}
.card.inputs{background:var(--surface)}
.card.results{background:linear-gradient(180deg,var(--p-mint),var(--surface) 220px)}
.r-label{color:var(--muted);font-weight:560}
.r-value{color:var(--ink);letter-spacing:-.03em}
.insight{background:var(--surface)!important;border:1px solid color-mix(in srgb,var(--c-bal) 35%,transparent)!important;border-radius:var(--r-sm)!important;color:var(--ink)}
.note{background:var(--p-butter)!important;color:var(--i-butter)!important;border:0!important;border-radius:var(--r-sm)!important}
.stats>div{background:var(--bg-alt);border:0;border-radius:var(--r-sm)}
.split{border-radius:999px;overflow:hidden;height:10px}
.legend i{border-radius:4px}
.scen{border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface)}
.scen.on{border-color:var(--accent);background:var(--accent-soft)}
.breakdown{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:none}
.guide h2{font-size:1.375rem}
.faq{border-color:var(--line)}
.related h2{font-size:1.375rem}

/* ---------- inputs ---------- */
.num{background:var(--surface)!important;border:1px solid var(--line)!important;border-radius:12px!important;transition:border-color .15s,box-shadow .15s}
.num:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))!important}
.num:focus-within{border-color:var(--accent)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}
.num input,.num select{background:transparent!important}
input[type=range]{accent-color:var(--accent)}
.field-row label{font-weight:520}

/* ---------- planner shell ---------- */
.pl-steps{gap:3px}
.pl-steps button{padding:7px 10px;border-radius:14px;color:var(--ink);font-weight:500}
.pl-steps button span{width:32px;height:32px;border-radius:10px;font-size:0}
.pl-steps button span svg{width:18px;height:18px}
.pl-steps button:disabled span{background:var(--bg-alt);color:var(--muted)}
.pl-steps button.done span{filter:none}
.pl-steps button.cur{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line)}
.pl-steps button.cur span{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px currentColor}
.pl-steps button.cur span.t-mint,.pl-steps button.cur span.t-peach,.pl-steps button.cur span.t-lav,.pl-steps button.cur span.t-butter,.pl-steps button.cur span.t-sky,.pl-steps button.cur span.t-rose{color:inherit}
.pl-steps .cur span[class^="t-"]{color:var(--accent)}
.pl-steps button.cur span.t-mint{color:var(--i-mint)}.pl-steps button.cur span.t-peach{color:var(--i-peach)}.pl-steps button.cur span.t-lav{color:var(--i-lav)}
.pl-steps button.cur span.t-butter{color:var(--i-butter)}.pl-steps button.cur span.t-sky{color:var(--i-sky)}.pl-steps button.cur span.t-rose{color:var(--i-rose)}
.pl-steps button:not(:disabled):hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}
.pl-mprog .fund-bar{background:var(--bg-alt)}
/* step heading with a pastel icon */
.pl-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}
.pl-head>div{min-width:0}
.pl-ico{flex:0 0 auto;width:46px;height:46px;border-radius:14px;display:grid;place-items:center}
.pl-ico svg{width:24px;height:24px}
.pl-head h2,.pl-shell.is-3col .pl-head h2{font-size:clamp(1.5rem,2.4vw,2rem)!important;margin:2px 0 2px!important}
.pl-head p,.pl-shell.is-3col .pl-head p{color:var(--muted);font-size:.9375rem!important;margin:0!important}
/* step sections and input tables */
.isec,.gt{border-radius:var(--r-lg)}
.gt-sec>summary.gt-sh{background:var(--bg-alt)}
.gt-hd{color:var(--muted)}
.gt-row{border-color:var(--line)}
.gt-l small.per-y{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--p-butter);color:var(--i-butter);font-size:.6875rem;font-weight:600;vertical-align:middle}
/* info button: hints stay hidden until asked */
.hint-i{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:6px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:italic 700 .6875rem/1 Georgia,serif;cursor:pointer;vertical-align:middle;position:relative}
.hint-i::after{content:"";position:absolute;inset:-12px}
.hint-i:hover,.hint-i[aria-expanded="true"]{background:var(--p-sky);border-color:transparent;color:var(--i-sky)}
small.tip{display:none!important}
.tip-on>small.tip{display:block!important;margin-top:6px;padding:8px 10px;border-radius:10px;background:var(--p-sky);color:var(--i-sky);font-size:.8125rem;line-height:1.45;font-weight:450}
/* live summary panel (third column) */
.pl-snap{background:var(--surface);border-radius:var(--r-lg)}
.pl-snap .snap-note{color:var(--muted)}
.pl-snap .snap-note::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--c-bal);margin-right:6px;vertical-align:1px;box-shadow:0 0 0 3px var(--p-mint)}
/* statements: calmer lines, pastel totals */
.stmt thead th{border-bottom:1px solid var(--line)!important;color:var(--ink)}
.stmt thead th:first-child{font-weight:680}
.stmt .st-h td{color:var(--muted);font-size:.6875rem!important;letter-spacing:.08em;text-transform:uppercase;font-weight:650;padding-top:14px!important;border:0!important}
.stmt .st-sub td,.stmt .st-sub2 td{border-top:1px solid var(--line)!important}
.stmt .st-grand td{border-top:0!important;border-bottom:0!important;background:var(--p-mint);color:var(--i-mint)}
.stmt .st-grand.neg td{background:var(--p-rose);color:var(--i-rose)}
.stmt .st-grand td:first-child{border-radius:12px 0 0 12px}
.stmt .st-grand td:last-child{border-radius:0 12px 12px 0}
.stmt.memo{background:var(--bg-alt);border-radius:var(--r-sm)}
.stmt.memo .st-h td{padding-top:10px!important}
.stmt.memo td{border:0!important}
/* bottom bar */
.lp-nav{background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
/* Your plan */
.disc-line{color:var(--muted);font-size:.8125rem}
.lp-summary{border:0;box-shadow:none;background:var(--p-mint)}
.lp-summary.v-warn{background:var(--p-peach)}.lp-summary.v-bad{background:var(--p-rose)}
.lp-summary .r-label{color:var(--muted)}
.lp-verdict{font-size:clamp(1.75rem,3.4vw,2.6rem)!important;letter-spacing:-.03em;margin:6px 0 8px}
.lp-summary.v-warn .lp-verdict{color:var(--i-peach)}.lp-summary.v-bad .lp-verdict{color:var(--i-rose)}.lp-summary.v-ok .lp-verdict{color:var(--i-mint)}
.chap-bar{background:color-mix(in srgb,var(--bg) 90%,transparent);border:1px solid var(--line);border-radius:999px}
.chap-bar a{font-weight:560}
.chap-bar a.on,.chap-bar a:hover{background:var(--accent-soft);color:var(--accent)}
.lp-sec{font-size:clamp(1.5rem,2.6vw,2rem)!important;display:flex;align-items:center;gap:12px}
.pn{width:34px!important;height:34px!important;border-radius:11px!important;background:var(--p-lav)!important;color:var(--i-lav)!important;font-size:1rem!important;display:inline-grid!important;place-items:center}
.chap-key{font-size:1.0625rem!important;color:var(--muted)}
details.about{border-radius:var(--r-md);background:var(--bg-alt);border:0}
details.about>summary{color:var(--ink);font-weight:560}
.lp-card{border-radius:var(--r-lg)}
.fund-bar{background:var(--bg-alt);border-radius:999px}
.tag{border-radius:999px}
.toast{background:var(--ink);color:var(--bg);border-radius:999px}
/* rail: show names whenever there's room */
@media (min-width:1340px) and (max-width:1499px){
  .pl-shell.is-3col{grid-template-columns:184px minmax(0,1fr) 360px!important;column-gap:24px}
  .pl-shell.is-3col .pl-steps .sl{display:inline!important}
  .pl-shell.is-3col .pl-steps button{justify-content:flex-start!important;padding:7px 10px!important}
  .pl-shell.is-3col .pl-steps button span{width:32px!important;height:32px!important}
}
@media (min-width:1201px) and (max-width:1339px){
  .pl-shell.is-3col .pl-steps button span{width:36px!important;height:36px!important}
}
/* rail: pastel icon colours win over the older done / current styles */
.pl-steps button span.t-mint{background:var(--p-mint);color:var(--i-mint)}.pl-steps button span.t-peach{background:var(--p-peach);color:var(--i-peach)}
.pl-steps button span.t-lav{background:var(--p-lav);color:var(--i-lav)}.pl-steps button span.t-butter{background:var(--p-butter);color:var(--i-butter)}
.pl-steps button span.t-sky{background:var(--p-sky);color:var(--i-sky)}.pl-steps button span.t-rose{background:var(--p-rose);color:var(--i-rose)}
.pl-steps button:disabled span[class]{background:var(--bg-alt);color:var(--muted)}
.pl-steps button.cur span[class]{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px currentColor}
.pl-steps button.cur{font-weight:650}
/* need / want tags: lighter, so rows read first */
.nw{min-height:24px!important;padding:0 9px!important;font-size:.6875rem!important;font-weight:650;border:0!important;letter-spacing:.01em}
.nw-need{background:var(--p-mint)!important;color:var(--i-mint)!important}
.nw-want{background:var(--p-peach)!important;color:var(--i-peach)!important}
.nw-intro{font-size:.875rem!important;display:flex!important;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:12px!important}
.nw-intro.tip-on small.tip{flex-basis:100%}
.nwd.nw-need{background:var(--c-bal)!important}.nwd.nw-want{background:var(--c-grow)!important}
/* ---------- v2: page chrome and copy helpers ---------- */
html,body{overflow-x:clip}
.hero::before{inset:-40px 0 auto}
.hero-chips{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.hero-chips span{padding:5px 12px;border-radius:999px;font-size:.8125rem;font-weight:600}
.step-n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:11px;font-weight:700;margin-bottom:12px}
.pv figcaption{text-align:center;margin-top:12px}
.tiles .tile h3{margin-bottom:12px}
details.how{margin:0 0 26px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:0 18px}
details.how>summary{cursor:pointer;list-style:none;padding:16px 0;font-weight:650;font-size:1.0625rem;display:flex;justify-content:space-between;align-items:center}
details.how>summary::-webkit-details-marker{display:none}
details.how>summary::after{content:"+";font-weight:400;font-size:1.375rem;color:var(--muted)}
details.how[open]>summary::after{content:"–"}
details.how>p{margin:0 0 16px;color:var(--muted)}
.breakdown>summary{font-weight:650}
.calc-shell .actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.calc-shell .actions .pill{min-height:40px;padding:8px 16px}
.hero::before{inset:auto;top:-60px;left:50%;width:100vw;height:calc(100% + 120px);transform:translateX(-50%);
  background:radial-gradient(30% 45% at 22% 35%,var(--p-lav),transparent 72%),radial-gradient(28% 42% at 78% 30%,var(--p-peach),transparent 72%),radial-gradient(34% 40% at 52% 92%,var(--p-mint),transparent 72%)}
.hero::before{background:radial-gradient(30% 45% at 22% 35%,var(--p-lav),transparent 72%),radial-gradient(28% 42% at 78% 30%,var(--p-peach),transparent 72%),radial-gradient(30% 30% at 52% 76%,var(--p-mint),transparent 72%)}
/* welcome step */
.lp-welcome .pl-ico{margin-bottom:14px}
.lp-welcome .pl-big{font-size:clamp(1.75rem,3.2vw,2.5rem)!important;margin:0 0 6px}
.lp-welcome .lp-sub{font-size:1.0625rem;color:var(--muted);margin:0 0 22px}
.ck-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:18px}
.ck{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:var(--r-md);background:var(--bg-alt)}
.ck-i{flex:0 0 auto;width:38px;height:38px;border-radius:12px;display:grid;place-items:center}.ck-i svg{width:20px;height:20px}
.ck b{display:block;font-size:.9375rem}.ck small{display:block;color:var(--muted);font-size:.8125rem}
details.how.disc ul{margin:0 0 16px;padding-left:18px;color:var(--muted);font-size:.875rem}
.consent{background:var(--p-mint);border-radius:var(--r-md);padding:14px 16px;border:0}
/* sections inside steps: tighter headers */
.isec>summary{padding-top:16px!important;padding-bottom:16px!important}
.ck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:560px){.ck-grid{grid-template-columns:minmax(0,1fr)}}
details.how.disc{border-color:var(--line)!important;background:var(--surface)!important}
.lp-welcome .pl-big{font-size:clamp(1.6rem,2.8vw,2.25rem)!important}
.sx-tile{border-radius:var(--r-md)!important;border:0!important;background:var(--surface);box-shadow:var(--shadow)}
.sx-tile:first-child{background:var(--p-peach)}
.toast{border-radius:16px!important;max-width:min(92vw,560px);text-align:center;line-height:1.4}
/* ---------- optional top navigation: 4 phases, steps of the current phase beneath ---------- */
.ph-bar{display:none}
@media (min-width:821px){
  .pl-shell.topnav,.pl-shell.topnav.is-3col,.pl-shell.topnav.is-plan{grid-template-columns:minmax(0,1fr) 400px!important;max-width:1440px;column-gap:28px}
  .pl-shell.topnav.is-plan{grid-template-columns:minmax(0,1fr)!important;max-width:1180px}
  .pl-shell.topnav:not(.is-3col):not(.is-plan){grid-template-columns:minmax(0,1fr) 300px!important;max-width:1180px}
  .pl-shell.topnav .pl-rail{grid-column:1/-1;position:sticky;top:60px;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:12px 0 10px;margin-bottom:6px;border-bottom:1px solid var(--line)}
  .pl-shell.topnav .pl-steps,.pl-shell.topnav .pl-mprog{display:none!important}
  .pl-shell.topnav .ph-bar{display:grid;gap:10px}
  .ph-list,.ph-sub{list-style:none;margin:0;padding:0;display:flex;gap:6px}
  .ph-list li{flex:1 1 0;position:relative}
  .ph-list li+li::before{content:"";position:absolute;left:-6px;top:50%;width:6px;height:2px;background:var(--line)}
  .ph{width:100%;display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 14px 6px 6px;font:600 .9375rem var(--font);color:var(--muted);cursor:pointer;min-height:44px}
  .ph:disabled{opacity:.5;cursor:default}
  .ph-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--bg-alt);color:var(--muted);font-size:.875rem;flex:0 0 auto}
  .ph-n svg{width:16px;height:16px}
  .ph.done{color:var(--ink)}.ph.done .ph-n{background:var(--p-mint);color:var(--i-mint)}
  .ph.cur{color:var(--ink);border-color:transparent;background:var(--accent-soft);box-shadow:0 0 0 1.5px var(--accent) inset}
  .ph.cur .ph-n{background:var(--accent);color:var(--accent-ink)}
  .ph:not(:disabled):not(.cur):hover{border-color:var(--accent)}
  .ph-sub{flex-wrap:wrap;gap:4px}
  .ph-sub button{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;border-radius:999px;padding:5px 12px 5px 5px;font:500 .875rem var(--font);color:var(--muted);cursor:pointer;min-height:38px}
  .ph-sub button span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center}.ph-sub button span svg{width:16px;height:16px}
  .ph-sub button.done{color:var(--ink)}
  .ph-sub button.cur{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:var(--shadow)}
  .ph-sub button:disabled{opacity:.45;cursor:default}
  .ph-sub button:disabled span{background:var(--bg-alt);color:var(--muted)}
  .ph-sub button:not(:disabled):not(.cur):hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}
  .pl-shell.topnav .pl-snap{top:190px;max-height:calc(100vh - 210px)}
}
/* one-row phase bar: the current phase opens inline */
@media (min-width:821px){
  .pl-shell.topnav .pl-rail{padding:10px 0}
  .ph-row{list-style:none;margin:0;padding:0;display:flex;gap:8px;align-items:center}
  .ph-li{flex:0 0 auto}
  .ph-li .ph{padding:5px 14px 5px 5px;min-height:42px;width:auto}
  .ph-open{flex:1 1 auto;display:flex;align-items:center;gap:2px;background:var(--accent-soft);border-radius:999px;padding:4px;min-width:0;overflow-x:auto;scrollbar-width:none}
  .ph-open::-webkit-scrollbar{display:none}
  .ph-lbl{display:flex;align-items:center;gap:8px;padding:0 10px 0 2px;font-size:.9375rem;white-space:nowrap;border-right:1px solid color-mix(in srgb,var(--accent) 25%,transparent);margin-right:4px}
  .ph-lbl .ph-n{background:var(--accent);color:var(--accent-ink)}
  .ph-s{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;border-radius:999px;padding:4px 12px 4px 4px;font:500 .875rem var(--font);color:var(--muted);cursor:pointer;min-height:34px;white-space:nowrap}
  .ph-s span{width:26px;height:26px;border-radius:8px;display:grid;place-items:center}.ph-s span svg{width:15px;height:15px}
  .ph-s.done{color:var(--ink)}
  .ph-s.cur{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:var(--shadow)}
  .ph-s:disabled{opacity:.45;cursor:default}.ph-s:disabled span{background:var(--bg-alt);color:var(--muted)}
  .ph-s:not(:disabled):not(.cur):hover{background:color-mix(in srgb,var(--surface) 60%,transparent)}
  .pl-shell.topnav .pl-snap{top:132px;max-height:calc(100vh - 150px)}
}
@media (min-width:821px) and (max-width:1180px){.ph-li .ph b{display:none}.ph-li .ph{padding:5px}}
/* top navigation on tablets and small laptops: summary moves below the inputs */
@media (min-width:821px) and (max-width:1200px){
  .pl-shell.topnav,.pl-shell.topnav.is-3col,.pl-shell.topnav:not(.is-3col):not(.is-plan){grid-template-columns:minmax(0,1fr)!important}
  .pl-shell.topnav .pl-snap{grid-column:1!important;position:static!important;max-height:none!important}
}

/* =====================================================================
   v3: one beige family, one warm-brown accent. Terracotta only for shortfalls.
   ===================================================================== */
.hero::before{background:radial-gradient(34% 46% at 24% 34%,#F0E5D3,transparent 72%),radial-gradient(30% 42% at 76% 30%,#F3E9DA,transparent 72%),radial-gradient(30% 30% at 52% 76%,#EFE4D2,transparent 72%)!important}
:root[data-theme="dark"] .hero::before{background:radial-gradient(34% 46% at 24% 34%,#2A241E,transparent 72%),radial-gradient(30% 42% at 76% 30%,#2C251F,transparent 72%)!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hero::before{background:radial-gradient(34% 46% at 24% 34%,#2A241E,transparent 72%),radial-gradient(30% 42% at 76% 30%,#2C251F,transparent 72%)!important}}
/* home: every tinted block uses the same beige */
.pv .pv-frame,.feat-grid .card,.tiles .tile,.tiles #more,.tiles #plan,.tile.dark{background:var(--bg-alt)!important}
.cta-band{background:var(--bg-alt)!important}
.card.results{background:var(--surface)!important}
.lp-summary,.lp-summary.v-warn,.lp-summary.v-bad,.lp-summary.v-ok{background:var(--bg-alt)!important}
.lp-summary.v-warn .lp-verdict,.lp-summary.v-bad .lp-verdict{color:var(--neg)!important}
.lp-summary.v-ok .lp-verdict{color:var(--ink)!important}
.sx-tile:first-child{background:var(--bg-alt)!important}
/* totals: beige for normal, soft terracotta only for a shortfall */
.stmt .st-grand td{background:var(--p-mint)!important;color:var(--ink)!important}
.stmt .st-grand.neg td{background:var(--p-rose)!important;color:var(--neg)!important}
/* need / want: same colour, told apart by fill vs outline */
.nw-need{background:var(--accent-soft)!important;color:var(--i-mint)!important;border:1px solid transparent!important}
.nw-want{background:transparent!important;color:var(--muted)!important;border:1px solid var(--line)!important}
.nwd.nw-need{background:var(--c-bal)!important}.nwd.nw-want{background:var(--c-add)!important}
.gt-l small.per-y{background:var(--bg-alt)!important;color:var(--muted)!important}
.tip-on>small.tip{background:var(--bg-alt)!important;color:var(--ink)!important}
.hint-i:hover,.hint-i[aria-expanded="true"]{background:var(--accent-soft)!important;color:var(--accent)!important}
.pn{background:var(--accent-soft)!important;color:var(--accent)!important}
.pl-snap .snap-note::before{background:var(--c-bal)!important;box-shadow:0 0 0 3px var(--accent-soft)!important}
.insight{border-color:var(--line)!important;background:var(--bg-alt)!important}
.note{background:var(--bg-alt)!important;color:var(--ink)!important}
.consent{background:var(--bg-alt)!important}
.gnav .links>li>a:hover,.flyout a:hover,.pill:hover,.rel-grid a:hover{background:var(--accent-soft)!important;color:var(--accent)!important}
.crumb a{background:var(--accent-soft)!important;color:var(--accent)!important}
.btn-primary{box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 20%,transparent)}
::selection{background:var(--accent-soft)}
/* waterfall: deductions in neutral tones; terracotta only for the shortfall */
.w-emi{background:var(--c-alt)!important}
.wf-v.neg{color:var(--muted)!important}
.wf-key:last-child .wf-v.neg{color:var(--neg)!important;font-weight:700}
.r-disc{font-size:.8125rem;color:var(--muted);margin:10px 0 0;line-height:1.45}
.mixpick{border:0;padding:0;margin:0 0 8px;display:grid;gap:8px}
.mixpick .opt{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;background:var(--surface)}
.mixpick .opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
/* print: disclaimers always travel with a printed page */
.print-legal{display:none}
@media print{
  .mini,.r-disc,.disc-line{display:block!important}
  details.how,details.about{display:block}
  details.how>*,details.about>*{display:block!important}
  .print-legal{display:block!important;margin-top:18px;padding-top:10px;border-top:1px solid #999;font-size:9pt;color:#333;line-height:1.4}
}
.r-disc{margin:10px 0 16px!important}
/* ---------- cash-flow projection table ---------- */
.cf-wrap{padding:0;max-height:70vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md);margin:10px 0 12px;background:var(--surface)}
table.cf{border-collapse:separate;border-spacing:0;font-size:.8125rem;font-variant-numeric:tabular-nums;min-width:100%;white-space:nowrap}
table.cf th,table.cf td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--line)}
table.cf thead th{position:sticky;background:var(--bg-alt);color:var(--ink);font-weight:650;z-index:2}
table.cf thead tr.cf-g th{top:0;font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;text-align:center;border-bottom:1px solid var(--line)}
table.cf thead tr.cf-h th{top:31px;font-size:.75rem;font-weight:600;color:var(--muted);white-space:normal;min-width:84px;max-width:120px;vertical-align:bottom;line-height:1.25}
table.cf thead th.g-live{background:#F1E9DC}table.cf thead th.g-loan{background:#EDE3D3}table.cf thead th.g-goal{background:#E9DDCA}table.cf thead th.g-inc{background:#E4D6BF}
table.cf .cf-y{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;font-weight:650;min-width:64px}
table.cf thead .cf-y{z-index:3;background:var(--bg-alt);top:0}
table.cf .cf-y small{display:block;font-weight:400;color:var(--muted);font-size:.6875rem}
table.cf .cf-tot{font-weight:700;background:color-mix(in srgb,var(--bg-alt) 60%,transparent)}
table.cf thead .cf-tot,table.cf thead .cf-diff,table.cf thead .cf-ev{top:0;white-space:normal;vertical-align:bottom}
table.cf .cf-diff{font-weight:700;background:color-mix(in srgb,var(--accent-soft) 70%,transparent)}
table.cf td.cf-diff.neg{color:var(--neg);background:var(--p-rose)}
table.cf .cf-ev{text-align:left;color:var(--muted);white-space:normal;min-width:220px;font-size:.75rem}
table.cf tbody tr:nth-child(even) td{background-image:linear-gradient(rgba(120,90,58,.025),rgba(120,90,58,.025))}
table.cf tbody tr.cf-ret th,table.cf tbody tr.cf-ret td{border-top:2px solid var(--accent)}
table.cf tbody tr.cf-ret .cf-y::after{content:"Retire";display:block;font-size:.625rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}
table.cf tbody tr:hover td,table.cf tbody tr:hover th{background-color:var(--accent-soft)}
:root[data-theme="dark"] table.cf thead th.g-live,:root[data-theme="dark"] table.cf thead th.g-loan,:root[data-theme="dark"] table.cf thead th.g-goal,:root[data-theme="dark"] table.cf thead th.g-inc{background:#2E2721}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) table.cf thead th.g-live,:root:not([data-theme="light"]) table.cf thead th.g-loan,:root:not([data-theme="light"]) table.cf thead th.g-goal,:root:not([data-theme="light"]) table.cf thead th.g-inc{background:#2E2721}}
@media print{.cf-wrap{max-height:none;overflow:visible}table.cf{font-size:7pt}table.cf .cf-ev{display:none}}
.cf-tg{display:flex;gap:16px;flex-wrap:wrap;justify-content:flex-end;flex:0 0 auto}
.cf-strip{margin:16px 0 6px}
.cf-bars{display:flex;gap:2px;height:92px;position:relative}
.cf-bars::before{content:"";position:absolute;left:0;right:0;top:46px;border-top:1px solid var(--line)}
.cf-bars span{flex:1 1 0;position:relative;height:100%}
.cf-bars span i{position:absolute;left:0;right:0;border-radius:2px}
.cf-bars span.pos i{bottom:46px;background:var(--c-bal)}
.cf-bars span.neg i{top:46px;background:var(--c-cost)}
.cf-bars span.ret::after{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1.5px dashed var(--accent)}
.cf-axis{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--muted);margin-top:4px}
.cf-leg{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;font-size:.75rem;color:var(--muted);margin:6px 0 0}
.cf-leg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.cf-leg i.pos{background:var(--c-bal)}.cf-leg i.neg{background:var(--c-cost)}
table.cf thead .cf-tot,table.cf thead .cf-diff,table.cf thead .cf-ev{background:var(--bg-alt)!important;color:var(--ink)}
table.cf thead .cf-diff{background:#E4D6BF!important}
:root[data-theme="dark"] table.cf thead .cf-diff{background:#2E2721!important}
@media (min-width:1200px){
  #pl-cf{width:min(1640px,calc(100vw - 48px));position:relative;left:50%;transform:translateX(-50%)}
}
table.cf th,table.cf td{padding:6px 8px}
table.cf thead tr.cf-h th{min-width:70px;max-width:104px}
table.cf .cf-dot{color:var(--accent);margin-left:3px;font-size:.75rem}
table.cf .cf-evt{display:none}
table.cf tbody tr:hover .cf-evt,table.cf tbody tr:focus-within .cf-evt{display:block;position:absolute;left:100%;top:4px;z-index:4;width:260px;white-space:normal;font-style:normal;font-weight:500;font-size:.75rem;line-height:1.4;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;box-shadow:var(--shadow)}
table.cf .cf-y{overflow:visible}
@media print{table.cf .cf-evt{display:none!important}}
/* ---------- one working width everywhere (same as the cash-flow chapter) ---------- */
:root{--work:min(1640px,calc(100vw - 48px))}
@media (min-width:821px){
  .pl-shell.topnav,.pl-shell.topnav.is-3col,.pl-shell.topnav.is-plan,.pl-shell.topnav:not(.is-3col):not(.is-plan){max-width:none!important;width:var(--work);padding:0!important;margin:0 auto}
  .pl-shell.topnav:not(.is-3col):not(.is-plan){grid-template-columns:minmax(0,1fr) 360px!important}
  .pl-shell.topnav.is-3col{grid-template-columns:minmax(0,1fr) 440px!important}
  .sx-shell{max-width:none;width:var(--work);padding-left:0;padding-right:0}
  body.lp-in .gnav .wrap,body.sx-mode .gnav .wrap,body.lp-3col .gnav .wrap{max-width:none!important;width:var(--work);padding-left:0!important;padding-right:0!important}
  #pl-cf{width:auto!important;left:auto!important;transform:none!important}
}
@media (min-width:821px) and (max-width:1200px){.pl-shell.topnav.is-3col,.pl-shell.topnav:not(.is-3col):not(.is-plan){grid-template-columns:minmax(0,1fr)!important}}
/* calculators: same width; inputs and results side by side, breakdown full width */
@media (min-width:981px){
  .calc-shell,.breakdown{max-width:none!important;width:var(--work)}
  .calc-grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
  body:has(.calc-shell) .gnav .wrap{max-width:none;width:var(--work);padding-left:0;padding-right:0}
}
/* ---------- balanced column widths within the working width ---------- */
@media (min-width:1201px){
  .pl-shell.topnav.is-3col{grid-template-columns:minmax(0,3fr) minmax(0,2fr)!important}
  .pl-shell.topnav:not(.is-3col):not(.is-plan){grid-template-columns:minmax(0,2fr) minmax(0,1fr)!important}
  .pl-shell.topnav .pl-snap{max-width:none}
}
@media (min-width:981px){ .calc-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)!important} }
/* Fund your goals: goal cards and the allocation schedule share the width 60:40, like the other screens */
@media (min-width:1201px){ .fgrid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)!important;gap:24px} }
@media (min-width:1101px) and (max-width:1200px){ .fgrid{grid-template-columns:minmax(0,1fr) 380px!important} }
.fpanel .stmt{font-size:.875rem}
/* ---------- where your savings go (allocation schedule) ---------- */
.sch-grp{margin-top:18px}
.sch-gh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:4px}
.sch-gh h4{margin:0;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.sch-gh span{font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}
.sch-item{padding:12px 0;border-bottom:1px solid var(--line)}
.sch-item:last-child{border-bottom:0}
.sch-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.sch-top b{font-size:.9375rem;font-weight:650;color:var(--ink)}
.sch-amt{font-size:.9375rem;font-weight:650;font-variant-numeric:tabular-nums}
.sch-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--bg-alt);margin:8px 0 6px;box-shadow:inset 0 0 0 1px var(--line)}
.sch-bar i{display:block;height:100%}
.sch-meta{margin-bottom:6px}
.sch-st{display:inline-block;font-size:.75rem;font-weight:600;padding:2px 9px;border-radius:999px}
.sch-st.done{background:var(--bg-alt);color:var(--muted)}
.sch-st.free{background:var(--accent-soft);color:var(--accent)}
.sch-st.over{background:var(--p-rose);color:var(--neg)}
.sch-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.sch-list li{display:grid;grid-template-columns:10px minmax(0,1fr) 44px 84px;align-items:center;gap:8px;font-size:.8125rem;color:var(--ink)}
.sch-list li i{width:10px;height:10px;border-radius:3px}
.sch-list .sch-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sch-list .sch-p{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.sch-list .sch-v{text-align:right;font-variant-numeric:tabular-nums}
.sch-list li.sch-free{color:var(--accent)}
.sch-list li.sch-free i{background:transparent;box-shadow:inset 0 0 0 1.5px var(--accent)}
.sch-top{justify-content:flex-start;align-items:center}
.sch-top .sch-amt{margin-left:auto}
.sch-top .sch-st{font-size:.6875rem;padding:1px 8px}
.sch-item{padding:11px 0}

/* ---------- reset buttons ---------- */
.in-head{display:flex;justify-content:flex-end;margin:-6px 0 6px}
.in-reset,.pl-resetbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:6px 14px 6px 11px;font:600 .875rem var(--font);cursor:pointer;min-height:36px;white-space:nowrap}
.in-reset svg,.pl-resetbtn svg{width:15px;height:15px}
.in-reset:hover,.pl-resetbtn:hover{color:var(--ink);border-color:var(--accent)}
.ph-wrap{display:flex;align-items:center;gap:10px}
.ph-wrap>ol{flex:1 1 auto;min-width:0}
.ph-wrap .pl-resetbtn{flex:0 0 auto;min-height:42px}
.pl-rreset{margin-top:12px}
@media (min-width:821px){ .pl-shell.topnav .pl-rreset{display:none} }
@media (max-width:820px){ .pl-rreset{margin-top:8px} }
@media print{ .in-head,.pl-resetbtn,.pl-rreset{display:none!important} }

/* in-page confirm */
.ask-back{position:fixed;inset:0;z-index:100;background:color-mix(in srgb,var(--ink) 35%,transparent);display:grid;place-items:center;padding:16px}
.ask-box{background:var(--surface);color:var(--ink);border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,.18);padding:24px;max-width:420px;width:100%}
.ask-box p{margin:0 0 18px;font-size:1rem;line-height:1.5}
.ask-btns{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}

/* ---------- calculator guides (SEO explainers) ---------- */
.explainer{margin:0 0 40px}
.explainer h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.explainer h3{font-size:1.125rem;font-weight:650;margin:26px 0 8px;color:var(--ink)}
.explainer p,.explainer li{color:var(--muted);line-height:1.65}
.explainer ul{margin:0 0 16px;padding-left:1.2em}
.explainer li{margin:0 0 6px}
.explainer b{color:var(--ink)}
.explainer a,.reviewed a{color:var(--accent)}
.formula{background:var(--accent-soft);border-radius:12px;padding:12px 16px;color:var(--ink)!important;font-variant-numeric:tabular-nums;line-height:1.8!important}
.reviewed{font-size:.875rem;color:var(--muted);text-align:center;margin:28px 0 0}
@media print{ .explainer{display:block} }
.gnav .links>li:first-child{margin-right:8px}
.wipe{margin:40px 0 0;padding:24px}
.wipe h2{font-size:1.25rem;margin:0 0 8px}
.wipe p{color:var(--muted);margin:0 0 16px}
