:root{color:#172b36;--primary:#124d43;--muted:#415c60;--border:#a9bdb4;--positive:#166534;--loss:#9f1239;--warning:#7c4a03;background:#f5f8f7;font-family:system-ui,sans-serif;line-height:1.6}body{--tool-accent:#124d43;--tool-soft:#e4efe7}body[data-tool=B]{--tool-accent:#34576b;--tool-soft:#eaf0f4}body[data-tool=C]{--tool-accent:#8b4935;--tool-soft:#f7ece5}*{box-sizing:border-box}body{margin:0}header,main,footer,.skip{max-width:72rem;margin:auto;padding:1rem 1.5rem}header{flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding-top:.4rem;padding-bottom:.7rem;display:flex}.brand{margin:.3rem 0;font-size:1.05rem;font-weight:750}.brand span{color:var(--muted);font-size:.88rem;font-weight:400;display:block}nav{flex-wrap:wrap;gap:.5rem;display:flex}nav a{color:var(--primary);background:#e6eeeb;border-radius:.5rem;padding:.55rem .8rem;text-decoration:none}nav a[aria-current]{background:var(--primary);color:#fff}.skip{padding-top:.35rem;padding-bottom:.35rem;font-size:.9rem;display:block}a{color:var(--primary);text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}main{background:#fff;border:1px solid #cbd6d2;border-radius:.85rem;margin-top:.5rem;padding:clamp(1rem,2.8vw,2rem)}h1{letter-spacing:-.025em;max-width:30ch;margin:.4rem 0 1rem;font-size:clamp(1.75rem,3.4vw,2.25rem);line-height:1.2}h2{font-size:1.4rem;line-height:1.35}h3{font-size:1.15rem;line-height:1.4}p{overflow-wrap:anywhere}.eyebrow{color:var(--muted);margin:0 0 .5rem;font-size:.88rem}.memory-note{background:#f1f6f3;border-left:3px solid #497367;margin:.5rem 0 1rem;padding:.5rem .8rem;font-size:.9rem}section,details,fieldset{margin:1.5rem 0}fieldset,details{border:1px solid var(--border);border-radius:.6rem;min-width:0;padding:1rem}legend{padding:0 .4rem;font-weight:700}summary{cursor:pointer;overflow-wrap:anywhere;padding:.25rem 0;font-weight:650}.form-step{border:1px solid #cbd6d2;border-radius:.65rem;margin:1.25rem 0;padding:1.2rem}.form-step h2{color:var(--primary);margin:0 0 .5rem;font-size:1.2rem}.form-step>p{color:var(--muted);max-width:78ch;margin:.4rem 0 .75rem}.form-step>legend{color:var(--primary);font-size:1.2rem}.form-step details{background:#f5f8f7;margin-bottom:0}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1.5rem;display:grid}.field{min-width:0;margin:.65rem 0}.costs-grid>.field:nth-child(-n+2){background:#f1f6f3;border-radius:.4rem;padding:.75rem}.costs-grid .hint{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}label{margin-bottom:.35rem;font-weight:650;display:block}input:not([type=checkbox]),select{width:100%;min-height:3rem;font:inherit;color:inherit;background:#fff;border:1px solid #6e8480;border-radius:.4rem;padding:.55rem}input[type=checkbox]{flex:none;width:1.35rem;height:1.35rem}.check{align-items:flex-start;gap:.7rem;display:flex}.hint{color:var(--muted);margin:.3rem 0;font-size:.875rem}.error{color:var(--loss);font-weight:650}.error-summary{border:2px solid var(--loss);background:#fff1f2;border-radius:.5rem;padding:1rem}.error-summary h2{margin-top:0}[aria-invalid=true]{border-color:var(--loss)!important;border-width:2px!important}.actions{flex-wrap:wrap;gap:.75rem;margin:1rem 0;display:flex}button,.button-link{font:inherit;border:2px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:.45rem;min-height:3rem;padding:.65rem 1rem;font-weight:650}.button-link{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}button.secondary{color:var(--primary);background:#fff;font-weight:550}button:disabled{cursor:default;opacity:.55}:focus-visible{outline-offset:4px;outline:3px solid #b65300}#results{border:2px solid #8eae9f;border-radius:.65rem;margin-top:1.5rem;padding:1.25rem}#results>h2{color:var(--muted);margin-top:0;font-size:1.15rem}.result-label{margin:.5rem 0;font-size:1rem;font-weight:650}.headline{overflow-wrap:anywhere;margin:.6rem 0 1rem;font-size:clamp(1.6rem,3.5vw,2.25rem);font-weight:750;line-height:1.3}.result-positive{color:var(--positive);background:#f0fdf4;border-radius:.5rem;padding:.75rem}.result-loss{color:var(--loss);border-left:4px solid var(--loss);background:#fff1f2;padding:.75rem}.result-zero{color:var(--muted)}body[data-tool=B] .margin-detail{border-top:1px solid #cbd6d2;margin-top:1.25rem;padding-top:.5rem}body[data-tool=B] .contribution-result,.projection-result{font-size:1.15rem;font-weight:650}.diagnosis,.stale-note{color:var(--warning);border-left:4px solid var(--warning);background:#fff8e6;padding:.75rem 1rem;font-weight:650}.empty-result{color:var(--muted)}dl{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:.4rem 1rem;display:grid}dt,dd{overflow-wrap:anywhere;border-bottom:1px solid #dce5e1;margin:0;padding:.5rem 0}dd{font-weight:650}.monthly-result>dt:first-child{align-self:center;font-weight:650}.monthly-result>dd:nth-child(2){color:var(--primary);font-size:clamp(2rem,4vw,2.5rem);line-height:1.3}footer{color:var(--muted);margin:1rem auto;font-size:.9rem}.examples{background:#f3f7f5;border-radius:.5rem;padding:1rem}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}@media (max-width:38rem){.grid{grid-template-columns:1fr}header,main,footer{padding:1rem}header{padding-top:.2rem}main{border-radius:0}nav a{padding:.5rem .7rem}.form-step,#results{padding:.85rem}.calculate-actions button{width:100%}}:root{--surface:#fff;--deep:#103f38;background:#f4f6f3}header,main,footer,.skip{max-width:80rem;padding-left:4rem;padding-right:4rem}header{gap:.75rem 2rem}.brand{padding-left:3rem;font-size:1.1rem;position:relative}.brand .brand-mark{background:var(--primary);color:#fff;border-radius:.5rem;place-items:center;width:2.2rem;height:2.2rem;font-size:.9rem;display:grid;position:absolute;top:.2rem;left:0}header nav{margin-left:auto}header nav a{background:0 0;align-items:center;min-height:2.75rem;display:inline-flex}main{background:0 0;border:0;border-radius:0;margin-top:0;padding-top:1rem;padding-bottom:1rem}h1{overflow-wrap:anywhere;max-width:34ch;font-size:clamp(1.85rem,3.2vw,2.25rem)}input:not([type=checkbox]),select{background:#fff;border-radius:.5rem;min-height:3.25rem}.field-label{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.4rem .65rem;margin-bottom:.35rem;font-size:.95rem;display:flex}.field-label>label{flex:11rem;min-width:0;margin:0}.field-badge{overflow-wrap:anywhere;border-radius:.4rem;flex:none;max-width:100%;padding:.25rem .55rem;font-size:.875rem;font-weight:650;line-height:1.3;display:inline-block}.badge-necessary{color:#fff;background:#124d43}.badge-optional{color:#415c60;background:#edf1ee;padding:.15rem .4rem;font-size:.875rem;font-weight:550}.badge-conditional{color:#415c60;background:#dfede5}.field-necessary{background:#edf5ef;border-radius:.65rem;padding:.75rem}.field-necessary input,.field-necessary select{border:2px solid #124d43}.field{margin:.65rem 0}.form-step{background:#fff;border-color:#bbcdc3;border-radius:.9rem;padding:1.4rem}.form-step h2,.form-step>legend{color:#172b36;font-size:1.25rem;font-weight:750}.form-step>legend{background:#f4f6f3;border-radius:.3rem}.form-step details{background:#eaf1eb}.costs-grid>.field:nth-child(-n+2){background:0 0;padding:0}.costs-grid{gap:.25rem 2rem}.costs-grid .field-label{margin-bottom:.4rem}.memory-note{color:#415c60;background:0 0;border:0;padding:0;font-size:.875rem}button,.button-link{border-radius:.6rem;min-height:3.125rem}.calculate-actions [data-action=calculate]{min-width:16rem}.calculate-actions [data-action=reset]{font-weight:550}#results{background:#fff;border:1px solid #bbcdc3;border-radius:.9rem;padding:1.4rem}body[data-tool=A] .margin-detail:has(>.result-positive){color:#fff;background:#103f38;border-radius:.85rem;padding:1.5rem}body[data-tool=A] .margin-detail>.result-positive{color:#fff;background:0 0;padding:0;font-size:clamp(2rem,4.4vw,3.5rem)}:is(body[data-tool=A] .margin-detail:has(>.result-positive) dt,body[data-tool=A] .margin-detail:has(>.result-positive) dd){border-color:#72948c}body[data-tool=B] .price-result{color:#fff;background:#103f38;border-radius:.8rem;padding:1.25rem;font-size:clamp(1.75rem,3.5vw,2.8rem)}.monthly-result{color:#fff;background:#103f38;border-radius:.8rem;padding:1.25rem}.monthly-result>dd:nth-child(2){color:#fff;font-size:clamp(2.5rem,4vw,3.5rem)}.monthly-result dt,.monthly-result dd{border-color:#72948c}.result-loss{color:#9f1239;background:#fff1f2}.result-zero{color:#415c60;background:#f4f6f3;border-radius:.5rem;padding:.75rem}#transfers{margin-top:1.5rem}#transfers button{font-size:.95rem}.examples{background:#e3ede5;border:1px solid #bbcdc3}.hint{font-size:.875rem}@media (max-width:60rem){header,main,footer,.skip{padding-left:1.5rem;padding-right:1.5rem}header nav{margin-left:0}}@media (max-width:38rem){header,main,footer,.skip{padding-left:1.25rem;padding-right:1.25rem}header{gap:.6rem}.brand{margin:.15rem 0}header nav{gap:.4rem;width:100%}header nav a{padding:.45rem .65rem}.form-step{margin:1rem 0;padding:1rem}.field{margin:.45rem 0}.field-label{gap:.35rem .5rem}.field-label>label{flex-basis:9rem}.field-necessary{padding:.65rem}.grid{gap:.25rem}.form-step>p{margin:.35rem 0 .6rem}.costs-grid .field{margin:.4rem 0}.calculate-actions [data-action=calculate]{min-width:0}#results{padding:1rem}body[data-tool=A] .margin-detail:has(>.result-positive){padding:1rem}dl{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}#transfers button{width:100%}}.return-tools{align-items:center;gap:.35rem;min-height:44px;margin:0 0 1rem;font-weight:650;text-decoration:underline;display:inline-flex}body[data-tool] h1{color:var(--tool-accent)}body[data-tool] #results{border-top:6px solid var(--tool-accent)}body[data-tool] .margin-detail{grid-template-columns:minmax(0,1fr);gap:1.5rem;display:grid}.margin-summary{min-width:0}body[data-tool] .margin-summary .result-positive{color:var(--tool-accent);background:0 0;padding:0}body[data-tool=A] .margin-summary .contribution-result{font-size:clamp(2rem,4.4vw,3.5rem)}body[data-tool=B] .price-result{color:var(--tool-accent);background:var(--tool-soft)}body[data-tool=C] .monthly-result{color:#172b36;background:var(--tool-soft)}body[data-tool=C] .monthly-result>dd:nth-child(2){color:var(--tool-accent)}body[data-tool=C] .monthly-result dt,body[data-tool=C] .monthly-result dd{border-color:#c9b2a7}.price-context{background:var(--tool-soft);color:var(--tool-accent);border-radius:.65rem;padding:1rem;font-weight:650}body[data-tool=C] .projection-result.result-positive{color:var(--tool-accent);background:var(--tool-soft)}.economic-chart{min-width:0;margin:1rem 0;padding:0}.economic-chart figcaption{color:#172b36;font-size:1.2rem;font-weight:750;line-height:1.4}.chart-context,.chart-note{color:#415c60;font-size:.875rem}.chart-context{margin:.5rem 0 1.25rem}.chart-bar{width:100%;min-width:0;height:2rem;display:flex}.chart-segment{flex:none;justify-content:center;align-items:center;min-width:0;font-size:.8rem;font-weight:700;display:flex;overflow:hidden}.segment-cost{color:#172b36;outline-offset:-1px;background:#c1d0ca;outline:1px solid #415c60}.segment-fee{color:#fff;background:#52686a;box-shadow:inset 1px 0 #fff,inset -1px 0 #fff}.segment-margin{background:var(--tool-accent);color:#fff;box-shadow:inset 1px 0 #fff}.chart-key{margin:1rem 0;padding-left:1.25rem}.chart-key-row{padding:.3rem 0}.chart-key-row>strong{display:block}.chart-key-label{margin-right:.6rem}.chart-note{line-height:1.55}.chart-loss{color:#9f1239;font-weight:650}.balance-bars p{margin:.5rem 0;font-size:.875rem;font-weight:650}.volume-labels{color:var(--tool-accent);font-size:.95rem;font-weight:650}.volume-graphic{padding:.75rem .25rem 0}.volume-track{background:var(--tool-soft);outline:1px solid var(--tool-accent);outline-offset:-1px;position:relative}.volume-fill{background:var(--tool-accent);height:100%;display:block}.volume-marker{background:#172b36;width:3px;height:3rem;position:absolute;top:-.5rem;transform:translate(-50%);box-shadow:0 0 0 2px #fff}.volume-axis{color:#415c60;justify-content:space-between;margin-top:.75rem;font-size:.875rem;display:flex}@media (min-width:64rem){body[data-tool] .margin-detail:has(.economic-chart){grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}.chart-key-row>strong{float:right;margin-left:.5rem;display:inline}}.skip{z-index:1000;max-width:calc(100% - 2rem);color:var(--primary);border:2px solid var(--primary);background:#fff;border-radius:.4rem;margin:0;padding:.65rem 1rem;position:absolute;top:.5rem;left:1rem}.skip:not(:focus){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.skip:focus{outline-offset:3px;outline:3px solid #b45309}
