/* Typography is defined here once, rather than inherited from small parent labels.
   16px body/labels, 14px supporting copy, 20px fee values, 28–32px task inputs. */
:root{
 --type-detail:.875rem;
 --type-body:1rem;
 --type-section:1.25rem;
 --type-value:2rem;
 font-size:16px;
}
body{font-size:var(--type-body);line-height:1.6}
input,select,button{font-size:var(--type-body)}
:where(input:not([type=range]):not([type=checkbox]),select){min-height:48px;padding:12px 14px;line-height:1.4}
input::placeholder{font-size:var(--type-body);font-weight:400;letter-spacing:normal}
input,select,.card-money,.hero-money,#goal-amount{font-variant-numeric:tabular-nums}
input[type=checkbox]{width:20px;height:20px;flex:0 0 20px}
h1{font-size:2.25rem;line-height:1.25;letter-spacing:-1px}
h2{font-size:var(--type-section);line-height:1.4}
h3{font-size:1.125rem;line-height:1.5}
p{line-height:1.7}
.page-heading p{font-size:var(--type-body);line-height:1.7;max-width:70ch}
.eyebrow,.nav-caption,.tag,.tiny,.version,.topbar,.topbar b,.prototype-badge{font-size:var(--type-detail)}
.brand{font-size:1.875rem}.brand-icon{font-size:1.75rem;flex-shrink:0}.brand small{font-size:.75rem;line-height:1.5}
nav a{font-size:.9375rem;line-height:1.5}nav a>span{font-size:1.25rem;flex-shrink:0}nav a small{font-size:var(--type-detail)}
.sidebar{overflow-y:auto}.sidebar-note,.sidebar-note a{font-size:var(--type-detail)}.sidebar-note p{font-size:1.125rem;line-height:1.6}.sidebar-note{padding-top:20px}.version{line-height:1.6}
.language-switch label{font-size:var(--type-detail)}.language-switch select{font-size:var(--type-body)}
.currency-format-note,.panel-desc,.notice,.error,.help,.insight,.reference-note,.source-item p,.source-item a,.source-item small,footer,.toast,.input-assumption{font-size:var(--type-detail);line-height:1.7}
.notice>span{font-size:1.25rem}.tag{white-space:normal}
.button,.text-button,.quick-next,.quick-partial,.decision-options button{font-size:var(--type-body);line-height:1.5}
.button{min-height:46px;white-space:normal}.decision-options button{min-height:44px}.quick-next{padding:16px 20px}.quick-partial{padding:8px;line-height:1.6}
.input-label,.quick-label,.control-grid label,.fee-grid label,.goal-grid label,.quick-options label{font-size:var(--type-body);font-weight:550;line-height:1.5}
.input-label>span,.bucket-input small,.lookup,.control-grid small,.control-grid a,.fee-details summary span,.fee-note,.consent,.range-labels,.presets,.presets button,.balance-total,.quick-options label span,.quick-options small,.quick-options>a{font-size:var(--type-detail);line-height:1.7}
.control-grid label,.fee-grid label{color:var(--text)}
.control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 24px;align-items:start}
.control-grid>label:last-child{grid-column:1/-1;max-width:620px}
.control-grid input{font-size:var(--type-value);font-weight:600;min-height:72px;padding:12px 16px;letter-spacing:-.5px}
.control-grid input::placeholder{font-size:1.125rem}
.control-grid select{font-size:var(--type-body);min-height:52px}
.control-grid a,.control-grid small{font-weight:400;margin-top:10px}
.fee-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 24px}
.fee-grid input{font-size:1.25rem;font-weight:550;min-height:56px}
.fee-grid label:last-child{grid-column:1/-1}
.fee-details{margin-top:28px;padding-top:24px}.fee-details summary{font-size:var(--type-body);font-weight:600;line-height:1.6}.fee-details summary span{display:inline-block;font-weight:400}
.consent{align-items:flex-start;gap:10px}.consent input{margin-top:4px}
.input-wrap input{font-size:1.5rem;font-weight:600;padding-left:45px!important}
.input-wrap>span{font-size:var(--type-detail);top:18px}
/* The spelled-out Portuguese unit must not overlap its numeric input. */
:lang(pt-BR) .input-wrap input{padding-left:72px!important}
.balance-total b{font-size:1.5rem}.balance-total b small{font-size:var(--type-detail)}
.request-number input{font-size:2.5rem;min-height:56px;width:100%!important;max-width:300px;min-width:0}.request-number>span{font-size:var(--type-body);flex-shrink:0}
.quick-number{display:flex;align-items:center;gap:14px;border:1px solid #e2e7e9;border-radius:7px;background:#fcfdfd;padding:10px 15px}
.quick-number:focus-within{outline:2px solid #6d9e86;outline-offset:2px}
.quick-number>span{position:static;font-size:1.125rem;flex-shrink:0}
.quick-number input{border:0!important;background:transparent!important;font-size:2.5rem;font-weight:600;padding:6px 0!important;line-height:1.3;min-width:0;flex:1;width:0!important;letter-spacing:-1px}
.quick-number input:focus{outline:none}
#quick-input-help,.quick-options>p,.quick-options summary,.quick-rate-note,.quick-source,.quick-faq details,.goal-heading p,.estimate-notebook p,.goal-caveat,.goal-answer>span,.goal-answer p,#goal-breakdown,.saved-estimate-row,.summary-preview,.summary-preview pre{font-size:var(--type-detail);line-height:1.7}
.quick-options summary,.quick-faq summary,.summary-preview summary{font-size:var(--type-body)}
.quick-presets button{font-size:var(--type-body);min-height:44px}
.quick-output .hero-money,.hero-money{font-size:3.5rem;line-height:1.2}
.hero-money>span{font-size:2rem}.hero-money small{font-size:var(--type-body)}
.payout-top,.dark-tag,.payout-card>p,.payout-meta,.payout-meta small,.quick-output #quick-formula{font-size:var(--type-detail);line-height:1.7}
.payout-top{flex-wrap:wrap;gap:10px}.payout-meta strong{font-size:1.25rem}
.breakdown-row,.breakdown-row>span:nth-child(2),.breakdown-row strong{font-size:var(--type-detail);line-height:1.7}
.breakdown-row{grid-template-columns:minmax(0,1fr) auto}
.breakdown-row>span:nth-child(2){grid-column:1;grid-row:auto;overflow-wrap:anywhere}
.breakdown-row strong{grid-column:2;grid-row:span 2;text-align:right}
.quick-explainer h2,.goal-heading h2{font-size:1.5rem}.quick-next-grid h3{font-size:1.125rem}.quick-next-grid p,.quick-next-grid b{font-size:var(--type-detail);line-height:1.7}.quick-next-grid>a>span{font-size:1.5rem}.quick-faq h2,.estimate-notebook h2{font-size:var(--type-section)}
.goal-number input{font-size:2rem;padding:12px 15px 12px 42px!important}.goal-number>span{font-size:1.5rem;top:18px}#goal-amount{font-size:2rem;line-height:1.4;overflow-wrap:anywhere}
.comparison-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.compare-card h3{font-size:1.125rem}.compare-card .card-money{font-size:2.25rem;line-height:1.25}
.compare-card .card-date,.compare-card .net-label,.card-line,.card-saving,.comparison-note,.section-title>span{font-size:var(--type-detail);line-height:1.7}
.card-line{padding:5px 0;flex-wrap:wrap}.card-line strong{margin-left:auto}.compare-card{padding:24px}
.threshold-panel h2,.empty-state h2{font-size:var(--type-section)}.threshold-panel p,.threshold-caption,.chart-caption,.target-label,.decision-panel p,.empty-state p{font-size:var(--type-detail);line-height:1.7}.threshold-amount{font-size:2rem}.target-label input{font-size:1.25rem;width:90px!important}.decision-panel h2{font-size:1.125rem}.empty-state>span{font-size:2.25rem}#fee-chart text{font-size:14px}
.reference-table,.reference-table caption,.reference-list dt,.reference-list dd,.reference-checklist,.split-comparison-label,.split-notes{font-size:var(--type-detail);line-height:1.7}
.explainer h2{font-size:1.125rem}.explainer p,.explain-flow small,.explain-flow em{font-size:var(--type-detail)}.explain-flow b{font-size:1.125rem}.explain-flow b span{font-size:var(--type-body)}
.member-top input{font-size:var(--type-body)}.member-pcts label,.member-pcts .pw span{font-size:var(--type-detail)}.member-pcts .pw input{font-size:1.25rem;min-height:44px}.member-del{font-size:1.25rem;min-width:40px;min-height:40px}#earnings{font-size:1.75rem}
@media(min-width:1500px){
 .control-grid{grid-template-columns:1fr 1fr 1.2fr}.control-grid>label:last-child{grid-column:auto;max-width:none}
 .fee-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fee-grid label:last-child{grid-column:span 2}
 .comparison-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1150px) and (min-width:801px){.quick-converter,.sim-grid{grid-template-columns:1fr}}
@media(max-width:800px){
 h1{font-size:1.875rem;line-height:1.3}.page-heading h1{font-size:1.875rem}.page-heading p{font-size:var(--type-body)}
 .brand{font-size:1.75rem}.brand small{font-size:.75rem}.sidebar nav a{font-size:.9375rem}.sidebar nav a>span{font-size:1.125rem}
 .language-switch label{font-size:var(--type-detail)}.language-switch select{font-size:var(--type-body)}.language-switch{flex-wrap:wrap}
 .panel,.quick-input-panel,.goal-planner{padding:20px}.quick-output{padding:24px}
 .control-grid,.fee-grid,.comparison-cards{grid-template-columns:1fr}.control-grid>label:last-child,.fee-grid label:last-child{grid-column:auto}
 .control-grid input{font-size:1.75rem}.control-grid{gap:24px}.fee-grid{gap:20px}
 .quick-number{gap:10px;padding:10px 12px}.quick-number input{font-size:2rem}.quick-number>span{font-size:var(--type-body)}
 .quick-output .hero-money,.hero-money{font-size:3rem}.hero-money>span{font-size:1.75rem}.hero-money small{font-size:var(--type-detail)}
 .goal-heading h2,.quick-explainer h2{font-size:1.375rem}.goal-number input{font-size:1.75rem}#goal-amount{font-size:1.875rem}
 .quick-presets{flex-wrap:wrap}.quick-presets button{flex:1 1 calc(50% - 9px)}
 .page-heading{flex-direction:column;align-items:flex-start}.page-heading .button{font-size:var(--type-detail);max-width:140px}.compare-card .card-money{font-size:2rem}
 .breakdown-row{column-gap:12px}.payout-meta{grid-template-columns:1fr;gap:18px}
 .member-pcts{grid-template-columns:1fr}.member-top{gap:5px}.saved-estimate-row{flex-wrap:wrap}
 .currency-format-note{font-size:var(--type-detail)}
}
@media print{body{font-size:12pt}.reference-table,.reference-table caption,.reference-note{font-size:10pt}}

.brand-intro{font-size:14px;line-height:1.7;color:var(--muted);max-width:78ch;margin:0 0 22px}.worked-example{margin:28px 0;font-size:16px;line-height:1.7;max-width:100%}.worked-example p{max-width:78ch}.worked-example h2{font-size:24px}.worked-example li{margin:6px 0}.worked-example .reference-note{font-size:14px}
