.page-tool{--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a}@media (prefers-color-scheme: dark){.page-tool{--s1: #3987e5;--s2: #d95926;--s3: #199e70}}.tool-page{padding-bottom: clamp(48px,7vw,96px)}.crumbs ol{display: flex;flex-wrap: wrap;gap: 4px 8px;list-style: none;padding: 0;margin: clamp(16px,2.5vw,28px) 0 0;font-size: 0.875rem;color: var(--muted)}.crumbs li{display: inline-flex;align-items: center;gap: 8px}.crumbs li + li::before{content: "›";color: var(--line-strong)}.crumbs a{color: var(--muted);text-decoration: none}.crumbs a:hover{color: var(--link);text-decoration: underline}.crumbs [aria-current]{color: var(--fg-2);font-weight: 550}.tool-head{max-width: 820px;padding: clamp(14px,2.4vw,28px) 0 clamp(20px,3vw,32px)}.tool-head h1{font-size: clamp(2rem,1.4rem + 2.4vw,3.25rem);letter-spacing: -0.035em;line-height: 1.06;margin-bottom: 14px}.tool-head .lede{margin-bottom: 0.7em;color: var(--fg-2)}.tool-private{display: inline-flex;align-items: center;gap: 8px;margin: 6px 0 0;padding: 6px 12px;border-radius: 999px;background: var(--in-soft);color: var(--in);font-size: 0.875rem;font-weight: 600}.tool-private .ic{width: 16px;height: 16px;stroke-width: 2}.tool-section{margin-top: clamp(40px,5vw,64px)}.tool-section>h2,.tool-section.prose>h2{font-size: clamp(1.5rem,1.2rem + 1vw,2rem);letter-spacing: -0.025em;margin: 0 0 18px;padding: 0}.tool-section.prose{max-width: 820px}.tool-section.prose h3{font-size: 1.125rem;margin: 1.6em 0 0.5em}.tool-section .code-block code{display: block;padding: 12px 14px;border-radius: 12px;font-size: 0.9375rem;overflow-wrap: anywhere}.tool-app{display: flex;gap: 20px;align-items: flex-start}.tool-app h2{margin-bottom: 10px}.tool-app p:last-child{margin-bottom: 0}.tool-app .btn-line{margin-top: 18px}@media (max-width: 559px){.tool-app{flex-direction: column;gap: 14px}}.disclaimer{display: flex;gap: 10px;align-items: flex-start;margin: clamp(32px,4vw,48px) 0 0;padding: 16px 18px;border-radius: 14px;background: var(--subtle);color: var(--fg-2);font-size: 0.875rem;line-height: 1.55}.disclaimer .ic{width: 18px;height: 18px;margin-top: 2px;color: var(--muted)}.tool-grid{display: grid;grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr);gap: 20px;align-items: start}.tool-results{position: sticky;top: calc(var(--header-h) + 16px)}@media (max-width: 899px){.tool-grid{grid-template-columns: minmax(0,1fr)}.tool-results{position: static}}.tool-card-h{font-size: 0.8125rem;font-weight: 700;letter-spacing: 0.08em;text-transform: uppercase;color: var(--muted);margin: 0 0 18px}fieldset{border: 0;margin: 0;padding: 0;min-width: 0}legend{padding: 0}.field{margin: 0 0 22px}.field:last-child{margin-bottom: 0}.field-label{display: block;font-weight: 600;color: var(--fg);margin: 0 0 8px;font-size: 0.9375rem}.field-hint{margin: 8px 0 0;font-size: 0.8125rem;color: var(--muted);line-height: 1.5}.field-err{margin: 8px 0 0;font-size: 0.875rem;font-weight: 600;color: var(--out)}.input-row{display: flex;flex-wrap: wrap;align-items: center;gap: 10px 14px}.input-wrap{display: inline-flex;align-items: center;gap: 6px;min-height: 50px;padding: 0 14px;border-radius: 12px;border: 1px solid var(--line-strong);background: var(--surface-2)}.input-wrap:focus-within{border-color: var(--brand);box-shadow: 0 0 0 3px var(--brand-soft)}.input-wrap--money{flex: 1 1 210px;max-width: 300px}.input-wrap input,.input-short,.multi-cell input,.multi-cell select,.pp-cell input,.pp-cell select{font: inherit;font-size: 1.0625rem;font-weight: 600;color: var(--fg);font-variant-numeric: tabular-nums}.input-wrap input{flex: 1;min-width: 0;width: 100%;border: 0;background: transparent;padding: 12px 0;outline: none}.input-post-wrap{display: inline-flex;align-items: center;gap: 6px;width: 100%}.input-wrap:not(.input-wrap--money){width: 220px;max-width: 100%}.input-wrap:not(.input-wrap--money) input{width: 5em;flex: 1}.input-pre,.input-post{color: var(--muted);font-weight: 550;white-space: nowrap;font-size: 0.9375rem}.input-pre{font-size: 1.0625rem}.input-short,.multi-cell input,.multi-cell select,.pp-cell input,.pp-cell select{min-height: 50px;padding: 0 12px;border-radius: 12px;border: 1px solid var(--line-strong);background: var(--surface-2);width: 100%}.input-short{width: 6.5em}.input-short:focus,.multi-cell input:focus,.multi-cell select:focus,.pp-cell input:focus,.pp-cell select:focus{outline: none;border-color: var(--brand);box-shadow: 0 0 0 3px var(--brand-soft)}select{appearance: none;-webkit-appearance: none;padding-right: 32px !important;cursor: pointer;background-image: linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%) !important;background-position: calc(100% - 18px) 50%,calc(100% - 13px) 50% !important;background-size: 5px 5px,5px 5px !important;background-repeat: no-repeat !important}[aria-invalid="true"]{border-color: var(--out) !important}.input-wrap:has([aria-invalid="true"]){border-color: var(--out)}.field-words{color: var(--muted);font-size: 0.875rem;font-weight: 550}.range{display: block;width: 100%;margin: 12px 0 0;accent-color: var(--brand);height: 24px;cursor: pointer}.seg{display: inline-flex;flex-wrap: wrap;gap: 4px;padding: 4px;border-radius: 13px;background: var(--subtle);border: 1px solid var(--line-soft)}.seg-opt{position: relative}.seg-opt input{position: absolute;opacity: 0;inset: 0;margin: 0;cursor: pointer}.seg-opt span{display: block;padding: 8px 14px;border-radius: 9px;font-size: 0.9375rem;font-weight: 600;color: var(--fg-2);cursor: pointer;white-space: nowrap}.seg-opt input:checked + span{background: var(--surface);color: var(--fg);box-shadow: 0 1px 2px rgba(16,24,40,0.12),0 0 0 1px var(--line)}.seg-opt input:focus-visible + span{outline: 3px solid var(--focus);outline-offset: 1px}.seg-opt:hover span{color: var(--fg)}.seg-field legend{margin-bottom: 8px}.seg-field--inline legend{margin: 0}.multi-row{display: flex;flex-wrap: wrap;gap: 10px}.multi-cell{display: flex;flex-direction: column;gap: 4px;width: 7.5em}.multi-cell span{font-size: 0.8125rem;color: var(--muted)}.quick{display: inline-flex;gap: 6px;flex-wrap: wrap}.quick-btn{font: inherit;font-weight: 650;font-size: 0.9375rem;min-height: 44px;min-width: 56px;padding: 0 12px;border-radius: 12px;border: 1px solid var(--line-strong);background: var(--surface);color: var(--fg-2);cursor: pointer;font-variant-numeric: tabular-nums}.quick-btn:hover{border-color: var(--brand);color: var(--link)}.quick-btn[aria-pressed="true"]{background: var(--brand-soft);border-color: var(--brand);color: var(--link)}.prepay-list{list-style: none;padding: 0;margin: 0 0 12px;display: grid;gap: 10px}.prepay:not(.has-rows) .prepay-list{margin: 0}.prepay-row{display: grid;grid-template-columns: minmax(0,1fr) minmax(0,1.25fr) minmax(0,0.9fr) auto;gap: 10px;align-items: start;padding: 12px;border: 1px solid var(--line);border-radius: 14px;background: var(--surface-2)}.pp-cell{display: flex;flex-direction: column;gap: 4px;min-width: 0}.pp-label{font-size: 0.8125rem;color: var(--muted);font-weight: 600}.pp-cell .input-wrap{flex: none;min-height: 50px;max-width: none;width: 100%;background: var(--surface)}.pp-cell .input-wrap input{min-height: 0;padding: 12px 0;border: 0;border-radius: 0;background: transparent;box-shadow: none}.pp-cell input,.pp-cell select{background-color: var(--surface)}.pp-cell .input-wrap input{font-size: 1rem}.pp-when{font-size: 0.75rem;color: var(--muted);min-height: 1em}.pp-remove{align-self: center;margin-top: 18px;display: grid;place-items: center;width: 40px;height: 40px;border-radius: 10px;border: 1px solid var(--line-strong);background: var(--surface);color: var(--muted);cursor: pointer}.pp-remove:hover{color: var(--out);border-color: var(--out)}.pp-remove .ic{width: 18px;height: 18px}@media (max-width: 559px){.prepay-row{grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto}.prepay-row .pp-cell:nth-child(2){grid-column: 1 / 3;grid-row: 1}.prepay-row .pp-cell:nth-child(1){grid-column: 1;grid-row: 2}.prepay-row .pp-cell:nth-child(3){grid-column: 2 / 4;grid-row: 2}.pp-remove{grid-column: 3;grid-row: 1}.pp-cell select{font-size: 1rem}}.stat-big{padding: 18px 20px;border-radius: 16px;background: var(--brand-soft)}.stat-big-label{margin: 0;font-weight: 600;color: var(--fg-2);font-size: 0.9375rem}.stat-big-value{margin: 4px 0 0;font-size: clamp(2rem,1.6rem + 1.6vw,2.75rem);font-weight: 750;letter-spacing: -0.03em;line-height: 1.1;color: var(--fg);overflow-wrap: anywhere}.stat-big-sub{margin: 6px 0 0;color: var(--muted);font-size: 0.9375rem}.stats{display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,150px),1fr));gap: 10px;margin: 12px 0 0}.stat{padding: 12px 14px;border-radius: 12px;background: var(--surface-2);border: 1px solid var(--line-soft);min-width: 0}.stat dt{font-size: 0.8125rem;color: var(--muted);line-height: 1.4}.stat dd{margin: 4px 0 0;font-weight: 650;font-size: 1.125rem;color: var(--fg);font-variant-numeric: tabular-nums;overflow-wrap: anywhere}.result-note{margin: 14px 0 0;color: var(--muted);font-size: 0.9375rem}.result-note--warn{color: var(--warn);background: var(--warn-soft);padding: 10px 12px;border-radius: 10px;font-weight: 550}.result-pre{margin-top: 18px;padding-top: 16px;border-top: 1px solid var(--line)}.result-pre-h{margin: 0;font-weight: 650;color: var(--fg)}.is-stale .tool-results [data-out]{opacity: 0.4}.stale-note{display: flex;gap: 8px;align-items: center;margin: 14px 0 0;color: var(--warn);font-weight: 600;font-size: 0.9375rem}.stale-note .ic{width: 18px;height: 18px}.result-actions{display: flex;flex-wrap: wrap;align-items: center;gap: 8px 14px;margin-top: 20px;padding-top: 16px;border-top: 1px solid var(--line-soft)}.result-actions-note{margin: 0;flex: 1 1 200px;font-size: 0.8125rem;color: var(--muted)}.tool-part{margin-top: 20px;padding: clamp(18px,2.4vw,28px);border-radius: var(--radius);background: var(--surface);border: 1px solid var(--line);box-shadow: var(--shadow-sm)}.part-head{display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 12px 16px;margin-bottom: 16px}.part-head h2{font-size: 1.25rem;letter-spacing: -0.015em}.part-tools{display: flex;flex-wrap: wrap;align-items: center;gap: 8px}.part-tools .field{margin: 0}.part-tools .seg-field legend{position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0);white-space: nowrap}.part-tools .seg{flex-wrap: nowrap}.part-tools .seg-opt span{padding: 6px 9px;font-size: 0.8125rem}.part-body{container-type: inline-size}.chart{position: relative;margin: 0}.chart-legend{display: flex;flex-wrap: wrap;gap: 6px 18px;list-style: none;padding: 0;margin: 0 0 10px;font-size: 0.875rem;color: var(--fg-2)}.chart-legend li{display: inline-flex;align-items: center}.key{display: inline-block;flex: none;margin-right: 8px}.key-bar{width: 12px;height: 12px;border-radius: 3px}.key-line{width: 16px;height: 3px;border-radius: 2px}.key.s1{background: var(--s1)}.key.s2{background: var(--s2)}.key.s3{background: var(--s3)}.chart-plot{height: 240px;border-radius: 8px}@container (min-width: 520px){.chart-plot{height: 290px}}.chart-plot--split{height: 24px}.chart-plot svg{display: block;width: 100%;height: 100%;overflow: visible}.chart-plot:focus-visible{outline-offset: 6px}.chart text{font-size: 12px;fill: var(--muted);font-variant-numeric: tabular-nums}.chart .cap{fill: var(--fg-2);font-weight: 650}.chart .axis-title{fill: var(--muted);font-size: 12px}.chart .grid{stroke: var(--line-soft);stroke-width: 1}.chart .axis{stroke: var(--line-strong);stroke-width: 1}.chart .bar.s1{fill: var(--s1)}.chart .bar.s2{fill: var(--s2)}.chart .bar.s3{fill: var(--s3)}.chart .line{fill: none;stroke-width: 2;stroke-linejoin: round;stroke-linecap: round}.chart .line.s1{stroke: var(--s1)}.chart .line.s2{stroke: var(--s2)}.chart .line.s3{stroke: var(--s3)}.chart .wash{opacity: 0.1}.chart .wash.s1{fill: var(--s1)}.chart .wash.s2{fill: var(--s2)}.chart .dot,.chart .hl-dot{stroke: var(--surface);stroke-width: 2}.chart .dot.s1,.chart .hl-dot.s1{fill: var(--s1)}.chart .dot.s2,.chart .hl-dot.s2{fill: var(--s2)}.chart .dot.s3,.chart .hl-dot.s3{fill: var(--s3)}.chart .hit{fill: transparent;cursor: crosshair}.chart .hit.on{fill: var(--fg);fill-opacity: 0.05}.chart .hit[data-pts].on{fill-opacity: 0}.chart .xhair{stroke: var(--muted);stroke-width: 1}.chart-tip{position: absolute;z-index: 5;pointer-events: none;min-width: 170px;max-width: 270px;padding: 10px 12px;border-radius: 12px;background: var(--surface);border: 1px solid var(--line);box-shadow: var(--shadow-md);font-size: 0.8125rem;line-height: 1.45}.tip-t{margin: 0 0 6px;font-weight: 600;color: var(--muted)}.tip-r{display: flex;align-items: center;gap: 8px;margin: 2px 0 0}.tip-r b{font-weight: 700;color: var(--fg);font-variant-numeric: tabular-nums}.tip-r span:last-child{color: var(--muted)}.tip-total{margin-top: 6px;padding-top: 6px;border-top: 1px solid var(--line-soft)}.split-title{margin: 18px 0 8px;font-weight: 650;color: var(--fg)}.split-title:first-child{margin-top: 0}.split-list{list-style: none;padding: 0;margin: 12px 0 0;display: grid;gap: 6px}.split-list li{display: grid;grid-template-columns: auto minmax(0,1fr) auto 4.2em;align-items: center;gap: 0 10px;font-size: 0.9375rem}.split-list .key{margin: 0}.split-name{color: var(--fg-2)}.split-val{font-weight: 650;font-variant-numeric: tabular-nums;text-align: right}.split-pct{color: var(--muted);text-align: right;font-variant-numeric: tabular-nums}.table-scroll{overflow: auto;max-height: min(72vh,760px);border: 1px solid var(--line);border-radius: 16px;background: var(--surface);overscroll-behavior-x: contain}.table-scroll:focus-visible{outline-offset: 2px}.data-table{font-size: 0.875rem;line-height: 1.45}.data-table th,.data-table td{padding: 10px 14px;vertical-align: middle}.data-table thead th{position: sticky;top: 0;z-index: 2;font-size: 0.6875rem}.data-table .num{text-align: right;white-space: nowrap;font-variant-numeric: tabular-nums}.data-table tbody th,.data-table tfoot th{position: sticky;left: 0;z-index: 1;background: var(--surface);white-space: nowrap}.data-table thead th:first-child{left: 0;z-index: 3}.data-table tfoot th,.data-table tfoot td{font-weight: 700;color: var(--fg);border-top: 1px solid var(--line);border-bottom: 0;background: var(--surface-2)}.data-table tbody tr:last-child>*{border-bottom: 1px solid var(--line-soft)}.data-table tr.month>*{background: var(--surface-2);color: var(--fg-2);font-size: 0.8125rem;padding-top: 7px;padding-bottom: 7px}.data-table tr.month th{font-weight: 550;padding-left: 38px}.month-n{color: var(--muted);font-weight: 450}.data-table tr.is-open>*{border-bottom-color: var(--line)}.row-toggle{display: inline-flex;align-items: center;gap: 10px;padding: 0;border: 0;background: none;font: inherit;font-weight: 650;color: var(--fg);cursor: pointer}.row-toggle:hover{color: var(--link)}.row-chev{display: inline-block;width: 7px;height: 7px;border-right: 2px solid currentColor;border-bottom: 2px solid currentColor;transform: rotate(-45deg);transition: transform 0.15s;margin-right: 2px}.row-toggle[aria-expanded="true"] .row-chev{transform: rotate(45deg)}@media print{.page-tool{--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a}.crumbs,.tool-private,.tool-inputs,.result-actions,.part-tools,.tool-section,.print-hide,.stale-note,noscript{display: none !important}.tool-part:not(.tool-part--table){display: none}.tool-grid{display: block}.tool-results{position: static}.card,.tool-part{box-shadow: none;border: 1px solid #ccc;break-inside: avoid-page}.tool-part--table{break-inside: auto}.stat-big{background: none;border: 1px solid #ccc}.table-scroll{max-height: none;overflow: visible;border: 0}.tool-part--table{padding: 0;border: 0}.data-table,.data-table tr.month>*{font-size: 8pt}.data-table th,.data-table td,.data-table tr.month>*{padding: 3px 5px}.data-table tr.month th{padding-left: 12px}.data-table thead th{font-size: 7pt;letter-spacing: 0.02em;white-space: normal}.data-table thead{display: table-header-group}.data-table thead th,.data-table tbody th,.data-table tfoot th{position: static}.data-table tr{break-inside: avoid}.row-chev,.month-n{display: none}.tool-head h1{font-size: 20pt}.tool-head .lede{display: none}.disclaimer{background: none;border: 1px solid #ccc}}