:root{color:#0f172a;background:#f8fafc;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}body{margin:0}.app{max-width:1100px;margin:0 auto;padding:24px 16px 48px}h1{margin:0 0 4px}header p{color:#475569;margin:0 0 20px}.verdict{border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:16px}.verdict.invest{color:#14532d;background:#dcfce7}.verdict.paydown{color:#1e3a8a;background:#dbeafe}.scenarios{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:20px;display:grid}.scenario{background:#fff;border:1px solid #e2e8f0;border-top:4px solid;border-radius:8px;padding:12px 16px}.scenario.paydown{border-top-color:#2563eb}.scenario.invest{border-top-color:#16a34a}.scenario.payoff{border-top-color:#d97706}.scenario h2{margin:0 0 8px;font-size:16px}.scenario dl{grid-template-columns:1fr auto;gap:6px 12px;margin:0;display:grid}.scenario dt{color:#64748b}.scenario dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.chart{background:#fff;border:1px solid #e2e8f0;border-radius:8px;height:480px;padding:12px;position:relative}.tabs{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.tabs button{font:inherit;color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px}.tabs button.active{color:#0f172a;border-bottom-color:#0f172a;font-weight:600}.note{color:#64748b;margin:-8px 0 20px;font-size:12px}.break-even{margin-top:6px;font-size:14px}.section{margin:28px 0 4px;font-size:17px}.section+.note{margin:0 0 10px}.chart-small{height:320px}.net-dollars .table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:12px;overflow-x:auto}.net-dollars table{table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:560px}.net-dollars th,.net-dollars td{white-space:nowrap;border-bottom:1px solid #f1f5f9;padding:8px 12px}.net-dollars thead th{color:#64748b;text-align:right;background:#f8fafc;font-size:12px}.net-dollars thead th:first-child,.net-dollars tbody th{text-align:left;font-weight:400}.net-dollars tbody th small{color:#94a3b8;white-space:normal;font-size:11px;display:block}.net-dollars td{text-align:right}.net-dollars th:first-child{white-space:normal;width:40%}.net-dollars tr.total th,.net-dollars tr.total td{border-top:2px solid #e2e8f0;font-weight:700}.net-dollars td.pos{color:#15803d}.net-dollars td.neg{color:#1d4ed8}.opportunity{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:12px;padding:4px 16px}.opportunity dl{margin:0}.opportunity .line{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;display:flex}.opportunity .line.total{border-top:2px solid #e2e8f0;border-bottom:none;font-weight:700}.opportunity dt small{color:#94a3b8;font-size:11px;font-weight:400;display:block}.opportunity dd{font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.opportunity dd.pos{color:#15803d}.opportunity dd.neg{color:#1d4ed8}.inputs{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:16px;margin-bottom:20px;display:grid}.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px}.card>header h2{margin:0;font-size:15px}.card>header p{color:#64748b;margin:2px 0 14px;font-size:12px}.fields{grid-template-columns:1fr 1fr;gap:14px 12px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field.wide,.toggle.wide{grid-column:1/-1}.label{color:#334155;font-size:13px;font-weight:600}.hint{color:#64748b;font-size:12px}.input{background:#fff;border:1px solid #cbd5e1;border-radius:8px;align-items:center;display:flex;overflow:hidden}.input:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.input input,.input select{min-width:0;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:9px 10px}.adorn{color:#64748b;white-space:nowrap;padding:0 10px;font-size:13px}.adorn:first-child{padding-right:0}.adorn:last-child{padding-left:0}.segmented{border:1px solid #cbd5e1;border-radius:8px;display:flex;overflow:hidden}.segmented button{font:inherit;color:#334155;cursor:pointer;background:#fff;border:none;border-left:1px solid #e2e8f0;flex:1;padding:8px 0}.segmented button:first-child{border-left:none}.segmented button.active{color:#fff;background:#0f172a;font-weight:600}.slider{align-items:center;gap:12px;display:flex}.slider input{accent-color:#16a34a;flex:1}.slider-value{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5em;font-weight:600}.toggle{cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.toggle input{accent-color:#16a34a;margin-top:2px}.toggle>span{flex-direction:column;gap:3px;display:flex}@media (width<=420px){.fields{grid-template-columns:1fr}}.chart-wrap{position:relative}.chart-wrap .reset-zoom{z-index:1;font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:4px 10px;font-size:12px;position:absolute;top:10px;right:12px}.chart-hint{color:#94a3b8;text-align:right;margin:4px 0 0;font-size:11px}.inputs>.card:first-child .slider input,.inputs>.card:first-child .toggle input{accent-color:#2563eb}.rates{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;grid-column:1/-1;gap:6px;padding:10px 12px;display:flex}.rates dl{gap:4px;margin:0;display:grid}.rates dl>div{justify-content:space-between;gap:12px;font-size:13px;display:flex}.rates dt{color:#64748b}.rates dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.growth{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:12px;padding:10px 12px;display:grid}.growth>div{flex-direction:column;gap:2px;display:flex}.growth-value{color:#15803d;font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.growth-value.cost{color:#1d4ed8}.hint.wide{grid-column:1/-1}.tone-invest .slider input{accent-color:#15803d}.outcome-stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:12px;display:grid}.outcome-stat{background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:2px;padding:12px;display:flex}.outcome-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.outcome-value.pos{color:#15803d}.outcome-value.neg{color:#1d4ed8}.outcomes .note{margin-top:8px}
