/* Zonnepanelen Tools v1.0.0 — scoped styles */
.zpt-app{--zpt-accent:#16a34a;--zpt-accent-d:#15803d;--zpt-bg:#f8fafc;--zpt-line:#e2e8f0;--zpt-ink:#0f172a;--zpt-mut:#64748b;
  font-size:16px;line-height:1.5;color:var(--zpt-ink);max-width:760px;margin:1.5em auto}
.zpt-card{background:#fff;border:1px solid var(--zpt-line);border-radius:14px;padding:22px;box-shadow:0 1px 3px rgba(15,23,42,.06)}
.zpt-card h3{margin:0 0 4px;font-size:1.25em;line-height:1.3}
.zpt-sub{color:var(--zpt-mut);font-size:.92em;margin:0 0 16px}
.zpt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px 18px;margin-bottom:6px}
.zpt-field{display:flex;flex-direction:column;gap:4px}
.zpt-field label{font-size:.85em;font-weight:600;color:#334155}
.zpt-field .zpt-hint{font-size:.78em;color:var(--zpt-mut);font-weight:400}
.zpt-inwrap{display:flex;align-items:center;gap:8px}
.zpt-app input[type=number],.zpt-app select{width:100%;padding:9px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:1em;background:#fff;color:var(--zpt-ink)}
.zpt-app input[type=number]:focus,.zpt-app select:focus{outline:2px solid var(--zpt-accent);outline-offset:1px;border-color:var(--zpt-accent)}
.zpt-app input[type=range]{width:100%;accent-color:var(--zpt-accent)}
.zpt-suffix{color:var(--zpt-mut);font-size:.85em;white-space:nowrap}
.zpt-check{display:flex;align-items:center;gap:8px;font-size:.9em;font-weight:600;color:#334155;cursor:pointer}
.zpt-check input{width:18px;height:18px;accent-color:var(--zpt-accent)}
.zpt-results{background:var(--zpt-bg);border:1px solid var(--zpt-line);border-radius:12px;padding:16px 18px;margin-top:14px}
.zpt-res-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.zpt-res{display:flex;flex-direction:column;gap:2px}
.zpt-res .zpt-val{font-size:1.45em;font-weight:800;color:var(--zpt-accent-d);line-height:1.15}
.zpt-res .zpt-lbl{font-size:.8em;color:var(--zpt-mut)}
.zpt-res.zpt-neg .zpt-val{color:#b91c1c}
.zpt-bars{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.zpt-bar{display:grid;grid-template-columns:150px 1fr 90px;align-items:center;gap:10px;font-size:.85em}
.zpt-bar .zpt-track{background:#e2e8f0;border-radius:6px;height:14px;overflow:hidden}
.zpt-bar .zpt-fill{height:100%;background:var(--zpt-accent);border-radius:6px;transition:width .25s}
.zpt-bar.zpt-alt .zpt-fill{background:#94a3b8}
.zpt-bar .zpt-bval{text-align:right;font-weight:700;white-space:nowrap}
.zpt-verdict{margin-top:12px;padding:12px 14px;border-radius:10px;font-size:.92em;background:#ecfdf5;border:1px solid #a7f3d0}
.zpt-verdict.zpt-warn{background:#fffbeb;border-color:#fde68a}
.zpt-verdict.zpt-info{background:#eff6ff;border-color:#bfdbfe}
.zpt-note{font-size:.78em;color:var(--zpt-mut);margin-top:12px}
.zpt-cta{display:inline-block;margin-top:14px;padding:11px 22px;background:var(--zpt-accent);color:#fff!important;border-radius:9px;font-weight:700;text-decoration:none;font-size:.95em}
.zpt-cta:hover{background:var(--zpt-accent-d);color:#fff}
.zpt-items{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.zpt-item{display:grid;grid-template-columns:1fr 110px;gap:10px;align-items:center;padding:7px 10px;border:1px solid var(--zpt-line);border-radius:8px;font-size:.9em}
.zpt-item label{display:flex;gap:8px;align-items:center;font-weight:600;cursor:pointer}
.zpt-item input[type=checkbox]{width:17px;height:17px;accent-color:var(--zpt-accent)}
.zpt-item input[type=number]{padding:5px 8px;font-size:.9em}
.zpt-sublist{margin:8px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.zpt-sublist li{padding:10px 12px;border:1px solid var(--zpt-line);border-radius:9px;font-size:.9em;background:#fff}
.zpt-sublist li strong{display:block;margin-bottom:2px}
.zpt-tag{display:inline-block;font-size:.72em;font-weight:700;padding:2px 8px;border-radius:99px;margin-left:6px;vertical-align:middle}
.zpt-tag.ok{background:#dcfce7;color:#166534}
.zpt-tag.no{background:#fee2e2;color:#991b1b}
.zpt-tag.mid{background:#fef9c3;color:#854d0e}
@media(max-width:520px){.zpt-bar{grid-template-columns:110px 1fr 80px}.zpt-card{padding:16px}}
