:root{--text:#475569;--text-h:#0f172a;--muted:#64748b;--bg:#f1f5f9;--surface:#fff;--border:#e2e8f0;--brand:#2563eb;--brand-dark:#1d4ed8;--brand-bg:#eff6ff;--accent:#f97316;--accent-bg:#fff7ed;--warn:#dc2626;--ok:#16a34a;--shadow-sm:0 1px 2px #0f172a0f;--shadow:0 6px 20px -8px #0f172a40;--radius:14px;--sans:system-ui, "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Segoe UI", Roboto, sans-serif;font:16px/1.6 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*{box-sizing:border-box}body{margin:0}#root{max-width:860px;min-height:100svh;margin:0 auto}h1,h2,h3{color:var(--text-h);margin:0;font-weight:700}p{margin:0}.app{flex-direction:column;gap:16px;padding:16px 16px 48px;display:flex}.hero{text-align:center;padding:24px 8px 8px}.hero__title{letter-spacing:-.02em;font-size:28px;line-height:1.3}.hero__lead{color:var(--muted);text-align:left;margin-top:12px;font-size:15px}.hero__lead strong{color:var(--brand-dark)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.panel--result{border-color:var(--brand);box-shadow:var(--shadow)}.panel__title{margin-bottom:14px;font-size:17px}.panel__hint{color:var(--muted);margin-top:12px;font-size:13px}.presets{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.preset{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;font:inherit;color:var(--text);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:12px 6px;transition:all .12s;display:flex;position:relative}.preset:hover{border-color:var(--brand)}.preset--active{border-color:var(--brand);background:var(--brand-bg);box-shadow:0 0 0 3px #2563eb26}.preset__icon{font-size:24px}.preset__label{color:var(--text-h);text-align:center;font-size:12px;font-weight:600}.preset__badge{background:var(--accent);color:#fff;white-space:nowrap;border-radius:8px;padding:2px 5px;font-size:9px;font-weight:700;position:absolute;top:-8px;right:-4px}.slider{align-items:center;gap:14px;display:flex}.slider input[type=range]{accent-color:var(--brand);flex:1;height:6px}.slider__value{text-align:center;background:var(--brand-bg);min-width:84px;color:var(--brand-dark);border-radius:10px;padding:8px 6px;font-size:13px}.slider__value strong{font-size:22px}.details{flex-direction:column;gap:8px;display:flex}.section{border:1px solid var(--border);border-radius:10px;overflow:hidden}.section__summary{cursor:pointer;color:var(--text-h);-webkit-user-select:none;user-select:none;background:#f8fafc;padding:12px 14px;font-size:14px;font-weight:600}.section[open] .section__summary{border-bottom:1px solid var(--border)}.section__grid{grid-template-columns:1fr 1fr;gap:12px;padding:14px;display:grid}.field{flex-direction:column;gap:4px;display:flex}.field__label{color:var(--muted);font-size:12px;font-weight:600}.field__inputwrap{border:1.5px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;display:flex;overflow:hidden}.field__inputwrap:focus-within{border-color:var(--brand)}.field__input{width:100%;font:inherit;text-align:right;color:var(--text-h);background:0 0;border:0;outline:none;flex:1;padding:9px 10px}.field__suffix{color:var(--muted);white-space:nowrap;padding:0 10px;font-size:12px}.field__select{border:1.5px solid var(--border);font:inherit;background:var(--surface);color:var(--text-h);border-radius:8px;padding:9px 10px}.field__select:focus{border-color:var(--brand);outline:none}.field__hint{color:var(--muted);font-size:11px}.field--check{color:var(--text-h);flex-direction:row;grid-column:1/-1;align-items:center;gap:8px;font-size:13px}.field--check input{width:18px;height:18px;accent-color:var(--brand)}.field--check-hl{background:#fff7ed;border-radius:8px;margin:-4px;padding:8px}.flag{cursor:help;margin-left:4px;font-size:12px}.flag--check{color:var(--accent);font-weight:700}.flag--approx{color:var(--muted)}.flaglegend{color:var(--muted);border:1px solid var(--border);background:#f8fafc;border-radius:8px;flex-wrap:wrap;gap:6px 16px;padding:8px 10px;font-size:12px;display:flex}.flaglegend .flag{margin-left:0;margin-right:2px}.taxnote{color:var(--text-h);background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:10px 12px;font-size:12px;line-height:1.5}.result{flex-direction:column;gap:18px;display:flex}.result__cards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.card{border:1px solid var(--border);background:#f8fafc;border-radius:12px;flex-direction:column;gap:2px;padding:14px;display:flex}.card--primary{background:var(--brand);border-color:var(--brand)}.card--primary .card__label,.card--primary .card__sub{color:#fffc}.card--primary .card__value{color:#fff}.card--accent{background:var(--accent-bg);border-color:#fed7aa}.card--accent .card__value{color:var(--accent)}.card__label{color:var(--muted);font-size:12px;font-weight:600}.card__value{color:var(--text-h);letter-spacing:-.02em;font-size:22px;font-weight:800}.card__sub{color:var(--muted);font-size:11px}.loanline{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;flex-wrap:wrap;gap:8px 18px;padding:12px 14px;font-size:13px;display:flex}.loanline strong{color:var(--text-h)}.loanline .warn{color:var(--warn)}.chart__title,.realcost__title{margin-bottom:8px;font-size:15px}.breakdown{border-collapse:collapse;width:100%;font-size:14px}.breakdown th,.breakdown td{border-bottom:1px solid var(--border);padding:9px 8px}.breakdown thead th{text-align:right;color:var(--muted);font-size:12px}.breakdown thead th:first-child{text-align:left}.breakdown td:first-child{text-align:left;color:var(--text-h)}.breakdown td{text-align:right;font-variant-numeric:tabular-nums}.breakdown tfoot td{color:var(--text-h);border-top:2px solid var(--text-h);border-bottom:none;font-weight:800}.realcost{border:1px solid var(--border);background:#f8fafc;border-radius:12px;padding:16px}.stackbar{border-radius:8px;height:26px;margin-bottom:12px;display:flex;overflow:hidden}.stackbar__seg{min-width:2px}.realcost__legend{flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.realcost__legend li{align-items:center;gap:6px;display:flex}.realcost__legend strong{color:var(--text-h)}.realcost__total{margin-left:auto;font-weight:700}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.realcost__note{color:var(--muted);margin-top:12px;font-size:12px}.affiliate{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(135deg,#eff6ff,#f0fdfa);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.affiliate__title{color:var(--text-h);font-size:14px;font-weight:700}.affiliate__desc{color:var(--muted);margin-top:2px;font-size:12px}.affiliate__cta{background:var(--accent);color:#fff;font:inherit;cursor:pointer;box-shadow:var(--shadow-sm);border:0;border-radius:10px;flex-shrink:0;padding:11px 16px;font-size:13px;font-weight:700;position:relative}.affiliate__cta:disabled{opacity:.95;cursor:default}.affiliate__pr{background:var(--text-h);color:#fff;border-radius:6px;padding:1px 4px;font-size:9px;position:absolute;top:-7px;right:-7px}.affiliates{flex-direction:column;gap:10px;display:flex}.affiliates__title{margin-bottom:2px;font-size:17px}.help{flex-direction:column;gap:8px;display:flex}.help__item{border:1px solid var(--border);border-radius:10px;overflow:hidden}.help__summary{cursor:pointer;color:var(--text-h);-webkit-user-select:none;user-select:none;background:#f8fafc;padding:12px 14px;font-size:14px;font-weight:600}.help__item[open] .help__summary{border-bottom:1px solid var(--border)}.help__body{padding:14px;font-size:14px;line-height:1.7}.help__steps{flex-direction:column;gap:10px;margin:0;padding-left:18px;display:flex}.help__list{flex-direction:column;gap:10px;margin:8px 0 0;padding-left:4px;list-style:none;display:flex}.help__dl{margin:0}.help__dl dt{color:var(--text-h);margin-top:12px;font-weight:700}.help__dl dt:first-child{margin-top:0}.help__dl dd{color:var(--text);margin:2px 0 0}.help__qa{flex-direction:column;gap:6px;display:flex}.help__q{color:var(--text-h);margin-top:8px;font-weight:700}.help__q:first-child{margin-top:0}.help__a{color:var(--text)}.help__note{color:var(--muted);margin-top:4px;font-size:12px;line-height:1.6}.foot{color:var(--muted);text-align:center;padding:8px 4px;font-size:11px;line-height:1.5}@media (width<=560px){.hero__title{font-size:22px}.result__cards,.section__grid{grid-template-columns:1fr}.affiliate{text-align:center;flex-direction:column;align-items:stretch}.affiliate__cta{width:100%}}
