.rate-tabs { display:grid; grid-template-columns:repeat(4,1fr); gap:6px; margin-bottom:12px; }
.rate-tab {
  padding:9px 6px; border:2px solid var(--border);
  border-radius:var(--r); font-size:12px; font-weight:700;
  cursor:pointer; text-align:center; transition:all .15s; background:var(--white);
}
.rate-tab:hover { border-color:var(--accent); }
.rate-tab.rate-tab-price { font-family:'DM Mono',monospace; font-size:12px; color:var(--ink3); margin-top:2px; }
.rate-tab.active .rate-tab-price { color:var(--accent); }

.compare-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:14px; }
.cmp-card { background:var(--white); border:1px solid var(--border); border-radius:var(--r); padding:12px 10px; text-align:center; }
.cmp-card.best { border-color:var(--green); background:var(--green-light); }
.cmp-label { font-size:12px; color:var(--ink3); margin-bottom:4px; }
.cmp-val { font-family:'DM Mono',monospace; font-size:13px; font-weight:700; color:var(--ink); }
.cmp-card.best .cmp-val { color:var(--green); }
.cmp-note { font-size:11px; color:var(--ink3); margin-top:3px; }
.cmp-badge { display:inline-block; background:var(--green); color:#fff; font-size:11px; font-weight:700; padding:1px 6px; border-radius:var(--r-full); margin-top:3px; }

.hayami-wrap { overflow-x:auto; }
.hayami-table { width:100%; border-collapse:collapse; font-size:12px; min-width:420px; }
.hayami-table th { background:#fafaf8; padding:9px 10px; border-bottom:2px solid var(--border2); font-weight:700; color:var(--ink2); text-align:center; white-space:nowrap; }
.hayami-table td { padding:9px 10px; border-bottom:1px solid var(--border); text-align:right; font-family:'DM Mono',monospace; font-size:12px; }
.hayami-table td:first-child { text-align:left; font-family:'Noto Sans JP',sans-serif; font-weight:700; color:var(--ink); }
.hayami-table tr:hover td { background:#fafaf8; }
.hayami-table tr.hl td { background:var(--accent-light); }

.prepay-result {
  background:var(--green-light); border:1px solid rgba(42,107,60,.25);
  border-radius:var(--r); padding:14px 16px; margin-top:12px;
  display:flex; align-items:center; gap:12px;
}
.pr-save { font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(20px,5vw,28px); font-weight:900; color:var(--green); }
.pr-save em { font-style:normal; font-size:.55em; }