.calc{--c-1: #2a78d6;--c-2: #eb6834;--c-3: #1baf7a;--c-4: #7e57c2;--c-growth: #1baf7a;--c-neutral: #8a8a8a;--ramp-1: #86b6ef;--ramp-2: #5598e7;--ramp-3: #2a78d6;--ramp-4: #184f95;--k-fed: #b8461c;--k-state: #eb6834;--k-city: #8f3511;--k-fica: #f0956c;--k-pre: #0e7c55;--k-roth: #1baf7a;--k-taxable: #5cc79b}.calc section{margin-top:4em}.calc .inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:1rem 1.5rem;margin:1.5em 0}.calc label{display:flex;flex-direction:column;gap:.25rem;font-family:var(--sans);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.calc input,.calc select{font:inherit;font-family:var(--serif);font-size:1.1rem;letter-spacing:0;text-transform:none;color:var(--text);background:transparent;border:none;border-bottom:1px solid var(--underline);border-radius:0;padding:.2rem 0;width:100%}.calc label.toggle{flex-direction:row;align-items:center;gap:.5rem;grid-column:1 / -1;cursor:pointer}.calc .inputs.three{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:480px){.calc .inputs.three{grid-template-columns:repeat(2,minmax(0,1fr))}}.calc label.range{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:.2rem .5rem}.calc label.range output{font-family:var(--serif);font-size:1.05rem;letter-spacing:0;text-transform:none;color:var(--text);font-variant-numeric:lining-nums tabular-nums}.calc label.range input[type=range]{grid-column:1 / -1;width:100%;height:1.6rem;margin:0;padding:0;border:none;background:transparent;accent-color:var(--accent);cursor:pointer}.calc table button.grp{all:unset;cursor:pointer}.calc table button.grp:before{content:"▸";display:inline-block;width:1em;color:var(--muted);transition:transform .15s}.calc table button.grp[aria-expanded=true]:before{transform:rotate(90deg)}.calc table button.grp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calc table tr.kid td{color:var(--muted);font-size:.95em}.calc table tr.kid td:first-child{padding-left:1.4em}.chart .marker{stroke:var(--muted);stroke-dasharray:3 4}.chart .marker-label{font-size:11px;fill:var(--muted)}.calc [hidden]{display:none!important}.calc .inputs.groups{display:block}.calc fieldset{margin:0;padding:0;border:none;min-width:0}.calc fieldset~fieldset{margin-top:2em}.calc legend{width:100%;padding:0 0 .35rem;margin-bottom:1rem;border-bottom:1px solid var(--rule);font-variant:small-caps;letter-spacing:.02em;font-size:1.05rem;color:var(--text)}.calc .groups .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem 1.5rem;align-items:start}.calc .groups .row{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;gap:inherit;align-items:start}.calc .groups .note{margin:0}.calc .groups .row .note{grid-column:1 / -1}.calc .groups .grid>label:not(.range):not(.check),.calc .groups .row>label:not(.range):not(.check){align-self:stretch;justify-content:space-between}.calc .groups .acct{display:flex;flex-direction:column;gap:.45rem}.calc .groups .acct label.check{padding-bottom:0;align-self:flex-start}@media(max-width:560px){.calc .groups .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calc .groups .row label.check,.calc .groups label.range,.calc .groups label.wide{grid-column:1 / -1}}.calc label.check{flex-direction:row;align-items:center;align-self:end;gap:.5rem;padding-bottom:.4rem;cursor:pointer}.calc label.check.auto{cursor:default}.calc .assume{display:inline-flex;align-items:baseline;border-bottom:1px dashed var(--underline)}.calc .assume.custom{border-bottom:1px solid var(--text);font-weight:600}.calc .assume input{width:3.6ch;padding:0;border:none;font-family:var(--sans);font-size:inherit;font-weight:inherit;text-align:right;font-variant-numeric:tabular-nums}.calc .assume input:focus{outline:2px solid var(--accent);outline-offset:2px}.calc i.swatch{display:inline-block;width:.7rem;height:.7rem;margin-right:.45rem;border-radius:2px;background:var(--c)}.calc details.cats li:has(.pick){flex-wrap:wrap;row-gap:.25rem}.calc details.cats .pick{margin-left:auto;display:flex;align-items:center;gap:.75rem}.calc details.cats select{width:auto;max-width:11rem;font-family:var(--sans);font-size:.8rem}.calc details.cats li b{min-width:2.5rem;text-align:right}.calc h3.chart-title{margin:2em 0 0;font-size:1.05rem}.calc h3.chart-title+.note{margin-top:.25em}.calc label small.hint{display:block;margin-top:-.1rem;font-size:.65rem;letter-spacing:.02em;text-transform:none;color:var(--muted)}.calc .groups .note.row-note{grid-column:1 / -1}.calc details.more{grid-column:1 / -1}.calc details.more>summary{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .6rem;width:fit-content;padding:.35rem 0;font-family:var(--sans);font-size:.85rem;color:var(--muted);list-style:none;cursor:pointer}.calc details.more>summary::-webkit-details-marker{display:none}.calc details.more>summary:before{content:"+";display:inline-grid;place-items:center;width:1.15rem;height:1.15rem;border:1px solid var(--underline);border-radius:50%;font-size:.85rem;line-height:1;color:var(--accent)}.calc details.more[open]>summary:before{content:"−"}.calc details.more>summary:hover{color:var(--text)}.calc details.more>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calc details.more>summary [data-changed]{padding:.05rem .5rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.75rem}.calc details.more[open]>summary{margin-bottom:1rem}.calc ul.options{margin:1em 0;padding:.9em 1.1em .9em 2.2em;background:var(--card);border:1px solid var(--rule);border-radius:8px;font-size:.95rem}.calc ul.options li+li{margin-top:.5em}.calc .groups label.span2{grid-column:span 2}.calc .groups .row-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.5rem;margin-top:-.35rem;font-size:.85rem}.calc .groups .row-actions label.check{padding-bottom:0;align-self:auto}.calc .jump{position:fixed;z-index:20;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;font-family:var(--sans)}.calc .jump-toggle{all:unset;cursor:pointer;max-width:70vw;padding:.5rem .9rem;border:1px solid var(--rule);border-radius:999px;background:var(--card);box-shadow:0 4px 14px #0000001a;font-size:.8rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calc .jump-toggle:after{content:" ▴";color:var(--accent)}.calc .jump-toggle[aria-expanded=true]:after{content:" ▾"}.calc .jump-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calc .jump-panel{display:flex;flex-direction:column;min-width:15rem;max-height:60vh;overflow-y:auto;padding:.4rem 0;border:1px solid var(--rule);border-radius:8px;background:var(--card);box-shadow:0 6px 20px #0000001f;font-size:.9rem}.calc .jump-panel a{padding:.45rem 1rem;color:var(--text);text-decoration:none}.calc .jump-panel a:hover{background:var(--pre-bg)}.calc .jump-panel a.sub{padding:.3rem 1rem .3rem 1.9rem;font-size:.82rem;color:var(--muted)}.calc .jump-panel a.minor{margin-top:.3rem;padding-top:.6rem;border-top:1px solid var(--rule);color:var(--muted)}.calc .next-step{margin-top:4em;padding:1.1rem 1.25rem;border-left:3px solid var(--accent);background:var(--accent-soft);font-size:1.05rem}.calc .next-step p{margin:0}.calc .advisor-bar{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem 1.25rem;margin:0 0 2.5em;padding:.9rem 1.1rem;background:var(--card);border:1px solid var(--rule);border-top:2px solid var(--accent);font-family:var(--sans)}.calc .advisor-bar .client{min-width:12rem}.calc .advisor-bar .actions{display:flex;flex-wrap:wrap;gap:.4rem 1rem;font-size:.85rem}.calc .advisor-bar .actions label.link{display:inline;cursor:pointer;font-size:inherit;letter-spacing:0;text-transform:none;color:var(--text);text-decoration:underline;text-decoration-color:var(--underline);text-underline-offset:3px}.calc .advisor-bar button:disabled{opacity:.4;cursor:default}.calc .advisor-bar .status{margin:0 0 0 auto}.calc .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;margin:1.5em 0 1em;font-family:var(--sans)}.calc .kpis:empty{display:none}.calc .kpi{display:flex;flex-direction:column;gap:.15rem;padding:.75rem .9rem;background:var(--card);border:1px solid var(--rule);border-top:2px solid var(--key, var(--accent));border-radius:0 0 8px 8px}.calc .kpi[data-key=save]{--key: var(--c-3)}.calc .kpi[data-key=spend]{--key: var(--c-1)}.calc .kpi[data-key=tax]{--key: var(--c-2)}.calc .tagline{margin:-1.7em 0 2.2em;font-style:italic;color:var(--accent)}.calc h2 .step{display:inline-block;margin-right:.3em;font-size:2.2em;font-weight:300;font-variant:normal;line-height:.8;color:var(--accent);vertical-align:-.12em}@media(prefers-reduced-motion:no-preference){.calc details[open]>:not(summary){animation:reveal .25s ease-out}}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}}.calc .kpi span{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.calc .kpi strong{font-family:var(--serif);font-size:1.7rem;font-weight:600;line-height:1.15;color:var(--text);font-variant-numeric:lining-nums tabular-nums}.calc .kpi small{font-size:.75rem;color:var(--muted)}.calc .kpi button.link{margin-top:.35rem;font-size:.8rem;align-self:flex-start}@media(max-width:560px){.calc .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.calc .kpi strong{font-size:1.4rem}}.calc .upload{display:flex;align-items:center;gap:1.25rem;font-family:var(--sans);font-size:.9rem}.calc .file-button{display:inline-block;cursor:pointer;padding:.45rem .9rem;border:1px solid var(--accent);border-radius:6px;color:var(--accent);font-size:.9rem;letter-spacing:0;text-transform:none}.calc .file-button:hover{background:var(--accent-soft)}.calc .file-button input{position:absolute;width:1px;height:1px;opacity:0}.calc .file-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}.calc .hbars{margin-top:1em;font-family:var(--sans);font-size:.85rem}.calc .hbar{display:grid;grid-template-columns:minmax(6rem,11rem) 1fr 5.5rem;align-items:center;gap:.75rem;padding:.2rem 0}.calc .hbar.split{margin-bottom:.6rem;padding-bottom:.6rem;border-bottom:1px solid var(--rule)}.calc .hbar .track i{display:block;height:.9rem;border-radius:0 3px 3px 0}.calc .hbar b{font-weight:400;text-align:right;font-variant-numeric:tabular-nums}.calc details.cats{margin-top:1.25em;font-family:var(--sans);font-size:.85rem}.calc details.cats summary{cursor:pointer;color:var(--muted)}.calc details.cats ul{list-style:none;margin:.5rem 0 0;padding:0;max-width:none}.calc .extra details.cats>ul>li{display:flex;justify-content:space-between;gap:1rem;max-width:none;padding:.25rem 0;border-bottom:1px solid var(--rule)}.calc details.cats label{flex-direction:row;align-items:center;gap:.5rem;font-size:.85rem;letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer}.calc details.cats small{color:var(--muted)}.calc details.cats li b{font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap}.calc .inputs label.wide-check{grid-column:1 / -1}.calc input[readonly]{color:var(--muted)}.calc input[type=checkbox]{width:auto;margin:0;accent-color:var(--accent)}.calc .note{font-family:var(--sans);font-size:.9rem;color:var(--muted);max-width:55ch}.calc .field{display:flex;align-items:baseline;gap:.15rem;border-bottom:1px solid var(--underline);font-family:var(--serif);font-size:1.1rem;letter-spacing:0;text-transform:none;color:var(--text)}.calc .field:focus-within{border-bottom-color:var(--text)}.calc .field input{border-bottom:none;flex:1;min-width:0;font-variant-numeric:lining-nums tabular-nums}.calc .field.pct input{flex:none}.calc .field .unit{color:var(--muted)}.calc .contents{padding-left:1.25em}.calc .contents li+li{margin-top:.25em}.calc input:focus,.calc select:focus{outline:none;border-bottom-color:var(--text)}.calc .takeaway{font-size:1.05rem}.calc .chart{display:block;width:100%;height:auto;margin:1.5em 0;color:var(--text);font-family:var(--sans)}.chart .grid{stroke:var(--rule)}.chart .zero{stroke:var(--underline)}.chart text{fill:var(--muted);font-size:11px}.chart text.end{fill:var(--text);font-size:12px}.chart text.end.bold{font-weight:700}.chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .line.bold{stroke-width:3.5}.chart .line.dash{stroke-dasharray:7 5}.chart .line.dot{stroke-dasharray:1 6;stroke-width:2.5}.chart .end-dot,.chart .hover-dots circle{stroke:var(--bg);stroke-width:2}.chart .band{opacity:.22}.chart .band-label{fill:var(--text);font-size:12px;font-style:italic}.chart .cross{stroke:var(--muted);stroke-dasharray:2 3}.chart .hit{cursor:crosshair}.calc .chart-box{position:relative;margin:1.5em 0}.calc .chart-box .chart{margin:.5em 0 0}.calc .chart-legend{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;font-family:var(--sans);font-size:.75rem;color:var(--muted)}.calc .chart-legend span{display:inline-flex;align-items:center;gap:.4rem}.calc .chart-legend i{display:inline-block;width:1.1rem;height:0;border-top:3px solid var(--c);border-radius:2px}.calc .chart-legend i.dash{border-top-style:dashed}.calc .chart-legend i.dot{border-top-style:dotted}.calc .chart-legend i.area{height:.7rem;border:none;background:var(--c);opacity:.35}.calc .chart-tip{position:absolute;z-index:2;pointer-events:none;min-width:9rem;padding:.5rem .65rem;background:var(--card);border:1px solid var(--rule);border-radius:6px;box-shadow:0 4px 14px #00000014;font-family:var(--sans);font-size:.75rem;color:var(--text)}.calc .chart-tip .tip-x{color:var(--muted);margin-bottom:.25rem}.calc .chart-tip div:not(.tip-x){display:flex;align-items:center;gap:.4rem}.calc .chart-tip i{width:.55rem;height:.55rem;border-radius:50%;background:var(--c)}.calc .chart-tip b{margin-left:auto;padding-left:.75rem;font-variant-numeric:tabular-nums}.calc .table-wrap{overflow-x:auto}.calc table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:.85rem;font-variant-numeric:tabular-nums}.calc th,.calc td{padding:.5rem;text-align:right;border-bottom:1px solid var(--rule);white-space:nowrap}.calc th:first-child,.calc td:first-child{text-align:left;padding-left:0}.calc td:first-child{white-space:normal}.calc th{white-space:normal;vertical-align:bottom;font-weight:400;color:var(--muted);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase}.calc td small{white-space:normal;display:block;font-size:.7rem}@media(max-width:480px){.calc table{font-size:.75rem}.calc th,.calc td{padding:.5rem .25rem}}.calc .bars{margin:1.5em 0;font-family:var(--sans);font-size:.8rem}.calc .bar-row+.bar-row{margin-top:.75rem}.calc .bar-title{color:var(--muted);margin-bottom:.25rem}.calc .bar{display:flex;height:1.75rem;border:1px solid var(--rule)}.calc .seg{display:block;height:100%}.calc .bar .seg+.seg{border-left:2px solid var(--bg)}.calc .seg.fed{background:var(--k-fed)}.calc .seg.state{background:var(--k-state)}.calc .seg.edu{background:var(--c-4)}.calc .seg.city{background:var(--k-city)}.calc .seg.fica{background:var(--k-fica)}.calc .seg.saved{background:var(--c-3)}.calc .seg.spend{background:var(--c-1)}.calc .legend{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;margin-top:.75rem;color:var(--muted)}.calc .legend span{display:inline-flex;align-items:center;gap:.4rem}.calc .legend i{display:inline-block;width:.8rem;height:.8rem;border:1px solid var(--rule)}.calc .views{display:inline-flex;margin-top:1.5em;border:1px solid var(--rule);border-radius:6px;overflow:hidden;font-family:var(--sans);font-size:.8rem}.calc .views button{all:unset;cursor:pointer;padding:.3rem .9rem;color:var(--muted)}.calc .views button+button{border-left:1px solid var(--rule)}.calc .views button[aria-pressed=true]{background:var(--accent);color:var(--card)}.calc .views button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.calc [data-out=sources]{margin:.75em 0 0}.calc [data-out=sources]+.bars{margin-top:1em}.calc .breakdown{margin-top:1em;font-family:var(--sans)}.calc .breakdown [data-i],.calc .bars [data-i]{cursor:pointer;transition:opacity .12s ease}.calc .active [data-i]:not(.on){opacity:.25}.calc .active .link.on{opacity:.65}.calc .active .link:not(.on){opacity:.1}.calc .pie-legend li.on{background:color-mix(in srgb,var(--rule) 70%,transparent)}.calc .bars{position:relative}.calc .pie-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2.5rem}.calc .chart.pie{width:240px;max-width:100%;margin:0}.chart.pie path{stroke:var(--bg);stroke-width:2}.chart.pie text{font-size:13px}.chart.pie text.pie-big{fill:var(--text);font-size:30px;font-weight:600}.calc .pie-legend{flex:1 1 16rem;margin:0;padding:0;list-style:none;font-family:var(--sans);font-size:.8rem}.calc .pie-legend li{display:flex;gap:.75rem;padding:.15rem 0}.calc .pie-legend li.grp{margin-top:.6rem;border-bottom:1px solid var(--rule);font-weight:600}.calc .pie-legend li.grp:first-child{margin-top:0}.calc .pie-legend span{display:inline-flex;align-items:center;gap:.45rem;flex:1}.calc .pie-legend i{width:.7rem;height:.7rem;border-radius:2px;background:var(--c)}.calc .pie-legend b,.calc .pie-legend em{font-weight:inherit;font-style:normal;font-variant-numeric:tabular-nums;text-align:right}.calc .pie-legend span small{margin-left:.4rem;color:var(--muted);font-weight:400}.calc .pie-legend em{width:2.5rem;color:var(--muted)}.calc .chart.flow{margin:0}.chart.flow .link{opacity:.35}.chart.flow text.flow-label{fill:var(--muted);font-size:12px;paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round}.chart.flow .flow-label .name{fill:var(--text)}.calc details.extra{margin-top:4em;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.calc details.extra>summary{cursor:pointer;padding:1em 0;font-variant:small-caps;letter-spacing:.02em;font-size:1.15rem}.calc details.extra.sub{margin-top:3em}.calc details.extra.sub+details.extra.sub{margin-top:0;border-top:none}.calc details.extra.sub[open]{padding-bottom:1.5em}.calc details.extra section{margin-top:0;padding-bottom:1.5em}.calc .tools{display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}.calc button.link{all:unset;cursor:pointer;text-decoration:underline;text-decoration-color:var(--underline);text-underline-offset:3px;color:var(--text)}.calc button.link:hover{text-decoration-color:currentColor}.calc button.link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calc .fine{margin-top:4em;font-family:var(--sans);font-size:.9rem;color:var(--muted);max-width:55ch}
