/* Free tools */
.tools-group{margin:1.2rem 0 1.8rem}
.tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.8rem}
.tool-card{display:flex;flex-direction:column;gap:.28rem;background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:1rem;color:inherit;text-decoration:none}
.tool-card:hover{border-color:#d9c9bd}
.tool-card strong{font-size:1.08rem;line-height:1.3}
.tool-card span:last-child{color:var(--muted);font-size:.95rem;line-height:1.45}
.mesh-tool{display:grid;grid-template-columns:minmax(16rem,.9fr) minmax(0,1.3fr);
  gap:1rem;align-items:start;margin:1.2rem 0 1.8rem}
.mesh-form,.mesh-result{background:var(--card);border:1px solid var(--line);border-radius:8px}
.mesh-form{padding:1rem;display:grid;gap:.9rem}
.field-row{display:grid;gap:.3rem}
.field-row label,.mesh-checks legend{font-weight:700;font-size:.92rem}
.mesh-form input[type="number"],.mesh-form select{width:100%;min-height:44px;border:1px solid var(--line);
  border-radius:8px;background:#fff;color:var(--ink);font:inherit;padding:.52rem .65rem}
.mesh-form input:focus,.mesh-form select:focus{outline:2px solid color-mix(in srgb,var(--accent) 28%,transparent);
  border-color:var(--accent)}
.input-suffix{display:flex;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.input-suffix input{border:0;border-radius:0}
.input-suffix span{padding:0 .7rem;color:var(--muted);white-space:nowrap}
.mesh-checks{border:0;padding:0;margin:.1rem 0 0;display:grid;gap:.35rem}
.mesh-checks label{display:flex;align-items:center;gap:.5rem;min-height:34px;color:var(--ink)}
.mesh-checks input{width:1.05rem;height:1.05rem;accent-color:var(--accent)}
.mesh-result{padding:1rem}
.mesh-result h2{font-size:1.05rem;margin:0 0 .45rem;border:0;padding:0}
.mesh-result-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;
  border-bottom:1px solid var(--line);padding-bottom:.75rem;margin-bottom:.8rem}
.mesh-kicker{margin:0;color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.mesh-count{margin:0;text-align:right;display:flex;flex-direction:column;line-height:1.25}
.mesh-count strong{font-size:1.8rem}
.mesh-count span{color:var(--muted);font-size:.9rem}
.mesh-map{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.mesh-map svg{display:block;width:100%;height:auto}
.mesh-house{fill:#fdf9f5;stroke:#d9c9bd;stroke-width:2}
.mesh-wall{fill:none;stroke:#e7dacf;stroke-width:2;stroke-dasharray:7 8}
.mesh-room{font-size:15px;fill:#6b5d54}
.mesh-heat{fill:#1b7f4b;opacity:.13}
.mesh-node circle{fill:#ff4500;stroke:#fff;stroke-width:5}
.mesh-node text{fill:#fff;text-anchor:middle;font-weight:700;font-size:15px}
.mesh-advice{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;margin-top:1rem}
.mesh-advice ul{margin:.2rem 0 0;padding-left:1.1rem}
.mesh-advice li{margin:.28rem 0}
.mesh-advice p{margin:.15rem 0 .85rem;color:var(--muted)}
.mesh-primary-cta{margin:.1rem 0 0}
.mesh-noscript{margin:.9rem 0 0;padding:.7rem .8rem;border:1px solid var(--line);
  border-radius:8px;background:#fdf9f5;color:var(--muted);font-size:.92rem;line-height:1.45}
@media(max-width:46rem){
  .mesh-tool,.mesh-advice{grid-template-columns:1fr}
  .mesh-count{text-align:left}
  .mesh-result-head{flex-direction:column}
}
