.heater-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 480px) { .heater-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 700px) { .heater-grid { grid-template-columns: repeat(3, 1fr); } }

.heater-card {
  border: 2px solid var(--border); border-radius: var(--r);
  padding: 14px; cursor: pointer; transition: all .15s;
  background: #fafaf8; position: relative; display: block;
}
.heater-card:hover    { border-color: var(--accent); }
.heater-card.heater-card input[type="radio"] { display: none; }
.heater-check { position: absolute; top:10px; right:12px; color:var(--accent); font-weight:700; opacity:0; transition: opacity .15s; }
.heater-card.selected .heater-check { opacity:1; }
.heater-icon { font-size:22px; margin-bottom:5px; }
.heater-name { font-size:13px; font-weight:700; color:var(--ink); margin-bottom:3px; }
.heater-price { font-family:'DM Mono',monospace; font-size:11px; color:var(--accent); margin-bottom:2px; }
.heater-feature { font-size:12px; color:var(--ink3); }

.compare-cards { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom:14px; }
@media (min-width: 520px) { .compare-cards { grid-template-columns: 1fr 1fr 1fr; } }
.compare-card {
  background: var(--white); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: 16px; text-align:center;
}
.compare-card.highlight { border-color: var(--accent); border-width: 2px; }
.compare-card .badge-top {
  background: var(--accent); color:#fff; font-size:12px; font-weight:700;
  padding:2px 10px; border-radius:var(--r-full); display:inline-block; margin-bottom:8px;
}
.compare-type { font-size:13px; font-weight:700; color:var(--ink); margin-bottom:4px; }
.compare-cost { font-family:'DM Mono',monospace; font-size:16px; font-weight:700; color:var(--accent); margin-bottom:4px; }
.compare-run  { font-family:'DM Mono',monospace; font-size:12px; color:var(--green); }
.compare-note { font-size:12px; color:var(--ink3); margin-top:4px; }

.result-big {
  background: var(--primary);
  border-radius:var(--r-lg); padding:22px 16px;
  margin-bottom:14px; position:relative; overflow:hidden;
}
.result-big::before {
  content:''; position:absolute; top:-40px; right:-40px;
  width:160px; height:160px;
  background:radial-gradient(circle,rgba(107,159,212,.25),transparent 70%);
  pointer-events:none;
}
.rb-val   { font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(28px,7vw,48px); font-weight:900; color:#fff; line-height:1.1; margin-bottom:4px; }
.rb-val em { color:var(--primary-mid); font-style:normal; font-size:.55em; }
@media (min-width:480px) { }