:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3eee3;--surface:#fbf8f2;--surface-2:#f6f1e7;--text:#1d1b17;--text-muted:#625b50;--line:#d9cfbd;--border:var(--line);--border-strong:#8a7f6e;--ink:#1d1b17;--ink-text:#fbf8f2;--accent:#1e5434;--accent-text:#fbf8f2;--accent-soft:#e2eadc;--success:var(--accent);--error-color:#b00020;--focus:var(--accent);--bar-paid:#b9ae9b;--bar-track:#ebe4d6;--chart-base:#8a7f6e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:2px;--radius:3px;--font:ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;--display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Cambria, Georgia, serif;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.5rem;--control-height:48px;--header-h:calc(var(--control-height) + 2 * var(--space-2) + 1px)}html{scroll-padding-top:calc(var(--header-h) + var(--space-4))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#171512;--surface:#1f1c18;--surface-2:#1a1814;--text:#ece5d8;--text-muted:#a9a090;--line:#3a352d;--border:var(--line);--border-strong:#7d7464;--ink:#ece5d8;--ink-text:#171512;--accent:#8fc9a1;--accent-text:#10180f;--accent-soft:#1f2e24;--success:var(--accent);--error-color:#ff8a80;--focus:var(--accent);--bar-paid:#5e574b;--bar-track:#2a2620;--chart-base:#7d7464}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#171512;--surface:#1f1c18;--surface-2:#1a1814;--text:#ece5d8;--text-muted:#a9a090;--line:#3a352d;--border:var(--line);--border-strong:#7d7464;--ink:#ece5d8;--ink-text:#171512;--accent:#8fc9a1;--accent-text:#10180f;--accent-soft:#1f2e24;--success:var(--accent);--error-color:#ff8a80;--focus:var(--accent);--bar-paid:#5e574b;--bar-track:#2a2620;--chart-base:#7d7464}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-base);margin:0;line-height:1.5}main{max-width:960px;padding:0 var(--space-4) var(--space-6);margin:0 auto}.site-header{--page-max:960px;z-index:30;align-items:center;gap:var(--space-2);box-sizing:border-box;min-height:var(--header-h);padding:var(--space-2) max(var(--space-4), calc((100% - var(--page-max)) / 2 + var(--space-4)));background:var(--bg);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.brand-mark{border-radius:var(--radius);background:var(--accent);flex:none;width:32px;height:32px}.brand-mark path{fill:none;stroke:var(--accent-text);stroke-width:3.25px;stroke-linecap:round;stroke-linejoin:round}h1{font-family:var(--display);min-width:0;margin:0 auto 0 0;font-size:clamp(16px,4.9vw,19px);font-weight:700;line-height:1.25}.trust{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted);display:none}.trust svg{flex:none;width:13px;height:13px}@media (width>=640px){.trust{display:inline-flex}}.theme-toggle{width:44px;height:44px;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--surface)}.theme-toggle svg{width:24px;height:24px}h2{font-size:var(--text-lg)}h3{font-size:var(--text-base)}:focus-visible,input[type=month]:focus-within{outline:3px solid var(--focus);outline-offset:2px}input[type=month]::-webkit-calendar-picker-indicator:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.loan-form fieldset{gap:var(--space-3) var(--space-4);min-width:0;margin:0 0 var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;grid-template-columns:minmax(0,1fr);padding:20px;display:grid;container-type:inline-size}.loan-form legend{float:left;width:100%;margin:0 0 var(--space-3);font-family:var(--display);grid-column:1/-1;padding:0;font-size:21px;font-weight:700;line-height:1.25}.loan-form legend:before{color:var(--text-muted)}.loan-form fieldset:first-of-type legend:before{content:"1. "}.loan-form fieldset:nth-of-type(2) legend:before{content:"2. "}.loan-form fieldset:nth-of-type(2){border-left:3px solid var(--accent)}.loan-form fieldset:nth-of-type(2) legend:before{color:var(--accent)}.field label{font-size:var(--text-sm);color:var(--text);margin-bottom:var(--space-1);font-weight:550;display:block}.control{align-items:center;display:flex;position:relative}input,select{box-sizing:border-box;min-height:var(--control-height);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--text-base);color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums}input:hover,select:hover{border-color:var(--text)}.control input,.control select{flex:1;min-width:0}.unit{right:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);pointer-events:none;position:absolute}.control:has(.unit) input{padding-right:3.25em}.error{color:var(--error-color);font-size:var(--text-sm);margin:var(--space-1) 0 0}.hint{font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-1) 0}button{box-sizing:border-box;min-height:var(--control-height);padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--text-base);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;font-weight:600}button:hover{background:var(--surface-2)}.share button,.storage button[data-testid=clear-data]{min-width:44px}.share button[data-testid=share-button]{color:var(--ink-text);background:var(--ink);border-color:var(--ink)}.share button[data-testid=share-button]:hover{background:var(--ink);opacity:.88}.row-action>button,.chart-head button{color:var(--text-muted);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}.row-action>button:hover,.chart-head button:hover{color:var(--text);background:var(--surface-2)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;background:var(--surface);width:100%}tbody tr{background:var(--surface)}tbody tr:hover{background:var(--surface-2)}th,td{border:0;border-bottom:1px solid var(--line);padding:var(--space-2) var(--space-3);text-align:right;font-variant-numeric:tabular-nums}thead th{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}th[scope=row],thead th:first-child{text-align:left}td,th{white-space:nowrap}.chart{margin:var(--space-5) 0;min-width:0}.schedule-controls{gap:var(--space-2);flex-wrap:wrap;display:flex}.rate-changes{margin:var(--space-4) 0}.rate-changes input{width:100%;min-width:0}.rate-change-row{gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(110px,1fr));align-items:start;display:grid}.rate-change-total{grid-column:1/-1;margin:0}.rate-changes select{width:100%}.share{margin:var(--space-4) 0}.share input{width:100%}.notice{padding:var(--space-3) var(--space-4);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.stale>:not(.notice):not(.hero-bar){opacity:.6}.storage{margin:var(--space-4) 0}.extra-once{grid-column:1/-1}.extra-once h3{margin:var(--space-2) 0}.extra-once-row{gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:start;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.layout{display:block}.layout-form{min-width:0;container:form/inline-size}@container form (width>=320px){.loan-form fieldset,.loan-form .option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.field-full{grid-column:1/-1}.layout-wide{min-width:0}.hero{padding:var(--space-5) 28px;margin:var(--space-4) 0;background:var(--surface);border:1px solid var(--line);border-top:4px double var(--text);border-radius:var(--radius)}.hero-title{margin:0 0 var(--space-2);font-variant:small-caps;text-transform:lowercase;letter-spacing:.08em;color:var(--text-muted);font-size:15px;font-weight:600}.hero-big{font-family:var(--display);letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums lining-nums;overflow-wrap:anywhere;margin:0;font-size:clamp(42px,12vw,60px);font-weight:700;line-height:1}.hero-big.loss{color:var(--text)}.hero-text{margin:var(--space-3) 0 var(--space-4);color:var(--text-muted);font-size:15px}.hero-stats{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;margin:0;display:grid}.hero-stats>div{min-width:0;padding:var(--space-3) 0}.hero-stats>div+div{padding-left:var(--space-4);border-left:1px solid var(--line)}.hero-stats dt{font-size:var(--text-sm);color:var(--text-muted)}.hero-stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:19px;font-weight:650}.hero-stats dd span{font-size:var(--text-sm);color:var(--text-muted);font-weight:400;display:block}.hero-bars{gap:var(--space-3);margin-top:var(--space-2);font-size:var(--text-sm);font-variant-numeric:tabular-nums;display:grid}.hero-bar-row{gap:var(--space-1) var(--space-3);grid-template-columns:1fr auto;display:grid}.hero-track{background:var(--bar-track);border-radius:var(--radius-sm);grid-column:1/-1;height:8px;display:flex;overflow:hidden}.hero-track-paid{background:var(--bar-paid)}.hero-track-saved{background:repeating-linear-gradient(135deg, var(--accent) 0 2px, transparent 2px 5px);box-shadow:inset 0 0 0 1px var(--accent);flex:1}.hero-hint{margin:0;font-size:17px}.hero-bar{--dock-inner:56px;z-index:10;width:100%;min-height:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));text-align:left;background:var(--bg);border:0;border-top:1px solid var(--line);border-radius:0;display:block;position:fixed;bottom:0;left:0;right:0}.hero-bar:hover{background:var(--bg)}.hero-bar-inner{justify-content:space-between;align-items:center;gap:var(--space-3);box-sizing:border-box;min-height:var(--dock-inner);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);color:var(--ink-text);background:var(--ink);border-radius:var(--radius-sm);display:flex}.hero-bar:hover .hero-bar-inner{opacity:.9}.hero-bar-main{min-width:0;display:block}.hero-bar-amount{font-family:var(--display);font-variant-numeric:tabular-nums lining-nums;font-size:21px;font-weight:700;line-height:1.2;display:block}.hero-bar-sub{font-size:var(--text-sm);font-weight:400;line-height:1.3;display:block}.hero-bar-cta{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--ink);background:var(--ink-text);border-radius:var(--radius-sm);flex:none;font-weight:650}.cards{container-type:inline-size}.cards h2{margin-bottom:var(--space-1)}.cards-sub{margin:0 0 var(--space-3)}.card-list{gap:var(--space-3);margin:var(--space-3) 0;padding:0;list-style:none;display:grid}@container (width>=520px){.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}.card:nth-child(odd):last-child{grid-column:1/-1}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:20px}.card.best{border-top:3px solid var(--accent);padding-top:18px}.tag{margin-bottom:var(--space-2);font-size:var(--text-sm);font-variant:small-caps;text-transform:lowercase;letter-spacing:.06em;color:var(--accent);font-weight:650;display:block}.tag.ghost{visibility:hidden}.card h3{font-family:var(--display);margin:0;font-size:17px;font-weight:700}.card-what{margin:var(--space-1) 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.card-saving{font-family:var(--display);color:var(--accent);font-variant-numeric:tabular-nums lining-nums;overflow-wrap:anywhere;margin:0;font-size:30px;font-weight:700;line-height:1.2}.card-saving.loss{color:var(--text)}.card-saving-label{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--text-muted)}.card-facts{margin:0}.card-facts>div{justify-content:space-between;gap:var(--space-3);border-top:1px solid var(--line);font-size:var(--text-sm);padding:9px 0;display:flex}.card-facts dt{color:var(--text-muted)}.card-facts dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.base{justify-content:space-between;gap:var(--space-1) var(--space-3);margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.footnote{margin:var(--space-3) 0;padding-left:var(--space-3);border-left:2px solid var(--line)}.details{margin:var(--space-4) 0}.details>summary{min-height:var(--control-height);cursor:pointer;align-items:center;font-weight:600;display:flex}.details>summary,.more-option>summary,.year>summary,.privacy>summary{list-style:none}.details>summary::-webkit-details-marker{display:none}.more-option>summary::-webkit-details-marker{display:none}.year>summary::-webkit-details-marker{display:none}.privacy>summary::-webkit-details-marker{display:none}.details>summary:after,.more-option>summary:after,.year>summary:after,.privacy>summary:after{content:"";border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);flex:none;width:8px;height:8px;margin:-4px 4px 0 auto;transition:transform .15s ease-out;transform:rotate(45deg)}.details[open]>summary:after,.more-option[open]>summary:after,.year[open]>summary:after,.privacy[open]>summary:after{margin-top:4px;transform:rotate(225deg)}:root{--dock-h:76px}main{padding-bottom:calc(var(--dock-h) + var(--space-4) + env(safe-area-inset-bottom))}html{scroll-padding-bottom:calc(var(--dock-h) + var(--space-4) + env(safe-area-inset-bottom))}@media (width>=1024px){.site-header{--page-max:1280px}html{scroll-padding-bottom:0}main{max-width:1280px;padding-top:var(--space-5)}.layout{gap:var(--space-5);grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start;display:grid}.layout-results{min-width:0}.layout-results>.hero{margin-top:0}.loan-form fieldset,.card,.actions-bar{padding:24px}.card.best{padding-top:22px}.layout-results{align-self:stretch}main{padding-bottom:var(--space-6)}.hero-bar{--bar-h:60px;top:calc(var(--header-h) + var(--space-2));z-index:3;height:var(--bar-h);margin-bottom:calc(-1 * var(--bar-h));box-shadow:0 calc(-1 * var(--space-2)) 0 var(--bg);background:0 0;border-top:0;padding:0;position:sticky;bottom:auto;left:auto;right:auto}.hero-bar:hover{background:0 0}.hero-bar-inner{height:100%;min-height:0}}.label-row,.field>label{align-items:center;gap:var(--space-2);min-height:24px;margin-bottom:var(--space-1);display:flex}.label-row label{margin-bottom:0}.help-btn{width:22px;min-width:0;height:22px;min-height:0;color:var(--text-muted);border-color:var(--border-strong);font-size:var(--text-sm);background:0 0;border-radius:50%;flex:none;padding:0;line-height:1;position:relative}.help-btn:before{content:"";position:absolute;inset:-11px}.popover{max-width:min(360px, calc(100vw - 2 * var(--space-4)));padding:var(--space-4);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius)}.popover::backdrop{background:#0006}.popover h3{margin-top:0}@media (width<=639px){.loan-form fieldset{padding-block:16px}}@media (width<=767px){.popover{box-sizing:border-box;border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:none;margin:0;inset:auto 0 0}}.date-hint{font-family:var(--display);color:var(--text-muted);font-size:14px;font-style:italic;font-weight:400}.rate-group{gap:0 var(--space-4);grid-column:1/-1;grid-template-columns:minmax(0,1fr);display:grid}@container form (width>=320px){.rate-group{grid-template-columns:repeat(2,minmax(0,1fr))}.rate-group>.rate-ref{grid-column:1/-1}}@container (width>=440px){.rate-group{grid-template-columns:repeat(3,minmax(0,1fr))}.rate-group>.rate-ref{grid-column:auto}}.rate-group>.field{grid-row:span 3;grid-template-rows:subgrid;min-width:0;padding-bottom:var(--space-2);grid-template-columns:minmax(0,1fr);display:grid}.rate-hint,.rate-line{grid-column:1/-1;margin:0}.rate-line p{margin:0;font-weight:600}.type-field{grid-column:1/-1}.group-label{margin-top:var(--space-3);margin-bottom:var(--space-1);font-size:var(--text-sm);color:var(--text);font-weight:550;display:block}.segmented{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.seg-item{display:flex;position:relative}.seg-item .help-btn{top:var(--space-2);right:var(--space-2);position:absolute}.seg-item .help-btn:before{inset:-11px}.field .seg-option{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) 44px var(--space-2) var(--space-3);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;flex:1;display:flex}.field .seg-option:has(input:checked){background:var(--surface-2);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.seg-option:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.seg-option input{width:20px;height:20px;min-height:0;accent-color:var(--ink);margin:0}.seg-option strong,.seg-note{display:block}.seg-note{font-size:var(--text-sm);color:var(--text-muted)}.more h2{margin:var(--space-4) 0 var(--space-2);color:var(--text-muted);font-size:14px;font-weight:600}.more-option{background:var(--surface);border:1px solid var(--line);border-top-width:0;border-radius:0;margin:0}.more-option:first-of-type{border-radius:var(--radius) var(--radius) 0 0;border-top-width:1px}.more-option:last-of-type{border-radius:0 0 var(--radius) var(--radius)}.more-option>summary{cursor:pointer;align-items:center;min-height:44px;padding:0 20px;font-weight:600;display:flex}.option-body{padding:0 20px 20px}.option-grid{gap:var(--space-3) var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.loan-form fieldset,.option-grid,.extra-once-row,.rate-change-row{row-gap:0}.loan-form fieldset>.field:not(.type-field),.option-grid>.field,.extra-once-row>.field,.rate-change-row>.field,.row-action{grid-row:span 4;grid-template-rows:subgrid;min-width:0;padding-bottom:var(--space-2);grid-template-columns:minmax(0,1fr);display:grid}.row-action>button{grid-row:2}.chart-head{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.chart-head h2{margin:0}.schedule-wrap{max-height:70vh;overflow:auto}.schedule-wrap .schedule-table thead th{z-index:2;background:var(--surface);position:sticky;top:0}.schedule-wrap .schedule-table td:first-child,.schedule-wrap .schedule-table thead th:first-child{z-index:1;background:inherit;position:sticky;left:0}.schedule-wrap .schedule-table thead th:first-child{background:var(--surface);z-index:3}.schedule-table tbody tr.overpaid,.schedule-table tbody tr.overpaid:hover{background:color-mix(in srgb, var(--accent) calc(var(--op,12) * 1%), var(--surface))}.schedule-table tbody tr.overpaid>:first-child{box-shadow:inset 3px 0 0 var(--accent)}.schedule-table tr.overpaid .overpay{color:var(--accent);font-weight:650}.schedule-legend{align-items:center;gap:var(--space-2);display:flex}.schedule-swatch{background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, var(--surface)), color-mix(in srgb, var(--accent) 26%, var(--surface)));width:40px;height:14px;box-shadow:inset 3px 0 0 var(--accent);border:1px solid var(--line);flex:none}.year{margin-bottom:var(--space-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none}.year>summary{align-items:center;gap:var(--space-1) var(--space-3);min-height:var(--control-height);padding:var(--space-2) 20px;cursor:pointer;flex-wrap:wrap;display:flex}.year-sum{font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.year .table-wrap{padding:0 var(--space-2) var(--space-2)}.year .schedule-table tbody th{background:inherit;position:sticky;left:0}.actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}button.primary{color:var(--ink-text);background:var(--ink);border-color:var(--ink)}button.text-btn{color:var(--text-muted);text-underline-offset:3px;background:0 0;border-color:#0000;text-decoration:underline}button.text-btn:hover{color:var(--text)}.actions-bar{margin:var(--space-5) 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:20px}.privacy>summary{cursor:pointer;min-height:44px;font-size:var(--text-sm);color:var(--text-muted);align-items:center;font-weight:600;display:flex}.banner{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.assumptions{padding:0 20px var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none}.toast{left:var(--space-4);right:var(--space-4);bottom:calc(var(--dock-h) + env(safe-area-inset-bottom) + var(--space-3));z-index:20;justify-content:space-between;align-items:center;gap:var(--space-3);max-width:420px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);margin:0 auto;display:flex;position:fixed;box-shadow:0 6px 20px #1d1b172e}@media (width>=1024px){.toast{bottom:var(--space-4);left:auto;right:var(--space-4);margin:0}}.results-table thead th{white-space:normal}.results-table th[scope=row]{background:inherit;position:sticky;left:0}.chart-legend{gap:var(--space-1) var(--space-4);margin:var(--space-2) 0;font-size:var(--text-sm);color:var(--text-muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.chart-legend li{align-items:center;gap:var(--space-2);display:inline-flex}.chart-legend .swatch{box-sizing:border-box;flex:none;width:10px;height:10px}.chart-legend .swatch[style*=dashed]{width:14px;height:0}.chart .recharts-text{font-size:var(--text-sm)}.actions-bar .actions{gap:var(--space-3)}.actions-bar>.hint{margin-top:var(--space-3)}@media (width<=639px){.actions-bar .actions>button{flex:100%}}
