<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa Projektowanie ogrzewania - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/projektowanie-ogrzewania/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/projektowanie-ogrzewania/</link>
	<description>Ogrzewanie podłogowe i systemy HVAC oparte na obliczeniach.</description>
	<lastBuildDate>Thu, 29 Oct 2026 19:21:08 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2026/10/Projekt-Ogrzewania-favicon-512-100x100.webp</url>
	<title>Archiwa Projektowanie ogrzewania - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/projektowanie-ogrzewania/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Jaki przepływ na podłogówce? Ile l/min na jedną pętlę.</title>
		<link>https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce-ile-l-min-na-jedna-petle/</link>
					<comments>https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce-ile-l-min-na-jedna-petle/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 04 Oct 2026 06:45:43 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory HVAC]]></category>
		<category><![CDATA[Ogrzewanie]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy obiegowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Regulacja ogrzewania podłogoweg]]></category>
		<category><![CDATA[Rotametry]]></category>
		<category><![CDATA[Rozdzielacze ogrzewania podłogowego]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7801</guid>

					<description><![CDATA[<p>Nie każda pętla ogrzewania podłogowego powinna pracować z takim samym przepływem. **Jaki przepływ na podłogówce** ustawić, aby instalacja działała prawidłowo i każde pomieszczenie otrzymało odpowiednią ilość ciepła? W poradniku pokazuję, od czego zależy wartość l/min, jak obliczyć przepływ na podstawie mocy pętli i różnicy temperatur ΔT oraz dlaczego długość rury sama nie wyznacza właściwej nastawy. Znajdziesz tu praktyczne przykłady, wskazówki dotyczące rotametrów oraz kalkulator pozwalający obliczyć przepływ jednej pętli i całego rozdzielacza.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce-ile-l-min-na-jedna-petle/">Jaki przepływ na podłogówce? Ile l/min na jedną pętlę.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-flow-guide{--navy:#0b2536;--navy2:#143d51;--cyan:#28c5d5;--cyan-dark:#087a95;--orange:#f76b47;--ink:#142d3d;--copy:#3d5869;--muted:#607887;--line:#cfdfe6;--soft:#f2f8fa;--white:#fff;color:var(--ink);font:16px/1.65 Arial,Helvetica,sans-serif;max-width:1360px;width:100%;margin:0 auto;overflow-wrap:anywhere}
  #rk-flow-guide,#rk-flow-guide *{box-sizing:border-box;min-width:0}
  #rk-flow-guide a{color:var(--cyan-dark);text-underline-offset:3px}
  #rk-flow-guide a:hover{color:#b84831}
  #rk-flow-guide :is(a,button,input,select,summary):focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
  #rk-flow-guide button,#rk-flow-guide input,#rk-flow-guide select{font:inherit}
  #rk-flow-guide img{display:block;max-width:100%;height:auto}
  #rk-flow-guide [hidden]{display:none!important}
  #rk-flow-guide .rk-shell{background:#fff;border:1px solid var(--line);box-shadow:0 20px 58px rgba(11,37,54,.11);overflow:hidden}
  #rk-flow-guide .rk-hero{background:radial-gradient(circle at 93% 110%,rgba(40,197,213,.23) 0 18%,transparent 18.2%),linear-gradient(125deg,#0b2536,#16465b 70%,#096271);color:#fff;padding:62px 58px 54px}
  #rk-flow-guide .rk-kicker,#rk-flow-guide .rk-eyebrow{display:block;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900}
  #rk-flow-guide .rk-kicker{color:#7ee9ef;margin-bottom:15px}
  #rk-flow-guide .rk-hero-title{font-size:clamp(2.35rem,5.3vw,4.9rem);line-height:1.06;letter-spacing:-.04em;font-weight:900;margin:0;max-width:1150px;color:#fff}
  #rk-flow-guide .rk-hero-title span{color:#76e9f0}
  #rk-flow-guide .rk-hero-lead{font-size:clamp(1.08rem,1.9vw,1.4rem);color:#e2f0f3;max-width:1050px;margin:22px 0 0}
  #rk-flow-guide .rk-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:27px}
  #rk-flow-guide .rk-tags span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.28);color:#fff;border-radius:999px;padding:7px 13px;font-size:.8rem;font-weight:800}
  #rk-flow-guide .rk-meta{display:flex;flex-wrap:wrap;gap:9px 25px;color:#c8dde3;font-size:.84rem;margin-top:29px}
  #rk-flow-guide .rk-meta strong{color:#fff}
  #rk-flow-guide .rk-nav{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:19px 30px}
  #rk-flow-guide .rk-nav strong{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-right:5px}
  #rk-flow-guide .rk-nav a{background:#eef5f7;color:var(--ink);border-radius:999px;padding:7px 11px;text-decoration:none;font-size:.75rem;font-weight:800}
  #rk-flow-guide .rk-nav a:hover{background:#d9f8fa;color:#065d72}
  #rk-flow-guide .rk-section{padding:62px 58px}
  #rk-flow-guide .rk-section+.rk-section{border-top:1px solid var(--line)}
  #rk-flow-guide .rk-section.rk-soft{background:var(--soft)}
  #rk-flow-guide .rk-section.rk-dark{background:var(--navy);color:#fff}
  #rk-flow-guide .rk-eyebrow{color:var(--cyan-dark);margin-bottom:10px}
  #rk-flow-guide .rk-dark .rk-eyebrow{color:#83ebef}
  #rk-flow-guide h2,#rk-flow-guide .rk-cta-title{font-size:clamp(1.94rem,3.75vw,3.5rem);letter-spacing:-.035em;line-height:1.11;font-weight:900;margin:0;color:var(--ink);max-width:1050px}
  #rk-flow-guide h3{font-size:1.18rem;line-height:1.32;color:var(--ink);margin:0 0 8px}
  #rk-flow-guide h4{font-size:1rem;line-height:1.35;color:var(--ink);margin:0 0 7px}
  #rk-flow-guide .rk-dark h2,#rk-flow-guide .rk-dark h3{color:#fff}
  #rk-flow-guide p{color:var(--copy);margin:16px 0 0}
  #rk-flow-guide .rk-dark p{color:#d0e0e7}
  #rk-flow-guide p strong,#rk-flow-guide li strong{color:var(--ink)}
  #rk-flow-guide .rk-dark p strong{color:#fff}
  #rk-flow-guide .rk-lead{font-size:clamp(1.03rem,1.6vw,1.23rem);line-height:1.7;max-width:1100px;margin-top:18px}
  #rk-flow-guide .rk-answer{background:linear-gradient(125deg,#e3f9fb,#f9fcfd);border:1px solid #a2dde6;border-left:7px solid var(--cyan);border-radius:17px;margin-top:27px;padding:25px}
  #rk-flow-guide .rk-answer strong{display:block;font-size:1.17rem;color:var(--ink);line-height:1.48}
  #rk-flow-guide .rk-answer p{margin-top:8px}
  #rk-flow-guide .rk-grid2,#rk-flow-guide .rk-grid3{display:grid;gap:17px;margin-top:27px}
  #rk-flow-guide .rk-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rk-flow-guide .rk-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #rk-flow-guide .rk-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
  #rk-flow-guide .rk-card p{margin:0}
  #rk-flow-guide .rk-badge{display:inline-flex;justify-content:center;align-items:center;background:#dcf7fa;color:#07657c;font-size:.79rem;font-weight:900;border-radius:9px;padding:5px 10px;min-height:35px;margin-bottom:12px}
  #rk-flow-guide .rk-note{background:#fff5e3;border-left:6px solid #e9af32;border-radius:13px;padding:17px 20px;margin-top:24px;color:#54421d}
  #rk-flow-guide .rk-note p{color:inherit;margin:0}
  #rk-flow-guide .rk-note-alert{background:#fff0eb;border-color:var(--orange);color:#733d2d}
  #rk-flow-guide .rk-dark .rk-note-alert p strong{color:#733d2d}
  #rk-flow-guide .rk-note-good{background:#e9f9f4;border-color:#32cda3;color:#165946}
  #rk-flow-guide ul,#rk-flow-guide ol{color:var(--copy);padding-left:24px}
  #rk-flow-guide li+li{margin-top:8px}
  #rk-flow-guide .rk-formula{background:#eaf7f9;color:#075b72;border:1px solid #b6dfe6;border-radius:12px;font:800 1rem/1.55 Consolas,Monaco,monospace;padding:14px 17px;margin-top:18px;overflow-wrap:anywhere}
  #rk-flow-guide .rk-table-wrap{overflow-x:auto;margin-top:27px}
  #rk-flow-guide table{border-collapse:separate;border-spacing:0;min-width:660px;width:100%}
  #rk-flow-guide th{background:var(--navy);color:#fff;text-align:left;text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;padding:14px 15px}
  #rk-flow-guide th:first-child{border-radius:12px 0 0 0}
  #rk-flow-guide th:last-child{border-radius:0 12px 0 0}
  #rk-flow-guide td{background:#fff;color:var(--copy);padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:top}
  #rk-flow-guide td:first-child{border-left:1px solid var(--line)}
  #rk-flow-guide td:last-child{border-right:1px solid var(--line)}
  #rk-flow-guide td strong{color:var(--ink)}
  #rk-flow-guide .rk-table-caption{font-size:.83rem;color:var(--muted)}
  #rk-flow-guide .rk-calculator{background:#173d50;border:1px solid #4d7284;border-radius:21px;padding:26px;margin-top:28px}
  #rk-flow-guide .rk-calculator h3{color:#fff;font-size:1.53rem;margin:0}
  #rk-flow-guide .rk-calculator p{color:#d7e9ee}
  #rk-flow-guide .rk-calc-step{background:#204b60;border:1px solid #5b8193;border-radius:15px;padding:19px;margin-top:17px}
  #rk-flow-guide .rk-calc-step h4{color:#fff;margin:0 0 12px;font-size:1.1rem}
  #rk-flow-guide .rk-radio-row{display:flex;flex-wrap:wrap;gap:9px}
  #rk-flow-guide .rk-radio-row label{display:flex;align-items:center;gap:8px;background:#2b6075;color:#fff;border:1px solid #7aa0ae;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}
  #rk-flow-guide .rk-radio-row input{accent-color:var(--cyan);width:18px;height:18px}
  #rk-flow-guide .rk-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:15px}
  #rk-flow-guide .rk-field{display:block;color:#eaf6f9;font-size:.85rem;line-height:1.42;font-weight:800}
  #rk-flow-guide .rk-field small{display:block;font-size:.76rem;line-height:1.4;color:#bfd9e0;font-weight:400;margin-top:4px}
  #rk-flow-guide .rk-field input,#rk-flow-guide .rk-field select{display:block;background:#fff;border:1px solid #b8d1d9;border-radius:10px;color:var(--ink);padding:10px 11px;margin-top:7px;width:100%;min-height:47px}
  #rk-flow-guide .rk-room-list{display:grid;gap:12px;margin-top:17px}
  #rk-flow-guide .rk-room{background:#123548;border:1px solid #678a9a;border-radius:13px;padding:17px}
  #rk-flow-guide .rk-room-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
  #rk-flow-guide .rk-room-head strong{color:#fff}
  #rk-flow-guide .rk-room-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
  #rk-flow-guide .rk-manual{background:#1c485b;border-radius:11px;padding:13px;margin-top:14px}
  #rk-flow-guide .rk-manual .rk-fields{margin:0}
  #rk-flow-guide .rk-ghost{background:transparent;color:#fff;border:1px solid #9cbac7;border-radius:9px;padding:9px 12px;cursor:pointer;font-weight:800}
  #rk-flow-guide .rk-ghost:hover{background:#315f72}
  #rk-flow-guide .rk-ghost:disabled{opacity:.55;cursor:not-allowed}
  #rk-flow-guide .rk-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:19px}
  #rk-flow-guide .rk-action{border:1px solid transparent;border-radius:10px;padding:11px 18px;cursor:pointer;font-weight:900;min-height:47px}
  #rk-flow-guide .rk-primary{background:var(--orange);color:#fff}
  #rk-flow-guide .rk-primary:hover{background:#d95031}
  #rk-flow-guide .rk-secondary{background:transparent;color:#fff;border-color:#92adba}
  #rk-flow-guide .rk-secondary:hover{background:#245269}
  #rk-flow-guide .rk-error{background:#fff0eb;color:#743826;border-left:5px solid var(--orange);border-radius:9px;padding:11px 14px;margin-top:16px;font-weight:800}
  #rk-flow-guide .rk-result{background:#fff;border-left:7px solid var(--cyan);border-radius:17px;padding:23px;margin-top:21px;color:var(--ink)}
  #rk-flow-guide .rk-result p{color:var(--copy)}
  #rk-flow-guide .rk-result-kicker{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:#087a95;font-weight:900}
  #rk-flow-guide .rk-result-big{color:var(--ink);font-size:clamp(2.2rem,4.3vw,3.3rem);font-weight:900;line-height:1.15;margin-top:5px}
  #rk-flow-guide .rk-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:17px}
  #rk-flow-guide .rk-stat{background:#eef6f8;border:1px solid #d0e1e7;border-radius:11px;padding:12px}
  #rk-flow-guide .rk-stat span{display:block;font-size:.71rem;line-height:1.4;color:#587286;font-weight:900;text-transform:uppercase}
  #rk-flow-guide .rk-stat strong{display:block;color:var(--ink);font-size:1.17rem;line-height:1.35;margin-top:4px}
  #rk-flow-guide .rk-result-table{margin-top:20px}
  #rk-flow-guide .rk-result-table th{background:#20495d}
  #rk-flow-guide .rk-chartbox{margin-top:19px;border:1px solid #cfdee5;border-radius:14px;background:#f7fbfc;padding:19px}
  #rk-flow-guide .rk-chartbox h4{font-size:1.09rem}
  #rk-flow-guide .rk-chartbox .rk-field{color:var(--ink);max-width:340px;margin-top:13px}
  #rk-flow-guide .rk-chartbox .rk-field select{border-color:#b8cdd5}
  #rk-flow-guide .rk-chartbox svg{display:block;width:100%;height:auto;max-height:305px;margin-top:13px}
  #rk-flow-guide .rk-chartbox svg text{fill:#395669;font:14px Arial,Helvetica,sans-serif}
  #rk-flow-guide .rk-chartbox svg .rk-plotline{fill:none;stroke:#0789a9;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
  #rk-flow-guide .rk-chartbox svg .rk-axis{stroke:#8ba5b3;stroke-width:1.5}
  #rk-flow-guide .rk-chartbox svg .rk-point{fill:#f76b47;stroke:#fff;stroke-width:2}
  #rk-flow-guide .rk-chart-table{margin-top:12px}
  #rk-flow-guide .rk-chart-table table{min-width:0}
  #rk-flow-guide .rk-chart-table th{font-size:.72rem;padding:9px 10px}
  #rk-flow-guide .rk-chart-table td{padding:9px 10px}
  #rk-flow-guide .rk-result-note{font-size:.83rem;color:#536d7a!important}
  #rk-flow-guide .rk-cta{background:radial-gradient(circle at 96% 110%,rgba(40,197,213,.19) 0 18%,transparent 18.3%),linear-gradient(125deg,#0b2536,#14516a);border-radius:20px;color:#fff;margin-top:32px;padding:32px}
  #rk-flow-guide .rk-cta .rk-cta-title{color:#fff;font-size:clamp(1.55rem,3vw,2.45rem)}
  #rk-flow-guide .rk-cta p{color:#d6e8ed;max-width:1000px}
  #rk-flow-guide .rk-cta a.rk-cta-link{display:inline-block;background:var(--orange);color:#fff;border-radius:11px;padding:13px 19px;text-decoration:none;font-weight:900;margin-top:19px}
  #rk-flow-guide .rk-cta a.rk-cta-link:hover{background:#fff;color:#ac3e28}
  #rk-flow-guide .rk-cta small{display:block;color:#bfd6df;margin-top:11px}
  #rk-flow-guide .rk-steps{display:grid;gap:12px;margin-top:27px}
  #rk-flow-guide .rk-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:16px}
  #rk-flow-guide .rk-step-num{display:flex;align-items:center;justify-content:center;background:#dcf6f9;border-radius:8px;color:#076c85;font-weight:900;height:38px}
  #rk-flow-guide .rk-step p{margin:4px 0 0}
  #rk-flow-guide .rk-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:25px}
  #rk-flow-guide .rk-source{background:#f0f7f9;border:1px solid #d0e1e6;border-radius:13px;padding:18px}
  #rk-flow-guide .rk-source a{font-weight:900}
  #rk-flow-guide .rk-source p{font-size:.88rem;margin-top:7px}
  #rk-flow-guide .rk-faq{display:grid;gap:10px;margin-top:26px}
  #rk-flow-guide .rk-faq details{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}
  #rk-flow-guide .rk-faq summary{cursor:pointer;list-style:none;color:var(--ink);font-weight:900;padding:17px 49px 17px 18px;position:relative}
  #rk-flow-guide .rk-faq summary::-webkit-details-marker{display:none}
  #rk-flow-guide .rk-faq summary:after{content:'+';position:absolute;right:18px;top:9px;font-size:1.55rem;color:var(--cyan-dark)}
  #rk-flow-guide .rk-faq details[open] summary:after{content:'−'}
  #rk-flow-guide .rk-faq-answer{border-top:1px solid var(--line);padding:0 18px 17px}
  #rk-flow-guide .rk-faq-answer p{margin-top:12px}
  #rk-flow-guide .rk-author{background:#eef6f8;border-top:1px solid var(--line);padding:62px 58px}
  #rk-flow-guide .rk-author-grid{display:grid;grid-template-columns:280px minmax(0,1fr);background:#fff;border:1px solid #c9dfe7;border-radius:20px;overflow:hidden;margin-top:24px}
  #rk-flow-guide .rk-author-side{background:var(--navy);padding:33px 23px;color:#fff;text-align:center;display:flex;align-items:center;flex-direction:column}
  #rk-flow-guide .rk-author-side img{width:153px;height:153px;object-fit:cover;border:5px solid rgba(255,255,255,.24);border-radius:50%}
  #rk-flow-guide .rk-author-side strong{font-size:1.23rem;margin-top:17px}
  #rk-flow-guide .rk-author-side p{color:#c2d8e0;font-size:.83rem;margin-top:8px}
  #rk-flow-guide .rk-social{display:flex;gap:9px;margin-top:19px}
  #rk-flow-guide .rk-social a{display:flex;align-items:center;justify-content:center;width:41px;height:41px;border:1px solid #608393;border-radius:50%;color:#fff;text-decoration:none;font-weight:900}
  #rk-flow-guide .rk-social a:hover{background:var(--cyan);color:var(--navy)}
  #rk-flow-guide .rk-author-body{padding:34px}
  #rk-flow-guide .rk-author-body h3{font-size:1.7rem}
  #rk-flow-guide .rk-author-quote{background:#f3fafb;border-left:5px solid var(--cyan);border-radius:11px;padding:16px 19px;color:var(--ink);font-weight:800;margin-top:20px}
  #rk-flow-guide .rk-sr{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
  @media(max-width:900px){#rk-flow-guide .rk-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:820px){#rk-flow-guide .rk-hero,#rk-flow-guide .rk-section,#rk-flow-guide .rk-author{padding-left:28px;padding-right:28px}#rk-flow-guide .rk-author-grid{grid-template-columns:minmax(0,1fr)}}
  @media(max-width:650px){
    #rk-flow-guide .rk-hero{padding-top:42px;padding-bottom:39px}
    #rk-flow-guide .rk-section,#rk-flow-guide .rk-author{padding-top:44px;padding-bottom:44px}
    #rk-flow-guide .rk-grid2,#rk-flow-guide .rk-grid3,#rk-flow-guide .rk-fields,#rk-flow-guide .rk-room-fields,#rk-flow-guide .rk-stats,#rk-flow-guide .rk-sources{grid-template-columns:minmax(0,1fr)}
    #rk-flow-guide .rk-calculator,#rk-flow-guide .rk-cta{padding:18px}
    #rk-flow-guide .rk-actions{display:grid;grid-template-columns:minmax(0,1fr)}
    #rk-flow-guide .rk-action{width:100%}
    #rk-flow-guide .rk-table-wrap{overflow:visible}
    #rk-flow-guide .rk-table-wrap table,#rk-flow-guide .rk-table-wrap tbody,#rk-flow-guide .rk-table-wrap tr,#rk-flow-guide .rk-table-wrap td{display:block;min-width:0;width:100%}
    #rk-flow-guide .rk-table-wrap thead{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;white-space:nowrap}
    #rk-flow-guide .rk-table-wrap tbody{display:grid;gap:12px}
    #rk-flow-guide .rk-table-wrap tr{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
    #rk-flow-guide .rk-table-wrap td,#rk-flow-guide .rk-table-wrap td:first-child,#rk-flow-guide .rk-table-wrap td:last-child{border:0;border-bottom:1px solid #e3edf0;padding:11px 13px}
    #rk-flow-guide .rk-table-wrap td:last-child{border-bottom:0}
    #rk-flow-guide .rk-table-wrap td:before{content:attr(data-label);display:block;color:var(--cyan-dark);font-size:.68rem;letter-spacing:.06em;font-weight:900;text-transform:uppercase;margin-bottom:3px}
    #rk-flow-guide .rk-chart-table{overflow-x:auto}
    #rk-flow-guide .rk-chart-table table{min-width:400px}
    #rk-flow-guide .rk-author-body{padding:25px 20px}
  }
  @media(max-width:430px){#rk-flow-guide .rk-hero,#rk-flow-guide .rk-section,#rk-flow-guide .rk-author{padding-left:18px;padding-right:18px}#rk-flow-guide .rk-nav{padding:16px 13px}#rk-flow-guide .rk-hero-title{font-size:2.25rem}#rk-flow-guide h2{font-size:1.9rem}#rk-flow-guide .rk-calc-step,#rk-flow-guide .rk-result,#rk-flow-guide .rk-chartbox{padding:15px}}
  @media(prefers-reduced-motion:reduce){#rk-flow-guide *,#rk-flow-guide *:before,#rk-flow-guide *:after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms}}
</style>

<article id="rk-flow-guide" aria-labelledby="rk-flow-visual-title">
  <div class="rk-shell">
    <header class="rk-hero">
      <span class="rk-kicker">Hydraulika podłogówki · praktyczny kalkulator 2026</span>
      <div class="rk-hero-title" id="rk-flow-visual-title">Jaki przepływ na podłogówce? <span>Ile l/min na jedną pętlę.</span></div>
      <p class="rk-hero-lead">Nie ustawiaj każdej pętli na 1,5 albo 2 l/min „dla bezpieczeństwa”. Wyznacz przepływ z mocy, którą ma oddać dana część podłogi, i projektowej różnicy temperatur. Następnie sprawdź, czy rury, rozdzielacz oraz pompa pozwalają osiągnąć tę wartość.</p>
      <div class="rk-tags" aria-label="Zakres poradnika"><span>l/min na pętlę</span><span>moc pętli i ΔT</span><span>kilka pętli w pomieszczeniu</span><span>suma przepływów rozdzielacza</span><span>kalkulator i wykres</span></div>
      <div class="rk-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Czas czytania: <strong>około 18 minut</strong></span><span>Publikacja: <strong>3 października 2026 r.</strong></span></div>
    </header>
    <nav class="rk-nav" aria-label="Na skróty — sekcje poradnika"><strong>Na skróty</strong><a href="#rk-flow-answer">Odpowiedź</a><a href="#rk-flow-principle">Wzór</a><a href="#rk-flow-input">Dane wejściowe</a><a href="#rk-flow-calc">Kalkulator</a><a href="#rk-flow-examples">Przykłady</a><a href="#rk-flow-delta">ΔT i moc podłogi</a><a href="#rk-flow-pipe">Rura i opory</a><a href="#rk-flow-read">Odczyt</a><a href="#rk-flow-check">Kontrola</a><a href="#rk-flow-errors">Błędy</a><a href="#rk-flow-sources">Źródła</a><a href="#rk-flow-faq">FAQ</a><a href="#rk-flow-author">Autor</a></nav>

    <section class="rk-section" id="rk-flow-answer">
      <span class="rk-eyebrow">Odpowiedź w 30 sekund</span>
      <h2>Jaki przepływ ustawić na jednej pętli podłogówki?</h2>
      <p class="rk-lead"><strong>Nie ma jednej liczby l/min właściwej dla każdej pętli.</strong> Wartość projektowa zależy przede wszystkim od mocy przypisanej do obwodu, różnicy temperatur wody między jego zasilaniem i powrotem oraz właściwości medium. Długość i średnica rury określają potem, czy taki przepływ da się uzyskać bez nadmiernych oporów.</p>
      <div class="rk-answer"><strong>Przykład: 600 W przypisane do pętli przy ΔT = 5 K oznacza dla wody około 1,72 l/min, czyli 103 l/h.</strong><p>To wynik z bilansu ciepła, nie uniwersalna nastawa. Jeżeli pętla jest zbyt oporna albo podłoga nie może oddać 600 W przy przyjętych temperaturach, samo ustawienie rotametru nie naprawi projektu.</p></div>
      <div class="rk-grid3"><div class="rk-card"><span class="rk-badge">01</span><h3>Ile ciepła ma oddać?</h3><p>Potrzebujesz mocy przypisanej do tej pętli, a nie tylko metrażu domu czy mocy pompy ciepła.</p></div><div class="rk-card"><span class="rk-badge">02</span><h3>Przy jakim ΔT?</h3><p>Różnica temperatur zasilania i powrotu jest parametrem projektowym. Ta sama moc przy innym ΔT wymaga innego przepływu.</p></div><div class="rk-card"><span class="rk-badge">03</span><h3>Czy układ to osiągnie?</h3><p>Sprawdza się opór pętli, zaworów, rozdzielacza i magistrali względem możliwości pompy.</p></div></div>
    </section>

    <section class="rk-section rk-soft" id="rk-flow-principle">
      <span class="rk-eyebrow">Bilans energii</span><h2>Jak obliczyć przepływ w l/min z mocy pętli?</h2>
      <p class="rk-lead">Strumień wody przenosi energię między zasilaniem i powrotem. Dla typowych temperatur pracy podłogówki przybliżenie dla <strong>wody</strong> można zapisać w jednostkach wygodnych przy rozdzielaczu:</p>
      <div class="rk-formula">przepływ [l/min] ≈ moc pętli [W] ÷ (69,8 × ΔT [K])</div>
      <p>Współczynnik 69,8 wynika z przybliżonych właściwości wody i przeliczenia minut oraz litrów. Alternatywnie: <strong>l/h ≈ W ÷ (1,163 × K)</strong>. Różnica 35°C − 30°C to 5 K; dla różnic temperatur stopień Celsjusza i kelwin mają tę samą wartość liczbową. Wynik zaokrąglamy dopiero na końcu.</p>
      <div class="rk-note"><p><strong>Nie podstawiaj do tego wzoru glikolu jak czystej wody.</strong> W mieszaninie zmieniają się ciepło właściwe, gęstość i lepkość. Stężenie oraz temperatura pracy są potrzebne do odrębnych obliczeń ciepła i oporów.</p></div>
    </section>

    <section class="rk-section" id="rk-flow-input">
      <span class="rk-eyebrow">Zanim wpiszesz liczby</span><h2>Skąd wziąć moc przypisaną do pętli i projektowe ΔT?</h2>
      <p class="rk-lead">Najlepszym punktem wyjścia są obliczenia obciążenia cieplnego pomieszczeń i projekt podłogówki. W systemie mieszanym do pętli przypisuje się tę część mocy, którą rzeczywiście ma oddać podłoga. Całej straty pomieszczenia nie wolno automatycznie przypisać podłodze, gdy część pokrywa inny odbiornik.</p>
      <div class="rk-grid2"><div class="rk-card"><span class="rk-badge">MOC</span><h3>Pomieszczenie a kilka obwodów</h3><p>Jeżeli salon potrzebuje z podłogi 1200 W i ma dwie równe pod względem obciążenia strefy, można ilustracyjnie przypisać po 600 W. Przy nierównych polach albo strefie brzegowej podział może wynieść np. 700 i 500 W.</p></div><div class="rk-card"><span class="rk-badge">TEMPERATURY</span><h3>Parametry z projektu, nie z losowej tabeli</h3><p>ΔT wynika z przyjętych temperatur zasilania i powrotu, mocy powierzchni grzejnej, pracy źródła oraz hydrauliki. Nie wpisuj 5 K albo 10 K wyłącznie dlatego, że to częsty przykład.</p></div></div>
      <p>Gdy brakuje danych o obciążeniu pomieszczeń, zobacz <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne budynku</a>. Podział dużego pokoju omawia artykuł <a href="https://projekt-ogrzewania.pl/salon-ile-petli-podlogowki/">ile pętli zaplanować w salonie</a>. Kalkulator poniżej pozwala także przećwiczyć przykładowe liczby, ale nie zastąpi brakującego OZC.</p>
    </section>

    <section class="rk-section rk-dark" id="rk-flow-calc">
      <span class="rk-eyebrow">Narzędzie do planowania nastaw</span><h2>Kalkulator przepływu jednej pętli i całego rozdzielacza</h2>
      <p class="rk-lead">W trybie jednej pętli wpisz moc obwodu. W trybie pomieszczeń dodawaj pokoje, ich moc oddawaną przez podłogę i liczbę pętli. Narzędzie rozdzieli moc równo albo według Twojego podziału, policzy każdy przepływ oraz sumę dla jednego rozdzielacza.</p>
      <div class="rk-calculator" id="rk-flow-calculator">
        <h3>Wyznacz przepływ wymagany do przeniesienia mocy</h3>
        <p>Domyślne 600 W i 5 K to wyłącznie <strong>przykład edukacyjny</strong>. Do rzeczywistych nastaw wpisz dane z obliczeń dla własnej instalacji. Kalkulator przyjmuje wodę jako medium.</p>
        <div class="rk-calc-step"><h4>1. Wybierz zakres obliczenia</h4><div class="rk-radio-row" role="radiogroup" aria-label="Zakres obliczenia"><label><input type="radio" name="rk-flow-mode" value="single" checked=""> Jedna pętla</label><label><input type="radio" name="rk-flow-mode" value="rooms"> Pomieszczenia i rozdzielacz</label></div></div>
        <div class="rk-calc-step"><h4>2. Podaj parametry temperatury</h4><div class="rk-fields"><label class="rk-field">Sposób podania różnicy temperatur<select id="rk-flow-delta-mode"><option value="delta">Znam projektowe ΔT</option><option value="temps">Znam temperaturę zasilania i powrotu</option></select></label><label class="rk-field" id="rk-flow-delta-wrap">Projektowe ΔT [K]<input id="rk-flow-input-delta" type="number" min="1" max="20" step="0.1" value="5" inputmode="decimal"><small>Przykład, nie domyślny parametr dla każdej instalacji.</small></label></div><div class="rk-fields" id="rk-flow-temp-wrap" hidden=""><label class="rk-field">Zasilanie [°C]<input id="rk-flow-supply" type="number" min="15" max="60" step="0.1" value="35" inputmode="decimal"></label><label class="rk-field">Powrót [°C]<input id="rk-flow-return" type="number" min="10" max="59" step="0.1" value="30" inputmode="decimal"></label></div></div>
        <div class="rk-calc-step" id="rk-flow-single-step"><h4>3. Wpisz moc jednej pętli</h4><label class="rk-field">Moc przypisana do pętli [W]<input id="rk-flow-single-power" type="number" min="1" max="10000" step="10" value="600" inputmode="decimal"><small>Chodzi o moc oddawaną przez tę pętlę do pomieszczenia, nie moc nominalną źródła ciepła.</small></label></div>
        <div class="rk-calc-step" id="rk-flow-rooms-step" hidden=""><h4>3. Dodaj pomieszczenia zasilane z jednego rozdzielacza</h4><p>W każdym pokoju wpisz moc, którą ma oddać sama podłoga. Równy podział jest tylko uproszczeniem. Wybierz ręczny, gdy znasz osobne moce pętli. Suma ręcznie wpisanych mocy musi zgadzać się z mocą pokoju.</p><div id="rk-flow-rooms-list" class="rk-room-list"></div><div class="rk-actions"><button class="rk-action rk-secondary" id="rk-flow-add-room" type="button">Dodaj pomieszczenie</button></div></div>
        <div class="rk-actions"><button class="rk-action rk-primary" id="rk-flow-run" type="button">Oblicz przepływy</button><button class="rk-action rk-secondary" id="rk-flow-reset" type="button">Przywróć przykład</button></div>
        <div id="rk-flow-error" class="rk-error" role="alert" hidden=""></div>
        <div class="rk-result" id="rk-flow-result" aria-live="polite">
          <div class="rk-result-kicker">Bilans dla wpisanych danych · woda</div><div class="rk-result-big" id="rk-flow-total">1,72 l/min</div>
          <p id="rk-flow-result-intro">Wymagany przepływ jednej pętli dla wpisanej mocy i ΔT.</p>
          <div class="rk-stats"><div class="rk-stat"><span>Suma [l/h]</span><strong id="rk-flow-hour">103,2 l/h</strong></div><div class="rk-stat"><span>Przepływ [m³/h]</span><strong id="rk-flow-cubic">0,103 m³/h</strong></div><div class="rk-stat"><span>Projektowe ΔT</span><strong id="rk-flow-used-delta">5,0 K</strong></div></div>
          <div class="rk-table-wrap rk-result-table"><table><thead><tr><th>Pomieszczenie</th><th>Pętla</th><th>Moc [W]</th><th>Przepływ [l/min]</th><th>Przepływ [l/h]</th></tr></thead><tbody id="rk-flow-result-rows"></tbody></table></div>
          <div class="rk-chartbox"><h4>Jak ΔT zmienia obliczony przepływ przy tej samej mocy?</h4><p>Wybierz pętlę. Wykres przelicza jej wymaganą ilość wody przy różnych założeniach ΔT. Nie pokazuje, że przy każdym z nich podłoga odda tę samą moc bez zmiany innych parametrów.</p><label class="rk-field">Pętla na wykresie<select id="rk-flow-chart-select"></select></label><svg id="rk-flow-chart" viewBox="0 0 680 270" role="img" aria-labelledby="rk-flow-chart-title rk-flow-chart-description"><title id="rk-flow-chart-title">Przepływ w funkcji projektowej różnicy temperatur</title><desc id="rk-flow-chart-description">Wartości liczbowe są podane w tabeli pod wykresem.</desc><g id="rk-flow-chart-drawing"></g></svg><div class="rk-chart-table"><table><thead><tr><th>ΔT = 3 K</th><th>ΔT = 5 K</th><th>ΔT = 7 K</th><th>ΔT = 10 K</th></tr></thead><tbody><tr id="rk-flow-chart-values"><td>—</td><td>—</td><td>—</td><td>—</td></tr></tbody></table></div></div>
          <p class="rk-result-note">Wynik jest wstępnym bilansem dla wody. Nie potwierdza mocy powierzchni grzejnej, oporów hydraulicznych, właściwego zakresu rotametrów ani możliwości pompy.</p>
        </div>
      </div>
      <div class="rk-note rk-note-alert"><p><strong>Gdy nie masz mocy pomieszczenia ani parametrów zasilania i powrotu, narzędzie nie wyznaczy rzetelnej nastawy.</strong> Zapisz brakujące dane i nie przenoś przykładu 600 W / 5 K na budowę.</p></div>
    </section>

    <section class="rk-section" id="rk-flow-examples">
      <span class="rk-eyebrow">Liczby w praktyce</span><h2>Przykłady: 0,8, 1,5 czy 2,5 l/min na pętlę?</h2>
      <p class="rk-lead">Wszystkie takie wartości mogą być uzasadnione w różnych pętlach. Poniższe liczby wynikają z tego samego wzoru dla wody i pokazują wpływ mocy oraz ΔT. Nie są tabelą gotowych nastaw dla każdego domu.</p>
      <div class="rk-table-wrap"><table><thead><tr><th>Moc pętli</th><th>ΔT = 5 K</th><th>ΔT = 7 K</th><th>Co pokazuje przykład?</th></tr></thead><tbody><tr><td data-label="Moc pętli"><strong>400 W</strong></td><td data-label="ΔT = 5 K">1,15 l/min</td><td data-label="ΔT = 7 K">0,82 l/min</td><td data-label="Wniosek">Prawidłowy przepływ niewielkiej pętli może być niższy niż 1 l/min.</td></tr><tr><td data-label="Moc pętli"><strong>600 W</strong></td><td data-label="ΔT = 5 K">1,72 l/min</td><td data-label="ΔT = 7 K">1,23 l/min</td><td data-label="Wniosek">Ta sama moc daje różne przepływy przy różnych temperaturach pracy.</td></tr><tr><td data-label="Moc pętli"><strong>800 W</strong></td><td data-label="ΔT = 5 K">2,29 l/min</td><td data-label="ΔT = 7 K">1,64 l/min</td><td data-label="Wniosek">Wyższy przepływ trzeba porównać z oporem pętli i zakresem armatury.</td></tr></tbody></table></div>
      <div class="rk-grid2"><div class="rk-card"><span class="rk-badge">SALON · 2 PĘTLE</span><h3>Równy podział 1200 W</h3><p>Po 600 W na pętlę przy 5 K oznacza po około 1,72 l/min; łącznie około 3,44 l/min dla salonu.</p></div><div class="rk-card"><span class="rk-badge">SALON · RÓŻNE STREFY</span><h3>Podział 700 W i 500 W</h3><p>Przy 5 K pierwsza pętla wymaga około 2,01 l/min, a druga 1,43 l/min. Łączna moc i przepływ pozostają takie same, ale nastawy pętli są różne.</p></div></div>
      <p class="rk-table-caption">Wyniki są zaokrąglone. Dopisanie trzeciej pętli o mocy 450 W przy ΔT = 5 K zwiększy łączny przepływ rozdzielacza o około 1,29 l/min.</p>
      <div class="rk-cta"><div class="rk-cta-title">Obliczony przepływ to początek. Sprawdź, czy instalacja może go osiągnąć.</div><p>Przy projektowaniu podłogówki przypisuję moc do pomieszczeń i pętli, a następnie sprawdzam ich długości, średnice, opory, punkt pracy pompy i nastawy rozdzielacza. Wykonawca dostaje tabelę wartości do uruchomienia instalacji, nie jedną liczbę dla wszystkich rotametrów.</p><a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zobacz projekt z przepływami dla każdej pętli</a><small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small></div>
    </section>

    <section class="rk-section rk-soft" id="rk-flow-delta">
      <span class="rk-eyebrow">Nie zmieniaj jednej liczby w izolacji</span><h2>Dlaczego ΔT wpływa na wynik, ale nie jest dowolnym pokrętłem?</h2>
      <p class="rk-lead">Mniejsza różnica temperatur zasilania i powrotu zwiększa przepływ wymagany do przeniesienia tej samej mocy. Równocześnie przy określonej temperaturze zasilania zmienia temperaturę wody w pętli oraz warunki oddawania ciepła przez podłogę. W projekcie oba obliczenia muszą do siebie pasować.</p>
      <div class="rk-grid3"><div class="rk-card"><span class="rk-badge">35/30°C</span><h3>ΔT wynosi 5 K</h3><p>Parametry zasilania i powrotu opisują konkretny punkt pracy, nie samą liczbę 5.</p></div><div class="rk-card"><span class="rk-badge">45/40°C</span><h3>ΔT także wynosi 5 K</h3><p>Wzór da ten sam przepływ przy tej samej mocy, lecz warunki cieplne podłogi są inne.</p></div><div class="rk-card"><span class="rk-badge">ŹRÓDŁO</span><h3>Sprawdź wymagania urządzenia</h3><p>Minimalny przepływ pompy ciepła lub źródła nie wynika z samych nastaw pojedynczych pętli.</p></div></div>
      <p>Pełne wyjaśnienie relacji temperatur, odczytów i objawów znajduje się w poradniku o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%CE%B4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatur ΔT w podłogówce</a>. Zwiększanie ΔT w polu kalkulatora nie jest metodą naprawy źle dobranej pętli.</p>
    </section>

    <section class="rk-section" id="rk-flow-pipe">
      <span class="rk-eyebrow">Druga połowa obliczeń</span><h2>Czy pętla 16 × 2 mm albo długość 80 m narzuca konkretny przepływ?</h2>
      <p class="rk-lead">Nie. Sam wymiar rury i jej długość nie określają wymaganej mocy, a więc także docelowych l/min. Wpływają natomiast na średnicę wewnętrzną, prędkość i straty ciśnienia przy już obliczonym przepływie.</p>
      <div class="rk-grid2"><div class="rk-card"><span class="rk-badge">BILANS</span><h3>Przepływ wymagany</h3><p>Wynika z mocy pętli i projektowego ΔT. To właśnie tę wartość pokazuje kalkulator.</p></div><div class="rk-card"><span class="rk-badge">HYDRAULIKA</span><h3>Przepływ możliwy do uzyskania</h3><p>Wymaga sprawdzenia strat w rurze, łukach, zaworach, rozdzielaczu, filtrze i przewodach wspólnych oraz charakterystyki pompy.</p></div></div>
      <p>Rury o tym samym wymiarze nominalnym mogą różnić się tolerancjami, a armatura oporem. Pętli nie trzeba na siłę wydłużać, żeby wszystkie miały po 100 m. Zobacz <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">jak projektuje się pętlę grzewczą</a> i dlaczego <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">jej maksymalna długość</a> wymaga oceny hydraulicznej. Do bilansu rozdzielacza sumuje się przepływy pętli mogących pracować równocześnie; do doboru wysokości podnoszenia pompy analizuje się drogę krytyczną, a nie sumę oporów wszystkich równoległych obwodów.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-flow-read">
      <span class="rk-eyebrow">Po wykonaniu instalacji</span><h2>Przepływ projektowy a wskazanie na rotametrze</h2>
      <p class="rk-lead">Kalkulator określa wartość wymaganą na podstawie przyjętych danych. Rotametr pokazuje chwilowy przepływ rzeczywisty, zależny od otwarcia zaworów, nastaw pompy, oporów i tego, które inne pętle pracują. Odczyt 1,0 l/min sam w sobie nie oznacza błędu.</p>
      <div class="rk-steps"><div class="rk-step"><span class="rk-step-num">01</span><div><h3>Porównaj z właściwą pętlą</h3><p>Ustal jej numer, pomieszczenie, moc i przepływ projektowy. Nie przenoś nastawy z sąsiedniego obwodu.</p></div></div><div class="rk-step"><span class="rk-step-num">02</span><div><h3>Sprawdź warunki odczytu</h3><p>Pompa powinna pracować stabilnie, zawory i siłowniki mieć znany stan, a instalacja być odpowietrzona.</p></div></div><div class="rk-step"><span class="rk-step-num">03</span><div><h3>Zweryfikuj cały rozdzielacz</h3><p>Zmiana nastawy jednego obwodu może zmienić odczyty pozostałych. Zapisz końcowe wartości.</p></div></div></div>
      <p>Szczegółowy sposób odczytu skali, kierunku i regulacji opisuje poradnik <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr w rozdzielaczu podłogówki</a>. Ten artykuł służy przede wszystkim wyznaczeniu liczby, z którą później porównuje się odczyt.</p>
    </section>

    <section class="rk-section" id="rk-flow-check">
      <span class="rk-eyebrow">Gdy liczby się nie zgadzają</span><h2>Co sprawdzić, kiedy pętla nie osiąga obliczonego przepływu?</h2>
      <p class="rk-lead">Nie podnoś automatycznie biegu pompy ani temperatury zasilania. Najpierw upewnij się, że porównujesz poprawny obwód i właściwy punkt pracy. Następnie przejdź przez dostępne przyczyny od prostych do bardziej złożonych.</p>
      <div class="rk-grid3"><div class="rk-card"><span class="rk-badge">STEROWANIE</span><h3>Otwarty obwód?</h3><p>Sprawdź siłownik, zawór, termostat, zasilanie sterowania i stan pozostałych pętli.</p></div><div class="rk-card"><span class="rk-badge">DROŻNOŚĆ</span><h3>Powietrze i filtr?</h3><p>Zapowietrzenie, zabrudzenie albo przymknięcie armatury może ograniczyć odczyt.</p></div><div class="rk-card"><span class="rk-badge">PUNKT PRACY</span><h3>Pompa i opory?</h3><p>Porównaj wymagany przepływ całkowity z charakterystyką pompy oraz oporem najtrudniejszej drogi.</p></div></div>
      <div class="rk-note rk-note-alert"><p><strong>Gdy rotametr pokazuje przepływ, a pokój nadal jest zimny:</strong> sprawdź temperaturę zasilania, faktyczną moc podłogi, opór okładziny i obciążenie pomieszczenia. Samo zwiększenie przepływu może nie rozwiązać przyczyny.</p></div>
      <p>Pełną kolejność sprawdzeń znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/">ogrzewanie podłogowe nie grzeje — 12 przyczyn</a>. Dobór źródła przepływu i wysokości podnoszenia rozwija <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej</a>.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-flow-errors">
      <span class="rk-eyebrow">Skróty, które psują regulację</span><h2>Najczęstsze błędy przy ustawianiu l/min na podłogówce</h2>
      <div class="rk-grid3"><div class="rk-card"><span class="rk-badge">BŁĄD 1</span><h3>Każda pętla na 1,5 l/min</h3><p>Różna moc obwodów i ich stref wymaga indywidualnych wartości.</p></div><div class="rk-card"><span class="rk-badge">BŁĄD 2</span><h3>W/m² bez sprawdzenia podłogi</h3><p>Orientacyjne zapotrzebowanie pomieszczenia nie dowodzi, że konkretna podłoga odda tyle ciepła.</p></div><div class="rk-card"><span class="rk-badge">BŁĄD 3</span><h3>Moc źródła dzielona przez liczbę pętli</h3><p>Moc nominalna pompy ciepła lub kotła nie jest sumą mocy projektowych pomieszczeń.</p></div><div class="rk-card"><span class="rk-badge">BŁĄD 4</span><h3>Metry rury jako przepis na l/min</h3><p>Długość wpływa na opór przepływu, nie określa obciążenia cieplnego pętli.</p></div><div class="rk-card"><span class="rk-badge">BŁĄD 5</span><h3>Obliczenie dla wody użyte do glikolu</h3><p>Właściwości mieszaniny trzeba uwzględnić osobno, także przy ocenie pompy.</p></div><div class="rk-card"><span class="rk-badge">BŁĄD 6</span><h3>Regulacja w trakcie rozruchu</h3><p>Przejściowe temperatury i zamykające się siłowniki utrudniają sensowne porównanie z projektem.</p></div></div>
    </section>

    <section class="rk-section" id="rk-flow-summary">
      <span class="rk-eyebrow">Przed ustawieniem rozdzielacza</span><h2>Checklista: sześć danych dla każdej pętli</h2>
      <div class="rk-grid3"><div class="rk-card"><span class="rk-badge">01–02</span><h3>Opis i moc</h3><p>Numer obwodu, pomieszczenie i moc, którą ma oddać jego pole grzewcze.</p></div><div class="rk-card"><span class="rk-badge">03–04</span><h3>Temperatury i przepływ</h3><p>Projektowe zasilanie, powrót i wymagana wartość w l/min, bez przenoszenia jednej nastawy na wszystkie obwody.</p></div><div class="rk-card"><span class="rk-badge">05–06</span><h3>Rura i możliwości układu</h3><p>Wymiar oraz długość pętli, a do tego opory i dostępny punkt pracy pompy. Sprawdź też zakres skali armatury.</p></div></div>
      <div class="rk-note rk-note-good"><p><strong>Najważniejsza zasada:</strong> najpierw przypisz moc do pętli i wyznacz wymagany przepływ; potem potwierdź moc samej podłogi i hydraulikę całej drogi. Dopiero na końcu porównaj projekt z odczytami rozdzielacza.</p></div>
      <div class="rk-cta"><div class="rk-cta-title">Chcesz otrzymać tabelę przepływów i nastaw dla wszystkich pętli?</div><p>Projekt ogrzewania podłogowego łączy obciążenie pomieszczeń z układem rur, parametrami wody, obliczonymi przepływami i oporami. Dzięki temu każda pętla ma określony cel, a instalator może sprawdzić wynik po uruchomieniu.</p><a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a><small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small></div>
    </section>

    <section class="rk-section" id="rk-flow-sources">
      <span class="rk-eyebrow">Podstawa techniczna</span><h2>Źródła i zakres kalkulatora</h2>
      <p class="rk-lead">Poniższe oficjalne karty opisują metody ustalania obciążenia cieplnego, wydajności ogrzewania płaszczyznowego oraz wymiarowania systemu. Użyty kalkulator stosuje przybliżony bilans energii dla wody; nie odtwarza kompletnej treści norm ani nie certyfikuje projektu.</p>
      <div class="rk-sources"><div class="rk-source"><a href="https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3" target="_blank" rel="nofollow noopener noreferrer">BS EN 12831-1:2017 — projektowe obciążenie cieplne</a><p>Oficjalna karta metody wyznaczania obciążenia cieplnego pomieszczeń.</p></div><div class="rk-source"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wydajność cieplna systemu</a><p>Oficjalna karta części dotyczącej wyznaczania mocy grzewczej i chłodniczej powierzchni.</p></div><div class="rk-source"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta metody projektowania systemów grzewczych wbudowanych w przegrody.</p></div><div class="rk-source"><a href="https://www.iso.org/standard/74682.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-1:2021 — pojęcia i komfort</a><p>Oficjalna karta terminologii i kryteriów komfortu stosowanych przy ogrzewaniu płaszczyznowym.</p></div></div>
      <div class="rk-note"><p><strong>Ograniczenia:</strong> wynik dotyczy czystej wody o przybliżonych właściwościach oraz wpisanej mocy i ΔT. Do projektu trzeba dodatkowo sprawdzić emisję podłogi, warstwy i okładzinę, ograniczenia temperatury powierzchni, opór hydrauliczny każdego obwodu, armaturę, wymagania źródła ciepła i pompę. Wynik nie jest instrukcją regulacji konkretnego produktu.</p></div>
    </section>

    <section class="rk-section rk-soft" id="rk-flow-faq">
      <span class="rk-eyebrow">Pytania z budowy i rozruchu</span><h2>FAQ — przepływ na podłogówce</h2>
      <div class="rk-faq">
        <details><summary>Jaki przepływ ustawić na podłogówce na jedną pętlę?</summary><div class="rk-faq-answer"><p>Ustawienie powinno wynikać z mocy przypisanej do obwodu i projektowej różnicy temperatur. Przykładowe 600 W i 5 K daje dla wody około 1,72 l/min, lecz inna pętla może potrzebować innej wartości. Wymaganą wartość trzeba jeszcze sprawdzić hydraulicznie.</p></div></details>
        <details><summary>Czy 1,5 l/min na każdą pętlę jest prawidłowe?</summary><div class="rk-faq-answer"><p>Nie jest to uniwersalna nastawa. Dwie pętle mogą obsługiwać inne pola i moce, a więc wymagać różnych przepływów. Jednakowa wartość ma sens tylko wtedy, gdy wynika z obliczeń dla obu obwodów.</p></div></details>
        <details><summary>Ile l/min potrzebuje pętla 16 × 2 mm?</summary><div class="rk-faq-answer"><p>Sam wymiar 16 × 2 mm nie wyznacza przepływu. Potrzebna jest moc pętli i projektowe ΔT. Wymiar, długość oraz charakterystyka armatury służą następnie do sprawdzenia oporu i możliwości uzyskania tej wartości.</p></div></details>
        <details><summary>Czy długość 100 m oznacza określony przepływ?</summary><div class="rk-faq-answer"><p>Nie. Sto metrów rury nie mówi, ile watów ma oddać pętla. Długość wpływa na opór przy zadanym przepływie i może ograniczyć możliwość jego osiągnięcia.</p></div></details>
        <details><summary>Jak przeliczyć l/h na l/min?</summary><div class="rk-faq-answer"><p>Wartość w litrach na godzinę podziel przez 60. Przykładowo 120 l/h to 2 l/min. Dla jednego rozdzielacza sumuje się przepływy pętli pracujących jednocześnie.</p></div></details>
        <details><summary>Skąd wziąć moc pętli, jeśli mam tylko moc pompy ciepła?</summary><div class="rk-faq-answer"><p>Nie dziel mocy nominalnej urządzenia przez liczbę pętli. Potrzebujesz obciążenia pomieszczeń i podziału mocy pomiędzy rzeczywiste pola grzewcze; moc samej podłogi trzeba sprawdzić względem temperatur oraz jej warstw.</p></div></details>
        <details><summary>Czy zwiększenie przepływu zawsze bardziej ogrzeje pokój?</summary><div class="rk-faq-answer"><p>Nie. Zmiana przepływu wpływa na ΔT i warunki pracy pętli, lecz pomieszczenie może być niedogrzane również przez zbyt niską temperaturę zasilania, zbyt małą powierzchnię grzejną lub duży opór okładziny. Zwiększenie przepływu w jednej pętli może też zmienić odczyty pozostałych.</p></div></details>
        <details><summary>Czy przy pompie ciepła każda pętla musi mieć ΔT = 5 K?</summary><div class="rk-faq-answer"><p>Nie. Parametry wynikają z projektu instalacji i warunków pracy konkretnego źródła. Pięć kelwinów to częsty przykład obliczeniowy, a nie obowiązkowa wartość dla każdej pętli.</p></div></details>
        <details><summary>Czy kalkulator uwzględnia glikol?</summary><div class="rk-faq-answer"><p>Nie. Przyjmuje wodę. Dla mieszanki trzeba znać właściwości czynnika przy jej stężeniu i temperaturze oraz osobno ocenić opory hydrauliczne.</p></div></details>
        <details><summary>Dlaczego rotametr pokazuje mniej niż wynik kalkulatora?</summary><div class="rk-faq-answer"><p>Przyczyną może być zamknięty zawór lub siłownik, powietrze, filtr, nastawa pompy albo duży opór pętli i przewodów wspólnych. Najpierw sprawdź, czy wpisane do kalkulatora moc i ΔT pochodzą z właściwego projektu.</p></div></details>
        <details><summary>Jak obliczyć przepływ całego rozdzielacza?</summary><div class="rk-faq-answer"><p>Zsumuj przepływy wszystkich pętli, które zgodnie z przyjętym przypadkiem projektowym mogą pracować jednocześnie. Wartość ta nie wystarcza do doboru pompy: jej wymagane ciśnienie wyznacza opór drogi krytycznej wraz z elementami wspólnymi.</p></div></details>
        <details><summary>Czy ten kalkulator daje gotowe nastawy rotametrów?</summary><div class="rk-faq-answer"><p>Pokazuje przepływy wymagane z bilansu przy wpisanych założeniach. Nastawy wykonuje się dopiero po sprawdzeniu wydajności podłogi, oporów obwodów, zakresu armatury, punktu pracy pompy oraz instrukcji konkretnego rozdzielacza.</p></div></details>
      </div>
    </section>

    <section class="rk-author" id="rk-flow-author"><span class="rk-eyebrow">Autor i weryfikacja</span><h2>Opracował Robert Kucharski</h2><div class="rk-author-grid"><aside class="rk-author-side"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji grzewczych i ogrzewania podłogowego" width="400" height="400" loading="lazy" decoding="async"><strong>Robert Kucharski</strong><p>CEO portalu<br>Specjalista HVAC i hydrauliki podłogówki</p><div class="rk-social" aria-label="Profile autora"><a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a><a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a><a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil autora w serwisie X">X</a></div></aside><div class="rk-author-body"><h3>Projektowanie przed regulacją</h3><div class="rk-author-quote">„Rotametr może pokazać 1,5 l/min. Dopiero bilans mocy i hydrauliki mówi, czy właśnie tyle potrzeba tej konkretnej pętli.”</div><p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, bilanse cieplne pomieszczeń i obliczenia hydrauliczne. W dokumentacji zestawia temperatury wody z układem rur, przepływami obwodów, oporami oraz nastawami potrzebnymi do uruchomienia instalacji.</p><p>W tym poradniku oddziela wynik prostego bilansu energii od pełnej oceny wydajności podłogi i możliwości pompy. Dzięki temu czytelnik może zrozumieć, skąd bierze się liczba l/min, i wie, jakie dane są potrzebne do wykonania rzeczywistej regulacji.</p><p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz inne artykuły autora w serwisie Projekt-Ogrzewania.pl</a>.</p></div></div></section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "sameAs": ["https://www.facebook.com/projektogrzewaniapl", "https://x.com/Projekt_HVAC", "https://www.linkedin.com/in/robert-kucharski-38069b48/"]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"}
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": ["ogrzewanie podłogowe", "obliczenia przepływów", "hydraulika instalacji grzewczych", "obliczenia strat ciepła", "równoważenie hydrauliczne"],
      "worksFor": [{"@id": "https://projekt-ogrzewania.pl/#organization"}, {"@id": "https://remont.biz.pl/#organization"}, {"@id": "https://sobir.pl/#organization"}],
      "sameAs": ["https://www.linkedin.com/in/robert-kucharski-38069b48/", "https://www.facebook.com/projektogrzewaniapl", "https://x.com/Projekt_HVAC"]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Blog", "item": "https://projekt-ogrzewania.pl/blog/"},
        {"@type": "ListItem", "position": 3, "name": "Jaki przepływ na podłogówce? Ile l/min na jedną pętlę", "item": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/"}
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#webpage",
      "url": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/",
      "name": "Jaki przepływ na podłogówce? Ile l/min na jedną pętlę",
      "description": "Kalkulator wymaganych przepływów dla jednej pętli, wielu pomieszczeń i całego rozdzielacza wraz z wyjaśnieniem mocy, ΔT i ograniczeń hydraulicznych.",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#breadcrumb"},
      "datePublished": "2026-10-04",
      "dateModified": "2026-10-04",
      "inLanguage": "pl-PL",
      "mainEntity": {"@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#article"}
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#article",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#webpage"},
      "headline": "Jaki przepływ na podłogówce? Ile l/min na jedną pętlę",
      "description": "Poradnik o wyznaczaniu wymaganych przepływów pętli ogrzewania podłogowego z kalkulatorem dla pomieszczeń i rozdzielacza.",
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "datePublished": "2026-10-04",
      "dateModified": "2026-10-04",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": ["przepływ na podłogówce", "l/min na jedną pętlę", "hydraulika ogrzewania podłogowego", "moc pętli", "temperatura zasilania i powrotu"],
      "keywords": "jaki przepływ na podłogówce, ile l/min na jedną pętlę, kalkulator przepływu podłogówki, przepływ rozdzielacza",
      "hasPart": [
        {"@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#calculator"},
        {"@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#faq-schema"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#calculator",
      "name": "Kalkulator przepływu pętli i rozdzielacza podłogówki",
      "url": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#rk-flow-calc",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Przybliżone obliczenie wymaganych przepływów wody w pętlach z przypisanej mocy i różnicy temperatur, z sumą dla rozdzielacza i wykresem zależności od ΔT."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#howto",
      "name": "Jak obliczyć wymagany przepływ pętli ogrzewania podłogowego",
      "description": "Kolejność ustalenia mocy, parametrów wody, przepływu oraz kontroli możliwości hydraulicznych instalacji.",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Ustal moc przypisaną do pętli", "text": "Weź obciążenie pomieszczenia i przypisz do pętli moc, którą ma oddać jej pole grzewcze."},
        {"@type": "HowToStep", "position": 2, "name": "Ustal projektowe ΔT", "text": "Odczytaj z projektu różnicę temperatur zasilania i powrotu analizowanej pętli."},
        {"@type": "HowToStep", "position": 3, "name": "Policz przepływ wymagany", "text": "Dla wody orientacyjny przepływ w l/min to moc pętli w W podzielona przez 69,8 razy ΔT w K."},
        {"@type": "HowToStep", "position": 4, "name": "Zsumuj pętle rozdzielacza", "text": "Dodaj wymagane przepływy pętli, które mogą pracować jednocześnie na analizowanym rozdzielaczu."},
        {"@type": "HowToStep", "position": 5, "name": "Sprawdź instalację hydraulicznie", "text": "Porównaj opory drogi krytycznej, zakres armatury i punkt pracy pompy z obliczonymi przepływami."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce/#faq-schema",
      "mainEntity": [
        {
                "@type": "Question",
                "name": "Jaki przepływ ustawić na podłogówce na jedną pętlę?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Ustawienie powinno wynikać z mocy przypisanej do obwodu i projektowej różnicy temperatur. Przykładowe 600 W i 5 K daje dla wody około 1,72 l/min, lecz inna pętla może potrzebować innej wartości. Wymaganą wartość trzeba jeszcze sprawdzić hydraulicznie."
                }
        },
        {
                "@type": "Question",
                "name": "Czy 1,5 l/min na każdą pętlę jest prawidłowe?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Nie jest to uniwersalna nastawa. Dwie pętle mogą obsługiwać inne pola i moce, a więc wymagać różnych przepływów. Jednakowa wartość ma sens tylko wtedy, gdy wynika z obliczeń dla obu obwodów."
                }
        },
        {
                "@type": "Question",
                "name": "Ile l/min potrzebuje pętla 16 × 2 mm?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Sam wymiar 16 × 2 mm nie wyznacza przepływu. Potrzebna jest moc pętli i projektowe ΔT. Wymiar, długość oraz charakterystyka armatury służą następnie do sprawdzenia oporu i możliwości uzyskania tej wartości."
                }
        },
        {
                "@type": "Question",
                "name": "Czy długość 100 m oznacza określony przepływ?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Nie. Sto metrów rury nie mówi, ile watów ma oddać pętla. Długość wpływa na opór przy zadanym przepływie i może ograniczyć możliwość jego osiągnięcia."
                }
        },
        {
                "@type": "Question",
                "name": "Jak przeliczyć l/h na l/min?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Wartość w litrach na godzinę podziel przez 60. Przykładowo 120 l/h to 2 l/min. Dla jednego rozdzielacza sumuje się przepływy pętli pracujących jednocześnie."
                }
        },
        {
                "@type": "Question",
                "name": "Skąd wziąć moc pętli, jeśli mam tylko moc pompy ciepła?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Nie dziel mocy nominalnej urządzenia przez liczbę pętli. Potrzebujesz obciążenia pomieszczeń i podziału mocy pomiędzy rzeczywiste pola grzewcze; moc samej podłogi trzeba sprawdzić względem temperatur oraz jej warstw."
                }
        },
        {
                "@type": "Question",
                "name": "Czy zwiększenie przepływu zawsze bardziej ogrzeje pokój?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Nie. Zmiana przepływu wpływa na ΔT i warunki pracy pętli, lecz pomieszczenie może być niedogrzane również przez zbyt niską temperaturę zasilania, zbyt małą powierzchnię grzejną lub duży opór okładziny. Zwiększenie przepływu w jednej pętli może też zmienić odczyty pozostałych."
                }
        },
        {
                "@type": "Question",
                "name": "Czy przy pompie ciepła każda pętla musi mieć ΔT = 5 K?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Nie. Parametry wynikają z projektu instalacji i warunków pracy konkretnego źródła. Pięć kelwinów to częsty przykład obliczeniowy, a nie obowiązkowa wartość dla każdej pętli."
                }
        },
        {
                "@type": "Question",
                "name": "Czy kalkulator uwzględnia glikol?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Nie. Przyjmuje wodę. Dla mieszanki trzeba znać właściwości czynnika przy jej stężeniu i temperaturze oraz osobno ocenić opory hydrauliczne."
                }
        },
        {
                "@type": "Question",
                "name": "Dlaczego rotametr pokazuje mniej niż wynik kalkulatora?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Przyczyną może być zamknięty zawór lub siłownik, powietrze, filtr, nastawa pompy albo duży opór pętli i przewodów wspólnych. Najpierw sprawdź, czy wpisane do kalkulatora moc i ΔT pochodzą z właściwego projektu."
                }
        },
        {
                "@type": "Question",
                "name": "Jak obliczyć przepływ całego rozdzielacza?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Zsumuj przepływy wszystkich pętli, które zgodnie z przyjętym przypadkiem projektowym mogą pracować jednocześnie. Wartość ta nie wystarcza do doboru pompy: jej wymagane ciśnienie wyznacza opór drogi krytycznej wraz z elementami wspólnymi."
                }
        },
        {
                "@type": "Question",
                "name": "Czy ten kalkulator daje gotowe nastawy rotametrów?",
                "acceptedAnswer": {
                        "@type": "Answer",
                        "text": "Pokazuje przepływy wymagane z bilansu przy wpisanych założeniach. Nastawy wykonuje się dopiero po sprawdzeniu wydajności podłogi, oporów obwodów, zakresu armatury, punktu pracy pompy oraz instrukcji konkretnego rozdzielacza."
                }
        }
]
    }
  ]
}
</script>
<script>
(function () {
  "use strict";
  function initFlowGuide() {
    var root = document.getElementById("rk-flow-guide");
    if (!root) { return; }
    if (root.getAttribute("data-rk-flow-ready") === "yes") { return; }
    root.setAttribute("data-rk-flow-ready", "yes");
    function find(selector) { return root.querySelector(selector); }
    function make(tag, className, value) {
      var node = document.createElement(tag);
      if (className) { node.className = className; }
      if (value !== undefined) { node.textContent = value; }
      return node;
    }
    function valueNumber(value) {
      if (value === null) { return NaN; }
      var trimmed = String(value).trim().replace(",", ".");
      if (trimmed === "") { return NaN; }
      return Number(trimmed);
    }
    function format(value, digits) {
      return new Intl.NumberFormat("pl-PL", {minimumFractionDigits: digits, maximumFractionDigits: digits}).format(value);
    }
    function flowHour(watts, delta) { return watts / (1.163 * delta); }
    function splitPower(power, count) {
      var total = valueNumber(power);
      var share = Number.isFinite(total) ? total / count : 0;
      var pieces = [];
      for (var i = 0; i < count; i += 1) { pieces.push(String(Math.round(share * 10) / 10)); }
      return pieces;
    }
    var rooms = [{name:"Salon", power:"1200", count:2, division:"equal", loops:["600","600"]}];
    var plottedLoops = [];
    var usedDelta = 5;
    var singleStep = find("#rk-flow-single-step");
    var roomsStep = find("#rk-flow-rooms-step");
    var roomsList = find("#rk-flow-rooms-list");
    var deltaMode = find("#rk-flow-delta-mode");
    var deltaWrap = find("#rk-flow-delta-wrap");
    var tempWrap = find("#rk-flow-temp-wrap");
    var error = find("#rk-flow-error");
    var result = find("#rk-flow-result");
    var chartSelect = find("#rk-flow-chart-select");
    function chosenMode() {
      var checked = find('input[name="rk-flow-mode"]:checked');
      return checked ? checked.value : "single";
    }
    function buildField(labelText, type, fieldValue, name, roomIndex, loopIndex) {
      var label = make("label", "rk-field", labelText);
      var input = make("input");
      input.type = type;
      input.value = String(fieldValue);
      input.setAttribute("data-field", name);
      input.setAttribute("data-room", String(roomIndex));
      if (loopIndex !== undefined) { input.setAttribute("data-loop", String(loopIndex)); }
      if (type === "number") {
        input.min = "0";
        input.max = "20000";
        input.step = "0.1";
        input.inputMode = "decimal";
      }
      label.appendChild(input);
      return label;
    }
    function buildSelect(labelText, roomIndex, current) {
      var label = make("label", "rk-field", labelText);
      var select = make("select");
      select.setAttribute("data-field", "division");
      select.setAttribute("data-room", String(roomIndex));
      var equal = make("option", "", "Równo — przykład");
      equal.value = "equal";
      var manual = make("option", "", "Ręcznie — moc każdej pętli");
      manual.value = "manual";
      select.appendChild(equal);
      select.appendChild(manual);
      select.value = current;
      label.appendChild(select);
      return label;
    }
    function renderRooms() {
      roomsList.textContent = "";
      rooms.forEach(function (room, index) {
        var card = make("div", "rk-room");
        var head = make("div", "rk-room-head");
        head.appendChild(make("strong", "", "Pomieszczenie " + (index + 1)));
        var remove = make("button", "rk-ghost", "Usuń");
        remove.type = "button";
        remove.setAttribute("data-remove-room", String(index));
        remove.disabled = rooms.length === 1;
        remove.setAttribute("aria-label", "Usuń pomieszczenie " + (index + 1));
        head.appendChild(remove);
        card.appendChild(head);
        var fields = make("div", "rk-room-fields");
        fields.appendChild(buildField("Nazwa pomieszczenia", "text", room.name, "name", index));
        fields.appendChild(buildField("Moc oddawana przez podłogę [W]", "number", room.power, "power", index));
        var loopCountLabel = make("label", "rk-field", "Liczba pętli w pomieszczeniu");
        var loopCount = make("select");
        loopCount.setAttribute("data-room", String(index));
        loopCount.setAttribute("data-field", "count");
        for (var n = 1; n <= 8; n += 1) {
          var option = make("option", "", String(n));
          option.value = String(n);
          loopCount.appendChild(option);
        }
        loopCount.value = String(room.count);
        loopCountLabel.appendChild(loopCount);
        fields.appendChild(loopCountLabel);
        fields.appendChild(buildSelect("Podział mocy pomiędzy pętle", index, room.division));
        card.appendChild(fields);
        if (room.division === "manual") {
          var manualBox = make("div", "rk-manual");
          manualBox.appendChild(make("h4", "", "Wpisz moc każdej pętli [W]"));
          var manualFields = make("div", "rk-fields");
          for (var loop = 0; loop < room.count; loop += 1) {
            manualFields.appendChild(buildField("Pętla " + (loop + 1), "number", room.loops[loop], "loopPower", index, loop));
          }
          manualBox.appendChild(manualFields);
          card.appendChild(manualBox);
        }
        roomsList.appendChild(card);
      });
      find("#rk-flow-add-room").disabled = rooms.length >= 8;
    }
    function setError(message) {
      error.textContent = message;
      error.hidden = false;
      result.hidden = true;
    }
    function clearError() {
      error.hidden = true;
      error.textContent = "";
      result.hidden = false;
    }
    function cell(row, label, value) {
      var td = make("td", "", value);
      td.setAttribute("data-label", label);
      row.appendChild(td);
    }
    function svgNode(tag, attributes) {
      var node = document.createElementNS("http://www.w3.org/2000/svg", tag);
      Object.keys(attributes).forEach(function (key) { node.setAttribute(key, String(attributes[key])); });
      return node;
    }
    function chartDraw() {
      var key = chartSelect.value;
      var selected = plottedLoops[0];
      plottedLoops.forEach(function (loop) { if (loop.key === key) { selected = loop; } });
      if (!selected) { return; }
      var group = find("#rk-flow-chart-drawing");
      group.textContent = "";
      var maxFlow = flowHour(selected.power, 3) / 60 * 1.15;
      function x(delta) { return 72 + ((delta - 3) / 7) * 546; }
      function y(delta) { return 211 - ((flowHour(selected.power, delta) / 60) / maxFlow) * 165; }
      var baseline = svgNode("line", {x1:72,y1:211,x2:624,y2:211,"class":"rk-axis"});
      var vertical = svgNode("line", {x1:72,y1:32,x2:72,y2:211,"class":"rk-axis"});
      group.appendChild(baseline);
      group.appendChild(vertical);
      [3, 5, 7, 10].forEach(function (delta) {
        var gx = x(delta);
        var tick = svgNode("line", {x1:gx,y1:211,x2:gx,y2:217,"class":"rk-axis"});
        group.appendChild(tick);
        var label = svgNode("text", {x:gx,y:240,"text-anchor":"middle"});
        label.textContent = String(delta) + " K";
        group.appendChild(label);
      });
      var yLabel = svgNode("text", {x:70,y:27,"text-anchor":"start"});
      yLabel.textContent = "l/min";
      group.appendChild(yLabel);
      var zero = svgNode("text", {x:60,y:215,"text-anchor":"end"});
      zero.textContent = "0";
      group.appendChild(zero);
      var top = svgNode("text", {x:60,y:49,"text-anchor":"end"});
      top.textContent = format(maxFlow,1);
      group.appendChild(top);
      var points = [];
      for (var step = 0; step <= 28; step += 1) {
        var d = 3 + step / 4;
        points.push(formatSvg(x(d)) + "," + formatSvg(y(d)));
      }
      group.appendChild(svgNode("polyline", {points:points.join(" "),"class":"rk-plotline"}));
      [3, 5, 7, 10].forEach(function (delta) {
        var dot = svgNode("circle", {cx:x(delta),cy:y(delta),r:6,"class":"rk-point"});
        var title = svgNode("title", {});
        title.textContent = delta + " K: " + format(flowHour(selected.power,delta)/60,2) + " l/min";
        dot.appendChild(title);
        group.appendChild(dot);
      });
      if (usedDelta >= 3) {
        if (usedDelta <= 10) {
          var mx = x(usedDelta);
          group.appendChild(svgNode("line", {x1:mx,y1:211,x2:mx,y2:y(usedDelta),stroke:"#f76b47","stroke-width":2,"stroke-dasharray":"5 5"}));
          group.appendChild(svgNode("circle", {cx:mx,cy:y(usedDelta),r:8,fill:"#f76b47",stroke:"#fff","stroke-width":2}));
        }
      }
      var row = find("#rk-flow-chart-values");
      row.textContent = "";
      [3, 5, 7, 10].forEach(function (delta) { row.appendChild(make("td", "", format(flowHour(selected.power,delta)/60,2) + " l/min")); });
      find("#rk-flow-chart-description").textContent = "Pętla " + selected.name + ", moc " + format(selected.power,0) + " W. Wartości w tabeli pod wykresem dla 3, 5, 7 i 10 kelwinów.";
    }
    function formatSvg(value) { return value.toFixed(2); }
    function analyze() {
      var delta;
      if (deltaMode.value === "temps") {
        var supply = valueNumber(find("#rk-flow-supply").value);
        var returnTemp = valueNumber(find("#rk-flow-return").value);
        if (!Number.isFinite(supply)) { setError("Wpisz temperaturę zasilania."); return; }
        if (!Number.isFinite(returnTemp)) { setError("Wpisz temperaturę powrotu."); return; }
        delta = supply - returnTemp;
        if (supply < 15) { setError("Sprawdź wpisaną temperaturę zasilania."); return; }
        if (supply > 60) { setError("Sprawdź wpisaną temperaturę zasilania. Kalkulator pokazuje zakres przykładowy do 60°C."); return; }
      } else {
        delta = valueNumber(find("#rk-flow-input-delta").value);
      }
      if (!Number.isFinite(delta)) { setError("Podaj projektowe ΔT albo temperatury zasilania i powrotu."); return; }
      if (delta < 1) { setError("Różnica temperatur musi wynosić co najmniej 1 K. Powrót musi być chłodniejszy niż zasilanie."); return; }
      if (delta > 20) { setError("Sprawdź temperatury: ΔT przekracza zakres przykładowy kalkulatora (20 K)."); return; }
      var entries = [];
      if (chosenMode() === "single") {
        var one = valueNumber(find("#rk-flow-single-power").value);
        if (!Number.isFinite(one)) { setError("Wpisz moc przypisaną do jednej pętli."); return; }
        if (one <= 0) { setError("Moc pętli musi być dodatnia."); return; }
        if (one > 10000) { setError("Sprawdź moc pętli; podana wartość przekracza zakres narzędzia."); return; }
        entries.push({key:"single", room:"Wybrana pętla", name:"Pętla 1", power:one});
      } else {
        for (var r = 0; r < rooms.length; r += 1) {
          var room = rooms[r];
          var roomPower = valueNumber(room.power);
          if (!Number.isFinite(roomPower)) { setError("Wpisz moc podłogi w pomieszczeniu " + (r+1) + "."); return; }
          if (roomPower <= 0) { setError("Moc pomieszczenia " + (r+1) + " musi być dodatnia."); return; }
          if (roomPower > 20000) { setError("Sprawdź moc pomieszczenia " + (r+1) + ": przekracza zakres narzędzia."); return; }
          var name = room.name.trim();
          if (name === "") { name = "Pomieszczenie " + (r+1); }
          var powers = [];
          var sum = 0;
          for (var i = 0; i < room.count; i += 1) {
            var p = room.division === "manual" ? valueNumber(room.loops[i]) : roomPower / room.count;
            if (!Number.isFinite(p)) { setError("Wpisz moc pętli " + (i+1) + " w pomieszczeniu " + name + "."); return; }
            if (p <= 0) { setError("Każdej dodanej pętli w pomieszczeniu " + name + " przypisz dodatnią moc."); return; }
            sum += p;
            powers.push(p);
          }
          if (room.division === "manual") {
            if (Math.abs(sum-roomPower) > 1) { setError("Suma mocy pętli w pomieszczeniu " + name + " wynosi " + format(sum,1) + " W, a moc pomieszczenia " + format(roomPower,1) + " W. Popraw podział."); return; }
          }
          powers.forEach(function (power, index) { entries.push({key:String(r)+":"+index,room:name,name:"Pętla "+(index+1),power:power}); });
        }
      }
      usedDelta = delta;
      plottedLoops = entries;
      var totalHour = 0;
      var tbody = find("#rk-flow-result-rows");
      tbody.textContent = "";
      entries.forEach(function (entry) {
        var hour = flowHour(entry.power,delta);
        totalHour += hour;
        var row = make("tr");
        cell(row,"Pomieszczenie",entry.room);
        cell(row,"Pętla",entry.name);
        cell(row,"Moc [W]",format(entry.power,1));
        cell(row,"Przepływ [l/min]",format(hour/60,2));
        cell(row,"Przepływ [l/h]",format(hour,1));
        tbody.appendChild(row);
      });
      find("#rk-flow-total").textContent = format(totalHour/60,2) + " l/min";
      find("#rk-flow-hour").textContent = format(totalHour,1) + " l/h";
      find("#rk-flow-cubic").textContent = format(totalHour/1000,3) + " m³/h";
      find("#rk-flow-used-delta").textContent = format(delta,1) + " K";
      if (chosenMode() === "single") {
        find("#rk-flow-result-intro").textContent = "Wymagany przepływ jednej pętli dla wpisanej mocy i różnicy temperatur.";
      } else {
        find("#rk-flow-result-intro").textContent = "Suma wymaganych przepływów " + entries.length + " pętli przy założeniu ich jednoczesnej pracy na jednym rozdzielaczu.";
      }
      var oldSelection = chartSelect.value;
      chartSelect.textContent = "";
      entries.forEach(function (entry) {
        var option = make("option", "", entry.room + " — " + entry.name + " (" + format(entry.power,0) + " W)");
        option.value = entry.key;
        chartSelect.appendChild(option);
      });
      if (entries.some(function (entry) { return entry.key === oldSelection; })) { chartSelect.value = oldSelection; }
      clearError();
      chartDraw();
    }
    root.querySelectorAll('input[name="rk-flow-mode"]').forEach(function (radio) {
      radio.addEventListener("change", function () {
        singleStep.hidden = chosenMode() !== "single";
        roomsStep.hidden = chosenMode() !== "rooms";
        analyze();
      });
    });
    deltaMode.addEventListener("change", function () {
      deltaWrap.hidden = deltaMode.value === "temps";
      tempWrap.hidden = deltaMode.value !== "temps";
      analyze();
    });
    ["#rk-flow-input-delta","#rk-flow-supply","#rk-flow-return","#rk-flow-single-power"].forEach(function (selector) {
      find(selector).addEventListener("input", analyze);
    });
    roomsList.addEventListener("input", function (event) {
      var element = event.target;
      var field = element.getAttribute("data-field");
      if (!field) { return; }
      var roomIndex = Number(element.getAttribute("data-room"));
      var room = rooms[roomIndex];
      if (!room) { return; }
      if (field === "name") { room.name = element.value; }
      if (field === "power") { room.power = element.value; }
      if (field === "loopPower") { room.loops[Number(element.getAttribute("data-loop"))] = element.value; }
      analyze();
    });
    roomsList.addEventListener("change", function (event) {
      var element = event.target;
      var field = element.getAttribute("data-field");
      if (field !== "count") {
        if (field !== "division") { return; }
      }
      var room = rooms[Number(element.getAttribute("data-room"))];
      if (!room) { return; }
      if (field === "count") { room.count = Number(element.value); }
      if (field === "division") { room.division = element.value; }
      room.loops = splitPower(room.power,room.count);
      renderRooms();
      analyze();
    });
    roomsList.addEventListener("click", function (event) {
      var element = event.target.closest("[data-remove-room]");
      if (!element) { return; }
      var index = Number(element.getAttribute("data-remove-room"));
      if (rooms.length <= 1) { return; }
      rooms.splice(index,1);
      renderRooms();
      analyze();
    });
    find("#rk-flow-add-room").addEventListener("click", function () {
      if (rooms.length >= 8) { return; }
      rooms.push({name:"Pomieszczenie "+(rooms.length+1),power:"400",count:1,division:"equal",loops:["400"]});
      renderRooms();
      analyze();
    });
    find("#rk-flow-run").addEventListener("click", analyze);
    find("#rk-flow-reset").addEventListener("click", function () {
      find('input[name="rk-flow-mode"][value="single"]').checked = true;
      singleStep.hidden = false;
      roomsStep.hidden = true;
      deltaMode.value = "delta";
      deltaWrap.hidden = false;
      tempWrap.hidden = true;
      find("#rk-flow-input-delta").value = "5";
      find("#rk-flow-supply").value = "35";
      find("#rk-flow-return").value = "30";
      find("#rk-flow-single-power").value = "600";
      rooms = [{name:"Salon",power:"1200",count:2,division:"equal",loops:["600","600"]}];
      renderRooms();
      analyze();
    });
    chartSelect.addEventListener("change", chartDraw);
    renderRooms();
    analyze();
  }
  if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded",initFlowGuide); }
  else { initFlowGuide(); }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce-ile-l-min-na-jedna-petle/">Jaki przepływ na podłogówce? Ile l/min na jedną pętlę.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce-ile-l-min-na-jedna-petle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół.</title>
		<link>https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 03 Oct 2026 06:59:32 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Eksploatacja ogrzewania]]></category>
		<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogówka]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Wylewka na ogrzewanie podłogowe]]></category>
		<category><![CDATA[ile trwa wygrzewanie wylewki]]></category>
		<category><![CDATA[jastrych anhydrytowy]]></category>
		<category><![CDATA[jastrych cementowy]]></category>
		<category><![CDATA[jastrych grzewczy]]></category>
		<category><![CDATA[kiedy wygrzewać wylewkę]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pierwsze uruchomienie podłogówki]]></category>
		<category><![CDATA[pomiar wilgotności wylewki]]></category>
		<category><![CDATA[program wygrzewania wylewki]]></category>
		<category><![CDATA[protokół podłogówki]]></category>
		<category><![CDATA[protokół wygrzewania wylewki]]></category>
		<category><![CDATA[temperatura wygrzewania wylewki]]></category>
		<category><![CDATA[wilgotność wylewki]]></category>
		<category><![CDATA[wygrzewanie jastrychu]]></category>
		<category><![CDATA[wygrzewanie podłogówki]]></category>
		<category><![CDATA[wygrzewanie posadzki]]></category>
		<category><![CDATA[wygrzewanie wylewki]]></category>
		<category><![CDATA[wygrzewanie wylewki pod ogrzewanie podłogowe]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<category><![CDATA[wylewka cementowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7788</guid>

					<description><![CDATA[<p>Prawidłowe uruchomienie instalacji po wykonaniu jastrychu ma ogromne znaczenie dla trwałości późniejszej posadzki. Wygrzewanie wylewki pod ogrzewanie podłogowe powinno rozpocząć się dopiero po odpowiednim okresie dojrzewania materiału i przebiegać zgodnie z wymaganiami konkretnego jastrychu oraz parametrami instalacji. W poradniku wyjaśniamy, kiedy można rozpocząć pierwszy cykl grzewczy, czym różni się postępowanie z jastrychem cementowym i anhydrytowym, jak kontrolować temperaturę zasilania oraz dlaczego samo zakończenie programu wygrzewania nie oznacza jeszcze, że podłoże jest gotowe pod płytki, panele lub drewno. Pokazujemy również, jak prowadzić dziennik wygrzewania, przygotować protokół i uniknąć błędów podczas pierwszego uruchomienia podłogówki.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/">Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-heat-guide {
    --rh-navy:#0b2536;--rh-mid:#143c50;--rh-cyan:#27c5d5;--rh-cyan-deep:#077a93;
    --rh-orange:#ff6846;--rh-ink:#102c3e;--rh-copy:#3b5869;--rh-muted:#667f8e;
    --rh-line:#d1e2e9;--rh-bg:#f2f8fa;--rh-white:#fff;
    color:var(--rh-ink);font:16px/1.65 Arial,Helvetica,sans-serif;
    margin:0 auto;max-width:1360px;overflow-wrap:anywhere;width:100%;
  }
  #rk-heat-guide,#rk-heat-guide *{box-sizing:border-box;min-width:0}
  #rk-heat-guide a{color:var(--rh-cyan-deep);text-decoration-thickness:1px;text-underline-offset:3px}
  #rk-heat-guide a:hover{color:#cf492d}
  #rk-heat-guide img{display:block;height:auto;max-width:100%}
  #rk-heat-guide button,#rk-heat-guide input,#rk-heat-guide select,#rk-heat-guide textarea{font:inherit}
  #rk-heat-guide :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--rh-cyan);outline-offset:3px}
  #rk-heat-guide .rh-shell{background:#fff;border:1px solid var(--rh-line);box-shadow:0 18px 60px rgba(10,38,54,.11);overflow:hidden}
  #rk-heat-guide .rh-hero{background:radial-gradient(circle at 94% 115%,rgba(39,197,213,.22) 0 19%,transparent 19.2%),linear-gradient(120deg,#0b2536,#17455a 68%,#0c6676);color:#fff;padding:64px 58px 57px}
  #rk-heat-guide .rh-kicker,#rk-heat-guide .rh-eyebrow{color:#70e5ed;display:block;font-size:.77rem;font-weight:900;letter-spacing:.12em;margin:0 0 16px;text-transform:uppercase}
  #rk-heat-guide .rh-hero-title,#rk-heat-guide .rh-section h2,#rk-heat-guide .rh-author h2{font-family:Arial,Helvetica,sans-serif;font-weight:900;letter-spacing:-.035em;line-height:1.09;margin:0}
  #rk-heat-guide .rh-hero-title{font-size:clamp(2.4rem,5.8vw,5.2rem);max-width:1160px}
  #rk-heat-guide .rh-hero-title span{color:#72e7ef}
  #rk-heat-guide .rh-hero-lead{color:#e0eff4;font-size:clamp(1.04rem,1.9vw,1.38rem);line-height:1.58;margin:25px 0 0;max-width:1080px}
  #rk-heat-guide .rh-tags,#rk-heat-guide .rh-meta,#rk-heat-guide .rh-nav{display:flex;flex-wrap:wrap}
  #rk-heat-guide .rh-tags{gap:9px;margin-top:28px}
  #rk-heat-guide .rh-tags span{border:1px solid rgba(255,255,255,.28);border-radius:99px;color:#fff;font-size:.81rem;font-weight:800;padding:7px 12px}
  #rk-heat-guide .rh-meta{color:#ccdde4;font-size:.83rem;gap:10px 23px;margin-top:31px}
  #rk-heat-guide .rh-meta strong{color:#fff}
  #rk-heat-guide .rh-nav{align-items:center;border-bottom:1px solid var(--rh-line);gap:8px;padding:19px 29px;position:static}
  #rk-heat-guide .rh-nav-label{font-size:.73rem;font-weight:900;letter-spacing:.08em;margin-right:5px;text-transform:uppercase}
  #rk-heat-guide .rh-nav a{background:#edf5f7;border-radius:30px;color:var(--rh-ink);font-size:.78rem;font-weight:800;line-height:1.3;padding:8px 12px;text-decoration:none}
  #rk-heat-guide .rh-nav a:hover{background:#d9f5f8;color:#075e73}
  #rk-heat-guide .rh-section,#rk-heat-guide .rh-author{padding:62px 58px}
  #rk-heat-guide .rh-section+.rh-section,#rk-heat-guide .rh-author{border-top:1px solid var(--rh-line)}
  #rk-heat-guide .rh-soft{background:var(--rh-bg)}
  #rk-heat-guide .rh-eyebrow{color:var(--rh-cyan-deep);margin-bottom:11px}
  #rk-heat-guide .rh-section h2,#rk-heat-guide .rh-author h2{font-size:clamp(2rem,3.9vw,3.55rem);max-width:1110px}
  #rk-heat-guide .rh-lead{color:var(--rh-copy);font-size:clamp(1.04rem,1.6vw,1.23rem);line-height:1.7;margin:20px 0 0;max-width:1100px}
  #rk-heat-guide .rh-copy{color:var(--rh-copy);margin:19px 0 0}
  #rk-heat-guide .rh-section h3{color:var(--rh-ink);font-size:1.3rem;line-height:1.3;margin:29px 0 12px}
  #rk-heat-guide .rh-section h4{color:var(--rh-ink);font-size:1.07rem;line-height:1.35;margin:0 0 9px}
  #rk-heat-guide .rh-grid{display:grid;gap:17px;margin-top:27px}
  #rk-heat-guide .rh-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rk-heat-guide .rh-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #rk-heat-guide .rh-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  #rk-heat-guide .rh-card{background:#fff;border:1px solid var(--rh-line);border-radius:16px;padding:22px}
  #rk-heat-guide .rh-card h3{font-size:1.14rem;margin:0 0 9px}
  #rk-heat-guide .rh-card p{color:var(--rh-copy);margin:0}
  #rk-heat-guide .rh-num{align-items:center;background:#dff7f9;border-radius:10px;color:#086d83;display:inline-flex;font-size:.8rem;font-weight:900;justify-content:center;min-height:36px;min-width:36px;padding:6px 10px;margin-bottom:13px}
  #rk-heat-guide .rh-answer{background:linear-gradient(125deg,#e6f9fb,#f8fcfd);border:1px solid #a7dfe7;border-left:7px solid var(--rh-cyan);border-radius:16px;margin-top:26px;padding:24px 27px}
  #rk-heat-guide .rh-answer strong{display:block;font-size:1.19rem;line-height:1.42}
  #rk-heat-guide .rh-answer p{color:var(--rh-copy);margin:10px 0 0}
  #rk-heat-guide .rh-note{background:#fff5e4;border-left:5px solid #efb336;border-radius:12px;color:#604b20;margin-top:23px;padding:17px 20px}
  #rk-heat-guide .rh-note p{margin:0}
  #rk-heat-guide .rh-note-good{background:#e9faf4;border-color:#2fcda1;color:#155f4a}
  #rk-heat-guide .rh-note-alert{background:#fff0eb;border-color:var(--rh-orange);color:#6a3729}
  #rk-heat-guide .rh-list{color:var(--rh-copy);margin:18px 0 0;padding-left:22px}
  #rk-heat-guide .rh-list li+li{margin-top:9px}
  #rk-heat-guide .rh-table-wrap{margin-top:26px;overflow-x:auto}
  #rk-heat-guide table{border-collapse:collapse;min-width:740px;width:100%}
  #rk-heat-guide th{background:var(--rh-navy);color:#fff;font-size:.78rem;letter-spacing:.04em;padding:15px;text-align:left;text-transform:uppercase}
  #rk-heat-guide td{background:#fff;border:1px solid var(--rh-line);color:var(--rh-copy);padding:15px;vertical-align:top}
  #rk-heat-guide td strong{color:var(--rh-ink)}
  #rk-heat-guide .rh-flow{display:grid;gap:11px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:27px}
  #rk-heat-guide .rh-flow-item{background:#fff;border:1px solid var(--rh-line);border-radius:14px;padding:18px}
  #rk-heat-guide .rh-flow-item strong{color:var(--rh-ink);display:block;line-height:1.35}
  #rk-heat-guide .rh-flow-item span{color:var(--rh-copy);display:block;font-size:.86rem;margin-top:7px}
  #rk-heat-guide .rh-flow-item b{color:var(--rh-cyan-deep);display:block;font-size:.72rem;letter-spacing:.08em;margin-bottom:8px;text-transform:uppercase}
  #rk-heat-guide .rh-tool{background:var(--rh-navy);border-radius:21px;color:#fff;margin-top:29px;padding:28px}
  #rk-heat-guide .rh-tool h3{color:#fff;font-size:clamp(1.45rem,2.8vw,2.17rem);margin:0}
  #rk-heat-guide .rh-tool>p{color:#cbe0e7;margin:10px 0 0}
  #rk-heat-guide .rh-fields{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}
  #rk-heat-guide .rh-field{display:block}
  #rk-heat-guide .rh-field>span{color:#eaf5f7;display:block;font-size:.83rem;font-weight:800;line-height:1.35;margin-bottom:7px}
  #rk-heat-guide .rh-field :is(input,select,textarea){background:#fff;border:1px solid #a8c1cd;border-radius:9px;color:var(--rh-ink);min-height:47px;padding:10px 12px;width:100%}
  #rk-heat-guide .rh-field textarea{min-height:90px;resize:vertical}
  #rk-heat-guide .rh-tool .rh-check{align-items:flex-start;background:#19445a;border:1px solid #3e6d80;border-radius:11px;color:#f0f9fa;display:flex;font-size:.9rem;gap:11px;line-height:1.45;margin-top:13px;padding:13px}
  #rk-heat-guide .rh-tool .rh-check input{accent-color:var(--rh-cyan);flex:0 0 auto;height:18px;margin:3px 0 0;width:18px}
  #rk-heat-guide .rh-tool .rh-small{color:#bdd5df;font-size:.8rem;margin:14px 0 0}
  #rk-heat-guide .rh-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:19px}
  #rk-heat-guide .rh-button{background:var(--rh-orange);border:1px solid var(--rh-orange);border-radius:10px;color:#fff;cursor:pointer;font-weight:900;min-height:48px;padding:10px 17px}
  #rk-heat-guide .rh-button:hover{background:#e34f31}
  #rk-heat-guide .rh-button-outline{background:transparent;border-color:#789aa9;color:#fff}
  #rk-heat-guide .rh-button-outline:hover{background:#24536a;border-color:#abc9d4}
  #rk-heat-guide .rh-result{background:#fff;border-left:6px solid #f0b338;border-radius:14px;color:var(--rh-ink);margin-top:19px;padding:21px}
  #rk-heat-guide .rh-result.is-ready{border-left-color:#2fcda1}
  #rk-heat-guide .rh-result.is-stop{border-left-color:var(--rh-orange)}
  #rk-heat-guide .rh-result h4{color:var(--rh-ink);font-size:1.28rem;margin:0 0 8px}
  #rk-heat-guide .rh-result p{color:var(--rh-copy);margin:8px 0 0}
  #rk-heat-guide .rh-result ul{color:var(--rh-copy);margin:11px 0 0;padding-left:20px}
  #rk-heat-guide .rh-result li+li{margin-top:6px}
  #rk-heat-guide .rh-stage-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}
  #rk-heat-guide [hidden]{display:none!important}
  #rk-heat-guide .rh-stage{background:#f1f7f9;border:1px solid var(--rh-line);border-radius:11px;padding:14px}
  #rk-heat-guide .rh-stage strong{color:#086f83;display:block;font-size:.77rem;letter-spacing:.05em;text-transform:uppercase}
  #rk-heat-guide .rh-stage span{color:var(--rh-ink);display:block;font-size:1.05rem;font-weight:900;line-height:1.35;margin-top:6px}
  #rk-heat-guide .rh-stage small{color:var(--rh-copy);display:block;line-height:1.4;margin-top:6px}
  #rk-heat-guide .rh-diary-form{background:#143a4d;border:1px solid #37657a;border-radius:14px;margin-top:17px;padding:18px}
  #rk-heat-guide .rh-diary-form h4{color:#fff;margin:0 0 12px}
  #rk-heat-guide .rh-tool .rh-table-wrap{margin-top:18px}
  #rk-heat-guide .rh-tool td{font-size:.86rem;line-height:1.45}
  #rk-heat-guide .rh-tool th{background:#215369;border-color:#37677b}
  #rk-heat-guide .rh-remove{background:#fff0eb;border:1px solid #efad9b;border-radius:7px;color:#8e3a28;cursor:pointer;font-size:.8rem;font-weight:800;padding:6px 9px}
  #rk-heat-guide .rh-diary-status{color:#c8ecea;font-size:.84rem;margin:12px 0 0;min-height:1.4em}
  #rk-heat-guide .rh-cta{background:radial-gradient(circle at 97% 130%,rgba(39,197,213,.22) 0 22%,transparent 22.2%),linear-gradient(126deg,#0b2536,#17465b 70%,#0d6978);border-radius:20px;color:#fff;margin-top:29px;padding:32px}
  #rk-heat-guide .rh-cta h3{color:#fff;font-size:clamp(1.5rem,2.9vw,2.5rem);margin:0;max-width:1000px}
  #rk-heat-guide .rh-cta p{color:#d8e9ef;margin:13px 0 0;max-width:1000px}
  #rk-heat-guide .rh-cta a.rh-cta-link{background:var(--rh-orange);border-radius:10px;color:#fff;display:inline-block;font-weight:900;margin-top:21px;padding:13px 18px;text-decoration:none}
  #rk-heat-guide .rh-cta a.rh-cta-link:hover{background:#fff;color:#d64e30}
  #rk-heat-guide .rh-cta small{color:#bdd5df;display:block;font-size:.75rem;margin-top:11px}
  #rk-heat-guide .rh-faq{display:grid;gap:11px;margin-top:26px}
  #rk-heat-guide .rh-faq details{background:#fff;border:1px solid var(--rh-line);border-radius:13px;overflow:hidden}
  #rk-heat-guide .rh-faq summary{color:var(--rh-ink);cursor:pointer;font-weight:900;list-style:none;padding:17px 49px 17px 19px;position:relative}
  #rk-heat-guide .rh-faq summary::-webkit-details-marker{display:none}
  #rk-heat-guide .rh-faq summary::after{color:var(--rh-cyan-deep);content:"+";font-size:1.55rem;position:absolute;right:18px;top:9px}
  #rk-heat-guide .rh-faq details[open] summary::after{content:"−"}
  #rk-heat-guide .rh-faq-answer{border-top:1px solid var(--rh-line);color:var(--rh-copy);padding:17px 19px}
  #rk-heat-guide .rh-faq-answer p{margin:0}
  #rk-heat-guide .rh-sources{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:23px}
  #rk-heat-guide .rh-source{background:#f5f9fa;border:1px solid var(--rh-line);border-radius:13px;padding:18px}
  #rk-heat-guide .rh-source a{font-weight:900}
  #rk-heat-guide .rh-source p{color:var(--rh-copy);margin:7px 0 0}
  #rk-heat-guide .rh-author{background:#ebf5f8}
  #rk-heat-guide .rh-author-layout{background:#fff;border:1px solid var(--rh-line);border-radius:20px;display:grid;grid-template-columns:275px minmax(0,1fr);margin-top:26px;overflow:hidden}
  #rk-heat-guide .rh-author-side{align-items:center;background:var(--rh-navy);color:#fff;display:flex;flex-direction:column;padding:34px 22px;text-align:center}
  #rk-heat-guide .rh-author-side img{border:5px solid rgba(255,255,255,.23);border-radius:50%;height:150px;object-fit:cover;width:150px}
  #rk-heat-guide .rh-author-side strong{font-size:1.2rem;margin-top:18px}
  #rk-heat-guide .rh-author-side p{color:#c3d8e0;font-size:.82rem;margin:7px 0 0}
  #rk-heat-guide .rh-social{display:flex;gap:9px;margin-top:20px}
  #rk-heat-guide .rh-social a{align-items:center;border:1px solid #618299;border-radius:50%;color:#fff;display:inline-flex;font-size:.85rem;font-weight:900;height:40px;justify-content:center;text-decoration:none;width:40px}
  #rk-heat-guide .rh-author-body{padding:34px}
  #rk-heat-guide .rh-author-body blockquote{background:#f0f9fa;border-left:5px solid var(--rh-cyan);border-radius:11px;color:var(--rh-ink);font-size:1.05rem;font-style:italic;font-weight:700;line-height:1.65;margin:0 0 20px;padding:18px}
  #rk-heat-guide .rh-author-body p{color:var(--rh-copy);margin:0 0 16px}
  @media(max-width:1000px){#rk-heat-guide .rh-grid-4,#rk-heat-guide .rh-flow,#rk-heat-guide .rh-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:760px){#rk-heat-guide .rh-hero,#rk-heat-guide .rh-section,#rk-heat-guide .rh-author{padding-left:27px;padding-right:27px}#rk-heat-guide .rh-grid-3,#rk-heat-guide .rh-author-layout{grid-template-columns:1fr}}
  @media(max-width:580px){
    #rk-heat-guide .rh-hero,#rk-heat-guide .rh-section,#rk-heat-guide .rh-author{padding:45px 18px}
    #rk-heat-guide .rh-nav{padding:16px}
    #rk-heat-guide .rh-grid-2,#rk-heat-guide .rh-grid-3,#rk-heat-guide .rh-grid-4,#rk-heat-guide .rh-fields,#rk-heat-guide .rh-flow,#rk-heat-guide .rh-stage-grid,#rk-heat-guide .rh-sources{grid-template-columns:1fr}
    #rk-heat-guide .rh-tool,#rk-heat-guide .rh-cta{padding:19px}
    #rk-heat-guide .rh-actions{display:grid;grid-template-columns:1fr}
    #rk-heat-guide .rh-button,#rk-heat-guide .rh-cta a.rh-cta-link{text-align:center;width:100%}
    #rk-heat-guide .rh-table-wrap{overflow:visible}
    #rk-heat-guide table,#rk-heat-guide thead,#rk-heat-guide tbody,#rk-heat-guide tr,#rk-heat-guide td{display:block;min-width:0;width:100%}
    #rk-heat-guide thead{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;width:1px}
    #rk-heat-guide tbody{display:grid;gap:13px}
    #rk-heat-guide tr{background:#fff;border:1px solid var(--rh-line);border-radius:12px;overflow:hidden}
    #rk-heat-guide td{border:0;border-bottom:1px solid var(--rh-line)}
    #rk-heat-guide td:last-child{border-bottom:0}
    #rk-heat-guide td::before{color:var(--rh-cyan-deep);content:attr(data-label);display:block;font-size:.7rem;font-weight:900;letter-spacing:.05em;margin-bottom:3px;text-transform:uppercase}
    #rk-heat-guide .rh-author-body{padding:23px}
  }
  @media(prefers-reduced-motion:reduce){#rk-heat-guide *,#rk-heat-guide *::before,#rk-heat-guide *::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
  @media print{
    body.rh-print-diary *{visibility:hidden!important}
    body.rh-print-diary #rk-heat-diary,body.rh-print-diary #rk-heat-diary *{visibility:visible!important}
    body.rh-print-diary #rk-heat-diary{background:#fff!important;color:#102c3e!important;left:0;position:absolute;top:0;width:100%}
    body.rh-print-diary #rk-heat-diary .rh-diary-form,body.rh-print-diary #rk-heat-diary .rh-actions,body.rh-print-diary #rk-heat-diary .rh-remove,body.rh-print-diary #rk-heat-diary .rh-diary-status{display:none!important}
    body.rh-print-diary #rk-heat-diary table{min-width:0}
    body.rh-print-diary #rk-heat-diary th{background:#e7eff2!important;color:#102c3e!important}
  }
</style>

<article id="rk-heat-guide" lang="pl" aria-labelledby="rh-hero-title">
  <div class="rh-shell">
    <header class="rh-hero">
      <span class="rh-kicker">Jastrych grzewczy · praktyczna procedura</span>
      <div class="rh-hero-title" id="rh-hero-title">Wygrzewanie wylewki pod podłogówkę: <span>termin to dopiero początek.</span></div>
      <p class="rh-hero-lead">Kiedy można rozpocząć, jak prowadzić pierwszy cykl ogrzewania i po czym poznać, że podłoże nadaje się pod okładzinę? Oddzielamy wymagania jastrychu od ustawień źródła ciepła i pokazujemy, co trzeba zapisać w protokole.</p>
      <div class="rh-tags" aria-label="Zakres poradnika"><span>cementowy CT i siarczanowo-wapniowy CA</span><span>pierwsze nagrzewanie</span><span>planer etapów</span><span>dziennik wygrzewania</span><span>pomiar wilgotności</span></div>
      <div class="rh-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Data publikacji: <strong>3 października 2026 r.</strong></span><span>Zakres: <strong>wodne ogrzewanie podłogowe w jastrychu</strong></span></div>
    </header>

    <nav class="rh-nav" aria-label="Na skróty — sekcje artykułu">
      <span class="rh-nav-label">Na skróty</span>
      <a href="#rh-odpowiedz">Szybka odpowiedź</a><a href="#rh-etapy">Trzy procesy</a><a href="#rh-termin">Kiedy zacząć</a>
      <a href="#rh-przed">Przed startem</a><a href="#rh-planer">Planer</a><a href="#rh-program">Przebieg</a>
      <a href="#rh-materialy">CT i CA</a><a href="#rh-zrodlo">Pompa i kocioł</a><a href="#rk-heat-diary">Dziennik</a>
      <a href="#rh-wilgotnosc">Pomiar CM</a><a href="#rh-awarie">Przerwy i rysy</a><a href="#rh-bledy">Błędy</a>
      <a href="#rh-checklista">Checklista</a><a href="#rh-faq">FAQ</a><a href="#rh-final">Projekt</a>
      <a href="#rh-zrodla">Źródła</a><a href="#rh-autor">Autor</a>
    </nav>

    <section class="rh-section" id="rh-odpowiedz">
      <span class="rh-eyebrow">Odpowiedź w 60 sekund</span>
      <h2>Jak prawidłowo wygrzać wylewkę na ogrzewaniu podłogowym?</h2>
      <p class="rh-lead">Rozpocznij dopiero po okresie dojrzewania przewidzianym dla zastosowanego jastrychu. Pierwszy cykl prowadź według instrukcji materiału, procedury instalacji i maksymalnej <strong>projektowej</strong> temperatury zasilania. Zapisz rzeczywiste odczyty i wszelkie przerwy. Przed ułożeniem okładziny osobno potwierdź stan oraz wilgotność podłoża.</p>
      <div class="rh-answer"><strong>Orientacyjny punkt odniesienia dla zwykłych jastrychów: CT najwcześniej po 21 dniach, CA najwcześniej po 7 dniach. To nie jest zgoda na uruchomienie każdej konkretnej wylewki.</strong><p>Produkty szybkowiążące i systemy specjalne mogą mieć własny termin i odmienną procedurę. Bez dokładnej identyfikacji materiału nie ustawiaj programu na podstawie internetowej tabeli.</p></div>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">01</span><h3>Najpierw dokument</h3><p>Karta zastosowanego jastrychu, data wykonania, projekt instalacji i instrukcja źródła ciepła określają warunki startu.</p></div>
        <div class="rh-card"><span class="rh-num">02</span><h3>Potem zapis cyklu</h3><p>Notuj daty, temperatury zasilania, czas pracy i wszelkie odstępstwa, zamiast opierać odbiór na pamięci.</p></div>
        <div class="rh-card"><span class="rh-num">03</span><h3>Na końcu odbiór</h3><p>Wygrzewanie funkcjonalne nie zastępuje pomiaru wilgotności, kontroli rys i wymagań kleju lub okładziny.</p></div>
      </div>
      <p class="rh-copy">Jeżeli jesteś dopiero na etapie wyboru materiału i grubości, zacznij od <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodnika po wylewce na podłogówkę</a>. Ten tekst dotyczy późniejszego uruchomienia i dokumentowania prac.</p>
    </section>

    <section class="rh-section rh-soft" id="rh-etapy">
      <span class="rh-eyebrow">Porządek technologiczny</span>
      <h2>Dojrzewanie, wygrzewanie i gotowość pod okładzinę to różne rzeczy</h2>
      <p class="rh-lead">Słowo „wygrzewanie” bywa używane jednocześnie dla pierwszego testu pracy ogrzewanej konstrukcji i dla późniejszego osuszania. W dokumentacji odbiorowej warto te etapy nazywać osobno.</p>
      <div class="rh-flow" aria-label="Kolejność czterech etapów">
        <div class="rh-flow-item"><b>Etap 1</b><strong>Dojrzewanie i pielęgnacja</strong><span>Jastrych wiąże według warunków wyrobu. Ogrzewania nie używa się do przyspieszania pierwszej fazy.</span></div>
        <div class="rh-flow-item"><b>Etap 2</b><strong>Wygrzewanie funkcjonalne</strong><span>Sprawdza pracę ogrzewanej podłogi przy zaplanowanym cyklu temperatur.</span></div>
        <div class="rh-flow-item"><b>Etap 3</b><strong>Dalsze wysychanie</strong><span>Wymaga warunków oddawania wilgoci, kontroli i czasu zależnego od budynku.</span></div>
        <div class="rh-flow-item"><b>Etap 4</b><strong>Odbiór pod okładzinę</strong><span>Pomiar wilgotności oraz ocena powierzchni według wymagań konkretnej posadzki.</span></div>
      </div>
      <div class="rh-note"><p><strong>Praktyczny skutek:</strong> ukończenie etapu 2 nie pozwala wpisać w protokole „podłoże suche”. Taki wniosek wymaga odrębnej oceny i pomiaru.</p></div>
    </section>

    <section class="rh-section" id="rh-termin">
      <span class="rh-eyebrow">Termin rozpoczęcia</span>
      <h2>Po ilu dniach można zacząć wygrzewanie wylewki?</h2>
      <p class="rh-lead">Dla standardowego cementowego jastrychu CT orientacyjny minimalny odstęp to 21 dni po wykonaniu, a dla standardowego jastrychu na bazie siarczanu wapnia CA — 7 dni. Decyzję dla budowy podejmuje się po identyfikacji produktu, sprawdzeniu instrukcji i stanu instalacji.</p>
      <div class="rh-table-wrap"><table><thead><tr><th>Rodzaj</th><th>Typowy punkt odniesienia</th><th>Co sprawdzić przed startem</th></tr></thead><tbody>
        <tr><td data-label="Rodzaj"><strong>CT — cementowy</strong></td><td data-label="Punkt odniesienia">Zwykle nie wcześniej niż po 21 dniach dla zwykłej mieszanki.</td><td data-label="Przed startem">Data wykonania, pielęgnacja, karta produktu i brak zakazu wcześniejszego uruchomienia.</td></tr>
        <tr><td data-label="Rodzaj"><strong>CA — siarczanowo-wapniowy</strong></td><td data-label="Punkt odniesienia">Zwykle nie wcześniej niż po 7 dniach dla zwykłej mieszanki.</td><td data-label="Przed startem">Instrukcja dokładnego wyrobu, warunki wilgotnościowe i procedura wykonawcy.</td></tr>
        <tr><td data-label="Rodzaj"><strong>Materiał specjalny</strong></td><td data-label="Punkt odniesienia">Nie przyjmuj automatycznie terminu CT lub CA.</td><td data-label="Przed startem">Pisemna procedura produktu określająca początek, przebieg i dopuszczalne temperatury.</td></tr>
      </tbody></table></div>
      <p class="rh-copy">Możliwość chodzenia po podłodze nie jest równoznaczna z gotowością do grzania. Podobnie 28 dni nie oznacza automatycznie wilgotności właściwej pod parkiet lub panele. Szerzej o właściwościach konstrukcji CT piszę w poradniku <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewka betonowa na ogrzewanie podłogowe</a>.</p>
    </section>

    <section class="rh-section rh-soft" id="rh-przed">
      <span class="rh-eyebrow">Przygotowanie przed pierwszym uruchomieniem</span>
      <h2>Co musi być ustalone, zanim uruchomisz źródło ciepła?</h2>
      <p class="rh-lead">Osoba uruchamiająca potrzebuje więcej niż daty wylania jastrychu. Przygotuj poniższy komplet informacji, zanim wybierzesz program w sterowniku.</p>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">A</span><h3>Jastrych</h3><p>Nazwa wyrobu, spoiwo, data wykonania, grubość, sposób pielęgnacji i wymagany program wygrzewania.</p></div>
        <div class="rh-card"><span class="rh-num">B</span><h3>Instalacja</h3><p>Protokół <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próby szczelności</a>, drożne pętle, odpowietrzenie i dostępny przepływ przez każdy wymagany obwód.</p></div>
        <div class="rh-card"><span class="rh-num">C</span><h3>Parametry</h3><p>Projektowa temperatura zasilania, ograniczenia jastrychu i zakres regulacji pompy ciepła albo kotła.</p></div>
        <div class="rh-card"><span class="rh-num">D</span><h3>Podział podłogi</h3><p>Pola, szczeliny i przejścia rur zgodne z projektem. Zobacz poradnik o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p></div>
        <div class="rh-card"><span class="rh-num">E</span><h3>Organizacja</h3><p>Możliwość utrzymania wymaganych etapów, kontrola nastaw i zapis awarii, przerw w zasilaniu oraz temperatur.</p></div>
        <div class="rh-card"><span class="rh-num">F</span><h3>Wykończenie</h3><p>Planowane płytki, drewno lub panele, miejsca pomiaru wilgotności i wymagania systemu posadzkowego.</p></div>
      </div>
      <div class="rh-cta" aria-label="Projekt ogrzewania podłogowego przed wylewką">
        <h3>Projekt ogrzewania podłogowego przed wykonaniem wylewki: co powinno być ustalone?</h3>
        <p>Jeszcze przed zakryciem rur warto mieć policzone rozstawy, długości pętli, przepływy i projektowe temperatury oraz uzgodnione przejścia przez pola jastrychu. Wykonawca wylewki dobiera następnie procedurę wygrzewania do zastosowanego materiału — projekt instalacji nie zastępuje jego instrukcji.</p>
        <a class="rh-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki przed wylewką</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rh-section" id="rh-planer">
      <span class="rh-eyebrow">Narzędzie 1 · plan organizacyjny</span>
      <h2>Interaktywny planer etapów wygrzewania</h2>
      <p class="rh-lead">Wpisz datę wykonania i dane z dokumentacji jastrychu. Narzędzie pokaże orientacyjną kolejność oraz terminy dla modelowego cyklu, ale nie potwierdza gotowości do uruchomienia ani do ułożenia okładziny.</p>
      <div class="rh-tool" id="rh-planner-tool">
        <h3>Ułóż plan kontroli, zanim włączysz ogrzewanie</h3>
        <p>W modelowym przykładzie pierwsza temperatura zasilania to około 25°C przez co najmniej 3 dni, a następnie maksymalna projektowa temperatura zasilania przez co najmniej 4 dni. Zastosuj przebieg z instrukcji konkretnego jastrychu, gdy się różni.</p>
        <div class="rh-fields">
          <label class="rh-field"><span>Rodzaj jastrychu</span><select id="rh-type"><option value="">Wybierz rodzaj</option><option value="ct">Zwykły cementowy CT</option><option value="ca">Zwykły siarczanowo-wapniowy CA</option><option value="special">Produkt o własnej procedurze</option></select></label>
          <label class="rh-field"><span>Data wykonania jastrychu</span><input type="date" id="rh-pour"></label>
          <label class="rh-field"><span>Minimalny odstęp według dokumentacji [dni]</span><input type="number" id="rh-wait" min="0" max="180" step="1" inputmode="numeric" placeholder="CT zwykle 21, CA zwykle 7"></label>
          <label class="rh-field"><span>Maksymalna projektowa temperatura zasilania [°C]</span><input type="number" id="rh-max" min="20" max="60" step="0.5" inputmode="decimal" placeholder="Wpisz wartość z projektu"></label>
        </div>
        <label class="rh-check"><input type="checkbox" id="rh-doc"><span>Znam dokładny produkt i sprawdziłem jego instrukcję dotyczącą pierwszego nagrzewania.</span></label>
        <label class="rh-check"><input type="checkbox" id="rh-test"><span>Próba instalacji została zakończona, a pętle mogą pracować z wymaganym przepływem.</span></label>
        <div class="rh-actions"><button class="rh-button" type="button" id="rh-calc">Pokaż plan etapów</button><button class="rh-button rh-button-outline" type="button" id="rh-clear">Wyczyść dane</button></div>
        <div class="rh-result" id="rh-plan-result" role="status" aria-live="polite"><h4 id="rh-plan-title">Uzupełnij dane z dokumentacji</h4><p id="rh-plan-text">Planer wskaże braki, orientacyjny dzień rozpoczęcia i dalsze etapy. Nie ustali daty ułożenia podłogi bez pomiaru podłoża.</p><ul id="rh-plan-warnings"></ul><div class="rh-stage-grid" id="rh-plan-stages" hidden=""></div></div>
        <p class="rh-small">Dla materiałów szybkowiążących planer nie podpowiada automatycznie 7 ani 21 dni. Nie tworzy też programu podnoszenia o 5°C na dobę.</p>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-program">
      <span class="rh-eyebrow">Przebieg krok po kroku</span>
      <h2>Jak wygląda pierwszy cykl ogrzewania jastrychu?</h2>
      <p class="rh-lead">Poniższa sekwencja jest schematem kontrolnym dla standardowego wygrzewania funkcjonalnego. Uzgodniona instrukcja konkretnej wylewki i ograniczenia instalacji są podstawą rzeczywistych nastaw.</p>
      <div class="rh-grid rh-grid-4">
        <div class="rh-card"><span class="rh-num">1</span><h3>Start po dojrzewaniu</h3><p>Zapisz datę i godzinę startu, oznacz pola podłogi oraz warunki początkowe budynku i obiegów.</p></div>
        <div class="rh-card"><span class="rh-num">2</span><h3>Temperatura początkowa</h3><p>W modelu referencyjnym około 25°C zasilania utrzymuje się przez co najmniej 3 dni. Sprawdź przebieg właściwy dla wyrobu.</p></div>
        <div class="rh-card"><span class="rh-num">3</span><h3>Etap maksymalny</h3><p>Stosuje się maksymalną temperaturę zasilania wynikającą z projektu i dopuszczeń systemu przez wymagany czas; w modelu co najmniej 4 dni.</p></div>
        <div class="rh-card"><span class="rh-num">4</span><h3>Dokumentacja i odbiór</h3><p>Zapisz realne temperatury i czas. Dalsze schładzanie, dosuszanie i pomiar wilgotności są odrębnymi działaniami.</p></div>
      </div>
      <div class="rh-note rh-note-alert"><p><strong>Nie wpisuj na ślepo 45°C lub 55°C.</strong> Maksimum dla programu jest związane z projektową temperaturą zasilania i wymaganiami materiału. Próg codziennej pracy opisuję osobno w artykule <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>.</p></div>
      <h3>Dlaczego nie podajemy uniwersalnego „+5°C każdego dnia”?</h3>
      <p class="rh-copy">Takie tempo pojawia się w części instrukcji, ale nie stanowi programu dla każdego jastrychu. Inny może być materiał, czas od wykonania, temperatura projektowa, sterownik i sposób wysychania. Kopiowanie tabeli z innej budowy mogłoby dać fałszywe poczucie bezpieczeństwa.</p>
    </section>

    <section class="rh-section" id="rh-materialy">
      <span class="rh-eyebrow">Rodzaj podkładu ma znaczenie</span>
      <h2>Czy cementowy i anhydrytowy jastrych wygrzewa się tak samo?</h2>
      <p class="rh-lead">Cel wygrzewania funkcjonalnego jest podobny, ale rodzaj spoiwa i instrukcja produktu wpływają na termin rozpoczęcia, pielęgnację, dalsze wysychanie oraz kryterium odbioru przed okładziną.</p>
      <div class="rh-table-wrap"><table><thead><tr><th>Pytanie</th><th>CT — cementowy</th><th>CA — siarczanowo-wapniowy</th></tr></thead><tbody>
        <tr><td data-label="Pytanie"><strong>Najwcześniejszy typowy start</strong></td><td data-label="CT">Po 21 dniach dla standardowego jastrychu; wyjątki tylko według dokumentacji produktu.</td><td data-label="CA">Po 7 dniach dla standardowego jastrychu; produkt może wymagać szczególnej procedury.</td></tr>
        <tr><td data-label="Pytanie"><strong>Pielęgnacja</strong></td><td data-label="CT">Istotne są warunki dojrzewania, ograniczenie zbyt szybkiej utraty wody i wymagania mieszanki.</td><td data-label="CA">Ważne są warunki wentylacji, wilgotności i ewentualna obróbka powierzchni określona przez system.</td></tr>
        <tr><td data-label="Pytanie"><strong>Po wygrzewaniu</strong></td><td data-label="CT">Zakończony cykl nie potwierdza wilgotności ani stanu powierzchni.</td><td data-label="CA">Zakończony cykl nie potwierdza wilgotności ani stanu powierzchni.</td></tr>
        <tr><td data-label="Pytanie"><strong>Specjalna mieszanka</strong></td><td data-label="CT">O terminie i kolejności przesądza instrukcja konkretnego wyrobu.</td><td data-label="CA">O terminie i kolejności przesądza instrukcja konkretnego wyrobu.</td></tr>
      </tbody></table></div>
      <p class="rh-copy">Szczegółowe omówienie wymagań instalacyjnych normy znajdziesz w artykule o <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264 w ogrzewaniu podłogowym</a>; tutaj skupiamy się na praktycznym przygotowaniu, wykonaniu i odbiorze wygrzewania.</p>
    </section>

    <section class="rh-section rh-soft" id="rh-zrodlo">
      <span class="rh-eyebrow">Sterowanie bez zgadywania</span>
      <h2>Wygrzewanie pompą ciepła lub kotłem: co sprawdzić w sterowniku?</h2>
      <p class="rh-lead">Nazwa programu „suszenie jastrychu” na ekranie urządzenia nie dowodzi zgodności jego fabrycznej sekwencji z zastosowaną wylewką. Przed włączeniem porównaj oba dokumenty i ustal, kto nadzoruje proces.</p>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">T</span><h3>Temperatura rzeczywista</h3><p>Sprawdź temperaturę zasilania mierzoną na instalacji, nie tylko zadaną na wyświetlaczu. Zawór mieszający może ją zmieniać.</p></div>
        <div class="rh-card"><span class="rh-num">Q</span><h3>Przepływ przez pętle</h3><p>Siłowniki i termostaty nie mogą nieświadomie zamykać obwodów, które mają brać udział w cyklu. Zweryfikuj pracę pompy.</p></div>
        <div class="rh-card"><span class="rh-num">24</span><h3>Ciągłość programu</h3><p>Ustal, czy sterownik realizuje etapy bez nieplanowanych przerw oraz jak dokumentuje alarmy i zaniki zasilania.</p></div>
      </div>
      <p class="rh-copy">Pompa ciepła może mieć ograniczoną moc w rzeczywistych warunkach, a kocioł może modulować lub współpracować z mieszaczem. Same nastawy ekranowe nie dowodzą osiągnięcia temperatury na podłodze. Przy normalnej eksploatacji znaczenie ma też <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/">diagnostyka niedogrzewającej podłogówki</a>, lecz wygrzewanie świeżego jastrychu rządzi się odrębną procedurą.</p>
    </section>

    <section class="rh-section" id="rk-heat-diary">
      <span class="rh-eyebrow">Narzędzie 2 · dokumentacja rzeczywistego przebiegu</span>
      <h2>Dziennik wygrzewania wylewki i protokół kontroli</h2>
      <p class="rh-lead">Zapisz odczyty z kolejnych dni, czas utrzymania nastaw i przerwy. Dane pozostają w tej karcie przeglądarki; możesz pobrać CSV lub wydrukować wpisy. Jeśli dostawca jastrychu udostępnił obowiązujący formularz, wypełnij także jego protokół.</p>
      <div class="rh-tool" id="rh-diary-tool">
        <h3>Dodaj rzeczywisty wpis z budowy</h3>
        <p>Podawaj temperaturę zasilania, którą odczytano, a nie tylko wartość zadaną. Uwagi pomogą odtworzyć przerwę w dostawie energii lub alarm urządzenia.</p>
        <div class="rh-diary-form">
          <h4>Dane wpisu</h4>
          <div class="rh-fields">
            <label class="rh-field"><span>Data</span><input type="date" id="rh-log-date"></label>
            <label class="rh-field"><span>Etap</span><select id="rh-log-phase"><option value="">Wybierz etap</option><option value="Start / temperatura początkowa">Start / temperatura początkowa</option><option value="Etap temperatury maksymalnej">Etap temperatury maksymalnej</option><option value="Schładzanie / dalsze wysychanie">Schładzanie / dalsze wysychanie</option><option value="Przerwa lub zdarzenie">Przerwa lub zdarzenie</option><option value="Pomiar i odbiór">Pomiar i odbiór</option></select></label>
            <label class="rh-field"><span>Zmierzona temperatura zasilania [°C]</span><input type="number" id="rh-log-temp" min="0" max="65" step="0.1" inputmode="decimal" placeholder="Opcjonalnie przy przerwie"></label>
            <label class="rh-field"><span>Czas utrzymania / okres obserwacji</span><input type="text" id="rh-log-time" maxlength="60" placeholder="Np. 24 h, 08:00–18:00"></label>
            <label class="rh-field" style="grid-column:1/-1"><span>Uwagi: miejsce, pole, alarm, przerwa, stan powierzchni</span><textarea id="rh-log-note" maxlength="350" placeholder="Zapisz tylko własne, rzeczywiste obserwacje"></textarea></label>
          </div>
          <div class="rh-actions"><button class="rh-button" type="button" id="rh-log-add">Dodaj wpis</button><button class="rh-button rh-button-outline" type="button" id="rh-log-csv">Pobierz CSV</button><button class="rh-button rh-button-outline" type="button" id="rh-log-print">Drukuj dziennik</button></div>
          <p class="rh-diary-status" id="rh-log-status" role="status" aria-live="polite">Wpisy nie są wysyłane na serwer. Pobierz je przed opuszczeniem strony.</p>
        </div>
        <div class="rh-table-wrap"><table><thead><tr><th>Data</th><th>Etap</th><th>Zasilanie</th><th>Czas</th><th>Uwagi</th><th>Usuń</th></tr></thead><tbody id="rh-log-rows"><tr id="rh-log-empty"><td colspan="6">Brak wpisów. Dodaj pierwszy odczyt z budowy.</td></tr></tbody></table></div>
        <p class="rh-small">Dziennik pomaga zebrać dane; nie poświadcza poprawności procedury. Zapisz także nazwę produktu, pola jastrychu, dokumentację pomiarową i podpisy wymagane przy odbiorze.</p>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-wilgotnosc">
      <span class="rh-eyebrow">Po zakończeniu cyklu</span>
      <h2>Czy po wygrzewaniu można od razu ułożyć płytki, panele lub drewno?</h2>
      <p class="rh-lead">Nie można tego wywnioskować z samego protokołu ogrzewania. Przed montażem wykonawca posadzki powinien otrzymać wynik właściwego pomiaru wilgotności, ocenę podłoża i wymagania wybranego systemu materiałów.</p>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">CM</span><h3>Pomiar w oznaczonym miejscu</h3><p>Punkt pobrania próbki trzeba ustalić bezpiecznie względem rur. Wynik zapisuje się wraz z metodą i lokalizacją.</p></div>
        <div class="rh-card"><span class="rh-num">R</span><h3>Stan powierzchni</h3><p>Sprawdź rysy, oddzielenia, zabrudzenie, równość oraz wymagania dotyczące przygotowania podłoża.</p></div>
        <div class="rh-card"><span class="rh-num">OK</span><h3>Kryterium systemu</h3><p>Jastrych, klej, podkład, okładzina i ewentualna hydroizolacja mogą stawiać odrębne wymagania.</p></div>
      </div>
      <div class="rh-note"><p><strong>Bez uniwersalnego progu z internetu:</strong> wymagany wynik wilgotności zależy od materiału, metody badania i planowanej okładziny. Brak skroplin pod folią może być sygnałem do wykonania pomiaru, ale sam nie zastępuje badania.</p></div>
      <p class="rh-copy">Wpływ paneli, płytek i innych warstw na późniejsze działanie instalacji omawiam w artykule <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina podłogowa wpływa na wydajność ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rh-section" id="rh-awarie">
      <span class="rh-eyebrow">Przerwy i nieprawidłowości</span>
      <h2>Co zrobić, gdy program został przerwany albo pojawiły się rysy?</h2>
      <p class="rh-lead">Nie zaznaczaj w protokole nieodbytego etapu jako ukończonego. Najpierw ustal przyczynę przerwy lub uszkodzenia, zapisz stan rzeczywisty, a dalszy tok uzgodnij z wykonawcą jastrychu i instalacji.</p>
      <div class="rh-grid rh-grid-2">
        <div class="rh-card"><span class="rh-num">!</span><h3>Awaria źródła lub zanik prądu</h3><p>Zapisz czas, osiągnięte temperatury, warunki zewnętrzne i stan obiegów. Nie przeskakuj automatycznie do kolejnego dnia programu po naprawie.</p></div>
        <div class="rh-card"><span class="rh-num">!</span><h3>Spadek ciśnienia albo brak przepływu</h3><p>Sprawdź instalację i ogranicz dalsze grzanie zgodnie z oceną osoby odpowiedzialnej. Protokół pierwszej próby nie wyklucza późniejszej usterki.</p></div>
        <div class="rh-card"><span class="rh-num">!</span><h3>Widoczne rysy lub wykruszenia</h3><p>Sfotografuj i oznacz lokalizację względem pola oraz szczeliny. Nie zakrywaj zarysowania okładziną przed oceną jego charakteru.</p></div>
        <div class="rh-card"><span class="rh-num">!</span><h3>Brak wymaganej temperatury</h3><p>Sprawdź pomiar, ograniczenie źródła, mieszacz, zamknięte pętle i rzeczywisty przepływ. Odczyt zadanej temperatury nie zastępuje odczytu zasilania.</p></div>
      </div>
      <div class="rh-note rh-note-alert"><p><strong>Wstrzymaj pochopną decyzję o okładzinie:</strong> rysa, mokre pole albo nieukończony etap wymagają wyjaśnienia przed zakryciem podłogi.</p></div>
    </section>

    <section class="rh-section rh-soft" id="rh-bledy">
      <span class="rh-eyebrow">Błędy, które psują odbiór</span>
      <h2>Sześć najczęstszych pomyłek przy wygrzewaniu wylewki</h2>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">01</span><h3>Start na podstawie daty z forum</h3><p>Termin z innej budowy nie identyfikuje mieszanki, dodatków i jej instrukcji.</p></div>
        <div class="rh-card"><span class="rh-num">02</span><h3>Grzanie przed pielęgnacją</h3><p>Zbyt wczesne ogrzewanie nie jest sposobem na skrócenie etapu dojrzewania jastrychu.</p></div>
        <div class="rh-card"><span class="rh-num">03</span><h3>Jedna nastawa dla całego domu</h3><p>Różne pomieszczenia i pola mogą mieć odmienny materiał lub stan wykonania.</p></div>
        <div class="rh-card"><span class="rh-num">04</span><h3>Wpisywanie temperatury zadanej</h3><p>To, co pokazuje menu sterownika, nie musi być faktycznym zasilaniem rozdzielacza.</p></div>
        <div class="rh-card"><span class="rh-num">05</span><h3>Brak zapisu przerw</h3><p>Bez dziennika nie wiadomo, przez jaki czas utrzymano wymagane warunki.</p></div>
        <div class="rh-card"><span class="rh-num">06</span><h3>„Wygrzane” znaczy „suche”</h3><p>Gotowość pod posadzkę wymaga odrębnej oceny i pomiaru wilgotności.</p></div>
      </div>
    </section>

    <section class="rh-section" id="rh-checklista">
      <span class="rh-eyebrow">Przed przekazaniem podłogi</span>
      <h2>Checklista wygrzewania i odbioru jastrychu grzewczego</h2>
      <div class="rh-grid rh-grid-3">
        <div class="rh-card"><span class="rh-num">PRZED</span><h3>Warunki wejściowe</h3><ul class="rh-list"><li>Identyfikacja CT, CA lub produktu specjalnego.</li><li>Data wykonania i instrukcja wyrobu.</li><li>Protokół próby instalacji.</li><li>Projektowe temperatury i przepływy.</li><li>Oznaczone pola oraz miejsca pomiarów.</li></ul></div>
        <div class="rh-card"><span class="rh-num">W TRAKCIE</span><h3>Przebieg cyklu</h3><ul class="rh-list"><li>Rzeczywiste daty i odczyty zasilania.</li><li>Praca wszystkich wymaganych pętli.</li><li>Czas utrzymania etapów.</li><li>Zapis alarmów i przerw.</li><li>Oględziny stanu powierzchni.</li></ul></div>
        <div class="rh-card"><span class="rh-num">PO</span><h3>Odbiór pod okładzinę</h3><ul class="rh-list"><li>Ukończony i podpisany protokół.</li><li>Wynik pomiaru wilgotności.</li><li>Ocena rys i powierzchni.</li><li>Wymagania kleju, podkładu i okładziny.</li><li>Warunki późniejszego uruchomienia.</li></ul></div>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-faq">
      <span class="rh-eyebrow">Pytania inwestorów i wykonawców</span>
      <h2>FAQ — wygrzewanie wylewki na ogrzewaniu podłogowym</h2>
      <div class="rh-faq">
        <details><summary>Kiedy można zacząć wygrzewanie cementowej wylewki?</summary><div class="rh-faq-answer"><p>Dla standardowego jastrychu CT orientacyjnie nie wcześniej niż po 21 dniach od wykonania. Ostateczny termin wynika z instrukcji zastosowanego materiału i potwierdzenia stanu instalacji; wyroby specjalne mogą mieć inną procedurę.</p></div></details>
        <details><summary>Po ilu dniach wygrzewa się jastrych anhydrytowy?</summary><div class="rh-faq-answer"><p>Dla standardowego jastrychu CA zwykle po co najmniej 7 dniach. Sprawdź dokumentację konkretnego produktu i przebieg wymagany przez jego wykonawcę.</p></div></details>
        <details><summary>Czy trzeba podnosić temperaturę o 5°C dziennie?</summary><div class="rh-faq-answer"><p>Nie jest to jedna uniwersalna reguła. Przebieg temperatur powinien odpowiadać procedurze zastosowanego jastrychu, projektowi instalacji i ograniczeniom źródła ciepła.</p></div></details>
        <details><summary>Jaką temperaturę ustawić na początku wygrzewania?</summary><div class="rh-faq-answer"><p>W modelowym programie funkcjonalnym przyjmuje się około 25°C temperatury zasilania na początkowy etap. Przed ustawieniem sprawdź instrukcję wyrobu; temperatury pomieszczenia ani powierzchni nie należy mylić z temperaturą zasilania.</p></div></details>
        <details><summary>Do jakiej maksymalnej temperatury grzać?</summary><div class="rh-faq-answer"><p>Do maksymalnej temperatury zasilania wynikającej z projektu i dopuszczeń zastosowanego systemu, przez czas wymagany w procedurze. Nie ustawiaj arbitralnie 45°C lub 55°C.</p></div></details>
        <details><summary>Ile trwa wygrzewanie wylewki?</summary><div class="rh-faq-answer"><p>Modelowy etap funkcjonalny obejmuje co najmniej 3 dni temperatury początkowej i co najmniej 4 dni temperatury maksymalnej projektowej. Wraz z wcześniejszym dojrzewaniem i późniejszym suszeniem cały harmonogram jest dłuższy oraz zależny od produktu.</p></div></details>
        <details><summary>Czy po wygrzewaniu można od razu układać płytki?</summary><div class="rh-faq-answer"><p>Nie zakładaj tego bez oceny podłoża. Wymagania jastrychu, kleju, hydroizolacji i okładziny trzeba powiązać z wynikiem właściwego pomiaru wilgotności.</p></div></details>
        <details><summary>Czy panele i drewno wymagają pomiaru wilgotności?</summary><div class="rh-faq-answer"><p>Tak, odbiór podłoża trzeba przeprowadzić zgodnie z wymaganiami konkretnego systemu wykończenia. Sam zakończony program wygrzewania nie jest wynikiem badania wilgotności.</p></div></details>
        <details><summary>Czy można wygrzewać wylewkę pompą ciepła?</summary><div class="rh-faq-answer"><p>Można, jeśli urządzenie oraz instalacja potrafią bezpiecznie wykonać uzgodniony program. Sprawdź rzeczywiste temperatury, przepływy, działanie automatyki i instrukcję urządzenia.</p></div></details>
        <details><summary>Czy program „suszenie jastrychu” w sterowniku wystarczy?</summary><div class="rh-faq-answer"><p>Nie zawsze. Fabryczna sekwencja sterownika musi zostać porównana z wymaganiami konkretnego jastrychu i maksymalnymi parametrami zaprojektowanej instalacji.</p></div></details>
        <details><summary>Co zrobić po przerwaniu wygrzewania?</summary><div class="rh-faq-answer"><p>Zapisz moment, czas przerwy oraz osiągnięte temperatury. Przed wznowieniem uzgodnij dalszą procedurę z osobami odpowiedzialnymi za jastrych i instalację, zamiast dopisywać nieodbyte dni.</p></div></details>
        <details><summary>Czy latem również trzeba wykonać wygrzewanie?</summary><div class="rh-faq-answer"><p>Jeśli procedura systemu wymaga wygrzewania funkcjonalnego, ciepłe powietrze w budynku samo nie zastępuje kontrolowanego cyklu zasilania ogrzewanej podłogi.</p></div></details>
        <details><summary>Czy brak rys po wygrzewaniu oznacza poprawny odbiór?</summary><div class="rh-faq-answer"><p>Nie. Trzeba jeszcze potwierdzić przebieg programu, ocenić podłoże i wykonać pomiar wilgotności przed okładziną zgodnie z jej wymaganiami.</p></div></details>
        <details><summary>Kto powinien podpisać protokół wygrzewania?</summary><div class="rh-faq-answer"><p>Zakres odpowiedzialności i podpisów należy ustalić w dokumentacji inwestycji. Zwykle potrzebne są dane wykonawcy ogrzewania, wykonawcy jastrychu, osoby nadzorującej oraz inwestora lub odbierającego prace.</p></div></details>
      </div>
    </section>

    <section class="rh-section" id="rh-final">
      <span class="rh-eyebrow">Zanim rury znikną pod jastrychem</span>
      <h2>Wygrzewanie jest ostatnim sprawdzianem decyzji podjętych wcześniej</h2>
      <p class="rh-lead">Kiedy wylewka jest już gotowa, nie da się łatwo skorygować przebiegu pętli, ich długości ani miejsc przejścia przez pola jastrychu. Jeśli jesteś przed montażem, projekt pozwoli przekazać wykonawcy konkretne dane do ułożenia i późniejszego uruchomienia instalacji.</p>
      <div class="rh-cta">
        <h3>Zaplanuj podłogówkę przed wykonaniem wylewki</h3>
        <p>Projekt oparty na obciążeniu pomieszczeń i hydraulice wskazuje rozstawy, długości pętli, przepływy oraz parametry źródła ciepła. Procedurę pielęgnacji i wygrzewania wybranego jastrychu ustal następnie z jego wykonawcą na podstawie dokumentacji materiału.</p>
        <a class="rh-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rh-section rh-soft" id="rh-zrodla">
      <span class="rh-eyebrow">Podstawa techniczna</span>
      <h2>Oficjalne źródła i granice poradnika</h2>
      <p class="rh-lead">Dokumenty branżowe określają ramy instalacji i wygrzewania funkcjonalnego. Dla konkretnej budowy sprawdź również kartę jastrychu, instrukcję źródła ciepła, projekt i wymagania materiałów posadzkowych.</p>
      <div class="rh-sources">
        <div class="rh-source"><a href="https://sklep.pkn.pl/pn-en-1264-4-2021-10e.html" target="_blank" rel="nofollow noopener noreferrer">PKN — PN-EN 1264-4:2021-10</a><p>Oficjalna karta polskiego wydania normy dotyczącej instalowania wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
        <div class="rh-source"><a href="https://www.dinmedia.de/en/standard/din-en-1264-4/332536919" target="_blank" rel="nofollow noopener noreferrer">DIN Media — EN 1264-4:2021</a><p>Oficjalna karta aktualnej wersji normy europejskiej, część 4: instalacja.</p></div>
        <div class="rh-source"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — Installation</a><p>Oficjalna karta normy dotyczącej wykonania wbudowanych wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
        <div class="rh-source"><a href="https://www.vdpm.info/moertel/estrich" target="_blank" rel="nofollow noopener noreferrer">VDPM — materiały o jastrychach</a><p>Materiały organizacji branżowej rozróżniające funkcję pierwszego wygrzewania i osiąganie gotowości do okładzinowania.</p></div>
      </div>
      <div class="rh-note"><p><strong>Zakres odpowiedzialności:</strong> artykuł oraz narzędzia pomagają uporządkować proces i zapisy. Nie potwierdzają stanu konkretnego jastrychu, poprawności pomiarów, bezpieczeństwa uruchomienia ani gotowości pod okładzinę. Decyzje wykonawcze podejmuje się według dokumentów zastosowanych wyrobów, projektu i rzeczywistych warunków na budowie.</p></div>
    </section>

    <section class="rh-author" id="rh-autor">
      <span class="rh-eyebrow">Opracowanie eksperckie</span>
      <h2>Autor i weryfikacja merytoryczna</h2>
      <div class="rh-author-layout">
        <aside class="rh-author-side">
          <img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async">
          <strong>Robert Kucharski</strong>
          <p>Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rh-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rh-author-body">
          <blockquote>„Protokół wygrzewania mówi, jak pracowała ogrzewana podłoga. O tym, czy można ją zakryć okładziną, decyduje jeszcze stan i wilgotność konkretnego jastrychu.”</blockquote>
          <p>Robert Kucharski przygotowuje projekty ogrzewania podłogowego oraz obliczenia cieplne i hydrauliczne. W poradnikach łączy parametry instalacji z kolejnością prac wykonawczych, dokumentacją materiałów i rzeczywistym odbiorem na budowie.</p>
          <p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego</a>.</p>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "image": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-image"
      },
      "worksFor": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "wygrzewanie jastrychu grzewczego",
        "projektowanie instalacji grzewczych",
        "hydraulika pętli ogrzewania podłogowego"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-image",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "width": 400,
      "height": 400,
      "caption": "Robert Kucharski — projektant instalacji sanitarnych"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Wygrzewanie wylewki pod ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#webpage",
      "url": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/",
      "name": "Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół",
      "description": "Kiedy rozpocząć wygrzewanie jastrychu CT i CA, jak prowadzić pierwszy cykl i sprawdzić wilgotność przed okładziną.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#article"
      },
      "datePublished": "2026-10-03",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#webpage"
      },
      "headline": "Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół",
      "description": "Praktyczna procedura pierwszego nagrzewania jastrychu grzewczego, z planerem etapów, dziennikiem, porównaniem CT i CA oraz odbiorem pod okładzinę.",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2026-10-03",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": [
        "wygrzewanie wylewki pod ogrzewanie podłogowe",
        "jastrych cementowy CT",
        "jastrych siarczanowo-wapniowy CA",
        "protokół wygrzewania",
        "pomiar wilgotności pod okładzinę"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#planner"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#diary"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#faq-schema"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#planner",
      "name": "Planer etapów wygrzewania wylewki",
      "url": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#rh-planer",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Orientacyjny planer etapów pierwszego nagrzewania na podstawie rodzaju jastrychu, daty wykonania i potwierdzonych danych produktu."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#diary",
      "name": "Dziennik wygrzewania jastrychu grzewczego",
      "url": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#rk-heat-diary",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Formularz zapisu rzeczywistych etapów, odczytów temperatur i przerw z możliwością pobrania danych CSV lub wydrukowania."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#howto",
      "name": "Jak przygotować, przeprowadzić i udokumentować wygrzewanie wylewki",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zidentyfikuj jastrych i instrukcję",
          "text": "Odczytaj nazwę materiału, datę wykonania i procedurę pierwszego nagrzewania."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Potwierdź warunki instalacji",
          "text": "Sprawdź próbę szczelności, drożność obwodów, przepływy i projektową temperaturę zasilania."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Zaplanuj termin rozpoczęcia",
          "text": "Porównaj upływ czasu od wykonania z minimalnym terminem dopuszczonym w dokumentacji produktu."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Przeprowadź wymagany program",
          "text": "Utrzymuj etapy i temperatury zgodne z procedurą zastosowanego jastrychu oraz instalacji."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zapisz rzeczywisty przebieg",
          "text": "Notuj daty, odczyty temperatur, czas, przerwy i stan powierzchni."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź gotowość pod okładzinę",
          "text": "Po programie oceń podłoże i wilgotność według wymagań docelowego systemu posadzkowego."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#faq-schema",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Kiedy można zacząć wygrzewanie cementowej wylewki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla standardowego jastrychu CT orientacyjnie nie wcześniej niż po 21 dniach od wykonania. Ostateczny termin wynika z instrukcji zastosowanego materiału i potwierdzenia stanu instalacji; wyroby specjalne mogą mieć inną procedurę."
          }
        },
        {
          "@type": "Question",
          "name": "Po ilu dniach wygrzewa się jastrych anhydrytowy?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla standardowego jastrychu CA zwykle po co najmniej 7 dniach. Sprawdź dokumentację konkretnego produktu i przebieg wymagany przez jego wykonawcę."
          }
        },
        {
          "@type": "Question",
          "name": "Czy trzeba podnosić temperaturę o 5°C dziennie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie jest to jedna uniwersalna reguła. Przebieg temperatur powinien odpowiadać procedurze zastosowanego jastrychu, projektowi instalacji i ograniczeniom źródła ciepła."
          }
        },
        {
          "@type": "Question",
          "name": "Jaką temperaturę ustawić na początku wygrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "W modelowym programie funkcjonalnym przyjmuje się około 25°C temperatury zasilania na początkowy etap. Przed ustawieniem sprawdź instrukcję wyrobu; temperatury pomieszczenia ani powierzchni nie należy mylić z temperaturą zasilania."
          }
        },
        {
          "@type": "Question",
          "name": "Do jakiej maksymalnej temperatury grzać?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Do maksymalnej temperatury zasilania wynikającej z projektu i dopuszczeń zastosowanego systemu, przez czas wymagany w procedurze. Nie ustawiaj arbitralnie 45°C lub 55°C."
          }
        },
        {
          "@type": "Question",
          "name": "Ile trwa wygrzewanie wylewki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Modelowy etap funkcjonalny obejmuje co najmniej 3 dni temperatury początkowej i co najmniej 4 dni temperatury maksymalnej projektowej. Wraz z wcześniejszym dojrzewaniem i późniejszym suszeniem cały harmonogram jest dłuższy oraz zależny od produktu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy po wygrzewaniu można od razu układać płytki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zakładaj tego bez oceny podłoża. Wymagania jastrychu, kleju, hydroizolacji i okładziny trzeba powiązać z wynikiem właściwego pomiaru wilgotności."
          }
        },
        {
          "@type": "Question",
          "name": "Czy panele i drewno wymagają pomiaru wilgotności?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, odbiór podłoża trzeba przeprowadzić zgodnie z wymaganiami konkretnego systemu wykończenia. Sam zakończony program wygrzewania nie jest wynikiem badania wilgotności."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można wygrzewać wylewkę pompą ciepła?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Można, jeśli urządzenie oraz instalacja potrafią bezpiecznie wykonać uzgodniony program. Sprawdź rzeczywiste temperatury, przepływy, działanie automatyki i instrukcję urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Czy program „suszenie jastrychu” w sterowniku wystarczy?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Fabryczna sekwencja sterownika musi zostać porównana z wymaganiami konkretnego jastrychu i maksymalnymi parametrami zaprojektowanej instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Co zrobić po przerwaniu wygrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Zapisz moment, czas przerwy oraz osiągnięte temperatury. Przed wznowieniem uzgodnij dalszą procedurę z osobami odpowiedzialnymi za jastrych i instalację, zamiast dopisywać nieodbyte dni."
          }
        },
        {
          "@type": "Question",
          "name": "Czy latem również trzeba wykonać wygrzewanie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Jeśli procedura systemu wymaga wygrzewania funkcjonalnego, ciepłe powietrze w budynku samo nie zastępuje kontrolowanego cyklu zasilania ogrzewanej podłogi."
          }
        },
        {
          "@type": "Question",
          "name": "Czy brak rys po wygrzewaniu oznacza poprawny odbiór?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Trzeba jeszcze potwierdzić przebieg programu, ocenić podłoże i wykonać pomiar wilgotności przed okładziną zgodnie z jej wymaganiami."
          }
        },
        {
          "@type": "Question",
          "name": "Kto powinien podpisać protokół wygrzewania?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Zakres odpowiedzialności i podpisów należy ustalić w dokumentacji inwestycji. Zwykle potrzebne są dane wykonawcy ogrzewania, wykonawcy jastrychu, osoby nadzorującej oraz inwestora lub odbierającego prace."
          }
        }
      ]
    }
  ]
}
</script>
<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-heat-guide");
  if (!root) { return; }
  if (root.getAttribute("data-rh-ready") === "true") { return; }
  root.setAttribute("data-rh-ready", "true");

  function el(id) { return root.querySelector("#" + id); }
  function textNode(tag, value, className) {
    var node = document.createElement(tag);
    node.textContent = value;
    if (className) { node.className = className; }
    return node;
  }
  function dateFromInput(value) {
    if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) { return null; }
    var bits = value.split("-");
    var date = new Date(Number(bits[0]), Number(bits[1]) - 1, Number(bits[2]), 12, 0, 0);
    if (date.getFullYear() !== Number(bits[0])) { return null; }
    if (date.getMonth() !== Number(bits[1]) - 1) { return null; }
    if (date.getDate() !== Number(bits[2])) { return null; }
    return date;
  }
  function addDays(date, days) {
    var copy = new Date(date.getTime());
    copy.setDate(copy.getDate() + days);
    return copy;
  }
  function polishDate(date) { return new Intl.DateTimeFormat("pl-PL", {day:"numeric",month:"long",year:"numeric"}).format(date); }
  function clearStages() {
    el("rh-plan-stages").textContent = "";
    el("rh-plan-stages").hidden = true;
  }
  function writeWarnings(list) {
    var box = el("rh-plan-warnings");
    box.textContent = "";
    list.forEach(function (entry) { box.appendChild(textNode("li", entry)); });
  }
  function addStage(label, date, desc) {
    var stage = textNode("div", "", "rh-stage");
    stage.appendChild(textNode("strong", label));
    stage.appendChild(textNode("span", date));
    stage.appendChild(textNode("small", desc));
    el("rh-plan-stages").appendChild(stage);
  }
  function showPlan() {
    var result = el("rh-plan-result");
    result.classList.remove("is-ready");
    result.classList.remove("is-stop");
    clearStages();
    var type = el("rh-type").value;
    var poured = dateFromInput(el("rh-pour").value);
    var rawWait = el("rh-wait").value.trim();
    var rawMax = el("rh-max").value.trim().replace(",", ".");
    var wait = Number(rawWait);
    var max = Number(rawMax);
    var missing = [];
    var cautions = [];
    if (type === "") { missing.push("Wybierz zidentyfikowany rodzaj jastrychu."); }
    if (!poured) { missing.push("Wpisz prawidłową datę wykonania jastrychu."); }
    if (rawWait === "") { missing.push("Podaj minimalny odstęp z dokumentacji zastosowanego wyrobu."); }
    if (rawWait !== "") {
      if (!Number.isInteger(wait)) { missing.push("Odstęp powinien być liczbą całych dni."); }
      if (wait < 0) { missing.push("Odstęp nie może być ujemny."); }
      if (wait > 180) { missing.push("Sprawdź podany odstęp; narzędzie przyjmuje maksymalnie 180 dni."); }
    }
    if (rawMax === "") { missing.push("Podaj maksymalną projektową temperaturę zasilania."); }
    if (rawMax !== "") {
      if (!Number.isFinite(max)) { missing.push("Wpisz prawidłową temperaturę zasilania."); }
      if (max < 20) { missing.push("Sprawdź temperaturę: wpisano mniej niż 20°C."); }
      if (max > 60) { missing.push("Sprawdź temperaturę: wpisano więcej niż 60°C."); }
    }
    if (!el("rh-doc").checked) { missing.push("Potwierdź sprawdzenie instrukcji dokładnego produktu."); }
    if (!el("rh-test").checked) { missing.push("Potwierdź próbę i przepływ przez pętle."); }
    if (poured) {
      var today = new Date();
      today.setHours(12, 0, 0, 0);
      if (poured.getTime() > today.getTime()) { cautions.push("Data wykonania jest w przyszłości. Pokazane terminy służą wyłącznie planowaniu."); }
    }
    if (type === "ct") {
      if (rawWait !== "") {
        if (wait < 21) { cautions.push("Dla zwykłego CT punktem odniesienia jest 21 dni. Krótszy odstęp wymaga wyraźnej procedury konkretnego wyrobu."); }
      }
    }
    if (type === "ca") {
      if (rawWait !== "") {
        if (wait < 7) { cautions.push("Dla zwykłego CA punktem odniesienia jest 7 dni. Krótszy odstęp wymaga wyraźnej procedury konkretnego wyrobu."); }
      }
    }
    if (type === "special") { cautions.push("Dla produktu specjalnego terminy i temperatury wynikają tylko z jego dokumentacji; model 3 + 4 dni może do niego nie pasować."); }
    if (missing.length > 0) {
      result.classList.add("is-stop");
      el("rh-plan-title").textContent = "Plan wymaga jeszcze danych";
      el("rh-plan-text").textContent = "Uzupełnij warunki wejściowe przed planowaniem pierwszego nagrzewania.";
      writeWarnings(missing.concat(cautions));
      return;
    }
    var start = addDays(poured, wait);
    var warmEnd = addDays(start, 3);
    var maxEnd = addDays(start, 7);
    el("rh-plan-stages").hidden = false;
    addStage("Najwcześniejszy orientacyjny start", polishDate(start), "Po " + wait + " dniach od wykonania; termin potwierdza instrukcja produktu.");
    if (type === "special") {
      addStage("Program produktu", "Według instrukcji", "Nie zastępuj wymaganej procedury przykładowym przebiegiem.");
      addStage("Kontrola przebiegu", "Zapisuj odczyty", "Temperatury oraz czas wprowadź do dziennika.");
    } else {
      addStage("Modelowy etap początkowy", polishDate(start) + " – " + polishDate(warmEnd), "Około 25°C zasilania przez co najmniej 3 pełne doby, o ile dokument produktu potwierdza taki przebieg.");
      addStage("Modelowy etap maksymalny", polishDate(warmEnd) + " – " + polishDate(maxEnd), "Projektowe maksimum " + String(max).replace(".", ",") + "°C przez co najmniej 4 pełne doby, w granicach instrukcji.");
    }
    addStage("Okładzina", "Bez daty", "Najpierw dalsze wysychanie, pomiar wilgotności i odbiór podłoża.");
    if (cautions.length > 0) {
      el("rh-plan-title").textContent = "Wstępny plan z warunkami do wyjaśnienia";
    } else {
      result.classList.add("is-ready");
      el("rh-plan-title").textContent = "Orientacyjny plan jest gotowy";
    }
    el("rh-plan-text").textContent = "Daty porządkują harmonogram, ale nie stanowią protokołu, zgody na włączenie ani potwierdzenia suchej wylewki.";
    writeWarnings(cautions);
  }
  el("rh-type").addEventListener("change", function () {
    var choice = el("rh-type").value;
    if (choice === "ct") { el("rh-wait").value = "21"; }
    if (choice === "ca") { el("rh-wait").value = "7"; }
    if (choice === "special") { el("rh-wait").value = ""; }
  });
  el("rh-calc").addEventListener("click", showPlan);
  el("rh-clear").addEventListener("click", function () {
    ["rh-type","rh-pour","rh-wait","rh-max"].forEach(function (id) { el(id).value = ""; });
    el("rh-doc").checked = false;
    el("rh-test").checked = false;
    el("rh-plan-result").classList.remove("is-ready");
    el("rh-plan-result").classList.remove("is-stop");
    el("rh-plan-title").textContent = "Uzupełnij dane z dokumentacji";
    el("rh-plan-text").textContent = "Planer wskaże braki, orientacyjny dzień rozpoczęcia i dalsze etapy. Nie ustali daty ułożenia podłogi bez pomiaru podłoża.";
    writeWarnings([]);
    clearStages();
  });

  var entries = [];
  function diaryMessage(value) { el("rh-log-status").textContent = value; }
  function renderDiary() {
    var body = el("rh-log-rows");
    body.textContent = "";
    if (entries.length === 0) {
      var empty = document.createElement("tr");
      var cell = textNode("td", "Brak wpisów. Dodaj pierwszy odczyt z budowy.");
      cell.colSpan = 6;
      empty.appendChild(cell);
      body.appendChild(empty);
      return;
    }
    entries.forEach(function (entry, index) {
      var row = document.createElement("tr");
      var values = [entry.date,entry.phase,entry.temp,entry.time,entry.note];
      var labels = ["Data","Etap","Zasilanie","Czas","Uwagi"];
      values.forEach(function (value, cellIndex) {
        var td = textNode("td", value);
        td.setAttribute("data-label", labels[cellIndex]);
        row.appendChild(td);
      });
      var actionCell = document.createElement("td");
      actionCell.setAttribute("data-label", "Usuń");
      var button = textNode("button", "Usuń", "rh-remove");
      button.type = "button";
      button.setAttribute("aria-label", "Usuń wpis z dnia " + entry.date);
      button.addEventListener("click", function () {
        entries.splice(index, 1);
        renderDiary();
        diaryMessage("Wpis usunięty. Pobierz aktualny dziennik przed opuszczeniem strony.");
      });
      actionCell.appendChild(button);
      row.appendChild(actionCell);
      body.appendChild(row);
    });
  }
  el("rh-log-add").addEventListener("click", function () {
    var dateString = el("rh-log-date").value;
    var phase = el("rh-log-phase").value;
    var tempText = el("rh-log-temp").value.trim().replace(",", ".");
    var duration = el("rh-log-time").value.trim();
    var note = el("rh-log-note").value.trim();
    if (!dateFromInput(dateString)) { diaryMessage("Wpisz prawidłową datę odczytu."); return; }
    if (phase === "") { diaryMessage("Wybierz etap albo zdarzenie."); return; }
    if (tempText !== "") {
      var temp = Number(tempText);
      if (!Number.isFinite(temp)) { diaryMessage("Wpisz prawidłowy odczyt temperatury."); return; }
      if (temp < 0) { diaryMessage("Sprawdź odczyt temperatury."); return; }
      if (temp > 65) { diaryMessage("Sprawdź odczyt temperatury."); return; }
    }
    if (duration === "") { diaryMessage("Wpisz czas utrzymania lub okres obserwacji."); return; }
    entries.push({date:dateString,phase:phase,temp:tempText === "" ? "—" : tempText.replace(".", ",") + "°C",time:duration,note:note === "" ? "—" : note});
    renderDiary();
    el("rh-log-temp").value = "";
    el("rh-log-time").value = "";
    el("rh-log-note").value = "";
    diaryMessage("Dodano wpis. Dane pozostają tylko w tej karcie do czasu pobrania lub wydruku.");
  });
  function csvCell(value) { return '"' + String(value).replace(/"/g, '""') + '"'; }
  el("rh-log-csv").addEventListener("click", function () {
    if (entries.length === 0) { diaryMessage("Dodaj przynajmniej jeden wpis przed pobraniem dziennika."); return; }
    var rows = [["Data","Etap","Temperatura zasilania","Czas","Uwagi"]];
    entries.forEach(function (entry) { rows.push([entry.date,entry.phase,entry.temp,entry.time,entry.note]); });
    var csv = "\ufeff" + rows.map(function (row) { return row.map(csvCell).join(";"); }).join("\r\n");
    var blob = new Blob([csv], {type:"text/csv;charset=utf-8"});
    var url = URL.createObjectURL(blob);
    var link = document.createElement("a");
    link.href = url;
    link.download = "dziennik-wygrzewania-wylewki.csv";
    document.body.appendChild(link);
    link.click();
    link.remove();
    setTimeout(function () { URL.revokeObjectURL(url); }, 1000);
    diaryMessage("Pobrano plik CSV. Zachowaj też dokumenty produktu i podpisany protokół wykonawczy.");
  });
  function clearPrintMode() { document.body.classList.remove("rh-print-diary"); }
  el("rh-log-print").addEventListener("click", function () {
    if (entries.length === 0) { diaryMessage("Dodaj wpisy przed wydrukiem dziennika."); return; }
    document.body.classList.add("rh-print-diary");
    window.print();
    setTimeout(clearPrintMode, 1000);
  });
  window.addEventListener("afterprint", clearPrintMode);
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/">Wygrzewanie wylewki pod ogrzewanie podłogowe – terminy, przebieg i protokół.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Dobór, schemat montażu, spadek ciśnienia i normy.</title>
		<link>https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 07 Aug 2026 12:00:42 +0000</pubDate>
				<category><![CDATA[Armatura zabezpieczająca]]></category>
		<category><![CDATA[Filtry i separatory]]></category>
		<category><![CDATA[Kotłownia]]></category>
		<category><![CDATA[Ochrona instalacji]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[armatura zabezpieczająca]]></category>
		<category><![CDATA[deaerator]]></category>
		<category><![CDATA[norma vdi 2035]]></category>
		<category><![CDATA[ochrona pompy ciepła]]></category>
		<category><![CDATA[odpowietrznik mikropęcherzy]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[separator magnetyczny]]></category>
		<category><![CDATA[separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[spadek ciśnienia]]></category>
		<category><![CDATA[szlam magnetytowy]]></category>
		<category><![CDATA[współczynnik kv]]></category>
		<category><![CDATA[wymiennik płytowy]]></category>
		<category><![CDATA[zapowietrzenie podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7119</guid>

					<description><![CDATA[<p>Prawidłowo zaprojektowana instalacja płaszczyznowa wymaga skutecznej ochrony hydraulicznej przed zjawiskiem stale krążących mikropęcherzy oraz powstawaniem czarnego osadu magnetytowego. Wąskie przekroje rur PEX i PERT, wrażliwe wymienniki płytowe pomp ciepła oraz energooszczędne pompy obiegowe z magnesami trwałymi są szczególnie narażone na uszkodzenia mechaniczne oraz drastyczny spadek sprawności grzewczej. W tym inżynieryjnym poradniku dowiesz się, jak prawidłowo zamontować i dobrać separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym. Przeanalizujemy Prawa Henry’ego oraz Stokesa, obliczymy wymagany współczynnik Kv, zmierzymy opory hydrauliczne i wyeliminujemy najczęstsze błędy wykonawcze, które niszczą nowoczesne kotłownie.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/">Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Dobór, schemat montażu, spadek ciśnienia i normy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-separator-guide {
    --rk-navy-950: #0b2232;
    --rk-navy-900: #102f42;
    --rk-navy-800: #17465c;
    --rk-blue: #0796bd;
    --rk-cyan: #29c4da;
    --rk-orange: #ff6846;
    --rk-yellow: #f3b51b;
    --rk-green: #15936f;
    --rk-red: #d84b4b;
    --rk-ink: #102739;
    --rk-text: #40566a;
    --rk-muted: #6e8293;
    --rk-line: #d3e2e9;
    --rk-soft: #f2f7f9;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 28px auto;
    color: var(--rk-ink);
    font-family: inherit;
    font-size: 17px;
    line-height: 1.72;
  }

  #rk-separator-guide,
  #rk-separator-guide * {
    box-sizing: border-box;
  }

  #rk-separator-guide a {
    color: var(--rk-blue);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-separator-guide img,
  #rk-separator-guide svg {
    max-width: 100%;
  }

  #rk-separator-guide button,
  #rk-separator-guide input,
  #rk-separator-guide select {
    font: inherit;
  }

  #rk-separator-guide .rk-sep-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 22px 64px rgba(16, 47, 66, 0.12);
  }

  #rk-separator-guide .rk-sep-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 76px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, 0.32), transparent 28%),
      radial-gradient(circle at 6% 95%, rgba(255, 106, 61, 0.22), transparent 27%),
      linear-gradient(135deg, #0d2332 0%, #143e53 58%, #0b6680 100%);
  }

  #rk-separator-guide .rk-sep-hero::after {
    position: absolute;
    right: -74px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 44px solid rgba(255, 255, 255, 0.055);
    border-radius: 50%;
    content: "";
  }

  #rk-separator-guide .rk-sep-eyebrow {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: 0.69rem;
    font-weight: 950;
    letter-spacing: 0.09em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  #rk-separator-guide .rk-sep-eyebrow::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, 0.14);
    content: "";
  }

  #rk-separator-guide .rk-sep-hero-title {
    position: relative;
    z-index: 1;
    max-width: 960px;
    margin: 0 0 19px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.4vw, 4.28rem);
    font-weight: 950;
    line-height: 1.01;
    letter-spacing: -0.055em;
  }

  #rk-separator-guide .rk-sep-hero-title span {
    color: #78efff;
  }

  #rk-separator-guide .rk-sep-hero-lead {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 0 0 24px;
    color: #d8e9ef;
    font-size: clamp(1.02rem, 2vw, 1.24rem);
    line-height: 1.67;
  }

  #rk-separator-guide .rk-sep-hero-tags {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 27px;
  }

  #rk-separator-guide .rk-sep-hero-tag {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 8px 13px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: #eefcff;
    background: rgba(255, 255, 255, 0.075);
    font-size: 0.72rem;
    font-weight: 850;
    line-height: 1.3;
  }

  #rk-separator-guide .rk-sep-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    color: #bad3dc;
    font-size: 0.72rem;
    font-weight: 720;
  }

  #rk-separator-guide .rk-sep-byline strong {
    color: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-byline a {
    color: var(--rk-white);
    text-decoration: none;
  }

  #rk-separator-guide .rk-sep-button,
  #rk-separator-guide a.rk-sep-button {
    display: inline-flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    border: 0;
    border-radius: 13px;
    color: var(--rk-white);
    background: var(--rk-orange);
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(255, 104, 70, 0.22);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
  }

  #rk-separator-guide .rk-sep-button:hover,
  #rk-separator-guide .rk-sep-button:focus-visible {
    color: var(--rk-white);
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(255, 104, 70, 0.32);
  }

  #rk-separator-guide .rk-sep-button-quiet,
  #rk-separator-guide a.rk-sep-button-quiet {
    min-height: 44px;
    padding: 10px 17px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(255, 255, 255, 0.1);
    box-shadow: none;
    font-size: 0.9rem;
  }

  #rk-separator-guide .rk-sep-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 22px 28px;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-nav-label {
    display: inline-flex;
    align-items: center;
    margin-right: 3px;
    color: var(--rk-navy-900);
    font-size: 0.76rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-separator-guide .rk-sep-nav a {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    padding: 8px 13px;
    border-radius: 999px;
    color: var(--rk-ink);
    background: var(--rk-soft);
    font-size: 0.82rem;
    font-weight: 850;
    line-height: 1.2;
    text-decoration: none;
    transition: color 0.18s ease, background 0.18s ease;
  }

  #rk-separator-guide .rk-sep-nav a:hover,
  #rk-separator-guide .rk-sep-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-separator-guide .rk-sep-main {
    padding: 14px 58px 58px;
  }

  #rk-separator-guide .rk-sep-section {
    scroll-margin-top: 24px;
    padding: 46px 0 10px;
  }

  #rk-separator-guide .rk-sep-section + .rk-sep-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-separator-guide .rk-sep-section h2 {
    margin: 0 0 17px;
    color: var(--rk-navy-950);
    font-size: clamp(1.65rem, 3vw, 2.45rem);
    line-height: 1.17;
    letter-spacing: -0.035em;
  }

  #rk-separator-guide .rk-sep-section h3 {
    margin: 30px 0 11px;
    color: var(--rk-navy-900);
    font-size: 1.27rem;
    line-height: 1.25;
  }

  #rk-separator-guide .rk-sep-section h4 {
    margin: 23px 0 8px;
    color: var(--rk-navy-800);
    font-size: 1rem;
    line-height: 1.3;
  }

  #rk-separator-guide .rk-sep-section p {
    margin: 0 0 17px;
    color: var(--rk-text);
  }

  #rk-separator-guide .rk-sep-lead {
    max-width: 920px;
    font-size: 1.08rem;
  }

  #rk-separator-guide .rk-sep-answer {
    position: relative;
    margin: 24px 0;
    padding: 24px 26px 24px 29px;
    border: 1px solid #bfe6ed;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 16px;
    background: #effafd;
  }

  #rk-separator-guide .rk-sep-answer strong {
    color: var(--rk-navy-950);
  }

  #rk-separator-guide .rk-sep-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-separator-guide .rk-sep-note,
  #rk-separator-guide .rk-sep-warning,
  #rk-separator-guide .rk-sep-success {
    margin: 22px 0;
    padding: 18px 20px;
    border-radius: 14px;
    color: var(--rk-text);
  }

  #rk-separator-guide .rk-sep-note {
    border-left: 5px solid var(--rk-yellow);
    background: #fff8e5;
  }

  #rk-separator-guide .rk-sep-warning {
    border-left: 5px solid var(--rk-red);
    background: #fff0ef;
  }

  #rk-separator-guide .rk-sep-success {
    border-left: 5px solid var(--rk-green);
    background: #edf9f5;
  }

  #rk-separator-guide .rk-sep-note p:last-child,
  #rk-separator-guide .rk-sep-warning p:last-child,
  #rk-separator-guide .rk-sep-success p:last-child {
    margin-bottom: 0;
  }

  #rk-separator-guide .rk-sep-grid-2,
  #rk-separator-guide .rk-sep-grid-3,
  #rk-separator-guide .rk-sep-grid-4 {
    display: grid;
    gap: 16px;
    margin: 22px 0;
  }

  #rk-separator-guide .rk-sep-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-separator-guide .rk-sep-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-separator-guide .rk-sep-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-separator-guide .rk-sep-card {
    height: 100%;
    padding: 21px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-card-accent {
    border-top: 5px solid var(--rk-cyan);
  }

  #rk-separator-guide .rk-sep-card-orange {
    border-top-color: var(--rk-orange);
  }

  #rk-separator-guide .rk-sep-card-green {
    border-top-color: var(--rk-green);
  }

  #rk-separator-guide .rk-sep-card-yellow {
    border-top-color: var(--rk-yellow);
  }

  #rk-separator-guide .rk-sep-card h3,
  #rk-separator-guide .rk-sep-card h4 {
    margin-top: 0;
  }

  #rk-separator-guide .rk-sep-card p:last-child {
    margin-bottom: 0;
  }

  #rk-separator-guide .rk-sep-tag {
    display: inline-flex;
    margin-bottom: 9px;
    padding: 4px 9px;
    border-radius: 999px;
    color: var(--rk-navy-900);
    background: #dff7fa;
    font-size: 0.69rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-separator-guide .rk-sep-list,
  #rk-separator-guide .rk-sep-checklist {
    margin: 16px 0 20px;
    padding: 0;
    list-style: none;
  }

  #rk-separator-guide .rk-sep-list li,
  #rk-separator-guide .rk-sep-checklist li {
    position: relative;
    margin: 9px 0;
    padding-left: 29px;
    color: var(--rk-text);
  }

  #rk-separator-guide .rk-sep-list li::before {
    position: absolute;
    top: 0.68em;
    left: 4px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-cyan);
    content: "";
  }

  #rk-separator-guide .rk-sep-checklist {
    counter-reset: rk-sep-step;
  }

  #rk-separator-guide .rk-sep-checklist li {
    min-height: 44px;
    margin: 12px 0;
    padding: 9px 10px 9px 56px;
    border-radius: 12px;
    background: var(--rk-soft);
    counter-increment: rk-sep-step;
  }

  #rk-separator-guide .rk-sep-checklist li::before {
    position: absolute;
    top: 8px;
    left: 9px;
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.82rem;
    font-weight: 950;
    content: counter(rk-sep-step);
  }

  #rk-separator-guide .rk-sep-table-wrap {
    overflow: hidden;
    margin: 22px 0;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
  }

  #rk-separator-guide .rk-sep-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-table th,
  #rk-separator-guide .rk-sep-table td {
    padding: 15px 16px;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-text);
    text-align: left;
    vertical-align: top;
  }

  #rk-separator-guide .rk-sep-table th {
    color: var(--rk-white);
    background: var(--rk-navy-900);
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-separator-guide .rk-sep-table tr:last-child td {
    border-bottom: 0;
  }

  #rk-separator-guide .rk-sep-table td:first-child {
    color: var(--rk-ink);
    font-weight: 850;
  }

  #rk-separator-guide .rk-sep-formula {
    margin: 22px 0;
    padding: 21px 23px;
    border: 1px solid #bcd6e1;
    border-radius: 15px;
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-separator-guide .rk-sep-formula code {
    display: block;
    color: var(--rk-navy-950);
    background: transparent;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(1rem, 2.2vw, 1.35rem);
    font-weight: 900;
    white-space: normal;
  }

  #rk-separator-guide .rk-sep-formula span {
    display: block;
    margin-top: 8px;
    color: var(--rk-muted);
    font-size: 0.78rem;
  }

  #rk-separator-guide .rk-sep-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
    margin: 25px 0;
    padding: 22px;
    border-radius: 17px;
    background: var(--rk-soft);
  }

  #rk-separator-guide .rk-sep-flow-node {
    display: grid;
    min-width: 130px;
    min-height: 78px;
    flex: 1 1 150px;
    place-items: center;
    padding: 12px;
    border: 1px solid #bdd2dc;
    border-radius: 13px;
    color: var(--rk-navy-950);
    background: var(--rk-white);
    font-size: 0.85rem;
    font-weight: 900;
    line-height: 1.25;
    text-align: center;
  }

  #rk-separator-guide .rk-sep-flow-node-main {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-separator-guide .rk-sep-flow-arrow {
    display: grid;
    width: 26px;
    flex: 0 0 26px;
    place-items: center;
    color: var(--rk-orange);
    font-size: 1.7rem;
    font-weight: 950;
  }

  #rk-separator-guide .rk-sep-schematic {
    overflow: hidden;
    margin: 25px 0;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-schematic-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 17px;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-separator-guide .rk-sep-schematic-tab {
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid #bdd2dc;
    border-radius: 11px;
    color: var(--rk-navy-900);
    background: var(--rk-white);
    font-size: 0.82rem;
    font-weight: 900;
    cursor: pointer;
  }

  #rk-separator-guide .rk-sep-schematic-tab[aria-selected="true"] {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-separator-guide .rk-sep-schematic-body {
    padding: 8px 20px 22px;
  }

  #rk-separator-guide .rk-sep-schematic-note {
    margin: 0 20px 21px;
    padding: 15px 17px;
    border-left: 4px solid var(--rk-yellow);
    border-radius: 10px;
    color: var(--rk-text);
    background: #fff8e4;
    font-size: 0.88rem;
  }

  #rk-separator-guide .rk-sep-tool {
    overflow: hidden;
    margin: 26px 0;
    border-radius: 22px;
    color: var(--rk-white);
    background: var(--rk-navy-950);
    box-shadow: 0 20px 46px rgba(11, 34, 50, 0.21);
  }

  #rk-separator-guide .rk-sep-tool-head {
    padding: 31px 34px 27px;
    background:
      radial-gradient(circle at 90% 5%, rgba(41, 196, 218, 0.23), transparent 26%),
      linear-gradient(125deg, #11384c, #174e63);
  }

  #rk-separator-guide .rk-sep-tool-head .rk-sep-tag {
    color: var(--rk-navy-950);
    background: var(--rk-cyan);
  }

  #rk-separator-guide .rk-sep-tool-head h3 {
    margin: 4px 0 9px;
    color: var(--rk-white);
    font-size: clamp(1.55rem, 3.3vw, 2.25rem);
  }

  #rk-separator-guide .rk-sep-tool-head p {
    max-width: 900px;
    margin: 0;
    color: #c9e1e9;
  }

  #rk-separator-guide .rk-sep-tool-body {
    display: block;
    padding: 24px;
  }

  #rk-separator-guide .rk-sep-tool-step {
    width: 100%;
    margin-bottom: 18px;
    padding: 24px;
    border: 1px solid #315a6c;
    border-radius: 17px;
    background: #143448;
  }

  #rk-separator-guide .rk-sep-tool-step:last-child {
    margin-bottom: 0;
  }

  #rk-separator-guide .rk-sep-tool-title {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 17px;
    color: var(--rk-white);
    font-size: 1.2rem;
    font-weight: 950;
  }

  #rk-separator-guide .rk-sep-tool-number {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    place-items: center;
    border-radius: 10px;
    color: var(--rk-navy-950);
    background: var(--rk-cyan);
    font-size: 0.9rem;
  }

  #rk-separator-guide .rk-sep-tool-copy {
    margin: -6px 0 17px;
    color: #b9d1dc;
    font-size: 0.84rem;
  }

  #rk-separator-guide .rk-sep-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
  }

  #rk-separator-guide .rk-sep-field {
    min-width: 0;
  }

  #rk-separator-guide .rk-sep-field-wide {
    grid-column: span 2;
  }

  #rk-separator-guide .rk-sep-field label {
    display: block;
    margin-bottom: 7px;
    color: #edf8fb;
    font-size: 0.78rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-separator-guide .rk-sep-field input,
  #rk-separator-guide .rk-sep-field select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #9cb4c0;
    border-radius: 10px;
    color: var(--rk-ink);
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-field input:focus,
  #rk-separator-guide .rk-sep-field select:focus {
    outline: 3px solid rgba(41, 196, 218, 0.28);
    border-color: var(--rk-cyan);
  }

  #rk-separator-guide .rk-sep-field small {
    display: block;
    margin-top: 6px;
    color: #93b3c2;
    font-size: 0.69rem;
    line-height: 1.35;
  }

  #rk-separator-guide .rk-sep-toggle-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 18px 0 0;
    padding: 12px 14px;
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.055);
  }

  #rk-separator-guide .rk-sep-toggle-line input {
    width: 20px;
    height: 20px;
    accent-color: var(--rk-cyan);
  }

  #rk-separator-guide .rk-sep-toggle-line label {
    color: #edf8fb;
    font-size: 0.85rem;
    font-weight: 800;
    cursor: pointer;
  }

  #rk-separator-guide .rk-sep-results {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }

  #rk-separator-guide .rk-sep-result {
    min-height: 112px;
    padding: 16px;
    border: 1px solid #315b6d;
    border-radius: 14px;
    background: #102c3e;
  }

  #rk-separator-guide .rk-sep-result span {
    display: block;
    color: #91b3c3;
    font-size: 0.69rem;
    font-weight: 850;
    letter-spacing: 0.045em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-separator-guide .rk-sep-result strong {
    display: block;
    margin: 7px 0 3px;
    color: var(--rk-white);
    font-size: 1.42rem;
    line-height: 1.1;
  }

  #rk-separator-guide .rk-sep-result small {
    display: block;
    color: #8da9b7;
    font-size: 0.68rem;
    line-height: 1.35;
  }

  #rk-separator-guide .rk-sep-result-status {
    grid-column: span 2;
    border-color: #397389;
  }

  #rk-separator-guide .rk-sep-status {
    margin-top: 15px;
    padding: 16px 18px;
    border-left: 5px solid var(--rk-green);
    border-radius: 12px;
    color: #dff8ef;
    background: rgba(21, 147, 111, 0.16);
  }

  #rk-separator-guide .rk-sep-status[data-state="borderline"] {
    border-left-color: var(--rk-yellow);
    color: #fff3cf;
    background: rgba(243, 181, 27, 0.15);
  }

  #rk-separator-guide .rk-sep-status[data-state="bad"] {
    border-left-color: var(--rk-orange);
    color: #ffe4dd;
    background: rgba(255, 104, 70, 0.16);
  }

  #rk-separator-guide .rk-sep-status strong {
    display: block;
    margin-bottom: 3px;
  }

  #rk-separator-guide .rk-sep-status span {
    display: block;
    font-size: 0.82rem;
    line-height: 1.5;
  }

  #rk-separator-guide .rk-sep-chart-panel {
    padding: 20px;
    border: 1px solid #315b6d;
    border-radius: 16px;
    background: #102c3e;
  }

  #rk-separator-guide .rk-sep-chart-panel h4 {
    margin: 0 0 4px;
    color: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-chart-panel > p {
    margin: 0 0 13px;
    color: #a8c3cf;
    font-size: 0.78rem;
  }

  #rk-separator-guide .rk-sep-chart {
    display: block;
    width: 100%;
    min-height: 390px;
    border-radius: 12px;
    background: #0d2737;
  }

  #rk-separator-guide .rk-sep-chart text {
    fill: #aac4cf;
    font-family: inherit;
    font-size: 12px;
  }

  #rk-separator-guide .rk-sep-chart .rk-grid {
    stroke: #294c5d;
    stroke-width: 1;
  }

  #rk-separator-guide .rk-sep-chart .rk-axis {
    stroke: #81a6b6;
    stroke-width: 1.3;
  }

  #rk-separator-guide .rk-sep-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 17px;
    margin-top: 13px;
    color: #bdd3dc;
    font-size: 0.74rem;
    font-weight: 750;
  }

  #rk-separator-guide .rk-sep-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  #rk-separator-guide .rk-sep-chart-legend i {
    width: 22px;
    height: 4px;
    border-radius: 4px;
  }

  #rk-separator-guide .rk-sep-tool-foot {
    padding: 0 28px 25px;
    color: #91adba;
    font-size: 0.72rem;
  }

  #rk-separator-guide .rk-sep-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 23px;
    align-items: center;
    margin: 30px 0 10px;
    padding: 25px 27px;
    border-radius: 18px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 0, rgba(41, 196, 218, 0.22), transparent 31%),
      linear-gradient(130deg, var(--rk-navy-950), var(--rk-navy-800));
  }

  #rk-separator-guide .rk-sep-cta h3 {
    margin: 0 0 7px;
    color: var(--rk-white);
    font-size: 1.25rem;
  }

  #rk-separator-guide .rk-sep-cta p {
    margin: 0;
    color: #cce0e8;
    font-size: 0.9rem;
  }

  #rk-separator-guide .rk-sep-faq {
    margin: 18px 0 0;
  }

  #rk-separator-guide .rk-sep-faq details {
    margin: 10px 0;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-faq summary {
    position: relative;
    padding: 17px 48px 17px 18px;
    color: var(--rk-navy-950);
    font-weight: 900;
    line-height: 1.35;
    cursor: pointer;
    list-style: none;
  }

  #rk-separator-guide .rk-sep-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-separator-guide .rk-sep-faq summary::after {
    position: absolute;
    top: 15px;
    right: 16px;
    display: grid;
    width: 29px;
    height: 29px;
    place-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    content: "+";
  }

  #rk-separator-guide .rk-sep-faq details[open] summary::after {
    content: "−";
  }

  #rk-separator-guide .rk-sep-faq-answer {
    padding: 0 18px 18px;
  }

  #rk-separator-guide .rk-sep-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-separator-guide .rk-sep-sources {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
  }

  #rk-separator-guide .rk-sep-sources li {
    margin: 10px 0;
    padding: 13px 15px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 9px;
    color: var(--rk-text);
    background: var(--rk-soft);
  }

  #rk-separator-guide .rk-sep-author {
    scroll-margin-top: 24px;
    border-top: 1px solid var(--rk-line);
    background: #f3f8fa;
  }

  #rk-separator-guide .rk-sep-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  #rk-separator-guide .rk-sep-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 38px;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-author-head span:first-child {
    color: var(--rk-blue);
    font-size: 0.75rem;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #rk-separator-guide .rk-sep-author-head h2 {
    margin: 3px 0 0;
    color: var(--rk-navy-950);
    font-size: clamp(1.55rem, 3vw, 2.25rem);
    line-height: 1.15;
  }

  #rk-separator-guide .rk-sep-author-mark {
    padding: 7px 11px;
    border-radius: 999px;
    color: var(--rk-navy-900);
    background: #dff5f8;
    font-size: 0.7rem;
    font-weight: 950;
    letter-spacing: 0.06em;
  }

  #rk-separator-guide .rk-sep-author-layout {
    display: grid;
    grid-template-columns: 315px minmax(0, 1fr);
  }

  #rk-separator-guide .rk-sep-author-side {
    padding: 33px 28px;
    color: var(--rk-white);
    background: var(--rk-navy-950);
    text-align: center;
  }

  #rk-separator-guide .rk-sep-author-photo {
    width: 170px;
    height: 170px;
    margin: 0 auto 19px;
    overflow: hidden;
    border: 6px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-separator-guide .rk-sep-author-name a {
    color: var(--rk-white);
    font-size: 1.27rem;
    font-weight: 950;
    text-decoration: none;
  }

  #rk-separator-guide .rk-sep-author-role {
    margin-top: 7px;
    color: #b8d1dc;
    font-size: 0.79rem;
    line-height: 1.5;
  }

  #rk-separator-guide .rk-sep-author-social-label {
    margin: 24px 0 11px;
    color: #8faebd;
    font-size: 0.66rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-separator-guide .rk-sep-author-social {
    display: flex;
    justify-content: center;
    gap: 10px;
  }

  #rk-separator-guide .rk-sep-author-social a {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid #466575;
    border-radius: 50%;
    color: var(--rk-white);
    text-decoration: none;
  }

  #rk-separator-guide .rk-sep-author-social a:hover,
  #rk-separator-guide .rk-sep-author-social a:focus-visible {
    border-color: var(--rk-cyan);
    background: var(--rk-blue);
  }

  #rk-separator-guide .rk-sep-author-social svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
  }

  #rk-separator-guide .rk-sep-author-main {
    padding: 34px 38px 38px;
  }

  #rk-separator-guide .rk-sep-author-quote {
    position: relative;
    margin: 0 0 24px;
    padding: 23px 24px 23px 70px;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-author-quote::before {
    position: absolute;
    top: 12px;
    left: 22px;
    color: var(--rk-cyan);
    font-size: 3.3rem;
    font-weight: 950;
    line-height: 1;
    content: "“";
  }

  #rk-separator-guide .rk-sep-author-quote p {
    margin: 0;
    color: var(--rk-ink);
    font-weight: 800;
  }

  #rk-separator-guide .rk-sep-author-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-bottom: 18px;
  }

  #rk-separator-guide .rk-sep-author-tab {
    padding: 9px 15px;
    border-radius: 999px;
    color: var(--rk-muted);
    background: #e4eef2;
    font-size: 0.76rem;
    font-weight: 900;
    cursor: pointer;
  }

  #rk-separator-guide .rk-sep-author-panel {
    display: none;
  }

  #rk-separator-guide .rk-sep-author-panel p {
    margin: 0 0 13px;
    color: var(--rk-text);
  }

  #rk-separator-guide .rk-sep-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-sep-author-about:checked ~ .rk-sep-author-layout .rk-sep-author-panel-about,
  #rk-sep-author-exp:checked ~ .rk-sep-author-layout .rk-sep-author-panel-exp,
  #rk-sep-author-sites:checked ~ .rk-sep-author-layout .rk-sep-author-panel-sites {
    display: block;
  }

  #rk-sep-author-about:checked ~ .rk-sep-author-layout label[for="rk-sep-author-about"],
  #rk-sep-author-exp:checked ~ .rk-sep-author-layout label[for="rk-sep-author-exp"],
  #rk-sep-author-sites:checked ~ .rk-sep-author-layout label[for="rk-sep-author-sites"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-separator-guide .rk-sep-footnote {
    padding: 17px 38px;
    border-top: 1px solid var(--rk-line);
    color: var(--rk-muted);
    background: var(--rk-white);
    font-size: 0.72rem;
    text-align: center;
  }

  #rk-separator-guide .rk-sep-final-wrap {
    padding: 32px 38px;
    border-top: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-separator-guide .rk-sep-final-wrap .rk-sep-cta {
    margin: 0;
  }

  #rk-separator-guide .rk-sep-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }

  @media (max-width: 920px) {
    #rk-separator-guide .rk-sep-grid-3,
    #rk-separator-guide .rk-sep-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-separator-guide .rk-sep-fields,
    #rk-separator-guide .rk-sep-results {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-separator-guide .rk-sep-author-layout {
      grid-template-columns: 270px minmax(0, 1fr);
    }

    #rk-separator-guide .rk-sep-cta {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 720px) {
    #rk-separator-guide {
      margin: 12px auto;
      font-size: 16px;
    }

    #rk-separator-guide .rk-sep-shell {
      border-radius: 18px;
    }

    #rk-separator-guide .rk-sep-hero {
      padding: 36px 24px 32px;
    }

    #rk-separator-guide .rk-sep-hero-title {
      font-size: clamp(1.85rem, 10.2vw, 3rem);
    }

    #rk-separator-guide .rk-sep-grid-2,
    #rk-separator-guide .rk-sep-grid-3,
    #rk-separator-guide .rk-sep-grid-4,
    #rk-separator-guide .rk-sep-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-separator-guide .rk-sep-nav {
      gap: 7px;
      padding: 17px 16px;
    }

    #rk-separator-guide .rk-sep-nav-label {
      width: 100%;
      margin-bottom: 2px;
    }

    #rk-separator-guide .rk-sep-nav a {
      min-height: 35px;
      padding: 7px 10px;
      font-size: 0.75rem;
    }

    #rk-separator-guide .rk-sep-main {
      padding: 4px 20px 38px;
    }

    #rk-separator-guide .rk-sep-section {
      padding-top: 36px;
    }

    #rk-separator-guide .rk-sep-flow-arrow {
      width: 100%;
      height: 23px;
      flex-basis: 100%;
      transform: rotate(90deg);
    }

    #rk-separator-guide .rk-sep-tool-body {
      padding: 14px;
    }

    #rk-separator-guide .rk-sep-tool-head,
    #rk-separator-guide .rk-sep-tool-step {
      padding: 21px 18px;
    }

    #rk-separator-guide .rk-sep-fields,
    #rk-separator-guide .rk-sep-results {
      grid-template-columns: 1fr;
    }

    #rk-separator-guide .rk-sep-field-wide,
    #rk-separator-guide .rk-sep-result-status {
      grid-column: auto;
    }

    #rk-separator-guide .rk-sep-chart {
      min-height: 315px;
    }

    #rk-separator-guide .rk-sep-cta {
      padding: 22px 20px;
    }

    #rk-separator-guide .rk-sep-author-head {
      align-items: flex-start;
      padding: 24px 22px;
    }

    #rk-separator-guide .rk-sep-author-side,
    #rk-separator-guide .rk-sep-author-main {
      padding: 28px 22px;
    }

    #rk-separator-guide .rk-sep-final-wrap {
      padding: 24px 20px;
    }

    #rk-separator-guide .rk-sep-author-quote {
      padding: 58px 20px 20px;
    }

    #rk-separator-guide .rk-sep-author-quote::before {
      top: 9px;
      left: 19px;
    }

    #rk-separator-guide .rk-sep-table-wrap {
      overflow: visible;
      border: 0;
      border-radius: 0;
    }

    #rk-separator-guide .rk-sep-table,
    #rk-separator-guide .rk-sep-table tbody,
    #rk-separator-guide .rk-sep-table tr,
    #rk-separator-guide .rk-sep-table td {
      display: block;
      width: 100%;
    }

    #rk-separator-guide .rk-sep-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
    }

    #rk-separator-guide .rk-sep-table tr {
      overflow: hidden;
      margin: 0 0 13px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
    }

    #rk-separator-guide .rk-sep-table td {
      display: grid;
      grid-template-columns: minmax(105px, 40%) minmax(0, 1fr);
      gap: 12px;
      padding: 12px 14px;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-separator-guide .rk-sep-table td::before {
      color: var(--rk-muted);
      font-size: 0.69rem;
      font-weight: 950;
      letter-spacing: 0.035em;
      line-height: 1.35;
      text-transform: uppercase;
      content: attr(data-label);
    }

    #rk-separator-guide .rk-sep-table td:last-child {
      border-bottom: 0;
    }
  }

  @media (max-width: 430px) {
    #rk-separator-guide .rk-sep-button {
      width: 100%;
    }

    #rk-separator-guide .rk-sep-author-mark {
      display: none;
    }

    #rk-separator-guide .rk-sep-table td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media print {
    #rk-separator-guide {
      max-width: none;
      box-shadow: none;
    }

    #rk-separator-guide .rk-sep-nav,
    #rk-separator-guide .rk-sep-schematic-tabs,
    #rk-separator-guide .rk-sep-cta {
      display: none;
    }

    #rk-separator-guide .rk-sep-shell {
      border: 0;
      box-shadow: none;
    }
  }
</style>

<article id="rk-separator-guide" itemscope itemtype="https://schema.org/TechArticle">
  <div class="rk-sep-shell">
    <header class="rk-sep-hero">
      <span class="rk-sep-eyebrow">Hydraulika instalacji • aktualizacja 2026</span>
      <div class="rk-sep-hero-title">Separator zanieczyszczeń i powietrza — <span>dobór, Kv i montaż</span></div>
      <p class="rk-sep-hero-lead">Urządzenie ma chronić konkretną część instalacji i jednocześnie nie tworzyć niepotrzebnego oporu. Dlatego przed wyborem trzeba rozdzielić funkcję usuwania zanieczyszczeń, cząstek magnetycznych i mikropęcherzy, a następnie sprawdzić przepływ, współczynnik Kv, spadek ciśnienia oraz miejsce montażu.</p>

      <div class="rk-sep-hero-tags" aria-label="Najważniejsze zagadnienia artykułu">
        <span class="rk-sep-hero-tag">separator zanieczyszczeń</span>
        <span class="rk-sep-hero-tag">wkład magnetyczny</span>
        <span class="rk-sep-hero-tag">separator powietrza</span>
        <span class="rk-sep-hero-tag">Kv i spadek ciśnienia</span>
        <span class="rk-sep-hero-tag">schemat montażu</span>
      </div>

      <div class="rk-sep-byline">
        <span>Autor: <a href="https://projekt-ogrzewania.pl/author/admin3399/"><strong>Robert Kucharski</strong></a></span>
        <span>Czas czytania: około 24 minuty</span>
        <span>Aktualizacja techniczna: 1 września 2026 r.</span>
      </div>
    </header>

    <nav class="rk-sep-nav" aria-label="Nawigacja po wszystkich nagłówkach H2">
      <span class="rk-sep-nav-label">Na skróty — wszystkie H2</span>
      <a href="#rk-sep-szybka-odpowiedz">Szybka odpowiedź</a>
      <a href="#rk-sep-roznice">Co jest czym</a>
      <a href="#rk-sep-zanieczyszczenia">Zanieczyszczenia</a>
      <a href="#rk-sep-magnes">Magnes</a>
      <a href="#rk-sep-powietrze">Powietrze</a>
      <a href="#rk-sep-miejsce">Miejsce montażu</a>
      <a href="#rk-sep-dwa-w-jednym">Urządzenie 2 w 1</a>
      <a href="#rk-sep-schematy">Schematy</a>
      <a href="#rk-sep-hydraulika">Przepływ i Kv</a>
      <a href="#rk-sep-analizator">Analizator</a>
      <a href="#rk-sep-filtr">Filtr czy separator</a>
      <a href="#rk-sep-zrodla">Pompa i kocioł</a>
      <a href="#rk-sep-woda">Woda i korozja</a>
      <a href="#rk-sep-montaz">Montaż</a>
      <a href="#rk-sep-czyszczenie">Czyszczenie</a>
      <a href="#rk-sep-bledy">Błędy</a>
      <a href="#rk-sep-checklista">Checklista</a>
      <a href="#rk-sep-faq">FAQ</a>
      <a href="#rk-sep-opracowanie">Źródła</a>
      <a href="#rk-sep-author">Autor</a>
    </nav>

    <main class="rk-sep-main">
      <section class="rk-sep-section" id="rk-sep-szybka-odpowiedz">
        <h2>Szybka odpowiedź: jaki separator do ogrzewania podłogowego?</h2>
        <p class="rk-sep-lead">W zamkniętej instalacji ogrzewania podłogowego zwykle warto przewidzieć ochronę przed zanieczyszczeniami, a gdy w układzie występują elementy stalowe — także skuteczne wychwytywanie cząstek ferromagnetycznych. Usuwanie mikropęcherzy powietrza jest osobną funkcją. Można ją realizować oddzielnym separatorem powietrza albo urządzeniem łączącym obie funkcje, jeżeli jego parametry i miejsce montażu pasują do całego układu.</p>

        <div class="rk-sep-answer">
          <p><strong>Nie ma uczciwej odpowiedzi „separator DN25 do domu 150 m²”.</strong> Metraż nie określa przepływu, spadku ciśnienia ani materiałów obecnych w instalacji. Do wstępnego doboru potrzebne są co najmniej: przepływ projektowy, Kv konkretnego urządzenia, średnica drogi przepływu, medium oraz dopuszczalny opór w obiegu krytycznym.</p>
        </div>

        <div class="rk-sep-grid-3">
          <article class="rk-sep-card rk-sep-card-accent">
            <span class="rk-sep-tag">Osady</span>
            <h3>Separator zanieczyszczeń</h3>
            <p>Ma ułatwiać oddzielanie i okresowe usuwanie cząstek krążących w wodzie instalacyjnej. Skuteczność zależy od konstrukcji, przepływu, wielkości cząstek i warunków pracy.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <span class="rk-sep-tag">Magnetyt</span>
            <h3>Wkład magnetyczny</h3>
            <p>Wspomaga zatrzymywanie cząstek ferromagnetycznych. Sam magnes nie przechwytuje wszystkich zanieczyszczeń niemagnetycznych i nie zastępuje prawidłowej separacji.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-green">
            <span class="rk-sep-tag">Mikropęcherze</span>
            <h3>Separator powietrza</h3>
            <p>Ma wydzielać powietrze niesione przez wodę. Nie jest tym samym co pojedynczy automatyczny odpowietrznik zamontowany w najwyższym punkcie.</p>
          </article>
        </div>

        <p>W nowej instalacji decyzję najlepiej powiązać z projektem hydraulicznym. W układzie istniejącym warto najpierw ustalić objawy, historię uzupełniania wody, rodzaj źródła, materiały oraz miejsce, w którym zanieczyszczenia lub powietrze realnie zagrażają urządzeniom.</p>
      </section>

      <section class="rk-sep-section" id="rk-sep-roznice">
        <h2>Separator, filtr i odpowietrznik — co jest czym?</h2>
        <p>Te nazwy bywają używane zamiennie, choć urządzenia pracują inaczej. To ważne, ponieważ zastosowanie jednego elementu nie zawsze załatwia wszystkie problemy eksploatacyjne.</p>

        <div class="rk-sep-table-wrap">
          <table class="rk-sep-table">
            <thead>
              <tr>
                <th>Element</th>
                <th>Główna funkcja</th>
                <th>Co trzeba sprawdzić</th>
                <th>Czego nie należy zakładać</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Element">Separator zanieczyszczeń</td>
                <td data-label="Główna funkcja">Oddzielanie cząstek i ich gromadzenie w komorze serwisowej.</td>
                <td data-label="Co sprawdzić">Kv, zakres przepływu, sposób czyszczenia, pozycję pracy i wielkość przyłączy.</td>
                <td data-label="Czego nie zakładać">Że każdy model usuwa taki sam procent cząstek przy każdym przepływie.</td>
              </tr>
              <tr>
                <td data-label="Element">Separator z wkładem magnetycznym</td>
                <td data-label="Główna funkcja">Dodatkowe wychwytywanie cząstek ferromagnetycznych.</td>
                <td data-label="Co sprawdzić">Dostęp do magnesu, procedurę czyszczenia i dane konkretnego modelu.</td>
                <td data-label="Czego nie zakładać">Że wartość indukcji pola sama opisuje skuteczność całego urządzenia.</td>
              </tr>
              <tr>
                <td data-label="Element">Separator powietrza</td>
                <td data-label="Główna funkcja">Wydzielanie mikropęcherzy z przepływającej wody.</td>
                <td data-label="Co sprawdzić">Temperaturę, ciśnienie, prędkość, położenie i wymagania producenta.</td>
                <td data-label="Czego nie zakładać">Że dowolne miejsce na rurociągu daje identyczny efekt.</td>
              </tr>
              <tr>
                <td data-label="Element">Filtr skośny lub siatkowy</td>
                <td data-label="Główna funkcja">Mechaniczne zatrzymywanie cząstek większych od oczek siatki.</td>
                <td data-label="Co sprawdzić">Rozmiar siatki, opór czysty i zabrudzony oraz dostęp do serwisu.</td>
                <td data-label="Czego nie zakładać">Że brak czyszczenia nie wpływa na przepływ i pracę pompy.</td>
              </tr>
              <tr>
                <td data-label="Element">Automatyczny odpowietrznik</td>
                <td data-label="Główna funkcja">Usuwanie zgromadzonego powietrza z punktu, w którym jest zamontowany.</td>
                <td data-label="Co sprawdzić">Położenie, możliwość odcięcia i szczelność elementu.</td>
                <td data-label="Czego nie zakładać">Że samodzielnie usunie mikropęcherze z całej instalacji.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-sep-note">
          <p><strong>Najpierw problem, później urządzenie.</strong> Głośna instalacja, spadające przepływy, zabrudzony wymiennik i czarny osad nie są jednym objawem. Każdy z nich wymaga diagnozy, a nie automatycznego dopisania kolejnego elementu do rurociągu.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-zanieczyszczenia">
        <h2>Jak działa separator zanieczyszczeń?</h2>
        <p>Separator tworzy wewnątrz korpusu warunki ułatwiające wytrącenie cząstek z głównego strumienia i ich opadanie do komory zbiorczej. W zależności od konstrukcji może wykorzystywać zmianę prędkości, kierunku przepływu, wkład koalescencyjny, siły odśrodkowe lub kombinację kilku zjawisk.</p>

        <h3>Skuteczność nie jest jedną stałą liczbą</h3>
        <p>Nie należy wpisywać do artykułu jednej uniwersalnej wartości, na przykład „99% zanieczyszczeń”. Wynik zależy między innymi od:</p>
        <ul class="rk-sep-list">
          <li>wielkości, gęstości i właściwości cząstek,</li>
          <li>prędkości wody oraz czasu kontaktu z elementem separującym,</li>
          <li>lepkości i gęstości medium, szczególnie przy dodatku glikolu,</li>
          <li>konstrukcji urządzenia, jego orientacji i stopnia zabrudzenia,</li>
          <li>liczby przejść wody przez separator podczas pracy instalacji.</li>
        </ul>

        <h3>Dlaczego komora osadowa ma znaczenie?</h3>
        <p>Cząstki powinny zostać odseparowane od głównego przepływu i zgromadzone w miejscu, z którego można je bezpiecznie usunąć. Samo zwiększenie objętości korpusu nie dowodzi jednak skuteczności. Liczy się pełna geometria przepływu, a nie liczba litrów obudowy.</p>

        <div class="rk-sep-success">
          <p><strong>Dobrze zaprojektowany punkt serwisowy</strong> pozwala opróżnić komorę, skontrolować osad i ponownie uruchomić instalację bez przypadkowego zalania wyposażenia kotłowni.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-magnes">
        <h2>Co daje magnes w separatorze zanieczyszczeń?</h2>
        <p>W układach zawierających elementy stalowe może powstawać magnetyt i inne produkty korozji o właściwościach ferromagnetycznych. Wkład magnetyczny pomaga zatrzymać takie cząstki, zanim dotrą do wąskich kanałów wymiennika, wirnika pompy, zaworów regulacyjnych lub rotametrów.</p>

        <div class="rk-sep-grid-2">
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Co magnes może przechwycić?</h3>
            <p>Przede wszystkim cząstki reagujące na pole magnetyczne. Efekt zależy nie tylko od samego magnesu, ale również od odległości cząstki od pola, prędkości przepływu i konstrukcji drogi wodnej.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-yellow">
            <h3>Czego magnes nie rozwiązuje?</h3>
            <p>Nie usuwa rozpuszczonych soli, gazów, kamienia już osadzonego na powierzchni ani wszystkich cząstek niemagnetycznych. Nie naprawia też przyczyny dopływu tlenu do instalacji.</p>
          </article>
        </div>

        <h3>Czy liczba gaussów wystarczy do porównania?</h3>
        <p>Nie. Sam parametr pola magnetycznego nie opisuje całej skuteczności. Do porównania dwóch urządzeń potrzebne są dane uzyskane w zbliżonych warunkach badania: przepływ, rozkład pola, geometria korpusu, charakterystyka cząstek oraz sposób pomiaru. Marketingowej wartości „minimum 12 000 G” nie należy traktować jako uniwersalnego progu projektowego.</p>
      </section>

      <section class="rk-sep-section" id="rk-sep-powietrze">
        <h2>Jak działa separator powietrza i mikropęcherzy?</h2>
        <p>Powietrze może występować jako kieszenie gazowe, mikropęcherze niesione przez wodę albo gazy rozpuszczone. Separator powietrza ma stworzyć warunki, w których małe pęcherzyki łączą się, unoszą i są usuwane przez odpowietrznik w korpusie.</p>

        <h3>Temperatura i ciśnienie zmieniają warunki separacji</h3>
        <p>Rozpuszczalność gazów w wodzie zależy od temperatury i ciśnienia. Dlatego miejsce skutecznego wydzielania mikropęcherzy często znajduje się w obszarze wyższej temperatury i niższego ciśnienia statycznego, ale końcową lokalizację trzeba sprawdzić na schemacie konkretnej instalacji.</p>

        <h3>Odpowietrznik na rozdzielaczu to nie to samo</h3>
        <p>Odpowietrznik rozdzielacza usuwa powietrze, które dotarło do jego punktu montażu. Nie musi skutecznie separować mikropęcherzy przepływających z dużą prędkością przez cały układ. Podczas pierwszego uruchomienia nadal konieczne jest napełnianie i płukanie każdej pętli osobno.</p>

        <div class="rk-sep-warning">
          <p><strong>Powtarzające się zapowietrzanie nie jest normalnym „zużyciem” powietrza.</strong> Trzeba sprawdzić ciśnienie napełnienia, naczynie przeponowe, szczelność, sposób uzupełniania wody, odpowietrzniki i możliwość zasysania powietrza w miejscach o zbyt niskim ciśnieniu.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-miejsce">
        <h2>Gdzie zamontować separator: na zasilaniu czy na powrocie?</h2>
        <p>Nie ma jednej odpowiedzi wspólnej dla każdego typu separatora. Lokalizacja wynika z funkcji urządzenia, rodzaju źródła, temperatury, ciśnienia, położenia pompy i naczynia przeponowego oraz zaleceń producenta konkretnego modelu.</p>

        <div class="rk-sep-grid-2">
          <article class="rk-sep-card rk-sep-card-accent">
            <span class="rk-sep-tag">Powietrze</span>
            <h3>Obszar sprzyjający wydzielaniu gazów</h3>
            <p>Separator mikropęcherzy często lokalizuje się tam, gdzie woda ma wyższą temperaturę, a warunki ciśnieniowe ułatwiają wydzielanie gazów. Nie wolno jednak ignorować ograniczeń urządzenia i układu pompowego.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <span class="rk-sep-tag">Zanieczyszczenia</span>
            <h3>Ochrona wrażliwego urządzenia</h3>
            <p>Separator osadów montuje się tak, aby przechwytywał zanieczyszczenia przed chronionym elementem i pozostawał dostępny do czyszczenia. Często jest to powrót przed źródłem, lecz nie jest to bezwarunkowa reguła.</p>
          </article>
        </div>

        <h3>Pompa i naczynie przeponowe też wpływają na decyzję</h3>
        <p>Pompa tworzy różnicę ciśnień, natomiast przyłączenie naczynia przeponowego wyznacza punkt odniesienia dla zmian ciśnienia w obiegu. Nieprawidłowa kolejność elementów może pogorszyć odpowietrzanie lub doprowadzić do niekorzystnie niskiego ciśnienia po stronie ssawnej pompy. Dlatego separatora nie należy „doklejać” do gotowego rysunku bez oceny całego schematu.</p>

        <p>Jeżeli układ ma kilka pomp, bufor albo <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a>, trzeba rozpatrzyć przepływ po każdej stronie rozdzielenia hydraulicznego. Separator zainstalowany w jednym obiegu nie chroni automatycznie wszystkich gałęzi w takim samym stopniu.</p>
      </section>

      <section class="rk-sep-section" id="rk-sep-dwa-w-jednym">
        <h2>Separator powietrza i zanieczyszczeń 2 w 1 — kiedy ma sens?</h2>
        <p>Urządzenie łączone może uprościć układ i ograniczyć liczbę połączeń, ale tylko wtedy, gdy jedno miejsce montażu jest dobre dla obu funkcji. Jeżeli najlepszy punkt usuwania powietrza i najlepszy punkt ochrony przed osadem wypadają w różnych częściach instalacji, dwa oddzielne urządzenia mogą być rozwiązaniem bardziej logicznym.</p>

        <div class="rk-sep-table-wrap">
          <table class="rk-sep-table">
            <thead>
              <tr>
                <th>Wariant</th>
                <th>Zaleta</th>
                <th>Ograniczenie</th>
                <th>Kiedy rozważyć</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Wariant">Oddzielny separator powietrza i osadów</td>
                <td data-label="Zaleta">Każdą funkcję można umieścić w korzystniejszym punkcie układu.</td>
                <td data-label="Ograniczenie">Więcej miejsca, połączeń i oporów do policzenia.</td>
                <td data-label="Kiedy rozważyć">Rozbudowane kotłownie, kilka obiegów, różne temperatury i wrażliwe źródło.</td>
              </tr>
              <tr>
                <td data-label="Wariant">Urządzenie 2 w 1</td>
                <td data-label="Zaleta">Kompaktowy montaż i jeden punkt obsługi.</td>
                <td data-label="Ograniczenie">Wspólna lokalizacja jest kompromisem dla dwóch funkcji.</td>
                <td data-label="Kiedy rozważyć">Prosty układ, w którym DTR i warunki hydrauliczne potwierdzają sens wspólnego miejsca.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <div class="rk-sep-note">
          <p><strong>„2 w 1” opisuje funkcje, nie wynik.</strong> Nadal trzeba sprawdzić charakterystykę hydrauliczną, dopuszczalną temperaturę i ciśnienie, orientację korpusu, wielkość przyłączy oraz procedurę czyszczenia.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-schematy">
        <h2>Schemat montażu separatora w trzech typowych układach</h2>
        <p class="rk-sep-lead">Poniższy schemat jest narzędziem edukacyjnym. Pokazuje logikę funkcji, lecz nie zastępuje dokumentacji konkretnego źródła ani projektu wykonawczego. Wybierz wariant, aby zobaczyć inną kolejność elementów.</p>

        <div class="rk-sep-schematic" data-rk-schematic>
          <div class="rk-sep-schematic-tabs" role="tablist" aria-label="Warianty schematu separatorów">
            <button type="button" class="rk-sep-schematic-tab" data-scheme="separate" role="tab" aria-selected="true">Oddzielne urządzenia</button>
            <button type="button" class="rk-sep-schematic-tab" data-scheme="combined" role="tab" aria-selected="false">Separator 2 w 1</button>
            <button type="button" class="rk-sep-schematic-tab" data-scheme="buffer" role="tab" aria-selected="false">Bufor i kilka obiegów</button>
          </div>
          <div class="rk-sep-schematic-body">
            <div class="rk-sep-flow" aria-live="polite">
              <div class="rk-sep-flow-node" data-node="one">Źródło ciepła</div>
              <div class="rk-sep-flow-arrow" aria-hidden="true">→</div>
              <div class="rk-sep-flow-node rk-sep-flow-node-main" data-node="two">Separator powietrza</div>
              <div class="rk-sep-flow-arrow" aria-hidden="true">→</div>
              <div class="rk-sep-flow-node" data-node="three">Obieg podłogówki</div>
              <div class="rk-sep-flow-arrow" aria-hidden="true">→</div>
              <div class="rk-sep-flow-node rk-sep-flow-node-main" data-node="four">Separator zanieczyszczeń</div>
              <div class="rk-sep-flow-arrow" aria-hidden="true">→</div>
              <div class="rk-sep-flow-node" data-node="five">Powrót do źródła</div>
            </div>
          </div>
          <p class="rk-sep-schematic-note" data-scheme-note>Osobne urządzenia pozwalają dobrać miejsce do funkcji. Kolejność pompy, naczynia przeponowego i zaworów trzeba ustalić na pełnym schemacie.</p>
        </div>

        <h3>Jak czytać te schematy?</h3>
        <p>Kolorowe pola oznaczają funkcję separacji, nie konkretny produkt. W rzeczywistym projekcie trzeba jeszcze umieścić pompy, zawory zwrotne, zawory odcinające, naczynie przeponowe, zabezpieczenia, układ napełniania i wszystkie wymagane czujniki.</p>
      </section>

      <section class="rk-sep-section" id="rk-sep-hydraulika">
        <h2>Przepływ, Kv i spadek ciśnienia separatora</h2>
        <p>Separator jest elementem szeregowym. Jego opór trzeba dodać do oporów rur, źródła, zaworów, rozdzielaczy, filtrów i pozostałej armatury leżącej na analizowanej drodze przepływu. Nie wolno oceniać go wyłącznie po średnicy przyłącza.</p>

        <h3>Przepływ z mocy i różnicy temperatur</h3>
        <div class="rk-sep-formula">
          <code>V̇ = Q / (1,163 × ΔT)</code>
          <span>V̇ — przepływ w m³/h, Q — moc w kW, ΔT — różnica temperatur w K; zależność orientacyjna dla wody.</span>
        </div>
        <p>Jeżeli przepływ został już obliczony w projekcie, należy użyć wartości projektowej zamiast ponownie wyznaczać go z przybliżenia. Pomocne może być też opracowanie o <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">doborze pompy obiegowej do podłogówki</a>.</p>

        <h3>Spadek ciśnienia z Kv</h3>
        <div class="rk-sep-formula">
          <code>Δp = (V̇ / Kv)² × 100 kPa</code>
          <span>Zależność dla wody przy standardowej definicji Kv; wartości przepływu i Kv w m³/h.</span>
        </div>
        <p>Kv nie jest „maksymalnym przepływem”. Informuje o zależności przepływu i spadku ciśnienia w określonych warunkach. Im mniejsze Kv przy tym samym przepływie, tym większy opór urządzenia.</p>

        <h3>Dwa elementy zamontowane szeregowo</h3>
        <p>Spadki ciśnienia urządzeń w tej samej drodze przepływu sumują się. Dlatego zastosowanie separatora powietrza, separatora zanieczyszczeń i filtra wymaga policzenia każdego elementu przy tym samym przepływie. W analizie instalacji z glikolem potrzebna jest korekta wynikająca z właściwości medium i danych producenta.</p>

        <div class="rk-sep-warning">
          <p><strong>Nie dodawaj automatycznie 15% „zapasu pompy”.</strong> Najpierw oblicz obieg krytyczny i wymagany punkt pracy. Nadmierny zapas może skutkować hałasem, niepotrzebnym zużyciem energii i trudniejszą regulacją.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-analizator">
        <h2>Analizator Kv i spadku ciśnienia separatora</h2>
        <p class="rk-sep-lead">Narzędzie porównuje dwa elementy zamontowane szeregowo albo oblicza pojedynczy separator. Nie wybiera marki ani modelu. Wpisz dane z projektu i dokumentacji technicznej kandydatów.</p>

        <div class="rk-sep-tool" data-rk-tool>
          <header class="rk-sep-tool-head">
            <span class="rk-sep-tag">Interaktywne narzędzie</span>
            <h3>Sprawdź punkt przepływu, opór armatury i wymaganą wartość Kv</h3>
            <p>Możesz wpisać znany przepływ projektowy albo wyznaczyć przepływ orientacyjnie z mocy i różnicy temperatur. Wykres pokazuje, jak opór rośnie wraz z przepływem.</p>
          </header>

          <div class="rk-sep-tool-body">
            <section class="rk-sep-tool-step" aria-labelledby="rk-sep-tool-step-1">
              <h4 class="rk-sep-tool-title" id="rk-sep-tool-step-1"><span class="rk-sep-tool-number">1</span>Przepływ projektowy instalacji</h4>
              <p class="rk-sep-tool-copy">Jeżeli masz projekt, wybierz znany przepływ. Tryb mocy i ΔT jest przybliżeniem dla wody.</p>
              <div class="rk-sep-fields">
                <div class="rk-sep-field rk-sep-field-wide">
                  <label for="rk-sep-flow-mode">Sposób określenia przepływu</label>
                  <select id="rk-sep-flow-mode">
                    <option value="power">Z mocy i różnicy temperatur</option>
                    <option value="known">Znany przepływ projektowy</option>
                  </select>
                </div>
                <div class="rk-sep-field" data-power-field>
                  <label for="rk-sep-power">Moc instalacji Q [kW]</label>
                  <input id="rk-sep-power" type="number" min="0.5" max="500" step="0.1" value="12">
                  <small>Moc przenoszona przez analizowaną drogę.</small>
                </div>
                <div class="rk-sep-field" data-power-field>
                  <label for="rk-sep-delta">Projektowa różnica ΔT [K]</label>
                  <input id="rk-sep-delta" type="number" min="1" max="30" step="0.5" value="5">
                  <small>Nie wpisuj temperatury zasilania.</small>
                </div>
                <div class="rk-sep-field rk-sep-field-wide" data-known-field hidden>
                  <label for="rk-sep-known-flow">Znany przepływ V̇ [m³/h]</label>
                  <input id="rk-sep-known-flow" type="number" min="0.05" max="100" step="0.01" value="2.06">
                  <small>Wartość projektowa dla drogi, w której znajduje się separator.</small>
                </div>
              </div>
            </section>

            <section class="rk-sep-tool-step" aria-labelledby="rk-sep-tool-step-2">
              <h4 class="rk-sep-tool-title" id="rk-sep-tool-step-2"><span class="rk-sep-tool-number">2</span>Parametry separatora i drogi przepływu</h4>
              <p class="rk-sep-tool-copy">Kv przepisz z dokumentacji konkretnego urządzenia. Sama wartość DN nie wystarczy do obliczenia oporu.</p>
              <div class="rk-sep-fields">
                <div class="rk-sep-field">
                  <label for="rk-sep-kv-one">Kv urządzenia 1 [m³/h]</label>
                  <input id="rk-sep-kv-one" type="number" min="0.1" max="500" step="0.1" value="6.3">
                  <small>Na przykład separator zanieczyszczeń.</small>
                </div>
                <div class="rk-sep-field" data-second-field>
                  <label for="rk-sep-kv-two">Kv urządzenia 2 [m³/h]</label>
                  <input id="rk-sep-kv-two" type="number" min="0.1" max="500" step="0.1" value="9">
                  <small>Na przykład oddzielny separator powietrza.</small>
                </div>
                <div class="rk-sep-field">
                  <label for="rk-sep-inner-diameter">Średnica wewnętrzna rury [mm]</label>
                  <input id="rk-sep-inner-diameter" type="number" min="5" max="300" step="0.1" value="26">
                  <small>Służy do orientacyjnej kontroli prędkości.</small>
                </div>
                <div class="rk-sep-field">
                  <label for="rk-sep-budget">Przyjęty budżet oporu [kPa]</label>
                  <input id="rk-sep-budget" type="number" min="0.5" max="500" step="0.5" value="15">
                  <small>Wartość użytkownika, nie automatyczna norma.</small>
                </div>
              </div>
              <div class="rk-sep-toggle-line">
                <input id="rk-sep-use-second" type="checkbox" checked>
                <label for="rk-sep-use-second">Uwzględnij drugie urządzenie zamontowane szeregowo</label>
              </div>
            </section>

            <section class="rk-sep-tool-step" aria-labelledby="rk-sep-tool-step-3">
              <h4 class="rk-sep-tool-title" id="rk-sep-tool-step-3"><span class="rk-sep-tool-number">3</span>Wynik dla wpisanych danych</h4>
              <div class="rk-sep-results" aria-live="polite">
                <div class="rk-sep-result">
                  <span>Przepływ</span>
                  <strong id="rk-sep-result-flow">2,06 m³/h</strong>
                  <small id="rk-sep-result-flow-min">34,4 l/min</small>
                </div>
                <div class="rk-sep-result">
                  <span>Opór urządzenia 1</span>
                  <strong id="rk-sep-result-one">10,7 kPa</strong>
                  <small>z wpisanej wartości Kv</small>
                </div>
                <div class="rk-sep-result">
                  <span>Opór urządzenia 2</span>
                  <strong id="rk-sep-result-two">5,2 kPa</strong>
                  <small id="rk-sep-result-two-note">element uwzględniony</small>
                </div>
                <div class="rk-sep-result">
                  <span>Suma oporów</span>
                  <strong id="rk-sep-result-total">15,9 kPa</strong>
                  <small>elementy zamontowane szeregowo</small>
                </div>
                <div class="rk-sep-result">
                  <span>Wykorzystanie budżetu</span>
                  <strong id="rk-sep-result-share">106%</strong>
                  <small>wartości wpisanej przez użytkownika</small>
                </div>
                <div class="rk-sep-result">
                  <span>Prędkość w rurze</span>
                  <strong id="rk-sep-result-speed">1,08 m/s</strong>
                  <small>dla podanej średnicy wewnętrznej</small>
                </div>
                <div class="rk-sep-result">
                  <span>Równoważne Kv układu</span>
                  <strong id="rk-sep-result-equivalent">5,15 m³/h</strong>
                  <small>dla urządzeń połączonych szeregowo</small>
                </div>
                <div class="rk-sep-result">
                  <span>Wymagane Kv równoważne</span>
                  <strong id="rk-sep-result-required">5,32 m³/h</strong>
                  <small>aby nie przekroczyć wpisanego budżetu</small>
                </div>
              </div>
              <div class="rk-sep-status" id="rk-sep-status" data-state="bad">
                <strong id="rk-sep-status-title">Przyjęty budżet został przekroczony</strong>
                <span id="rk-sep-status-copy">Zmień urządzenie, układ lub budżet dopiero po sprawdzeniu całej drogi krytycznej. Wynik nie oznacza automatycznie, że pompa jest za mała.</span>
              </div>
            </section>

            <section class="rk-sep-tool-step" aria-labelledby="rk-sep-tool-step-4">
              <h4 class="rk-sep-tool-title" id="rk-sep-tool-step-4"><span class="rk-sep-tool-number">4</span>Krzywa oporu i punkt projektowy</h4>
              <div class="rk-sep-chart-panel">
                <h4>Spadek ciśnienia rośnie z kwadratem przepływu</h4>
                <p>Linia budżetu jest wartością wpisaną przez użytkownika, a nie uniwersalnym limitem projektowym.</p>
                <svg class="rk-sep-chart" id="rk-sep-chart" viewBox="0 0 900 430" role="img" aria-labelledby="rk-sep-chart-title rk-sep-chart-desc">
                  <title id="rk-sep-chart-title">Wykres spadku ciśnienia separatorów</title>
                  <desc id="rk-sep-chart-desc">Krzywe oporu urządzenia pierwszego, drugiego i sumy w zależności od przepływu wraz z punktem projektowym i budżetem ciśnienia.</desc>
                  <g id="rk-sep-chart-grid"></g>
                  <g id="rk-sep-chart-labels"></g>
                  <path id="rk-sep-chart-one" fill="none" stroke="#29c4da" stroke-width="4"></path>
                  <path id="rk-sep-chart-two" fill="none" stroke="#f3b51b" stroke-width="4"></path>
                  <path id="rk-sep-chart-total-line" fill="none" stroke="#ff6846" stroke-width="5"></path>
                  <line id="rk-sep-chart-budget" stroke="#dbeaf0" stroke-width="2" stroke-dasharray="8 7"></line>
                  <line id="rk-sep-chart-point-x" stroke="#91adba" stroke-width="1.5" stroke-dasharray="5 6"></line>
                  <circle id="rk-sep-chart-point" r="7" fill="#ffffff" stroke="#ff6846" stroke-width="4"></circle>
                  <text id="rk-sep-chart-point-label" font-weight="900"></text>
                </svg>
                <div class="rk-sep-chart-legend" aria-hidden="true">
                  <span><i style="background:#29c4da"></i>urządzenie 1</span>
                  <span><i style="background:#f3b51b"></i>urządzenie 2</span>
                  <span><i style="background:#ff6846"></i>suma oporów</span>
                  <span><i style="height:2px;background:#dbeaf0"></i>wpisany budżet</span>
                </div>
              </div>
            </section>
          </div>

          <p class="rk-sep-tool-foot">Model używa zależności Kv dla wody. Nie uwzględnia korekty lepkości glikolu, zabrudzenia siatki, oporów przyłączy ani charakterystyki całej instalacji. Dane liczbowe urządzeń są przykładem demonstracyjnym — wpisz wartości z dokumentacji analizowanych modeli.</p>
        </div>

        <aside class="rk-sep-cta">
          <div>
            <h3>Wynik separatora to dopiero fragment drogi krytycznej</h3>
            <p><strong>Analizator policzył opór separatora dla jednego przepływu, ale nie zna układu obiegów, położenia pompy i naczynia przeponowego, minimalnego przepływu źródła, oporów wymiennika, bufora, zaworów, filtrów, rozdzielaczy ani najbardziej wymagającej pętli.</strong> Jeżeli chcesz otrzymać kompletny schemat kotłowni oraz obliczenia hydrauliczne obejmujące armaturę ochronną, separator musi zostać sprawdzony jako element całej drogi przepływu.</p>
          </div>
          <a class="rk-sep-button rk-sep-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z policzonymi oporami armatury</a>
        </aside>
      </section>

      <section class="rk-sep-section" id="rk-sep-filtr">
        <h2>Filtr skośny czy separator magnetyczny?</h2>
        <p>To nie zawsze są zamienniki. Filtr siatkowy zatrzymuje cząstki większe od oczek i może chronić konkretny element przed większymi zanieczyszczeniami. Separator ma umożliwiać ciągłe wydzielanie i gromadzenie cząstek przy możliwie małym wpływie na przepływ. Wkład magnetyczny rozszerza ochronę o zanieczyszczenia ferromagnetyczne.</p>

        <div class="rk-sep-table-wrap">
          <table class="rk-sep-table">
            <thead>
              <tr>
                <th>Kryterium</th>
                <th>Filtr skośny / siatkowy</th>
                <th>Separator zanieczyszczeń z magnesem</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td data-label="Kryterium">Mechanizm</td>
                <td data-label="Filtr skośny">Zatrzymanie na oczkach siatki.</td>
                <td data-label="Separator magnetyczny">Separacja w korpusie i dodatkowe działanie pola magnetycznego.</td>
              </tr>
              <tr>
                <td data-label="Kryterium">Zmiana oporu</td>
                <td data-label="Filtr skośny">Może wyraźnie rosnąć wraz z zabrudzeniem siatki.</td>
                <td data-label="Separator magnetyczny">Zależy od konstrukcji i nagromadzenia osadu; wymaga danych urządzenia.</td>
              </tr>
              <tr>
                <td data-label="Kryterium">Serwis</td>
                <td data-label="Filtr skośny">Wyjęcie i oczyszczenie siatki po bezpiecznym odcięciu.</td>
                <td data-label="Separator magnetyczny">Usunięcie magnesu zgodnie z procedurą i zrzut osadu z komory.</td>
              </tr>
              <tr>
                <td data-label="Kryterium">Zastosowanie razem</td>
                <td data-label="Filtr skośny">Możliwy, gdy wymaga tego chronione urządzenie lub dokumentacja.</td>
                <td data-label="Separator magnetyczny">Nie zwalnia z policzenia sumarycznego oporu obu elementów.</td>
              </tr>
            </tbody>
          </table>
        </div>

        <p>Ostateczny wybór powinien wynikać z wymagań źródła i elementów chronionych. Jeżeli producent urządzenia wymaga konkretnego filtra, nie należy usuwać go tylko dlatego, że w instalacji znajduje się separator.</p>
      </section>

      <section class="rk-sep-section" id="rk-sep-zrodla">
        <h2>Separator przy pompie ciepła, kotle i układzie mieszanym</h2>
        <p>Rodzaj źródła wpływa na wymagania dotyczące minimalnego przepływu, oporu wymiennika, dopuszczalnych zanieczyszczeń i układu hydraulicznego. Nie oznacza to jednak, że jedna etykieta źródła automatycznie wyznacza średnicę separatora.</p>

        <div class="rk-sep-grid-3">
          <article class="rk-sep-card rk-sep-card-accent">
            <h3>Pompa ciepła</h3>
            <p>Trzeba chronić wymiennik i zapewnić przepływ wymagany przez urządzenie. Spadek ciśnienia separatora należy włączyć do obliczeń drogi, przez którą rzeczywiście tłoczy pompa.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Kocioł</h3>
            <p>Znaczenie mają materiały wymiennika, wymagania producenta, minimalny przepływ oraz lokalizacja separatora względem pompy i powrotu. Sam typ paliwa nie określa Kv.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-green">
            <h3>Bufor lub kilka obiegów</h3>
            <p>Po obu stronach bufora mogą występować inne przepływy. Urządzenie dobiera się do gałęzi, w której pracuje, a nie do sumy wszystkich przepływów bez sprawdzenia schematu.</p>
          </article>
        </div>

        <h3>Co z instalacją mieszaną?</h3>
        <p>Grzejniki, ogrzewanie podłogowe, obieg ładowania zasobnika i sprzęgło mogą tworzyć różne drogi przepływu. Trzeba ustalić, które urządzenia pracują jednocześnie oraz jaki przepływ przechodzi przez separator w każdym stanie. Pomocny jest również właściwy <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">dobór średnicy rury zasilającej rozdzielacz</a>.</p>
      </section>

      <section class="rk-sep-section" id="rk-sep-woda">
        <h2>Jakość wody, tlen i korozja — separator nie zastępuje uzdatnienia</h2>
        <p>Separator usuwa część zanieczyszczeń krążących w wodzie, lecz nie reguluje jej przewodności, twardości, odczynu ani zawartości rozpuszczonych substancji. Nie zatrzymuje także korozji, jeżeli do instalacji stale dostaje się tlen lub jest ona często uzupełniana wodą.</p>

        <h3>Co trzeba ustalić przed napełnieniem?</h3>
        <ul class="rk-sep-list">
          <li>wymagania producentów źródła, wymienników i pozostałych urządzeń,</li>
          <li>materiały całej instalacji i możliwość ich wzajemnego oddziaływania,</li>
          <li>parametry wody napełniającej oraz potrzebę jej uzdatnienia,</li>
          <li>czy inhibitor jest potrzebny i czy jest zgodny z użytymi materiałami,</li>
          <li>jak zostanie wykonane płukanie, odpowietrzenie i protokół uruchomienia.</li>
        </ul>

        <p>Więcej na ten temat opisują artykuły <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/">czym napełnić ogrzewanie podłogowe</a> oraz <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/">woda demineralizowana z inhibitorem korozji</a>.</p>

        <div class="rk-sep-warning">
          <p><strong>Czarny osad jest informacją diagnostyczną.</strong> Opróżnienie separatora usuwa skutek krążenia zanieczyszczeń, ale nie zawsze jego przyczynę. Jeżeli ilość osadu szybko narasta, trzeba sprawdzić szczelność, dopływ tlenu, ciśnienie i skład medium.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-montaz">
        <h2>Montaż separatora: kierunek, pozycja i dostęp serwisowy</h2>
        <p>Przed montażem trzeba przeczytać dokumentację konkretnego urządzenia. Różne konstrukcje mogą wymagać innej pozycji korpusu, kierunku przepływu, minimalnej przestrzeni do wyjęcia magnesu lub wkładu oraz określonego sposobu prowadzenia zrzutu.</p>

        <div class="rk-sep-grid-2">
          <article class="rk-sep-card rk-sep-card-accent">
            <h3>Hydraulika i orientacja</h3>
            <ul class="rk-sep-list">
              <li>sprawdź strzałkę kierunku przepływu,</li>
              <li>zachowaj dopuszczalną pozycję pracy,</li>
              <li>nie redukuj bez obliczeń średnicy drogi przepływu,</li>
              <li>uwzględnij masę urządzenia i podparcie rurociągu.</li>
            </ul>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-green">
            <h3>Obsługa i bezpieczeństwo</h3>
            <ul class="rk-sep-list">
              <li>zapewnij miejsce na odcięcie i czyszczenie,</li>
              <li>poprowadź zrzut tak, aby nie zalać automatyki,</li>
              <li>umożliw kontrolę szczelności po serwisie,</li>
              <li>oznacz element w dokumentacji powykonawczej.</li>
            </ul>
          </article>
        </div>

        <h3>Zawory odcinające nie mogą tworzyć pułapki</h3>
        <p>Odcięcie ułatwia serwis, ale zamknięty odcinek z gorącą wodą nie może zostać pozbawiony właściwego zabezpieczenia. Rozmieszczenie zaworów trzeba ocenić na pełnym schemacie, szczególnie gdy w pobliżu znajduje się źródło, naczynie przeponowe albo zawór bezpieczeństwa.</p>
      </section>

      <section class="rk-sep-section" id="rk-sep-czyszczenie">
        <h2>Jak czyścić separator zanieczyszczeń?</h2>
        <p>Nie ma jednego harmonogramu wspólnego dla wszystkich instalacji. Częstotliwość zależy od stanu układu, materiałów, jakości płukania, historii uzupełniania wody i ilości osadu zbieranego podczas poprzednich kontroli.</p>

        <h3>Bezpieczna kolejność ogólna</h3>
        <ol class="rk-sep-checklist">
          <li>Sprawdź instrukcję urządzenia i temperaturę medium.</li>
          <li>Zatrzymaj źródło oraz pompę zgodnie z procedurą instalacji.</li>
          <li>Odczekaj, odetnij urządzenie, jeżeli układ to przewiduje, i zabezpiecz miejsce zrzutu.</li>
          <li>Usuń wkład magnetyczny przed otwarciem zrzutu, jeżeli wymaga tego konstrukcja.</li>
          <li>Opróżnij komorę, oceń ilość i rodzaj osadu, a następnie zamknij urządzenie.</li>
          <li>Przywróć położenie zaworów, uzupełnij ciśnienie tylko gdy jest to konieczne i sprawdź szczelność.</li>
          <li>Uruchom instalację, skontroluj przepływy i zapisz wynik serwisu.</li>
        </ol>

        <p>To opis ogólny. Konkretna kolejność musi odpowiadać instrukcji urządzenia i organizacji całej kotłowni. Szerszy harmonogram opisuje artykuł <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często serwisować ogrzewanie podłogowe</a>.</p>

        <div class="rk-sep-note">
          <p><strong>Nie uzupełniaj rutynowo dużej ilości świeżej wody po każdym czyszczeniu.</strong> Częste dolewanie może wnosić kolejne porcje tlenu i składników mineralnych. Jeżeli ciśnienie regularnie spada, znajdź przyczynę.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-bledy">
        <h2>Najczęstsze błędy przy doborze i montażu separatora</h2>
        <div class="rk-sep-grid-2">
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Dobór „po calach”</h3>
            <p>Przyłącze pasuje do rury, ale Kv konkretnego urządzenia okazuje się zbyt małe dla projektowego przepływu.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Jedna reguła montażowa</h3>
            <p>Stwierdzenie „zawsze na powrocie” albo „zawsze na zasilaniu” zastępuje analizę funkcji i pełnego schematu.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Brak sumowania oporów</h3>
            <p>Filtr, separator powietrza i separator zanieczyszczeń są oceniane osobno, choć pracują szeregowo w tej samej drodze.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Brak miejsca na czyszczenie</h3>
            <p>Korpus zostaje zabudowany tak ciasno, że nie da się wyjąć magnesu, otworzyć spustu ani podstawić pojemnika.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Separator zamiast płukania</h3>
            <p>Nowa instalacja nie zostaje prawidłowo wypłukana, bo założono, że urządzenie wychwyci wszystkie pozostałości montażowe.</p>
          </article>
          <article class="rk-sep-card rk-sep-card-accent rk-sep-card-orange">
            <h3>Ignorowanie przyczyny korozji</h3>
            <p>Osad jest regularnie usuwany, ale nikt nie sprawdza dopływu tlenu, ciśnienia, naczynia ani jakości medium.</p>
          </article>
        </div>

        <div class="rk-sep-warning">
          <p><strong>Najdroższy błąd to fałszywe poczucie ochrony.</strong> Separator jest elementem strategii utrzymania jakości wody i hydrauliki, a nie zamiennikiem projektu, uruchomienia i serwisu.</p>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-checklista">
        <h2>Checklista przed zakupem separatora</h2>
        <p>Przed zamówieniem konkretnego modelu przejdź przez poniższe punkty. Jeżeli którejś wartości brakuje, nie zastępuj jej powierzchnią domu ani średnicą gwintu.</p>

        <ol class="rk-sep-checklist">
          <li>Określ, czy celem jest usuwanie zanieczyszczeń, cząstek magnetycznych, powietrza czy połączenie funkcji.</li>
          <li>Wyznacz projektowy przepływ w dokładnie tej gałęzi, w której urządzenie ma pracować.</li>
          <li>Sprawdź Kv, zakres przepływu, dopuszczalne ciśnienie i temperaturę konkretnego modelu.</li>
          <li>Policz spadek ciśnienia separatora oraz pozostałych elementów połączonych szeregowo.</li>
          <li>Zweryfikuj medium i korektę dla glikolu, jeżeli instalacja nie pracuje na samej wodzie.</li>
          <li>Ustal miejsce względem źródła, pompy, naczynia przeponowego, bufora i chronionych urządzeń.</li>
          <li>Sprawdź kierunek przepływu, dopuszczalną orientację i przestrzeń serwisową z DTR.</li>
          <li>Zaplanuj zawory odcinające, bezpieczny zrzut osadu i dostęp do magnesu lub wkładu.</li>
          <li>Wpisz urządzenie, Kv i procedurę obsługi do dokumentacji powykonawczej.</li>
          <li>Po uruchomieniu zapisz przepływy, ciśnienia i stan osadu jako punkt odniesienia dla serwisu.</li>
        </ol>
      </section>

      <section class="rk-sep-section" id="rk-sep-faq">
        <h2>FAQ — separator zanieczyszczeń i powietrza</h2>
        <div class="rk-sep-faq">
          <details>
            <summary>Czy separator zanieczyszczeń jest potrzebny w ogrzewaniu podłogowym?</summary>
            <div class="rk-sep-faq-answer">
              <p>Często jest uzasadniony, szczególnie gdy instalacja zawiera elementy stalowe lub wrażliwy wymiennik. Decyzja powinna wynikać z materiałów, wymagań źródła, jakości wody i planu serwisowego, a nie tylko z metrażu budynku.</p>
            </div>
          </details>
          <details>
            <summary>Gdzie zamontować separator zanieczyszczeń — na zasilaniu czy powrocie?</summary>
            <div class="rk-sep-faq-answer">
              <p>Często montuje się go na powrocie przed chronionym źródłem, ale nie jest to reguła bez wyjątków. Trzeba uwzględnić schemat, położenie pompy i naczynia, kierunek przepływu, temperaturę oraz dokumentację urządzenia.</p>
            </div>
          </details>
          <details>
            <summary>Gdzie zamontować separator powietrza?</summary>
            <div class="rk-sep-faq-answer">
              <p>W punkcie sprzyjającym wydzielaniu mikropęcherzy i zgodnym z DTR. Często jest to odcinek o wyższej temperaturze, lecz ostateczna lokalizacja zależy także od ciśnienia statycznego i układu pompowego.</p>
            </div>
          </details>
          <details>
            <summary>Czy separator 2 w 1 jest lepszy od dwóch urządzeń?</summary>
            <div class="rk-sep-faq-answer">
              <p>Nie zawsze. Jest kompaktowy, ale wymaga jednego wspólnego miejsca dobrego dla separacji powietrza i zanieczyszczeń. W rozbudowanym układzie oddzielne urządzenia mogą lepiej realizować każdą funkcję.</p>
            </div>
          </details>
          <details>
            <summary>Czy DN25 wystarczy do domu 150 m²?</summary>
            <div class="rk-sep-faq-answer">
              <p>Nie można tego ustalić z powierzchni domu. Potrzebny jest przepływ projektowy oraz Kv wybranego urządzenia. Dwa separatory DN25 mogą generować różne spadki ciśnienia.</p>
            </div>
          </details>
          <details>
            <summary>Czy separator magnetyczny zastępuje filtr skośny?</summary>
            <div class="rk-sep-faq-answer">
              <p>Nie zawsze. Urządzenia mają inne mechanizmy pracy. Jeżeli dokumentacja źródła wymaga filtra siatkowego, obecność separatora magnetycznego nie usuwa automatycznie tego wymagania.</p>
            </div>
          </details>
          <details>
            <summary>Jak często czyścić separator zanieczyszczeń?</summary>
            <div class="rk-sep-faq-answer">
              <p>Zgodnie z instrukcją i obserwacją instalacji. Po uruchomieniu kontrole mogą być częstsze, a później harmonogram ustala się na podstawie ilości osadu, zmian przepływu i historii układu.</p>
            </div>
          </details>
          <details>
            <summary>Czy separator rozwiąże problem zapowietrzania instalacji?</summary>
            <div class="rk-sep-faq-answer">
              <p>Może pomóc usuwać mikropęcherze, ale nie naprawi nieszczelności, błędnego ciśnienia, niewłaściwego naczynia przeponowego ani zasysania powietrza. Powtarzający się problem wymaga diagnozy przyczyny.</p>
            </div>
          </details>
          <details>
            <summary>Jak policzyć spadek ciśnienia na separatorze?</summary>
            <div class="rk-sep-faq-answer">
              <p>Dla wody można orientacyjnie użyć zależności Δp = (V̇/Kv)² × 100 kPa, gdy przepływ i Kv są podane w m³/h. Wynik trzeba dodać do oporów pozostałych elementów tej samej drogi.</p>
            </div>
          </details>
        </div>
      </section>

      <section class="rk-sep-section" id="rk-sep-opracowanie">
        <h2>Źródła i zakres techniczny opracowania</h2>
        <p>Artykuł rozdziela wymagania projektowe instalacji, procedury uruchomienia i zagadnienia jakości wody. Przywołane dokumenty nie narzucają jednego uniwersalnego miejsca dla każdego separatora ani marketingowej minimalnej wartości pola magnetycznego.</p>

        <ul class="rk-sep-sources">
          <li><a href="https://knowledge.bsigroup.com/products/heating-systems-in-buildings-design-for-water-based-heating-systems" target="_blank" rel="nofollow noopener noreferrer">BS EN 12828 — Heating systems in buildings. Design for water-based heating systems</a> — zasady projektowania wodnych instalacji grzewczych.</li>
          <li><a href="https://knowledge.bsigroup.com/products/heating-systems-in-buildings-installation-and-commissioning-of-water-based-heating-and-cooling-systems" target="_blank" rel="nofollow noopener noreferrer">BS EN 14336:2025 — Installation and commissioning of water-based heating and cooling systems</a> — montaż, kontrole i uruchomienie instalacji.</li>
          <li><a href="https://www.vdi.de/en/home/vdi-standards/details/vdi-2035-blatt-1-prevention-of-damage-in-water-heating-installations-scale-formation-and-waterside-corrosion" target="_blank" rel="nofollow noopener noreferrer">VDI 2035 Blatt 1 — Prevention of damage in water heating installations</a> — ograniczanie szkód związanych z kamieniem i korozją po stronie wodnej.</li>
          <li><a href="https://knowledge.bsigroup.com/products/code-of-practice-for-the-preparation-commissioning-and-maintenance-of-domestic-central-heating-and-cooling-water-systems-1" target="_blank" rel="nofollow noopener noreferrer">BS 7593:2019+A1:2024 — Preparation, commissioning and maintenance of domestic systems</a> — przygotowanie, uruchomienie i utrzymanie wodnych instalacji domowych.</li>
          <li><a href="https://knowledge.bsigroup.com/products/protection-of-metallic-materials-against-corrosion-guidance-on-the-assessment-of-corrosion-likelihood-in-closed-water-circulation-systems" target="_blank" rel="nofollow noopener noreferrer">BS EN 14868 — Assessment of corrosion likelihood in closed water circulation systems</a> — ocena ryzyka korozji w zamkniętych obiegach wodnych.</li>
        </ul>

        <div class="rk-sep-note">
          <p><strong>Zakres narzędzia:</strong> obliczenia mają charakter edukacyjny i wykorzystują model wody. Wartości Kv, dopuszczalne parametry, krzywe oporu oraz instrukcje montażu należy każdorazowo sprawdzić w aktualnej dokumentacji wybranego urządzenia.</p>
        </div>
      </section>
    </main>

    <section class="rk-sep-author" id="rk-sep-author" aria-label="Autor opracowania">
      <input type="radio" name="rk-sep-author-tabs" id="rk-sep-author-about" checked>
      <input type="radio" name="rk-sep-author-tabs" id="rk-sep-author-exp">
      <input type="radio" name="rk-sep-author-tabs" id="rk-sep-author-sites">

      <header class="rk-sep-author-head">
        <div>
          <span>Autor i weryfikacja merytoryczna</span>
          <h2>Robert Kucharski</h2>
        </div>
        <span class="rk-sep-author-mark">HYDRAULIKA • HVAC</span>
      </header>

      <div class="rk-sep-author-layout">
        <aside class="rk-sep-author-side">
          <div class="rk-sep-author-photo">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="170" height="170" loading="lazy">
          </div>
          <div class="rk-sep-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <div class="rk-sep-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-sep-author-social-label">Profile autora</div>
          <div class="rk-sep-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zM3 9h4v12H3V9zm6.5 0h3.83v1.64h.05c.53-1.01 1.84-2.08 3.79-2.08C21.22 8.56 22 11.23 22 14.7V21h-4v-5.58c0-1.33-.03-3.04-1.85-3.04-1.85 0-2.14 1.45-2.14 2.94V21h-4V9z"/></svg>
            </a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Facebook Projekt Ogrzewania">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14 8h3V4.5c-.52-.07-2.3-.22-4.42-.22C8.16 4.28 7 6.94 7 10.29V13H4v4h3v7h4v-7h3.14l.5-4H11v-2.32C11 9.52 11.31 8 14 8z"/></svg>
            </a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Profil Projekt HVAC w serwisie X">
              <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.77 7.74L23.2 22h-6.24l-4.89-6.39L6.48 22H3.36l7.26-8.3L2.98 2h6.4l4.42 5.84L18.9 2zm-1.1 17.84h1.72L8.44 4.05H6.6L17.8 19.84z"/></svg>
            </a>
          </div>
        </aside>

        <div class="rk-sep-author-main">
          <blockquote class="rk-sep-author-quote">
            <p>Separator dobiera się jako element konkretnej drogi hydraulicznej. Gwint, metraż domu i hasło „magnetyczny” nie zastępują przepływu, Kv, schematu ani planu serwisowego.</p>
          </blockquote>

          <div class="rk-sep-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-sep-author-tab" for="rk-sep-author-about" role="tab">O autorze</label>
            <label class="rk-sep-author-tab" for="rk-sep-author-exp" role="tab">Doświadczenie</label>
            <label class="rk-sep-author-tab" for="rk-sep-author-sites" role="tab">Portale</label>
          </div>

          <div class="rk-sep-author-panel rk-sep-author-panel-about">
            <p><strong>Robert Kucharski</strong> opracowuje projekty instalacji sanitarnych, obliczenia cieplne i hydrauliczne oraz dokumentację ogrzewania podłogowego dla domów jednorodzinnych i modernizowanych budynków. W materiałach edukacyjnych łączy zależności obliczeniowe z praktycznymi konsekwencjami doboru rur, pomp, armatury, rozdzielaczy i źródeł ciepła.</p>
            <p>Jako autor Projekt-Ogrzewania.pl wyjaśnia inwestorom i wykonawcom, które dane są potrzebne do decyzji, czego nie można wywnioskować z samego metrażu oraz gdzie kończy się zakres uproszczonego kalkulatora.</p>
          </div>

          <div class="rk-sep-author-panel rk-sep-author-panel-exp">
            <p>Specjalizuje się w ogrzewaniu płaszczyznowym, bilansach cieplnych pomieszczeń, planowaniu pętli, obliczeniach strat ciśnienia, doborze pomp obiegowych, armatury regulacyjnej i układów źródłowych. Analizuje także problemy eksploatacyjne: nierówne przepływy, zapowietrzanie, zanieczyszczenia, błędy ciśnienia i nieprawidłowe uruchomienie instalacji.</p>
            <p>Każde narzędzie publikowane na blogu jest opisywane wraz z założeniami i ograniczeniami, aby wynik orientacyjny nie był przedstawiany jako gotowy projekt wykonawczy.</p>
          </div>

          <div class="rk-sep-author-panel rk-sep-author-panel-sites">
            <p>Robert Kucharski jest twórcą i właścicielem serwisów <strong>Projekt-Ogrzewania.pl</strong>, <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> oraz <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. Publikuje w nich techniczne poradniki dotyczące instalacji, budowy, remontów i energooszczędnych rozwiązań dla budynków.</p>
            <p>Archiwum opracowań na tym portalu znajduje się na <a href="https://projekt-ogrzewania.pl/author/admin3399/">stronie autora Roberta Kucharskiego</a>.</p>
          </div>
        </div>
      </div>
    </section>

    <div class="rk-sep-final-wrap">
      <aside class="rk-sep-cta">
        <div>
          <h3>Potrzebujesz kompletnego projektu ogrzewania podłogowego?</h3>
          <p>Otrzymasz rozkład pętli na rzucie budynku, obliczone długości, przepływy i nastawy rozdzielacza oraz sprawdzoną hydraulikę instalacji.</p>
        </div>
        <a class="rk-sep-button rk-sep-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      </aside>
    </div>

    <footer class="rk-sep-footnote">
      Opracowanie edukacyjne. Ostateczny dobór separatora, armatury i pompy wymaga danych konkretnego urządzenia oraz obliczeń całej instalacji.
    </footer>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#article",
      "headline": "Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – dobór, Kv i montaż",
      "description": "Techniczny poradnik o doborze, lokalizacji i obsłudze separatora zanieczyszczeń, wkładu magnetycznego oraz separatora powietrza w instalacji ogrzewania podłogowego.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-09-01",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "about": [
        "separator zanieczyszczeń w ogrzewaniu podłogowym",
        "separator powietrza",
        "separator magnetyczny",
        "współczynnik Kv",
        "spadek ciśnienia",
        "hydraulika instalacji grzewczej"
      ],
      "keywords": [
        "separator zanieczyszczeń ogrzewanie podłogowe",
        "separator magnetyczny do podłogówki",
        "separator powietrza w ogrzewaniu podłogowym",
        "separator na zasilaniu czy powrocie",
        "jak dobrać Kv separatora",
        "spadek ciśnienia na separatorze",
        "filtr skośny a separator magnetyczny"
      ],
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      }
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#webpage",
      "url": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/",
      "name": "Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – dobór, Kv i montaż",
      "description": "Sprawdź miejsce montażu separatora, oblicz przepływ, Kv i spadek ciśnienia oraz porównaj funkcję filtra, magnesu i separatora powietrza.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-09-01",
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Separator zanieczyszczeń i powietrza",
          "item": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#analyzer",
      "name": "Analizator Kv i spadku ciśnienia separatora",
      "url": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#rk-sep-analizator",
      "description": "Narzędzie oblicza przepływ, spadek ciśnienia jednego lub dwóch urządzeń, równoważne Kv, wykorzystanie zadanego budżetu oporu i prędkość w rurze.",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      },
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#howto",
      "name": "Jak dobrać separator zanieczyszczeń i powietrza",
      "description": "Checklista wstępnego doboru separatora do wodnej instalacji ogrzewania podłogowego.",
      "inLanguage": "pl-PL",
      "totalTime": "PT20M",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Określ funkcję",
          "text": "Ustal, czy potrzebujesz usuwania zanieczyszczeń, cząstek magnetycznych, powietrza czy połączenia funkcji."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Wyznacz przepływ",
          "text": "Wyznacz projektowy przepływ w dokładnie tej gałęzi, w której urządzenie ma pracować."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Sprawdź dane urządzenia",
          "text": "Sprawdź Kv, zakres przepływu, dopuszczalne ciśnienie i temperaturę wybranego modelu."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Policz opory",
          "text": "Oblicz spadek ciśnienia separatora i pozostałych elementów połączonych szeregowo."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zweryfikuj medium",
          "text": "Sprawdź właściwości medium i korektę dla glikolu, jeżeli instalacja nie pracuje na samej wodzie."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Ustal lokalizację",
          "text": "Ustal miejsce względem źródła, pompy, naczynia przeponowego, bufora i chronionych urządzeń."
        },
        {
          "@type": "HowToStep",
          "position": 7,
          "name": "Sprawdź orientację",
          "text": "Potwierdź kierunek przepływu, dopuszczalną pozycję i przestrzeń serwisową w dokumentacji urządzenia."
        },
        {
          "@type": "HowToStep",
          "position": 8,
          "name": "Zaplanuj serwis",
          "text": "Zaplanuj zawory odcinające, bezpieczny zrzut osadu i dostęp do magnesu lub wkładu."
        },
        {
          "@type": "HowToStep",
          "position": 9,
          "name": "Uzupełnij dokumentację",
          "text": "Wpisz urządzenie, wartość Kv i procedurę obsługi do dokumentacji powykonawczej."
        },
        {
          "@type": "HowToStep",
          "position": 10,
          "name": "Zapisz parametry uruchomienia",
          "text": "Po uruchomieniu zapisz przepływy, ciśnienia i stan osadu jako punkt odniesienia dla serwisu."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy separator zanieczyszczeń jest potrzebny w ogrzewaniu podłogowym?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Często jest uzasadniony, szczególnie gdy instalacja zawiera elementy stalowe lub wrażliwy wymiennik. Decyzja powinna wynikać z materiałów, wymagań źródła, jakości wody i planu serwisowego."
          }
        },
        {
          "@type": "Question",
          "name": "Gdzie zamontować separator zanieczyszczeń — na zasilaniu czy powrocie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Często montuje się go na powrocie przed chronionym źródłem, ale nie jest to reguła bez wyjątków. Trzeba uwzględnić schemat, położenie pompy i naczynia, temperaturę oraz dokumentację urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Gdzie zamontować separator powietrza?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "W punkcie sprzyjającym wydzielaniu mikropęcherzy i zgodnym z dokumentacją urządzenia. Lokalizacja zależy od temperatury, ciśnienia statycznego i układu pompowego."
          }
        },
        {
          "@type": "Question",
          "name": "Czy separator 2 w 1 jest lepszy od dwóch urządzeń?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Jest kompaktowy, ale wymaga jednego wspólnego miejsca dobrego dla separacji powietrza i zanieczyszczeń. W rozbudowanym układzie dwa urządzenia mogą lepiej realizować każdą funkcję."
          }
        },
        {
          "@type": "Question",
          "name": "Czy DN25 wystarczy do domu 150 m²?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie można tego ustalić z powierzchni domu. Potrzebny jest przepływ projektowy oraz Kv wybranego urządzenia. Dwa separatory DN25 mogą generować różne spadki ciśnienia."
          }
        },
        {
          "@type": "Question",
          "name": "Czy separator magnetyczny zastępuje filtr skośny?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Urządzenia mają inne mechanizmy pracy. Jeżeli dokumentacja źródła wymaga filtra siatkowego, obecność separatora magnetycznego nie usuwa automatycznie tego wymagania."
          }
        },
        {
          "@type": "Question",
          "name": "Jak często czyścić separator zanieczyszczeń?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Zgodnie z instrukcją i obserwacją instalacji. Harmonogram ustala się na podstawie ilości osadu, zmian przepływu i historii układu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy separator rozwiąże problem zapowietrzania instalacji?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Może pomóc usuwać mikropęcherze, ale nie naprawi nieszczelności, błędnego ciśnienia, niewłaściwego naczynia przeponowego ani zasysania powietrza."
          }
        },
        {
          "@type": "Question",
          "name": "Jak policzyć spadek ciśnienia na separatorze?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla wody można orientacyjnie użyć zależności Δp = (V̇/Kv)² × 100 kPa, gdy przepływ i Kv są podane w m³/h. Wynik trzeba dodać do oporów pozostałych elementów tej samej drogi."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "description": "Autor opracowań o ogrzewaniu podłogowym, obliczeniach cieplnych, hydraulice instalacji i doborze armatury.",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "hydraulika instalacji grzewczych",
        "separatory zanieczyszczeń i powietrza",
        "obliczenia cieplne",
        "dobór pomp obiegowych",
        "równoważenie hydrauliczne"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      }
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-separator-guide");
  if (!root) {
    return;
  }

  var selectOne = function (selector) {
    return root.querySelector(selector);
  };

  var selectAll = function (selector) {
    return Array.prototype.slice.call(root.querySelectorAll(selector));
  };

  var numberValue = function (element, fallback, minimum) {
    var value = parseFloat(element.value);
    if (!Number.isFinite(value)) {
      return fallback;
    }
    if (value < minimum) {
      return minimum;
    }
    return value;
  };

  var formatNumber = function (value, digits) {
    return new Intl.NumberFormat("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    }).format(value);
  };

  var flowMode = selectOne("#rk-sep-flow-mode");
  var powerInput = selectOne("#rk-sep-power");
  var deltaInput = selectOne("#rk-sep-delta");
  var knownFlowInput = selectOne("#rk-sep-known-flow");
  var kvOneInput = selectOne("#rk-sep-kv-one");
  var kvTwoInput = selectOne("#rk-sep-kv-two");
  var diameterInput = selectOne("#rk-sep-inner-diameter");
  var budgetInput = selectOne("#rk-sep-budget");
  var useSecondInput = selectOne("#rk-sep-use-second");
  var powerFields = selectAll("[data-power-field]");
  var knownFields = selectAll("[data-known-field]");
  var secondFields = selectAll("[data-second-field]");

  var resultFlow = selectOne("#rk-sep-result-flow");
  var resultFlowMin = selectOne("#rk-sep-result-flow-min");
  var resultOne = selectOne("#rk-sep-result-one");
  var resultTwo = selectOne("#rk-sep-result-two");
  var resultTwoNote = selectOne("#rk-sep-result-two-note");
  var resultTotal = selectOne("#rk-sep-result-total");
  var resultShare = selectOne("#rk-sep-result-share");
  var resultSpeed = selectOne("#rk-sep-result-speed");
  var resultEquivalent = selectOne("#rk-sep-result-equivalent");
  var resultRequired = selectOne("#rk-sep-result-required");
  var statusBox = selectOne("#rk-sep-status");
  var statusTitle = selectOne("#rk-sep-status-title");
  var statusCopy = selectOne("#rk-sep-status-copy");

  var chartGrid = selectOne("#rk-sep-chart-grid");
  var chartLabels = selectOne("#rk-sep-chart-labels");
  var chartOne = selectOne("#rk-sep-chart-one");
  var chartTwo = selectOne("#rk-sep-chart-two");
  var chartTotal = selectOne("#rk-sep-chart-total-line");
  var chartBudget = selectOne("#rk-sep-chart-budget");
  var chartPointX = selectOne("#rk-sep-chart-point-x");
  var chartPoint = selectOne("#rk-sep-chart-point");
  var chartPointLabel = selectOne("#rk-sep-chart-point-label");
  var chartDesc = selectOne("#rk-sep-chart-desc");
  var svgNamespace = "http://www.w3.org/2000/svg";

  var makeSvg = function (tag, attributes, textValue) {
    var element = document.createElementNS(svgNamespace, tag);
    Object.keys(attributes).forEach(function (key) {
      element.setAttribute(key, attributes[key]);
    });
    if (typeof textValue === "string") {
      element.textContent = textValue;
    }
    return element;
  };

  var niceMaximum = function (value) {
    if (value <= 0) {
      return 1;
    }
    var exponent = Math.floor(Math.log10(value));
    var base = Math.pow(10, exponent);
    var fraction = value / base;
    var niceFraction = 10;
    if (fraction <= 1) {
      niceFraction = 1;
    } else if (fraction <= 2) {
      niceFraction = 2;
    } else if (fraction <= 5) {
      niceFraction = 5;
    }
    return niceFraction * base;
  };

  var lossFromKv = function (flow, kv) {
    return Math.pow(flow / kv, 2) * 100;
  };

  var drawChart = function (data) {
    var width = 900;
    var height = 430;
    var marginLeft = 76;
    var marginRight = 27;
    var marginTop = 28;
    var marginBottom = 64;
    var plotWidth = width - marginLeft - marginRight;
    var plotHeight = height - marginTop - marginBottom;
    var xMax = Math.max(data.flow * 1.8, 0.5);
    var endOne = lossFromKv(xMax, data.kvOne);
    var endTwo = data.useSecond ? lossFromKv(xMax, data.kvTwo) : 0;
    var yMax = niceMaximum(Math.max((endOne + endTwo) * 1.08, data.budget * 1.35, 5));
    var xScale = function (value) {
      return marginLeft + (value / xMax) * plotWidth;
    };
    var yScale = function (value) {
      return marginTop + plotHeight - (value / yMax) * plotHeight;
    };

    chartGrid.innerHTML = "";
    chartLabels.innerHTML = "";

    for (var index = 0; index <= 5; index += 1) {
      var xValue = (xMax / 5) * index;
      var yValue = (yMax / 5) * index;
      var xPosition = xScale(xValue);
      var yPosition = yScale(yValue);

      chartGrid.appendChild(makeSvg("line", {
        "class": "rk-grid",
        "x1": xPosition,
        "y1": marginTop,
        "x2": xPosition,
        "y2": marginTop + plotHeight
      }));
      chartGrid.appendChild(makeSvg("line", {
        "class": "rk-grid",
        "x1": marginLeft,
        "y1": yPosition,
        "x2": marginLeft + plotWidth,
        "y2": yPosition
      }));

      chartLabels.appendChild(makeSvg("text", {
        "x": xPosition,
        "y": height - 34,
        "text-anchor": "middle"
      }, formatNumber(xValue, xMax < 2 ? 2 : 1)));
      chartLabels.appendChild(makeSvg("text", {
        "x": marginLeft - 13,
        "y": yPosition + 4,
        "text-anchor": "end"
      }, formatNumber(yValue, yMax < 10 ? 1 : 0)));
    }

    chartGrid.appendChild(makeSvg("line", {
      "class": "rk-axis",
      "x1": marginLeft,
      "y1": marginTop + plotHeight,
      "x2": marginLeft + plotWidth,
      "y2": marginTop + plotHeight
    }));
    chartGrid.appendChild(makeSvg("line", {
      "class": "rk-axis",
      "x1": marginLeft,
      "y1": marginTop,
      "x2": marginLeft,
      "y2": marginTop + plotHeight
    }));

    chartLabels.appendChild(makeSvg("text", {
      "x": marginLeft + plotWidth / 2,
      "y": height - 7,
      "text-anchor": "middle",
      "font-weight": "800"
    }, "Przepływ [m³/h]"));
    chartLabels.appendChild(makeSvg("text", {
      "x": 18,
      "y": marginTop + plotHeight / 2,
      "text-anchor": "middle",
      "font-weight": "800",
      "transform": "rotate(-90 18 " + (marginTop + plotHeight / 2) + ")"
    }, "Spadek ciśnienia [kPa]"));

    var pathFor = function (calculator) {
      var points = [];
      for (var pointIndex = 0; pointIndex <= 60; pointIndex += 1) {
        var currentFlow = (xMax / 60) * pointIndex;
        var currentLoss = calculator(currentFlow);
        var command = pointIndex === 0 ? "M" : "L";
        points.push(command + xScale(currentFlow).toFixed(2) + " " + yScale(currentLoss).toFixed(2));
      }
      return points.join(" ");
    };

    chartOne.setAttribute("d", pathFor(function (flow) {
      return lossFromKv(flow, data.kvOne);
    }));

    if (data.useSecond) {
      chartTwo.setAttribute("d", pathFor(function (flow) {
        return lossFromKv(flow, data.kvTwo);
      }));
      chartTwo.setAttribute("opacity", "1");
    } else {
      chartTwo.setAttribute("d", "");
      chartTwo.setAttribute("opacity", "0");
    }

    chartTotal.setAttribute("d", pathFor(function (flow) {
      var totalLoss = lossFromKv(flow, data.kvOne);
      if (data.useSecond) {
        totalLoss += lossFromKv(flow, data.kvTwo);
      }
      return totalLoss;
    }));

    var budgetY = yScale(Math.min(data.budget, yMax));
    chartBudget.setAttribute("x1", marginLeft);
    chartBudget.setAttribute("x2", marginLeft + plotWidth);
    chartBudget.setAttribute("y1", budgetY);
    chartBudget.setAttribute("y2", budgetY);

    var pointX = xScale(Math.min(data.flow, xMax));
    var pointY = yScale(Math.min(data.total, yMax));
    chartPointX.setAttribute("x1", pointX);
    chartPointX.setAttribute("x2", pointX);
    chartPointX.setAttribute("y1", marginTop);
    chartPointX.setAttribute("y2", marginTop + plotHeight);
    chartPoint.setAttribute("cx", pointX);
    chartPoint.setAttribute("cy", pointY);

    var labelX = Math.min(pointX + 12, width - 155);
    var labelY = Math.max(pointY - 12, 20);
    chartPointLabel.setAttribute("x", labelX);
    chartPointLabel.setAttribute("y", labelY);
    chartPointLabel.textContent = formatNumber(data.flow, 2) + " m³/h • " + formatNumber(data.total, 1) + " kPa";

    chartDesc.textContent = "Dla przepływu " + formatNumber(data.flow, 2) + " metra sześciennego na godzinę suma obliczonych oporów wynosi " + formatNumber(data.total, 1) + " kilopaskala przy budżecie " + formatNumber(data.budget, 1) + " kilopaskala.";
  };

  var calculate = function () {
    var modeIsPower = flowMode.value === "power";
    powerFields.forEach(function (field) {
      field.hidden = !modeIsPower;
    });
    knownFields.forEach(function (field) {
      field.hidden = modeIsPower;
    });

    var useSecond = useSecondInput.checked;
    secondFields.forEach(function (field) {
      var input = field.querySelector("input");
      field.style.opacity = useSecond ? "1" : "0.48";
      if (input) {
        input.disabled = !useSecond;
      }
    });

    var flow = numberValue(knownFlowInput, 1, 0.01);
    if (modeIsPower) {
      var power = numberValue(powerInput, 12, 0.01);
      var delta = numberValue(deltaInput, 5, 0.1);
      flow = power / (1.163 * delta);
    }

    var kvOne = numberValue(kvOneInput, 6.3, 0.01);
    var kvTwo = numberValue(kvTwoInput, 9, 0.01);
    var diameter = numberValue(diameterInput, 26, 0.1);
    var budget = numberValue(budgetInput, 15, 0.1);
    var lossOne = lossFromKv(flow, kvOne);
    var lossTwo = useSecond ? lossFromKv(flow, kvTwo) : 0;
    var total = lossOne + lossTwo;
    var share = (total / budget) * 100;
    var area = Math.PI * Math.pow(diameter / 1000, 2) / 4;
    var speed = (flow / 3600) / area;
    var equivalentKv = total > 0 ? flow / Math.sqrt(total / 100) : 0;
    var requiredKv = flow / Math.sqrt(budget / 100);

    resultFlow.textContent = formatNumber(flow, 2) + " m³/h";
    resultFlowMin.textContent = formatNumber(flow * 1000 / 60, 1) + " l/min";
    resultOne.textContent = formatNumber(lossOne, 1) + " kPa";
    resultTwo.textContent = formatNumber(lossTwo, 1) + " kPa";
    resultTwoNote.textContent = useSecond ? "element uwzględniony" : "element wyłączony";
    resultTotal.textContent = formatNumber(total, 1) + " kPa";
    resultShare.textContent = formatNumber(share, 0) + "%";
    resultSpeed.textContent = formatNumber(speed, 2) + " m/s";
    resultEquivalent.textContent = formatNumber(equivalentKv, 2) + " m³/h";
    resultRequired.textContent = formatNumber(requiredKv, 2) + " m³/h";

    if (share <= 85) {
      statusBox.setAttribute("data-state", "good");
      statusTitle.textContent = "Wynik mieści się w przyjętym budżecie";
      statusCopy.textContent = "Pozostały margines dotyczy tylko wpisanej wartości. Nadal trzeba dodać i sprawdzić wszystkie inne opory na drodze krytycznej.";
    } else if (share <= 100) {
      statusBox.setAttribute("data-state", "borderline");
      statusTitle.textContent = "Wynik jest blisko wpisanego budżetu";
      statusCopy.textContent = "Niewielka zmiana przepływu, medium lub parametrów urządzenia może zmienić ocenę. Sprawdź pełną krzywą i dane producenta.";
    } else {
      statusBox.setAttribute("data-state", "bad");
      statusTitle.textContent = "Przyjęty budżet został przekroczony";
      statusCopy.textContent = "Zmień urządzenie, układ lub budżet dopiero po sprawdzeniu całej drogi krytycznej. Wynik nie oznacza automatycznie, że pompa jest za mała.";
    }

    drawChart({
      flow: flow,
      kvOne: kvOne,
      kvTwo: kvTwo,
      budget: budget,
      useSecond: useSecond,
      total: total
    });
  };

  [
    flowMode,
    powerInput,
    deltaInput,
    knownFlowInput,
    kvOneInput,
    kvTwoInput,
    diameterInput,
    budgetInput,
    useSecondInput
  ].forEach(function (element) {
    element.addEventListener("input", calculate);
    element.addEventListener("change", calculate);
  });

  var schemeConfigurations = {
    "separate": {
      "nodes": [
        "Źródło ciepła",
        "Separator powietrza",
        "Obieg podłogówki",
        "Separator zanieczyszczeń",
        "Powrót do źródła"
      ],
      "highlights": [1, 3],
      "note": "Osobne urządzenia pozwalają dobrać miejsce do funkcji. Kolejność pompy, naczynia przeponowego i zaworów trzeba ustalić na pełnym schemacie."
    },
    "combined": {
      "nodes": [
        "Źródło ciepła",
        "Odcinek wspólny",
        "Separator powietrza i zanieczyszczeń 2 w 1",
        "Rozdzielacz podłogówki",
        "Powrót"
      ],
      "highlights": [2],
      "note": "Wariant kompaktowy ma sens tylko wtedy, gdy wspólna lokalizacja spełnia wymagania obu funkcji i dokumentacji urządzenia."
    },
    "buffer": {
      "nodes": [
        "Źródło i obieg pierwotny",
        "Separacja po stronie źródła",
        "Bufor lub rozdzielenie hydrauliczne",
        "Separacja w obiegu wtórnym",
        "Rozdzielacze ogrzewania"
      ],
      "highlights": [1, 3],
      "note": "Po obu stronach bufora mogą występować inne przepływy. Każdy separator sprawdza się dla gałęzi, w której rzeczywiście pracuje."
    }
  };

  var schemeTabs = selectAll("[data-rk-schematic] [data-scheme]");
  var schemeNodes = selectAll("[data-rk-schematic] [data-node]");
  var schemeNote = selectOne("[data-scheme-note]");

  var changeScheme = function (schemeName) {
    var configuration = schemeConfigurations[schemeName];
    if (!configuration) {
      return;
    }

    schemeTabs.forEach(function (tab) {
      tab.setAttribute("aria-selected", tab.getAttribute("data-scheme") === schemeName ? "true" : "false");
    });

    schemeNodes.forEach(function (node, index) {
      node.textContent = configuration.nodes[index];
      node.classList.remove("rk-sep-flow-node-main");
      if (configuration.highlights.indexOf(index) !== -1) {
        node.classList.add("rk-sep-flow-node-main");
      }
    });

    schemeNote.textContent = configuration.note;
  };

  schemeTabs.forEach(function (tab) {
    tab.addEventListener("click", function () {
      changeScheme(tab.getAttribute("data-scheme"));
    });
  });

  changeScheme("separate");
  calculate();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/">Separator zanieczyszczeń i powietrza w ogrzewaniu podłogowym – Dobór, schemat montażu, spadek ciśnienia i normy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt instalacji grzewczej domu – OZC, zakres i koszt.</title>
		<link>https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 31 Jul 2026 07:17:58 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZC]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Projekt instalacji grzewczej]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[bilans cieplny]]></category>
		<category><![CDATA[centralne ogrzewanie]]></category>
		<category><![CDATA[dobór ogrzewania]]></category>
		<category><![CDATA[dobór pompy ciepła]]></category>
		<category><![CDATA[dokumentacja techniczna]]></category>
		<category><![CDATA[hydraulika instalacji]]></category>
		<category><![CDATA[instalacja grzewcza]]></category>
		<category><![CDATA[obliczenia ozc]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt co]]></category>
		<category><![CDATA[projekt domu jednorodzinnego]]></category>
		<category><![CDATA[projekt hvac]]></category>
		<category><![CDATA[projekt instalacji grzewczej]]></category>
		<category><![CDATA[projekt instalacji grzewczej domu jednorodzinnego]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[rozstaw rur]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=6872</guid>

					<description><![CDATA[<p>Czy profesjonalny projekt naprawdę jest potrzebny przed wykonaniem ogrzewania w domu? Projekt instalacji grzewczej domu jednorodzinnego to znacznie więcej niż zwykły rysunek techniczny – to komplet obliczeń OZC, analiza hydrauliczna, dobór źródła ciepła oraz dokumentacja, która pozwala uniknąć kosztownych błędów i przewymiarowania instalacji. W tym przewodniku znajdziesz praktyczne przykłady, kalkulatory, interaktywne symulatory oraz inżynierskie wskazówki, dzięki którym zaprojektujesz wydajny, oszczędny i niezawodny system grzewczy.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/">Projekt instalacji grzewczej domu – OZC, zakres i koszt.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<!--
PROJEKT-OGRZEWANIA.PL — PEŁNY KOD DO BLOKU „WŁASNY HTML”
Wklej całość POD natywnym tytułem H1 generowanym przez WordPress.

USTAWIENIA WORDPRESS / YOAST:
H1: Projekt instalacji grzewczej domu – zakres, OZC, hydraulika i koszty
Fraza główna: projekt instalacji grzewczej domu
SEO title: Projekt instalacji grzewczej domu – OZC, zakres i koszt
Meta description: Sprawdź, co powinien zawierać projekt instalacji grzewczej: OZC, dobór podłogówki lub grzejników, hydraulika, źródło ciepła i dokumentacja.
ALT grafiki wyróżniającej: Projekt instalacji grzewczej domu – OZC i hydraulika
Tytuł grafiki: Projekt instalacji grzewczej domu jednorodzinnego
Opis grafiki: Inżynierski projekt instalacji grzewczej obejmujący OZC pomieszczeń, odbiorniki, przepływy, hydraulikę, źródło ciepła i dokumentację wykonawczą.
Slug pozostaje bez zmian:
https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/

Kod zawiera analizator kompletności projektu, generator briefu inwestora,
modułową mapę procesu projektowego i rozbudowane wyjaśnienia techniczne.
W artykule znajdują się dokładnie dwa CTA sprzedażowe.
Linki wewnętrzne otwierają się w tej samej karcie.
Linki do dokumentacji zewnętrznej znajdują się wyłącznie w sekcji źródeł,
otwierają się w nowej karcie i mają rel="nofollow noopener noreferrer".
Profile oraz portale autora pozostają w ustalonym module autorskim.
-->

<style>
  #rk-heatplan-guide {
    --rk-navy: #0b2536;
    --rk-navy-2: #12394d;
    --rk-navy-3: #1b465b;
    --rk-cyan: #29c4d7;
    --rk-cyan-dark: #078fb3;
    --rk-cyan-soft: #def7fa;
    --rk-orange: #ff6846;
    --rk-orange-dark: #e44f31;
    --rk-yellow: #f2b526;
    --rk-green: #2fcda1;
    --rk-green-dark: #168267;
    --rk-red: #d7504a;
    --rk-purple: #6963ce;
    --rk-ink: #10283a;
    --rk-copy: #3c5668;
    --rk-muted: #6b8191;
    --rk-line: #d3e2e8;
    --rk-bg: #f3f8fa;
    --rk-white: #ffffff;
    color: var(--rk-ink);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.62;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }

  #rk-heatplan-guide,
  #rk-heatplan-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

  #rk-heatplan-guide a {
    color: var(--rk-cyan-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-heatplan-guide a:hover,
  #rk-heatplan-guide a:focus-visible {
    color: var(--rk-orange-dark);
  }

  #rk-heatplan-guide button,
  #rk-heatplan-guide input,
  #rk-heatplan-guide select {
    font: inherit;
  }

  #rk-heatplan-guide button:focus-visible,
  #rk-heatplan-guide a:focus-visible,
  #rk-heatplan-guide summary:focus-visible,
  #rk-heatplan-guide input:focus-visible,
  #rk-heatplan-guide select:focus-visible {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 3px;
  }

  #rk-heatplan-guide img {
    display: block;
    height: auto;
    max-width: 100%;
  }

  #rk-heatplan-guide .rk-heatplan-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    box-shadow: 0 22px 65px rgba(13, 41, 57, 0.12);
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  /* Kolejność rozdziałów jest ustalona także po przetworzeniu bloku przez WordPress. */
  #rk-heatplan-guide .rk-heatplan-hero { order: 1; }
  #rk-heatplan-guide .rk-heatplan-shortcuts { order: 2; }
  #rk-heatplan-guide #rk-heatplan-answer { order: 3; }
  #rk-heatplan-guide #rk-heatplan-definitions { order: 4; }
  #rk-heatplan-guide #rk-heatplan-results { order: 5; }
  #rk-heatplan-guide #rk-heatplan-roadmap { order: 6; }
  #rk-heatplan-guide #rk-heatplan-analyzer-section { order: 7; }
  #rk-heatplan-guide #rk-heatplan-data { order: 8; }
  #rk-heatplan-guide #rk-heatplan-ozc { order: 9; }
  #rk-heatplan-guide #rk-heatplan-emitters { order: 10; }
  #rk-heatplan-guide #rk-heatplan-floor { order: 11; }
  #rk-heatplan-guide #rk-heatplan-hydraulics { order: 12; }
  #rk-heatplan-guide #rk-heatplan-source { order: 13; }
  #rk-heatplan-guide #rk-heatplan-controls-section { order: 14; }
  #rk-heatplan-guide #rk-heatplan-documents { order: 15; }
  #rk-heatplan-guide #rk-heatplan-costs { order: 16; }
  #rk-heatplan-guide #rk-heatplan-timing { order: 17; }
  #rk-heatplan-guide #rk-heatplan-offers { order: 18; }
  #rk-heatplan-guide #rk-heatplan-changes { order: 19; }
  #rk-heatplan-guide #rk-heatplan-errors { order: 20; }
  #rk-heatplan-guide #rk-heatplan-final { order: 21; }
  #rk-heatplan-guide #rk-heatplan-sources { order: 22; }
  #rk-heatplan-guide #rk-heatplan-faq { order: 23; }
  #rk-heatplan-guide #rk-heatplan-author { order: 24; }

  #rk-heatplan-guide .rk-heatplan-hero {
    background:
      radial-gradient(circle at 89% 111%, rgba(41, 196, 215, 0.24) 0, rgba(41, 196, 215, 0.24) 17%, transparent 17.2%),
      linear-gradient(120deg, #0b2536 0%, #143e52 61%, #0d6576 100%);
    color: var(--rk-white);
    overflow: hidden;
    padding: 62px 58px 56px;
    position: relative;
  }

  #rk-heatplan-guide .rk-heatplan-hero::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 9px rgba(255, 104, 70, 0.14);
    content: "";
    height: 12px;
    left: 58px;
    position: absolute;
    top: 43px;
    width: 12px;
  }

  #rk-heatplan-guide .rk-heatplan-kicker {
    color: #6ce5ef;
    display: block;
    font-size: 0.77rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    margin: 0 0 19px 28px;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-hero-title,
  #rk-heatplan-guide .rk-heatplan-section-title,
  #rk-heatplan-guide .rk-heatplan-cta-title,
  #rk-heatplan-guide .rk-heatplan-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

  #rk-heatplan-guide .rk-heatplan-hero-title {
    font-size: clamp(2.4rem, 6vw, 5.25rem);
    margin: 0;
    max-width: 1220px;
  }

  #rk-heatplan-guide .rk-heatplan-hero-title span {
    color: #69e7f2;
  }

  #rk-heatplan-guide .rk-heatplan-hero-lead {
    color: #e3f0f4;
    font-size: clamp(1.08rem, 2vw, 1.43rem);
    line-height: 1.55;
    margin: 27px 0 0;
    max-width: 1100px;
  }

  #rk-heatplan-guide .rk-heatplan-hero-tags,
  #rk-heatplan-guide .rk-heatplan-meta,
  #rk-heatplan-guide .rk-heatplan-shortcuts {
    display: flex;
    flex-wrap: wrap;
  }

  #rk-heatplan-guide .rk-heatplan-hero-tags {
    gap: 10px;
    margin-top: 30px;
  }

  #rk-heatplan-guide .rk-heatplan-hero-tags span {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 8px 14px;
  }

  #rk-heatplan-guide .rk-heatplan-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

  #rk-heatplan-guide .rk-heatplan-meta strong {
    color: #ffffff;
  }

  #rk-heatplan-guide .rk-heatplan-shortcuts {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    gap: 9px;
    padding: 22px 34px;
    position: static;
  }

  #rk-heatplan-guide .rk-heatplan-shortcuts-label {
    color: var(--rk-ink);
    flex: 1 0 100%;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-bottom: 2px;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-shortcuts a {
    background: #f1f6f8;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-ink);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-heatplan-guide .rk-heatplan-shortcuts a:hover,
  #rk-heatplan-guide .rk-heatplan-shortcuts a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

  #rk-heatplan-guide .rk-heatplan-section {
    padding: 64px 58px;
  }

  #rk-heatplan-guide .rk-heatplan-section + .rk-heatplan-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-heatplan-guide .rk-heatplan-section-soft {
    background: var(--rk-bg);
  }

  #rk-heatplan-guide .rk-heatplan-section-dark {
    background: var(--rk-navy);
    color: #ffffff;
  }

  #rk-heatplan-guide .rk-heatplan-eyebrow {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 12px;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-section-dark .rk-heatplan-eyebrow {
    color: #68e6ef;
  }

  #rk-heatplan-guide .rk-heatplan-section-title,
  #rk-heatplan-guide .rk-heatplan-author-title {
    color: var(--rk-ink);
    font-size: clamp(2rem, 4vw, 3.65rem);
    margin: 0;
    max-width: 1120px;
  }

  #rk-heatplan-guide .rk-heatplan-section-dark .rk-heatplan-section-title {
    color: #ffffff;
  }

  #rk-heatplan-guide .rk-heatplan-lead {
    color: var(--rk-copy);
    font-size: clamp(1.03rem, 1.7vw, 1.25rem);
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 1140px;
  }

  #rk-heatplan-guide .rk-heatplan-copy {
    color: var(--rk-copy);
    margin: 22px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-copy strong,
  #rk-heatplan-guide .rk-heatplan-lead strong {
    color: var(--rk-ink);
  }

  #rk-heatplan-guide .rk-heatplan-section-dark .rk-heatplan-lead,
  #rk-heatplan-guide .rk-heatplan-section-dark .rk-heatplan-copy {
    color: #c8dbe2;
  }

  #rk-heatplan-guide .rk-heatplan-section-dark .rk-heatplan-lead strong,
  #rk-heatplan-guide .rk-heatplan-section-dark .rk-heatplan-copy strong {
    color: #ffffff;
  }

  #rk-heatplan-guide .rk-heatplan-answer {
    background: linear-gradient(135deg, #e6fafd 0%, #f8fcfd 100%);
    border: 1px solid #9cdfe8;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 18px;
    margin-top: 28px;
    padding: 27px 29px;
  }

  #rk-heatplan-guide .rk-heatplan-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.24rem;
    line-height: 1.4;
  }

  #rk-heatplan-guide .rk-heatplan-answer p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-grid-2,
  #rk-heatplan-guide .rk-heatplan-grid-3,
  #rk-heatplan-guide .rk-heatplan-grid-4,
  #rk-heatplan-guide .rk-heatplan-source-grid,
  #rk-heatplan-guide .rk-heatplan-author-facts {
    display: grid;
    gap: 18px;
    margin-top: 30px;
  }

  #rk-heatplan-guide .rk-heatplan-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-heatplan-guide .rk-heatplan-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-heatplan-guide .rk-heatplan-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-heatplan-guide .rk-heatplan-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

  #rk-heatplan-guide .rk-heatplan-section-soft .rk-heatplan-card {
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-heatplan-guide .rk-heatplan-card-number,
  #rk-heatplan-guide .rk-heatplan-icon {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 36px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 36px;
    padding: 0 10px;
  }

  #rk-heatplan-guide .rk-heatplan-card h3,
  #rk-heatplan-guide .rk-heatplan-card h4 {
    color: var(--rk-ink);
    font-size: 1.12rem;
    line-height: 1.3;
    margin: 0 0 9px;
  }

  #rk-heatplan-guide .rk-heatplan-card p {
    color: var(--rk-copy);
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

  #rk-heatplan-guide .rk-heatplan-bullets li + li {
    margin-top: 9px;
  }

  #rk-heatplan-guide .rk-heatplan-note {
    background: #fff6e2;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 14px;
    color: #5b4a1d;
    margin-top: 26px;
    padding: 18px 21px;
  }

  #rk-heatplan-guide .rk-heatplan-note p {
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-note-good {
    background: #e9faf5;
    border-left-color: var(--rk-green);
    color: #145e4d;
  }

  #rk-heatplan-guide .rk-heatplan-note-bad {
    background: #fff0ec;
    border-left-color: var(--rk-orange);
    color: #743425;
  }

  #rk-heatplan-guide .rk-heatplan-formula {
    background: #edf8fa;
    border: 1px solid #b4e1e7;
    border-radius: 13px;
    color: #086b82;
    font-family: Consolas, Monaco, monospace;
    font-size: 1rem;
    font-weight: 700;
    margin-top: 20px;
    padding: 15px 18px;
  }

  #rk-heatplan-guide .rk-heatplan-table-wrap {
    margin-top: 30px;
    overflow-x: auto;
  }

  #rk-heatplan-guide table {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 780px;
    width: 100%;
  }

  #rk-heatplan-guide th {
    background: var(--rk-navy);
    border-bottom: 1px solid #31576a;
    color: #ffffff;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    padding: 15px 16px;
    text-align: left;
    text-transform: uppercase;
  }

  #rk-heatplan-guide th:first-child {
    border-radius: 14px 0 0;
  }

  #rk-heatplan-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

  #rk-heatplan-guide td {
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 16px;
    vertical-align: top;
  }

  #rk-heatplan-guide tbody tr td:first-child {
    border-left: 1px solid var(--rk-line);
  }

  #rk-heatplan-guide tbody tr td:last-child {
    border-right: 1px solid var(--rk-line);
  }

  #rk-heatplan-guide tbody tr:last-child td:first-child {
    border-radius: 0 0 0 14px;
  }

  #rk-heatplan-guide tbody tr:last-child td:last-child {
    border-radius: 0 0 14px;
  }

  #rk-heatplan-guide td strong {
    color: var(--rk-ink);
  }

  /* Bazowe style modułów interaktywnych */
  #rk-heatplan-guide .rk-heatplan-locator {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 24px;
    margin-top: 32px;
    overflow: hidden;
  }

  #rk-heatplan-guide .rk-heatplan-locator-head {
    border-bottom: 1px solid #315a70;
    padding: 29px;
  }

  #rk-heatplan-guide .rk-heatplan-locator-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-locator-head p {
    color: #bad3dc;
    margin: 10px 0 0;
    max-width: 1000px;
  }

  #rk-heatplan-guide .rk-heatplan-tool-grid {
    display: grid;
    gap: 24px;
    grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
    padding: 28px;
  }

  #rk-heatplan-guide .rk-heatplan-controls,
  #rk-heatplan-guide .rk-heatplan-output {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 18px;
    padding: 23px;
  }

  #rk-heatplan-guide .rk-heatplan-controls h4,
  #rk-heatplan-guide .rk-heatplan-output h4 {
    color: #ffffff;
    font-size: 1.1rem;
    line-height: 1.35;
    margin: 0 0 17px;
  }

  #rk-heatplan-guide .rk-heatplan-field {
    display: block;
    margin-top: 16px;
  }

  #rk-heatplan-guide .rk-heatplan-field:first-of-type {
    margin-top: 0;
  }

  #rk-heatplan-guide .rk-heatplan-field > span,
  #rk-heatplan-guide .rk-heatplan-control-label {
    color: #eaf6f8;
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-heatplan-guide .rk-heatplan-input-wrap {
    position: relative;
  }

  #rk-heatplan-guide .rk-heatplan-field input,
  #rk-heatplan-guide .rk-heatplan-field select {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 49px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-heatplan-guide .rk-heatplan-suggestions {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    box-shadow: 0 15px 30px rgba(7, 27, 39, 0.23);
    display: none;
    left: 0;
    margin: 6px 0 0;
    max-height: 318px;
    overflow-y: auto;
    padding: 5px;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 20;
  }

  #rk-heatplan-guide .rk-heatplan-suggestions.is-open {
    display: block;
  }

  #rk-heatplan-guide .rk-heatplan-suggestion {
    background: transparent;
    border: 0;
    border-radius: 8px;
    color: var(--rk-ink);
    cursor: pointer;
    display: block;
    padding: 10px 11px;
    text-align: left;
    width: 100%;
  }

  #rk-heatplan-guide .rk-heatplan-suggestion:hover,
  #rk-heatplan-guide .rk-heatplan-suggestion.is-active {
    background: var(--rk-cyan-soft);
    color: #075f78;
  }

  #rk-heatplan-guide .rk-heatplan-suggestion strong {
    display: block;
    font-size: 0.91rem;
  }

  #rk-heatplan-guide .rk-heatplan-suggestion small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.72rem;
    margin-top: 2px;
  }

  #rk-heatplan-guide .rk-heatplan-no-result {
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 12px;
  }

  #rk-heatplan-guide .rk-heatplan-two-fields {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-heatplan-guide .rk-heatplan-tool-help {
    color: #9fbdc8;
    font-size: 0.75rem;
    line-height: 1.5;
    margin: 9px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-tool-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 19px;
  }

  #rk-heatplan-guide .rk-heatplan-button,
  #rk-heatplan-guide .rk-heatplan-button-secondary {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 17px;
  }

  #rk-heatplan-guide .rk-heatplan-button {
    background: var(--rk-orange);
    border: 1px solid var(--rk-orange);
    color: #ffffff;
  }

  #rk-heatplan-guide .rk-heatplan-button:hover {
    background: var(--rk-orange-dark);
  }

  #rk-heatplan-guide .rk-heatplan-button-secondary {
    background: transparent;
    border: 1px solid #5d7c8d;
    color: #ffffff;
  }

  #rk-heatplan-guide .rk-heatplan-manual {
    border-top: 1px solid #315a70;
    margin-top: 20px;
    padding-top: 19px;
  }

  #rk-heatplan-guide .rk-heatplan-manual summary {
    color: #8debf2;
    cursor: pointer;
    font-size: 0.83rem;
    font-weight: 900;
  }

  #rk-heatplan-guide .rk-heatplan-manual-inner {
    margin-top: 13px;
  }

  #rk-heatplan-guide .rk-heatplan-placeholder {
    align-items: center;
    color: #b9d0d9;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 260px;
    text-align: center;
  }

  #rk-heatplan-guide .rk-heatplan-placeholder-mark {
    align-items: center;
    background: #21536a;
    border: 1px solid #467186;
    border-radius: 50%;
    color: #74e8ef;
    display: inline-flex;
    font-size: 1.65rem;
    font-weight: 900;
    height: 70px;
    justify-content: center;
    margin-bottom: 16px;
    width: 70px;
  }

  #rk-heatplan-guide .rk-heatplan-result {
    display: none;
  }

  #rk-heatplan-guide .rk-heatplan-result.is-visible {
    display: block;
  }

  #rk-heatplan-guide .rk-heatplan-result-place {
    color: #ffffff;
    font-size: clamp(1.35rem, 2.7vw, 2rem);
    font-weight: 900;
    line-height: 1.2;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-result-region {
    color: #aecaD5;
    font-size: 0.83rem;
    margin: 5px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-result-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-heatplan-guide .rk-heatplan-result-tile {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-heatplan-guide .rk-heatplan-result-tile span {
    color: #9fc0cb;
    display: block;
    font-size: 0.69rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-result-tile strong {
    color: #ffffff;
    display: block;
    font-size: 1.32rem;
    line-height: 1.25;
    margin-top: 5px;
  }

  #rk-heatplan-guide .rk-heatplan-result-tile.is-highlight {
    background: rgba(41, 196, 215, 0.14);
    border-color: rgba(105, 231, 242, 0.45);
  }

  #rk-heatplan-guide .rk-heatplan-result-tile.is-highlight strong {
    color: #73e8f1;
  }

  #rk-heatplan-guide .rk-heatplan-result-note {
    background: #fff8e8;
    border-left: 5px solid var(--rk-yellow);
    border-radius: 12px;
    color: #654f18;
    margin-top: 16px;
    padding: 15px 17px;
  }

  #rk-heatplan-guide .rk-heatplan-result-note p {
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-result-scope {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 16px;
  }

  #rk-heatplan-guide .rk-heatplan-scope-card {
    background: #ffffff;
    border-radius: 12px;
    padding: 15px;
  }

  #rk-heatplan-guide .rk-heatplan-scope-card strong {
    display: block;
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-scope-card p {
    color: var(--rk-copy);
    font-size: 0.83rem;
    line-height: 1.55;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-scope-card.is-use strong {
    color: var(--rk-green-dark);
  }

  #rk-heatplan-guide .rk-heatplan-scope-card.is-limit strong {
    color: #a83d2d;
  }

  #rk-heatplan-guide .rk-heatplan-scenario {
    background: #0d293a;
    border-top: 1px solid #315a70;
    padding: 28px;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-head h3 {
    color: #ffffff;
    font-size: clamp(1.35rem, 2.7vw, 2rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-head p {
    color: #b8d0d9;
    margin: 8px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-controls {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 21px;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-controls label span {
    color: #eaf6f8;
    display: block;
    font-size: 0.75rem;
    font-weight: 800;
    margin-bottom: 7px;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-controls input,
  #rk-heatplan-guide .rk-heatplan-scenario-controls select {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 15px;
    margin-top: 20px;
    padding: 20px;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-result strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.12rem;
  }

  #rk-heatplan-guide .rk-heatplan-scenario-result p {
    color: var(--rk-copy);
    margin: 7px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-chart-wrap {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 18px;
    margin-top: 24px;
    padding: 23px;
  }

  #rk-heatplan-guide .rk-heatplan-chart-title {
    color: #ffffff;
    font-size: 1rem;
    font-weight: 900;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-chart-subtitle {
    color: #aac6d0;
    font-size: 0.8rem;
    margin: 4px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-chart {
    align-items: end;
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-top: 24px;
    min-height: 280px;
  }

  #rk-heatplan-guide .rk-heatplan-bar-item {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: flex-end;
    text-align: center;
  }

  #rk-heatplan-guide .rk-heatplan-bar-value {
    color: #dff8fa;
    font-size: 0.78rem;
    font-weight: 900;
    margin-bottom: 7px;
  }

  #rk-heatplan-guide .rk-heatplan-bar-track {
    align-items: flex-end;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 11px 11px 5px 5px;
    display: flex;
    height: 205px;
    overflow: hidden;
  }

  #rk-heatplan-guide .rk-heatplan-bar-fill {
    background: linear-gradient(180deg, #69e7f2 0%, #1199b5 100%);
    border-radius: 9px 9px 3px 3px;
    height: var(--rk-desktop-height, 50%);
    min-height: 24px;
    width: 100%;
  }

  #rk-heatplan-guide .rk-heatplan-bar-item.is-selected .rk-heatplan-bar-fill {
    background: linear-gradient(180deg, #ffad50 0%, #ff6846 100%);
  }

  #rk-heatplan-guide .rk-heatplan-bar-item.is-reference .rk-heatplan-bar-track {
    border-color: #77e8ef;
  }

  #rk-heatplan-guide .rk-heatplan-bar-label {
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 900;
    line-height: 1.35;
    margin-top: 9px;
  }

  #rk-heatplan-guide .rk-heatplan-bar-label small {
    color: #aecaD5;
    display: block;
    font-size: 0.69rem;
    font-weight: 700;
    margin-top: 2px;
  }

  #rk-heatplan-guide .rk-heatplan-tool-disclaimer {
    color: #90adb9;
    font-size: 0.75rem;
    line-height: 1.55;
    margin: 17px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-cta {
    background:
      radial-gradient(circle at 93% 120%, rgba(41, 196, 215, 0.22) 0, rgba(41, 196, 215, 0.22) 19%, transparent 19.2%),
      linear-gradient(125deg, #0b2536 0%, #153e51 62%, #0d6272 100%);
    border-radius: 21px;
    color: #ffffff;
    margin-top: 34px;
    overflow: hidden;
    padding: 36px;
  }

  #rk-heatplan-guide .rk-heatplan-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 1000px;
  }

  #rk-heatplan-guide .rk-heatplan-cta p {
    color: #cee0e6;
    margin: 14px 0 0;
    max-width: 1000px;
  }

  #rk-heatplan-guide .rk-heatplan-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    box-shadow: 0 12px 25px rgba(255, 104, 70, 0.24);
    color: #ffffff;
    display: inline-block;
    font-weight: 900;
    margin-top: 22px;
    padding: 14px 20px;
    text-decoration: none;
  }

  #rk-heatplan-guide .rk-heatplan-cta-button:hover,
  #rk-heatplan-guide .rk-heatplan-cta-button:focus-visible {
    background: #ffffff;
    color: var(--rk-orange-dark);
  }

  #rk-heatplan-guide .rk-heatplan-link-disclosure {
    color: #a9c4ce;
    display: block;
    font-size: 0.75rem;
    margin-top: 12px;
  }

  #rk-heatplan-guide .rk-heatplan-final {
    background: linear-gradient(180deg, #f4fafb 0%, #ffffff 100%);
  }

  #rk-heatplan-guide .rk-heatplan-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-heatplan-guide .rk-heatplan-source-card {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 15px;
    padding: 20px;
  }

  #rk-heatplan-guide .rk-heatplan-source-card a {
    color: var(--rk-cyan-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #rk-heatplan-guide .rk-heatplan-source-card p {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-responsibility {
    background: #fff0eb;
    border-left: 6px solid var(--rk-orange);
    border-radius: 14px;
    color: #613427;
    margin-top: 26px;
    padding: 19px 22px;
  }

  #rk-heatplan-guide .rk-heatplan-responsibility p {
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-faq {
    display: grid;
    gap: 12px;
    margin-top: 30px;
  }

  #rk-heatplan-guide .rk-heatplan-faq details {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-heatplan-guide .rk-heatplan-faq summary {
    color: var(--rk-ink);
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    padding: 19px 52px 19px 20px;
    position: relative;
  }

  #rk-heatplan-guide .rk-heatplan-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-heatplan-guide .rk-heatplan-faq summary::after {
    color: var(--rk-cyan-dark);
    content: "+";
    font-size: 1.55rem;
    font-weight: 700;
    position: absolute;
    right: 20px;
    top: 12px;
  }

  #rk-heatplan-guide .rk-heatplan-faq details[open] summary::after {
    content: "−";
  }

  #rk-heatplan-guide .rk-heatplan-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 18px 20px;
  }

  #rk-heatplan-guide .rk-heatplan-faq-answer p {
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-author {
    background: #eef6f8;
    border-top: 1px solid var(--rk-line);
    padding: 64px 58px;
  }

  #rk-heatplan-guide .rk-heatplan-author-layout {
    background: #ffffff;
    border: 1px solid #cbdde5;
    border-radius: 21px;
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    overflow: hidden;
  }

  #rk-heatplan-guide .rk-heatplan-author-side {
    align-items: center;
    background: var(--rk-navy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 35px 25px;
    text-align: center;
  }

  #rk-heatplan-guide .rk-heatplan-author-photo {
    background: #ffffff;
    border: 6px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    overflow: hidden;
    width: 158px;
  }

  #rk-heatplan-guide .rk-heatplan-author-name {
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 20px;
  }

  #rk-heatplan-guide .rk-heatplan-author-role {
    color: #bcd2db;
    font-size: 0.82rem;
    margin: 8px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-author-social {
    display: flex;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-heatplan-guide .rk-heatplan-author-social a {
    align-items: center;
    border: 1px solid #497185;
    border-radius: 50%;
    color: #d8e9ee;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    text-decoration: none;
    width: 42px;
  }

  #rk-heatplan-guide .rk-heatplan-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-heatplan-guide .rk-heatplan-author-main {
    padding: 37px;
  }

  #rk-heatplan-guide .rk-heatplan-author-title {
    font-size: clamp(1.85rem, 3.5vw, 3rem);
  }

  #rk-heatplan-guide .rk-heatplan-author-quote {
    background: #f7fbfc;
    border: 1px solid #cfe0e7;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-ink);
    font-size: 1.04rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.7;
    margin-top: 24px;
    padding: 20px 22px;
  }

  #rk-heatplan-guide .rk-heatplan-author-main > p {
    color: var(--rk-copy);
    margin: 18px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-author-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-heatplan-guide .rk-heatplan-author-fact {
    background: #eef7f9;
    border: 1px solid #d2e4e9;
    border-radius: 13px;
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 15px;
  }

  #rk-heatplan-guide .rk-heatplan-author-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    letter-spacing: 0.06em;
    margin-bottom: 5px;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  /* Modułowa mapa procesu projektowego */
  #rk-heatplan-guide .rk-heatplan-process-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 31px;
  }

  #rk-heatplan-guide .rk-heatplan-process-button {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    color: var(--rk-ink);
    cursor: pointer;
    min-height: 148px;
    padding: 21px;
    text-align: left;
  }

  #rk-heatplan-guide .rk-heatplan-process-button:hover,
  #rk-heatplan-guide .rk-heatplan-process-button[aria-selected="true"] {
    background: var(--rk-navy);
    border-color: var(--rk-navy);
    color: #ffffff;
  }

  #rk-heatplan-guide .rk-heatplan-process-button span {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 9px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 900;
    height: 34px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 34px;
    padding: 0 9px;
  }

  #rk-heatplan-guide .rk-heatplan-process-button strong {
    display: block;
    font-size: 1rem;
    line-height: 1.3;
  }

  #rk-heatplan-guide .rk-heatplan-process-button small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.78rem;
    line-height: 1.5;
    margin-top: 7px;
  }

  #rk-heatplan-guide .rk-heatplan-process-button:hover small,
  #rk-heatplan-guide .rk-heatplan-process-button[aria-selected="true"] small {
    color: #bed3dc;
  }

  #rk-heatplan-guide .rk-heatplan-process-panel {
    background: var(--rk-navy);
    border-radius: 18px;
    color: #ffffff;
    margin-top: 17px;
    padding: 27px;
  }

  #rk-heatplan-guide .rk-heatplan-process-panel h3 {
    color: #ffffff;
    font-size: 1.45rem;
    line-height: 1.25;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-process-panel > p {
    color: #bed3dc;
    margin: 9px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-process-facts {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-heatplan-guide .rk-heatplan-process-fact {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 12px;
    padding: 16px;
  }

  #rk-heatplan-guide .rk-heatplan-process-fact strong {
    color: #70e7ef;
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.07em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-process-fact span {
    color: #ffffff;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  /* Analizator kompletności projektu */
  #rk-heatplan-guide .rk-heatplan-analyzer {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 24px;
    margin-top: 32px;
    overflow: hidden;
  }

  #rk-heatplan-guide .rk-heatplan-analyzer-head {
    border-bottom: 1px solid #315a70;
    padding: 29px;
  }

  #rk-heatplan-guide .rk-heatplan-analyzer-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-analyzer-head p {
    color: #bad3dc;
    margin: 10px 0 0;
    max-width: 1020px;
  }

  #rk-heatplan-guide .rk-heatplan-mode-tabs {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 22px;
  }

  #rk-heatplan-guide .rk-heatplan-mode-tab {
    background: #173e51;
    border: 1px solid #416b7f;
    border-radius: 12px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    min-height: 51px;
    padding: 10px 14px;
  }

  #rk-heatplan-guide .rk-heatplan-mode-tab[aria-selected="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #082b3b;
  }

  #rk-heatplan-guide .rk-heatplan-analyzer-body {
    padding: 28px;
  }

  #rk-heatplan-guide .rk-heatplan-context-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-heatplan-guide .rk-heatplan-context-field span {
    color: #eaf6f8;
    display: block;
    font-size: 0.76rem;
    font-weight: 900;
    margin-bottom: 7px;
  }

  #rk-heatplan-guide .rk-heatplan-context-field select {
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 49px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-heatplan-guide .rk-heatplan-audit-stage {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 17px;
    margin-top: 18px;
    padding: 22px;
  }

  #rk-heatplan-guide .rk-heatplan-stage-head {
    align-items: flex-start;
    display: flex;
    gap: 13px;
  }

  #rk-heatplan-guide .rk-heatplan-stage-number {
    align-items: center;
    background: var(--rk-cyan);
    border-radius: 10px;
    color: #082b3b;
    display: inline-flex;
    flex: 0 0 38px;
    font-weight: 900;
    height: 38px;
    justify-content: center;
  }

  #rk-heatplan-guide .rk-heatplan-stage-head h4 {
    color: #ffffff;
    font-size: 1.12rem;
    line-height: 1.3;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-stage-head p {
    color: #abc8d3;
    font-size: 0.83rem;
    margin: 4px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-check-grid {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 18px;
  }

  #rk-heatplan-guide .rk-heatplan-check {
    cursor: pointer;
    display: block;
    position: relative;
  }

  #rk-heatplan-guide .rk-heatplan-check input {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  #rk-heatplan-guide .rk-heatplan-check-inner {
    align-items: flex-start;
    background: #102f42;
    border: 1px solid #41677a;
    border-radius: 12px;
    color: #dcebef;
    display: flex;
    gap: 11px;
    min-height: 77px;
    padding: 14px;
  }

  #rk-heatplan-guide .rk-heatplan-check-mark {
    align-items: center;
    border: 2px solid #7394a3;
    border-radius: 6px;
    color: transparent;
    display: inline-flex;
    flex: 0 0 24px;
    font-size: 0.78rem;
    font-weight: 900;
    height: 24px;
    justify-content: center;
    margin-top: 1px;
  }

  #rk-heatplan-guide .rk-heatplan-check-copy strong {
    color: #ffffff;
    display: block;
    font-size: 0.86rem;
    line-height: 1.35;
  }

  #rk-heatplan-guide .rk-heatplan-check-copy small {
    color: #a9c3cd;
    display: block;
    font-size: 0.73rem;
    line-height: 1.45;
    margin-top: 4px;
  }

  #rk-heatplan-guide .rk-heatplan-check input:checked + .rk-heatplan-check-inner {
    background: rgba(47, 205, 161, 0.11);
    border-color: #42c9a5;
  }

  #rk-heatplan-guide .rk-heatplan-check input:checked + .rk-heatplan-check-inner .rk-heatplan-check-mark {
    background: var(--rk-green);
    border-color: var(--rk-green);
    color: #082f27;
  }

  #rk-heatplan-guide .rk-heatplan-check input:focus-visible + .rk-heatplan-check-inner {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 2px;
  }

  #rk-heatplan-guide .rk-heatplan-analyzer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 21px;
  }

  #rk-heatplan-guide .rk-heatplan-audit-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-yellow);
    border-radius: 17px;
    margin-top: 23px;
    padding: 24px;
  }

  #rk-heatplan-guide .rk-heatplan-audit-result.is-ready {
    border-left-color: var(--rk-green);
  }

  #rk-heatplan-guide .rk-heatplan-audit-result.is-stop {
    border-left-color: var(--rk-orange);
  }

  #rk-heatplan-guide .rk-heatplan-audit-status {
    color: var(--rk-ink);
    font-size: clamp(1.3rem, 2.6vw, 2rem);
    font-weight: 900;
    line-height: 1.25;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-audit-intro {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-progress {
    background: #e6eef1;
    border-radius: 999px;
    height: 12px;
    margin-top: 18px;
    overflow: hidden;
  }

  #rk-heatplan-guide .rk-heatplan-progress-fill {
    background: linear-gradient(90deg, var(--rk-cyan-dark), var(--rk-cyan));
    border-radius: inherit;
    height: 100%;
    width: 0;
  }

  #rk-heatplan-guide .rk-heatplan-progress-label {
    color: var(--rk-muted);
    font-size: 0.75rem;
    font-weight: 800;
    margin: 7px 0 0;
  }

  #rk-heatplan-guide .rk-heatplan-audit-columns {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-heatplan-guide .rk-heatplan-audit-column {
    background: #f4f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-heatplan-guide .rk-heatplan-audit-column h4 {
    font-size: 0.78rem;
    letter-spacing: 0.05em;
    margin: 0 0 10px;
    text-transform: uppercase;
  }

  #rk-heatplan-guide .rk-heatplan-audit-column.is-ok h4 { color: var(--rk-green-dark); }
  #rk-heatplan-guide .rk-heatplan-audit-column.is-missing h4 { color: #8b650f; }
  #rk-heatplan-guide .rk-heatplan-audit-column.is-critical h4 { color: #a53d2e; }

  #rk-heatplan-guide .rk-heatplan-audit-column ul {
    color: var(--rk-copy);
    font-size: 0.83rem;
    margin: 0;
    padding-left: 18px;
  }

  #rk-heatplan-guide .rk-heatplan-audit-column li + li {
    margin-top: 7px;
  }

  #rk-heatplan-guide .rk-heatplan-brief {
    background: #edf7f9;
    border: 1px solid #c6e0e6;
    border-radius: 13px;
    margin-top: 17px;
    padding: 17px;
  }

  #rk-heatplan-guide .rk-heatplan-brief h4 {
    color: var(--rk-ink);
    font-size: 0.92rem;
    margin: 0;
  }

  #rk-heatplan-guide .rk-heatplan-brief-output {
    color: var(--rk-copy);
    font-size: 0.82rem;
    line-height: 1.6;
    margin: 10px 0 0;
    white-space: pre-line;
  }

  #rk-heatplan-guide .rk-heatplan-copy-confirmation {
    color: var(--rk-green-dark);
    display: inline-block;
    font-size: 0.77rem;
    font-weight: 900;
    margin-left: 10px;
  }

  #rk-heatplan-guide .rk-heatplan-analyzer-disclaimer {
    color: #8daab6;
    font-size: 0.75rem;
    line-height: 1.55;
    margin: 16px 0 0;
  }

  @media (max-width: 1050px) {
    #rk-heatplan-guide .rk-heatplan-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-heatplan-guide .rk-heatplan-result-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-heatplan-guide .rk-heatplan-scenario-controls {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-heatplan-guide .rk-heatplan-audit-columns,
    #rk-heatplan-guide .rk-heatplan-process-facts {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 860px) {
    #rk-heatplan-guide .rk-heatplan-hero,
    #rk-heatplan-guide .rk-heatplan-section,
    #rk-heatplan-guide .rk-heatplan-author {
      padding-left: 28px;
      padding-right: 28px;
    }

    #rk-heatplan-guide .rk-heatplan-hero::before {
      left: 28px;
    }

    #rk-heatplan-guide .rk-heatplan-shortcuts {
      padding-left: 22px;
      padding-right: 22px;
    }

    #rk-heatplan-guide .rk-heatplan-tool-grid {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heatplan-guide .rk-heatplan-process-grid,
    #rk-heatplan-guide .rk-heatplan-context-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-heatplan-guide .rk-heatplan-author-layout {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heatplan-guide .rk-heatplan-author-side {
      padding-bottom: 28px;
    }
  }

  @media (max-width: 660px) {
    #rk-heatplan-guide .rk-heatplan-hero {
      padding-bottom: 42px;
      padding-top: 52px;
    }

    #rk-heatplan-guide .rk-heatplan-section,
    #rk-heatplan-guide .rk-heatplan-author {
      padding-bottom: 46px;
      padding-top: 46px;
    }

    #rk-heatplan-guide .rk-heatplan-grid-2,
    #rk-heatplan-guide .rk-heatplan-grid-3,
    #rk-heatplan-guide .rk-heatplan-grid-4,
    #rk-heatplan-guide .rk-heatplan-source-grid,
    #rk-heatplan-guide .rk-heatplan-author-facts,
    #rk-heatplan-guide .rk-heatplan-two-fields,
    #rk-heatplan-guide .rk-heatplan-result-grid,
    #rk-heatplan-guide .rk-heatplan-result-scope,
    #rk-heatplan-guide .rk-heatplan-scenario-controls {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heatplan-guide .rk-heatplan-process-grid,
    #rk-heatplan-guide .rk-heatplan-context-grid,
    #rk-heatplan-guide .rk-heatplan-check-grid,
    #rk-heatplan-guide .rk-heatplan-mode-tabs,
    #rk-heatplan-guide .rk-heatplan-audit-columns,
    #rk-heatplan-guide .rk-heatplan-process-facts {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heatplan-guide .rk-heatplan-locator,
    #rk-heatplan-guide .rk-heatplan-cta {
      border-radius: 17px;
    }

    #rk-heatplan-guide .rk-heatplan-locator-head,
    #rk-heatplan-guide .rk-heatplan-tool-grid,
    #rk-heatplan-guide .rk-heatplan-scenario,
    #rk-heatplan-guide .rk-heatplan-cta {
      padding: 20px;
    }

    #rk-heatplan-guide .rk-heatplan-controls,
    #rk-heatplan-guide .rk-heatplan-output,
    #rk-heatplan-guide .rk-heatplan-chart-wrap {
      padding: 18px;
    }

    #rk-heatplan-guide .rk-heatplan-tool-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heatplan-guide .rk-heatplan-button,
    #rk-heatplan-guide .rk-heatplan-button-secondary,
    #rk-heatplan-guide .rk-heatplan-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-heatplan-guide .rk-heatplan-analyzer-head,
    #rk-heatplan-guide .rk-heatplan-analyzer-body,
    #rk-heatplan-guide .rk-heatplan-process-panel {
      padding: 20px;
    }

    #rk-heatplan-guide .rk-heatplan-analyzer-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heatplan-guide .rk-heatplan-chart {
      display: block;
      min-height: 0;
    }

    #rk-heatplan-guide .rk-heatplan-bar-item {
      display: grid;
      gap: 8px;
      grid-template-columns: 66px minmax(0, 1fr) 88px;
      margin-top: 13px;
      text-align: left;
    }

    #rk-heatplan-guide .rk-heatplan-bar-value {
      align-self: center;
      margin: 0;
      order: 3;
      text-align: right;
    }

    #rk-heatplan-guide .rk-heatplan-bar-track {
      align-items: stretch;
      align-self: center;
      height: 25px;
      order: 2;
    }

    #rk-heatplan-guide .rk-heatplan-bar-fill {
      border-radius: 4px;
      height: 100%;
      min-height: 0;
      width: var(--rk-mobile-width, 50%);
    }

    #rk-heatplan-guide .rk-heatplan-bar-label {
      align-self: center;
      margin: 0;
      order: 1;
    }

    #rk-heatplan-guide .rk-heatplan-bar-label small {
      display: none;
    }

    #rk-heatplan-guide .rk-heatplan-table-wrap {
      overflow: visible;
    }

    #rk-heatplan-guide table,
    #rk-heatplan-guide thead,
    #rk-heatplan-guide tbody,
    #rk-heatplan-guide tr,
    #rk-heatplan-guide th,
    #rk-heatplan-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }

    #rk-heatplan-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }

    #rk-heatplan-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-heatplan-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }

    #rk-heatplan-guide td,
    #rk-heatplan-guide tbody tr td:first-child,
    #rk-heatplan-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }

    #rk-heatplan-guide td:last-child {
      border-bottom: 0;
    }

    #rk-heatplan-guide td::before {
      color: var(--rk-cyan-dark);
      content: attr(data-label);
      display: block;
      font-size: 0.69rem;
      font-weight: 900;
      letter-spacing: 0.07em;
      margin-bottom: 4px;
      text-transform: uppercase;
    }

    #rk-heatplan-guide .rk-heatplan-author-main {
      padding: 25px 20px;
    }
  }

  @media (max-width: 430px) {
    #rk-heatplan-guide .rk-heatplan-hero,
    #rk-heatplan-guide .rk-heatplan-section,
    #rk-heatplan-guide .rk-heatplan-author {
      padding-left: 18px;
      padding-right: 18px;
    }

    #rk-heatplan-guide .rk-heatplan-hero::before {
      left: 18px;
    }

    #rk-heatplan-guide .rk-heatplan-shortcuts {
      padding-left: 14px;
      padding-right: 14px;
    }

    #rk-heatplan-guide .rk-heatplan-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      text-align: center;
    }

    #rk-heatplan-guide .rk-heatplan-hero-title {
      font-size: 2.2rem;
    }

    #rk-heatplan-guide .rk-heatplan-section-title {
      font-size: 1.9rem;
    }

    #rk-heatplan-guide .rk-heatplan-bar-item {
      grid-template-columns: 54px minmax(0, 1fr) 74px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-heatplan-guide *,
    #rk-heatplan-guide *::before,
    #rk-heatplan-guide *::after {
      scroll-behavior: auto;
      transition-duration: 0.01ms;
    }
  }
</style>

<article id="rk-heatplan-guide" aria-labelledby="rk-heatplan-visual-title">
  <div class="rk-heatplan-shell">
    <header class="rk-heatplan-hero">
      <span class="rk-heatplan-kicker">OZC · odbiorniki · hydraulika · źródło ciepła</span>
      <div class="rk-heatplan-hero-title" id="rk-heatplan-visual-title">Projekt instalacji grzewczej domu: <span>od danych budynku do nastaw wykonawczych</span></div>
      <p class="rk-heatplan-hero-lead">Dobry projekt nie kończy się na jednej mocy w kW. Łączy obciążenie każdego pomieszczenia z doborem podłogówki lub grzejników, temperaturami wody, przepływami, oporami, źródłem ciepła, automatyką i dokumentacją potrzebną wykonawcy.</p>
      <div class="rk-heatplan-hero-tags" aria-label="Zakres poradnika">
        <span>OZC pomieszczeń</span>
        <span>podłogówka i grzejniki</span>
        <span>przepływy i opory</span>
        <span>źródło i automatyka</span>
        <span>koszt i zakres projektu</span>
      </div>
      <div class="rk-heatplan-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 30 minut</strong></span>
        <span>Aktualizacja techniczna: <strong>16 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-heatplan-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-heatplan-shortcuts-label">Na skróty</span>
      <a href="#rk-heatplan-answer">Szybka odpowiedź</a>
      <a href="#rk-heatplan-definitions">Rodzaje projektu</a>
      <a href="#rk-heatplan-results">Cztery wyniki</a>
      <a href="#rk-heatplan-roadmap">Mapa procesu</a>
      <a href="#rk-heatplan-analyzer-section">Analizator projektu</a>
      <a href="#rk-heatplan-data">Dane wejściowe</a>
      <a href="#rk-heatplan-ozc">OZC pomieszczeń</a>
      <a href="#rk-heatplan-emitters">Dobór odbiorników</a>
      <a href="#rk-heatplan-floor">Projekt podłogówki</a>
      <a href="#rk-heatplan-hydraulics">Hydraulika</a>
      <a href="#rk-heatplan-source">Źródło ciepła</a>
      <a href="#rk-heatplan-controls-section">Automatyka</a>
      <a href="#rk-heatplan-documents">Gotowa dokumentacja</a>
      <a href="#rk-heatplan-costs">Koszt projektu</a>
      <a href="#rk-heatplan-timing">Kiedy zamówić</a>
      <a href="#rk-heatplan-offers">Porównanie ofert</a>
      <a href="#rk-heatplan-changes">Zmiany w projekcie</a>
      <a href="#rk-heatplan-errors">Najczęstsze błędy</a>
      <a href="#rk-heatplan-final">Podsumowanie</a>
      <a href="#rk-heatplan-sources">Źródła</a>
      <a href="#rk-heatplan-faq">FAQ</a>
      <a href="#rk-heatplan-author">Autor</a>
    </nav>

    

    <section class="rk-heatplan-section" id="rk-heatplan-answer">
      <span class="rk-heatplan-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-heatplan-section-title">Co powinien zawierać projekt instalacji grzewczej domu?</h2>
      <p class="rk-heatplan-lead"><strong>Projekt powinien zamieniać dane konkretnego budynku w jednoznaczne parametry wykonawcze.</strong> Sama moc całego domu, rzut z narysowanymi rurami albo katalog wybranego urządzenia nie są jeszcze kompletnym projektem instalacji.</p>
      <div class="rk-heatplan-answer">
        <strong>Minimalny logiczny ciąg to: dane budynku → obciążenie cieplne pomieszczeń → dobór odbiorników → obliczenia hydrauliczne → dobór źródła i sterowania → dokumentacja wykonawcza.</strong>
        <p>Każdy kolejny etap korzysta z wyniku poprzedniego. Jeżeli brakuje obciążenia konkretnej łazienki, nie da się odpowiedzialnie potwierdzić rozstawu rur. Jeżeli nie znamy przepływów i oporów, nie da się dobrać pompy tylko z powierzchni domu.</p>
      </div>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-icon">W</span><h3>Moc pomieszczeń</h3><p>Projekt pokazuje straty w watach dla każdego pomieszczenia, a nie wyłącznie wskaźnik W/m² przyjęty dla całego domu.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-icon">V̇</span><h3>Hydraulika</h3><p>Określa przepływy, długości, straty ciśnienia, drogę krytyczną, nastawy oraz wymagany punkt pracy pompy.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-icon">PDF</span><h3>Instrukcja wykonawcza</h3><p>Rysunki, zestawienia i schemat muszą pozwalać wykonawcy zbudować układ bez uzupełniania założeń na budowie.</p></article>
      </div>
      <p class="rk-heatplan-copy">Jeżeli chcesz zobaczyć dokument od strony praktycznej, osobny poradnik pokazuje, <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>. Tutaj rozszerzamy temat na cały proces projektowania instalacji grzewczej domu.</p>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-definitions">
      <span class="rk-heatplan-eyebrow">Najpierw ustal zakres dokumentu</span>
      <h2 class="rk-heatplan-section-title">Projekt budowlany, techniczny i wykonawczy — to nie są synonimy</h2>
      <p class="rk-heatplan-lead">Inwestor może mieć dokumentację wystarczającą do formalnego procesu budowlanego, a jednocześnie nie mieć danych potrzebnych ekipie do ułożenia pętli, ustawienia przepływów i uruchomienia instalacji.</p>
      <div class="rk-heatplan-table-wrap">
        <table>
          <thead><tr><th>Rodzaj opracowania</th><th>Główne zadanie</th><th>Typowa zawartość</th><th>Czego nie należy zakładać</th></tr></thead>
          <tbody>
            <tr><td data-label="Rodzaj"><strong>Projekt budowlany</strong></td><td data-label="Zadanie">Wykazanie przyjętych rozwiązań w zakresie wymaganym dla procesu budowlanego.</td><td data-label="Zawartość">Rozwiązania instalacyjne odpowiednie do zakresu i stopnia skomplikowania obiektu.</td><td data-label="Nie zakładaj">Że zawsze zawiera rozstaw każdej pętli, nastawy rotametrów i kompletną hydraulikę wykonawczą.</td></tr>
            <tr><td data-label="Rodzaj"><strong>Projekt techniczny</strong></td><td data-label="Zadanie">Uszczegółowienie rozwiązań technicznych oraz spełnienia wymagań dla budynku.</td><td data-label="Zawartość">Obliczenia, dobór podstawowych rozwiązań, schematy i opis techniczny w zakresie inwestycji.</td><td data-label="Nie zakładaj">Że każda dokumentacja jest rozwinięta do identycznego poziomu wykonawczego.</td></tr>
            <tr><td data-label="Rodzaj"><strong>Projekt wykonawczy instalacji</strong></td><td data-label="Zadanie">Przekazanie ekipie danych potrzebnych do zamówienia, montażu, regulacji i odbioru.</td><td data-label="Zawartość">Trasy, średnice, odbiorniki, pętle, przepływy, opory, nastawy, schemat i zestawienia.</td><td data-label="Nie zakładaj">Że rysunek bez obliczeń potwierdza moc i hydraulikę układu.</td></tr>
            <tr><td data-label="Rodzaj"><strong>OZC</strong></td><td data-label="Zadanie">Określenie projektowego obciążenia cieplnego budynku i pomieszczeń.</td><td data-label="Zawartość">Warunki obliczeń, straty przez przenikanie i wentylację oraz wyniki w W lub kW.</td><td data-label="Nie zakładaj">Że samo OZC wyznacza długości pętli, nastawy i kompletny dobór źródła.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-heatplan-note"><p><strong>Przed podpisaniem umowy poproś o spis elementów przekazywanej dokumentacji.</strong> Nazwa „projekt instalacji” bez opisanego zakresu może oznaczać zarówno kompletne opracowanie, jak i kilka orientacyjnych rysunków.</p></div>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-results">
      <span class="rk-heatplan-eyebrow">Jednostka zdradza przeznaczenie wyniku</span>
      <h2 class="rk-heatplan-section-title">Moc, energia, sprawność i koszt — cztery różne odpowiedzi</h2>
      <p class="rk-heatplan-lead">Najczęstszy błąd polega na zamiennym używaniu kW, kWh/rok, COP lub SCOP i zł/rok. Każda z tych wielkości odpowiada na inne pytanie i wymaga innych danych.</p>
      <div class="rk-heatplan-grid-4">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">W / kW</span><h3>Moc projektowa</h3><p>Ile ciepła trzeba dostarczyć w przyjętych warunkach obliczeniowych. Służy między innymi do wymiarowania odbiorników i oceny źródła.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">kWh/rok</span><h3>Energia roczna</h3><p>Ile energii użytkowej potrzeba w rozpatrywanym okresie. Uwzględnia zmienność warunków, harmonogram i zyski cieplne.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">COP / SCOP</span><h3>Efektywność źródła</h3><p>COP opisuje punkt pracy, a SCOP wynik sezonowy. Zależą od urządzenia, temperatur źródła dolnego i górnego oraz sposobu eksploatacji.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">zł/rok</span><h3>Koszt eksploatacji</h3><p>Wymaga energii kupionej, taryfy, kosztów stałych, serwisu i jawnych cen. Nie wynika z prostego mnożenia mocy przez czas sezonu.</p></article>
      </div>
      <p class="rk-heatplan-copy">Rozróżnienie mocy i energii rozwija poradnik o <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilansie cieplnym budynku</a>, a znaczenie wyniku w watach wyjaśnia osobny materiał o <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowym obciążeniu cieplnym OZC</a>.</p>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-roadmap">
      <span class="rk-heatplan-eyebrow">Modułowa mapa zamiast dekoracyjnego schematu</span>
      <h2 class="rk-heatplan-section-title">Od danych budynku do gotowych nastaw instalacji</h2>
      <p class="rk-heatplan-lead">Wybierz etap. Moduł pokaże jego dane wejściowe, wynik oraz błąd, który powstaje, gdy próbuje się go pominąć.</p>
      <div class="rk-heatplan-process-grid" role="tablist" aria-label="Etapy projektu instalacji grzewczej">
        <button class="rk-heatplan-process-button" type="button" role="tab" aria-selected="true" data-rk-process="inputs"><span>01</span><strong>Dane budynku</strong><small>Geometria, przegrody, wentylacja i sposób użytkowania.</small></button>
        <button class="rk-heatplan-process-button" type="button" role="tab" aria-selected="false" data-rk-process="load"><span>02</span><strong>OZC pomieszczeń</strong><small>Projektowe obciążenie w watach z jawnymi założeniami.</small></button>
        <button class="rk-heatplan-process-button" type="button" role="tab" aria-selected="false" data-rk-process="emitters"><span>03</span><strong>Odbiorniki ciepła</strong><small>Podłoga, grzejniki lub układ mieszany dopasowany do strat.</small></button>
        <button class="rk-heatplan-process-button" type="button" role="tab" aria-selected="false" data-rk-process="hydraulics"><span>04</span><strong>Hydraulika</strong><small>Przepływy, opory, średnice i punkt pracy pompy.</small></button>
        <button class="rk-heatplan-process-button" type="button" role="tab" aria-selected="false" data-rk-process="source"><span>05</span><strong>Źródło i sterowanie</strong><small>Moc dostępna, modulacja, krzywa grzewcza i zabezpieczenia.</small></button>
        <button class="rk-heatplan-process-button" type="button" role="tab" aria-selected="false" data-rk-process="docs"><span>06</span><strong>Dokumentacja i odbiór</strong><small>Rysunki, zestawienia, nastawy i procedura uruchomienia.</small></button>
      </div>
      <div class="rk-heatplan-process-panel" role="tabpanel" aria-live="polite">
        <h3 id="rk-heatplan-process-title">Dane budynku</h3>
        <p id="rk-heatplan-process-summary">Projekt zaczyna się od informacji o rzeczywistym budynku, a nie od wyboru rozstawu rur lub mocy urządzenia.</p>
        <div class="rk-heatplan-process-facts">
          <div class="rk-heatplan-process-fact"><strong>Dane wejściowe</strong><span id="rk-heatplan-process-input">Rzuty, przekroje, lokalizacja, warstwy przegród, okna, wentylacja, temperatury pomieszczeń i okładziny.</span></div>
          <div class="rk-heatplan-process-fact"><strong>Wynik etapu</strong><span id="rk-heatplan-process-output">Spójny model budynku z opisanymi strefami cieplnymi i założeniami do obliczeń.</span></div>
          <div class="rk-heatplan-process-fact"><strong>Ryzyko pominięcia</strong><span id="rk-heatplan-process-risk">Wynik może opisywać inny budynek niż ten, który faktycznie powstanie.</span></div>
        </div>
      </div>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-dark" id="rk-heatplan-analyzer-section">
      <span class="rk-heatplan-eyebrow">Narzędzie główne poradnika</span>
      <h2 class="rk-heatplan-section-title">Analizator kompletności projektu instalacji grzewczej</h2>
      <p class="rk-heatplan-lead">Możesz przygotować zakres przyszłego zlecenia albo sprawdzić dokumentację, którą już otrzymałeś. Zaznacz wyłącznie elementy rzeczywiście opisane lub obliczone — nie te, które wykonawca obiecał ustnie.</p>

      <div class="rk-heatplan-analyzer" id="rk-heatplan-analyzer">
        <div class="rk-heatplan-analyzer-head">
          <h3>Sprawdź ciąg od danych do uruchomienia</h3>
          <p>Narzędzie nie wykonuje OZC i nie zatwierdza dokumentacji. Porządkuje zakres, wykrywa brakujące ogniwa oraz tworzy listę pytań do projektanta lub wykonawcy.</p>
          <div class="rk-heatplan-mode-tabs" role="tablist" aria-label="Tryb analizatora">
            <button class="rk-heatplan-mode-tab" type="button" role="tab" aria-selected="true" data-rk-mode="prepare">Przygotowuję zlecenie</button>
            <button class="rk-heatplan-mode-tab" type="button" role="tab" aria-selected="false" data-rk-mode="audit">Sprawdzam projekt lub ofertę</button>
          </div>
        </div>

        <div class="rk-heatplan-analyzer-body">
          <div class="rk-heatplan-context-grid">
            <label class="rk-heatplan-context-field"><span>Etap inwestycji</span><select id="rk-heatplan-stage"><option value="new">Nowy dom — przed instalacjami</option><option value="shell">Stan surowy / instalacje w toku</option><option value="renovation">Modernizacja istniejącego domu</option><option value="source-change">Wymiana samego źródła ciepła</option></select></label>
            <label class="rk-heatplan-context-field"><span>Planowane odbiorniki</span><select id="rk-heatplan-system"><option value="floor">Ogrzewanie podłogowe</option><option value="radiators">Grzejniki</option><option value="mixed">Układ mieszany</option><option value="unknown">Jeszcze nieustalone</option></select></label>
            <label class="rk-heatplan-context-field"><span>Źródło ciepła</span><select id="rk-heatplan-source-select"><option value="heat-pump">Pompa ciepła</option><option value="gas">Kocioł gazowy</option><option value="pellet">Kocioł na pellet / paliwo stałe</option><option value="electric">Źródło elektryczne</option><option value="unknown">Jeszcze nieustalone</option></select></label>
            <label class="rk-heatplan-context-field"><span>Wentylacja</span><select id="rk-heatplan-ventilation"><option value="mechanical">Mechaniczna z odzyskiem ciepła</option><option value="gravity">Grawitacyjna</option><option value="mixed">Hybrydowa / inna</option><option value="unknown">Brak potwierdzonych danych</option></select></label>
          </div>

          <div class="rk-heatplan-audit-stage">
            <div class="rk-heatplan-stage-head"><span class="rk-heatplan-stage-number">1</span><div><h4>Dane wejściowe budynku</h4><p>Zaznacz materiały przekazane projektantowi albo jednoznacznie przywołane w dokumentacji.</p></div></div>
            <div class="rk-heatplan-check-grid">
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="true" data-label="Aktualne rzuty i przekroje z wymiarami"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Aktualne rzuty i przekroje</strong><small>Wymiary, kondygnacje, wysokości i przeznaczenie pomieszczeń.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="true" data-label="Lokalizacja i projektowa temperatura zewnętrzna"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Lokalizacja i warunki klimatyczne</strong><small>Miejscowość, strefa oraz temperatura przyjęta do obliczeń.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="true" data-label="Warstwy przegród i współczynniki U"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Warstwy przegród</strong><small>Ściany, dach, podłoga, stropy oraz potwierdzone parametry materiałów.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="true" data-label="Zestawienie okien, drzwi i przeszkleń"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Okna i drzwi</strong><small>Wymiary, współczynniki U, orientacja oraz duże przeszklenia.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="true" data-label="Rodzaj i strumienie wentylacji"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Wentylacja</strong><small>Rodzaj systemu, strumienie powietrza i dane odzysku ciepła.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="false" data-label="Temperatury projektowe pomieszczeń"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Temperatury pomieszczeń</strong><small>Osobne założenia dla salonu, łazienek, sypialni, garażu i zaplecza.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="false" data-label="Okładziny podłogowe i ich opory cieplne"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Okładziny podłogowe</strong><small>Płytki, winyl, panele lub drewno wraz z podkładem i oporem cieplnym.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="input" data-critical="false" data-label="Stała zabudowa i powierzchnie wyłączone"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Stała zabudowa</strong><small>Kuchnia, szafy, wanny, kominki i inne pola wpływające na powierzchnię czynną.</small></span></span></label>
            </div>
          </div>

          <div class="rk-heatplan-audit-stage">
            <div class="rk-heatplan-stage-head"><span class="rk-heatplan-stage-number">2</span><div><h4>Obliczenia cieplne</h4><p>Jedna liczba dla domu nie zastępuje wyników potrzebnych do doboru instalacji w każdym pomieszczeniu.</p></div></div>
            <div class="rk-heatplan-check-grid">
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="calculation" data-critical="true" data-label="Projektowe obciążenie każdego pomieszczenia w W"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>OZC pomieszczenie po pomieszczeniu</strong><small>Wynik w watach dla każdej strefy ogrzewanej.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="calculation" data-critical="false" data-label="Projektowe obciążenie całego budynku"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Wynik całego budynku</strong><small>Suma określona dla jawnych warunków projektowych.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="calculation" data-critical="false" data-label="Rozdzielenie strat przez przenikanie i wentylację"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Składniki strat</strong><small>Przenikanie, wentylacja, infiltracja oraz przyjęte korekty.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="calculation" data-critical="false" data-label="Uwzględnienie gruntu, stref nieogrzewanych i mostków"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Grunt i połączenia przegród</strong><small>Podłoga na gruncie, strefy sąsiednie oraz mostki nie są traktowane jak zwykła ściana.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="calculation" data-critical="true" data-label="Tabela jawnych założeń obliczeniowych"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Jawne założenia</strong><small>Temperatury, współczynniki, strumienie i wariant budynku można zweryfikować.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="calculation" data-critical="false" data-label="Rozdzielenie mocy projektowej od energii rocznej"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Moc oddzielona od energii</strong><small>W i kW nie są mieszane z kWh/rok ani prognozą kosztów.</small></span></span></label>
            </div>
          </div>

          <div class="rk-heatplan-audit-stage">
            <div class="rk-heatplan-stage-head"><span class="rk-heatplan-stage-number">3</span><div><h4>Dobór odbiorników ciepła</h4><p>Projekt ma wykazać, czy podłoga, grzejniki albo ich połączenie pokryją obciążenie przy przyjętych temperaturach.</p></div></div>
            <div class="rk-heatplan-check-grid">
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="emitter" data-critical="true" data-label="Moc odbiorników porównana z obciążeniem pomieszczeń"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Pokrycie obciążenia</strong><small>Dla każdego pomieszczenia porównano potrzebną i dostępną moc.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="emitter" data-critical="false" data-label="Temperatury zasilania i powrotu"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Parametry wody</strong><small>Temperatura zasilania, powrotu i średnia temperatura czynnika wynikają z doboru.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="emitter" data-critical="false" data-label="Powierzchnie czynne i pola wyłączone"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Powierzchnia czynna</strong><small>Rozstaw nie jest liczony na powierzchni brutto pomieszczenia.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="emitter" data-critical="false" data-label="Ograniczenia temperatury powierzchni i okładzin"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Ograniczenia podłogi</strong><small>Uwzględniono opór wykończenia i dopuszczalną temperaturę powierzchni.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="emitter" data-critical="false" data-label="Rozstawy, strefy brzegowe i trasy pętli"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Rysunek podłogówki</strong><small>Pokazuje rozstawy, trasy, dobiegi, strefy brzegowe i oznaczenia obwodów.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="emitter" data-critical="false" data-label="Dobór grzejników dla rzeczywistych parametrów wody"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Dobór grzejników</strong><small>Jeżeli występują, moc jest skorygowana do projektowych temperatur instalacji.</small></span></span></label>
            </div>
          </div>

          <div class="rk-heatplan-audit-stage">
            <div class="rk-heatplan-stage-head"><span class="rk-heatplan-stage-number">4</span><div><h4>Hydraulika instalacji</h4><p>To etap, którego nie da się zastąpić zasadą „maksymalnie 100 m” ani samą nazwą pompy.</p></div></div>
            <div class="rk-heatplan-check-grid">
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="hydraulic" data-critical="true" data-label="Długości i wymagane przepływy wszystkich obiegów"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Długości i przepływy</strong><small>Każda pętla lub gałąź ma obliczoną długość i wymagany strumień.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="hydraulic" data-critical="true" data-label="Straty ciśnienia i droga krytyczna"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Opory i droga krytyczna</strong><small>Obliczenia obejmują rury, armaturę, rozdzielacze i najbardziej wymagającą drogę.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="hydraulic" data-critical="false" data-label="Nastawy wstępne rozdzielaczy i zaworów"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Nastawy regulacyjne</strong><small>Projekt podaje przepływy lub nastawy potrzebne do równoważenia.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="hydraulic" data-critical="true" data-label="Punkt pracy pompy obiegowej"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Punkt pracy pompy</strong><small>Dobór uwzględnia jednocześnie wymagany przepływ i wysokość podnoszenia.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="hydraulic" data-critical="false" data-label="Średnice przewodów i magistrali"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Średnice przewodów</strong><small>Wynikają z przepływów, strat ciśnienia i przyjętych ograniczeń prędkości.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="hydraulic" data-critical="false" data-label="Schemat hydrauliczny z armaturą i zabezpieczeniami"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Schemat hydrauliczny</strong><small>Pokazuje połączenia, pompy, zawory, zabezpieczenia i kierunki przepływu.</small></span></span></label>
            </div>
          </div>

          <div class="rk-heatplan-audit-stage">
            <div class="rk-heatplan-stage-head"><span class="rk-heatplan-stage-number">5</span><div><h4>Źródło ciepła i automatyka</h4><p>Obciążenie projektowe jest punktem wyjścia, a nie jedyną liczbą potrzebną do wyboru urządzenia.</p></div></div>
            <div class="rk-heatplan-check-grid">
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="source" data-critical="true" data-label="Dobór źródła oparty na obciążeniu i charakterystyce urządzenia"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Moc źródła w warunkach pracy</strong><small>Porównano zapotrzebowanie budynku z mocą dostępną urządzenia.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="source" data-critical="false" data-label="Minimalna modulacja i zachowanie w okresach przejściowych"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Minimalna modulacja</strong><small>Oceniono pracę przy częściowym obciążeniu, nie tylko w mróz projektowy.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="source" data-critical="false" data-label="CWU, źródło szczytowe i punkt biwalentny"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>CWU i źródło szczytowe</strong><small>Opisano sposób przygotowania wody i pokrycia mocy poza podstawowym zakresem urządzenia.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="source" data-critical="false" data-label="Krzywa grzewcza i strategia sterowania"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Krzywa grzewcza</strong><small>Podano ustawienia startowe oraz zależność temperatury wody od warunków zewnętrznych.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="source" data-critical="false" data-label="Logika stref, siłowników i przepływu minimalnego"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Sterowanie strefowe</strong><small>Uwzględniono wpływ zamykania obiegów na przepływ wymagany przez źródło.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="source" data-critical="false" data-label="Zabezpieczenia i pojemność instalacji"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Zabezpieczenia układu</strong><small>Naczynie, zawory, odpowietrzenie i ewentualna separacja wynikają ze schematu.</small></span></span></label>
            </div>
          </div>

          <div class="rk-heatplan-audit-stage">
            <div class="rk-heatplan-stage-head"><span class="rk-heatplan-stage-number">6</span><div><h4>Dokumentacja, odbiór i uruchomienie</h4><p>Projekt zachowuje wartość dopiero wtedy, gdy jego parametry zostaną przeniesione na budowę i sprawdzone.</p></div></div>
            <div class="rk-heatplan-check-grid">
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="document" data-critical="true" data-label="Czytelne rysunki z oznaczeniami obiegów i urządzeń"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Rysunki wykonawcze</strong><small>Skala, legenda, opisy obwodów, lokalizacje urządzeń i powiązanie z tabelami.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="document" data-critical="false" data-label="Zestawienie materiałów i parametrów"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Zestawienia</strong><small>Materiały i parametry są identyfikowalne bez narzucania niepotrzebnego producenta.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="document" data-critical="false" data-label="Procedura próby, płukania i napełnienia"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Próba i przygotowanie instalacji</strong><small>Opisano kontrolę szczelności oraz przygotowanie układu przed uruchomieniem.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="document" data-critical="true" data-label="Tabela przepływów, nastaw i parametrów uruchomieniowych"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Nastawy startowe</strong><small>Osoba uruchamiająca zna przepływy, krzywą i wartości wymagające sprawdzenia.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="document" data-critical="false" data-label="Protokół zmian i dokumentacja powykonawcza"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Zmiany i stan powykonawczy</strong><small>Odstępstwa, trasy i zdjęcia przed zakryciem zostaną zapisane.</small></span></span></label>
              <label class="rk-heatplan-check"><input type="checkbox" data-rk-check="" data-category="document" data-critical="false" data-label="Zakres odpowiedzialności projektanta, dostawcy i wykonawcy"><span class="rk-heatplan-check-inner"><span class="rk-heatplan-check-mark">✓</span><span class="rk-heatplan-check-copy"><strong>Granice odpowiedzialności</strong><small>Wiadomo, kto zatwierdza zmiany, dobiera urządzenia i odpowiada za regulację.</small></span></span></label>
            </div>
          </div>

          <div class="rk-heatplan-analyzer-actions">
            <button class="rk-heatplan-button" id="rk-heatplan-run" type="button">Przeanalizuj zakres</button>
            <button class="rk-heatplan-button-secondary" id="rk-heatplan-copy-brief" type="button">Kopiuj brief i listę braków</button>
            <button class="rk-heatplan-button-secondary" id="rk-heatplan-reset" type="button">Wyczyść odpowiedzi</button>
            <span class="rk-heatplan-copy-confirmation" id="rk-heatplan-copy-confirmation" aria-live="polite"></span>
          </div>

          <div class="rk-heatplan-audit-result" id="rk-heatplan-audit-result" aria-live="polite">
            <p class="rk-heatplan-audit-status" id="rk-heatplan-audit-status">Zaznacz elementy i uruchom analizę</p>
            <p class="rk-heatplan-audit-intro" id="rk-heatplan-audit-intro">Wynik rozdzieli elementy potwierdzone, dane do uzupełnienia i braki krytyczne.</p>
            <div class="rk-heatplan-progress" aria-hidden="true"><div class="rk-heatplan-progress-fill" id="rk-heatplan-progress-fill"></div></div>
            <p class="rk-heatplan-progress-label" id="rk-heatplan-progress-label">Kompletność zakresu: 0 z 0 ocenionych elementów</p>
            <div class="rk-heatplan-audit-columns">
              <div class="rk-heatplan-audit-column is-ok"><h4>Potwierdzone</h4><ul id="rk-heatplan-ok-list"><li>Jeszcze nie przeprowadzono analizy.</li></ul></div>
              <div class="rk-heatplan-audit-column is-missing"><h4>Do uzupełnienia</h4><ul id="rk-heatplan-missing-list"><li>Zaznacz elementy faktycznie dostępne.</li></ul></div>
              <div class="rk-heatplan-audit-column is-critical"><h4>Braki krytyczne</h4><ul id="rk-heatplan-critical-list"><li>Brak oceny nie oznacza akceptacji projektu.</li></ul></div>
            </div>
            <div class="rk-heatplan-brief">
              <h4>Brief generowany z Twoich odpowiedzi</h4>
              <p class="rk-heatplan-brief-output" id="rk-heatplan-brief-output">Po analizie pojawi się tutaj opis inwestycji i lista danych wymagających uzupełnienia.</p>
            </div>
            <p class="rk-heatplan-analyzer-disclaimer">Analizator ocenia obecność elementów, a nie poprawność obliczeń. Nie zastępuje sprawdzenia projektu, uprawnień, dokumentacji urządzeń, warunków budynku ani odbioru instalacji.</p>
          </div>
        </div>
      </div>

      <aside class="rk-heatplan-cta" aria-label="Indywidualny projekt instalacji grzewczej">
        <div class="rk-heatplan-cta-title">Analizator pokazał braki? Projekt musi teraz zamienić dane w parametry wykonawcze</div>
        <p>Lista kontrolna nie obliczy obciążenia każdego pomieszczenia, mocy podłogi, długości pętli, przepływów, oporów ani punktu pracy źródła. Te elementy trzeba połączyć na podstawie rzeczywistych rzutów i parametrów Twojego budynku.</p>
        <a class="rk-heatplan-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres indywidualnego projektu instalacji grzewczej</a>
        <small class="rk-heatplan-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-data">
      <span class="rk-heatplan-eyebrow">Jakość wyniku zaczyna się przed obliczeniami</span>
      <h2 class="rk-heatplan-section-title">Jakie dane trzeba przekazać projektantowi?</h2>
      <p class="rk-heatplan-lead">Najlepszy program obliczeniowy nie naprawi błędnych danych wejściowych. Dokumentacja powinna odpowiadać wersji domu, która rzeczywiście zostanie wykonana, a każda niepewność powinna być zapisana jako założenie do potwierdzenia.</p>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BRYŁA</span><h3>Rzuty, przekroje i lokalizacja</h3><ul class="rk-heatplan-bullets"><li>wymiary i wysokości pomieszczeń,</li><li>orientacja budynku i miejscowość,</li><li>strefy ogrzewane oraz nieogrzewane,</li><li>lokalizacja pomieszczenia technicznego.</li></ul></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">PRZEGRODY</span><h3>Warstwy i stolarka</h3><ul class="rk-heatplan-bullets"><li>ściany, dach, stropy i podłoga,</li><li>okna, drzwi i duże przeszklenia,</li><li>współczynniki U albo komplet warstw,</li><li>połączenia wpływające na mostki.</li></ul></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">UŻYTKOWANIE</span><h3>Temperatury i wentylacja</h3><ul class="rk-heatplan-bullets"><li>temperatura każdego pomieszczenia,</li><li>rodzaj i strumienie wentylacji,</li><li>odzysk ciepła oraz bilans powietrza,</li><li>pomieszczenia używane okresowo.</li></ul></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">PODŁOGA</span><h3>Wykończenie i zabudowa</h3><ul class="rk-heatplan-bullets"><li>płytki, panele, winyl lub drewno,</li><li>podkład i opór kompletnej warstwy,</li><li>stałe szafy, wyspa, wanna i kominek,</li><li>plan dylatacji i rodzaj jastrychu.</li></ul></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">INSTALACJA</span><h3>Źródło i ograniczenia</h3><ul class="rk-heatplan-bullets"><li>planowane albo istniejące źródło,</li><li>wymagania przepływu i pojemności,</li><li>lokalizacja rozdzielaczy i pionów,</li><li>inne obiegi oraz przygotowanie CWU.</li></ul></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">ZMIANY</span><h3>Jedna aktualna wersja</h3><ul class="rk-heatplan-bullets"><li>numer lub data wersji architektury,</li><li>zmiany okien i izolacji,</li><li>zmiany funkcji pomieszczeń,</li><li>osoba zatwierdzająca odstępstwa.</li></ul></article>
      </div>
      <div class="rk-heatplan-note rk-heatplan-note-bad"><p><strong>Projekt liczony na nieaktualnych rzutach może być wewnętrznie poprawny, ale dotyczyć nieistniejącego już wariantu domu.</strong> Najgroźniejsze są zmiany w przeszkleniach, izolacji, wentylacji, układzie ścian oraz powierzchni dostępnej dla podłogówki.</p></div>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-ozc">
      <span class="rk-heatplan-eyebrow">Fundament doboru instalacji</span>
      <h2 class="rk-heatplan-section-title">OZC całego budynku i obciążenie każdego pomieszczenia</h2>
      <p class="rk-heatplan-lead">Projektowe obciążenie cieplne odpowiada na pytanie, jaką moc trzeba dostarczyć przy określonych warunkach obliczeniowych. Do zaprojektowania odbiorników potrzebne są wyniki lokalne, nie tylko suma dla domu.</p>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">H<sub>T</sub></span><h3>Przenikanie</h3><p>Obejmuje ściany, dach, okna, drzwi, stropy oraz wymianę ciepła z gruntem i strefami sąsiednimi.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">H<sub>V</sub></span><h3>Wentylacja</h3><p>Zależy od wymaganych strumieni powietrza, infiltracji, odzysku ciepła i rzeczywistego bilansu instalacji.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">Φ</span><h3>Wynik w watach</h3><p>Połączenie składników daje obciążenie pomieszczenia i budynku dla opisanych temperatur oraz założeń.</p></article>
      </div>
      <div class="rk-heatplan-formula">strata przegrody ≈ A × U × ΔT — to jeden składnik, a nie kompletne OZC budynku</div>
      <p class="rk-heatplan-copy">Podłogi na gruncie nie należy traktować jak pionowej ściany wystawionej na stałą temperaturę zewnętrzną. Mostki cieplne również nie powinny być zastępowane przypadkowym narzutem procentowym bez opisania metody. Pełny kontekst znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynkach</a> oraz w omówieniu <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">PN-EN 12831 w projektowaniu ogrzewania</a>.</p>
      <div class="rk-heatplan-note"><p><strong>W/m² jest wynikiem pomocniczym, nie metodą doboru.</strong> Dwa pomieszczenia w tym samym domu mogą mieć różne obciążenie jednostkowe przez przeszklenia, ściany zewnętrzne, temperaturę wewnętrzną i wentylację.</p></div>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-emitters">
      <span class="rk-heatplan-eyebrow">Moc musi pojawić się tam, gdzie powstaje strata</span>
      <h2 class="rk-heatplan-section-title">Dobór podłogówki, grzejników lub instalacji mieszanej</h2>
      <p class="rk-heatplan-lead">Odbiornik dobiera się do obciążenia konkretnego pomieszczenia i wspólnych parametrów systemu. Sama powierzchnia pomieszczenia nie mówi, ile mocy może oddać podłoga ani jaki grzejnik będzie odpowiedni.</p>
      <div class="rk-heatplan-table-wrap">
        <table>
          <thead><tr><th>Rozwiązanie</th><th>Co trzeba policzyć</th><th>Co ogranicza moc</th><th>Wynik projektu</th></tr></thead>
          <tbody>
            <tr><td data-label="Rozwiązanie"><strong>Ogrzewanie podłogowe</strong></td><td data-label="Obliczenia">Powierzchnia czynna, konstrukcja podłogi, rozstaw, temperatura wody, przepływ i długość pętli.</td><td data-label="Ograniczenia">Okładzina, temperatura powierzchni, zabudowa stała, geometria i hydraulika.</td><td data-label="Wynik">Trasy, rozstawy, pętle, moce, przepływy i nastawy rozdzielacza.</td></tr>
            <tr><td data-label="Rozwiązanie"><strong>Grzejniki</strong></td><td data-label="Obliczenia">Wymagana moc i moc katalogowa skorygowana do rzeczywistych temperatur wody i pomieszczenia.</td><td data-label="Ograniczenia">Dostępna ściana, temperatura zasilania, obudowy, zawory i warunki przepływu.</td><td data-label="Wynik">Typ, wielkość, moc, przepływ, nastawa i sposób podłączenia.</td></tr>
            <tr><td data-label="Rozwiązanie"><strong>Układ mieszany</strong></td><td data-label="Obliczenia">Pokrycie obciążenia przez oba rodzaje odbiorników i wspólna lub rozdzielona temperatura pracy.</td><td data-label="Ograniczenia">Najbardziej wymagający odbiornik, sposób mieszania, regulacja i hydraulika obiegów.</td><td data-label="Wynik">Schemat połączeń, parametry obiegów i logika sterowania bez przypadkowego podnoszenia temperatury.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-heatplan-copy">Niskotemperaturowa instalacja mieszana jest możliwa, jeśli grzejniki zostaną dobrane do tych samych, odpowiednio niskich parametrów. Osobny poradnik wyjaśnia, <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/">jak połączyć ogrzewanie podłogowe z grzejnikami</a>.</p>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-floor">
      <span class="rk-heatplan-eyebrow">Rozstaw jest wynikiem, nie punktem startowym</span>
      <h2 class="rk-heatplan-section-title">Co musi zawierać projekt ogrzewania podłogowego?</h2>
      <p class="rk-heatplan-lead">Podłogówka ma dostarczyć wymaganą moc przy ograniczonej temperaturze powierzchni, dostępnej powierzchni czynnej i możliwie korzystnej temperaturze wody. Gęstsze ułożenie rur nie rozwiązuje automatycznie każdego problemu.</p>
      <div class="rk-heatplan-grid-4">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">q</span><h3>Wymagany strumień</h3><p>Obciążenie pomieszczenia jest dzielone przez rzeczywistą powierzchnię zdolną do oddawania ciepła.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">R<sub>λ,B</sub></span><h3>Opór okładziny</h3><p>Liczy się cały zestaw nad jastrychem: wykończenie, podkład i ewentualne warstwy pośrednie.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">T</span><h3>Temperatura powierzchni</h3><p>Musi pozostać w granicach właściwych dla strefy, przeznaczenia pomieszczenia i materiału podłogi.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">L / V̇</span><h3>Pętla i przepływ</h3><p>Rozstaw tworzy metraż, a metraż wraz z przepływem i światłem rury tworzy opór hydrauliczny.</p></article>
      </div>
      <p class="rk-heatplan-copy">Zasady określania mocy systemów płaszczyznowych rozwija materiał o <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>. Osobno warto sprawdzić, jak <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">okładzina wpływa na wydajność podłogówki</a>, gdzie <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">nie układać rur</a> oraz dlaczego samo pytanie o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw 10 czy 15 cm</a> jest zbyt proste.</p>
      <div class="rk-heatplan-note rk-heatplan-note-good"><p><strong>Dobry rysunek jest połączony z tabelą obliczeniową.</strong> Oznaczenie pętli na rzucie powinno prowadzić do jej długości, obsługiwanej powierzchni, wymaganej mocy, przepływu, oporu i nastawy.</p></div>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-hydraulics">
      <span class="rk-heatplan-eyebrow">Przepływ i opór muszą spotkać się w jednym punkcie</span>
      <h2 class="rk-heatplan-section-title">Przepływy, straty ciśnienia i dobór pompy obiegowej</h2>
      <p class="rk-heatplan-lead">Wymagany przepływ wynika z przenoszonej mocy i projektowej różnicy temperatur. Pompa musi jednocześnie zapewnić ten przepływ oraz pokonać opór najbardziej wymagającej drogi hydraulicznej.</p>
      <div class="rk-heatplan-formula">V̇ [m³/h] ≈ Q [kW] / (1,163 × ΔT [K])</div>
      <p class="rk-heatplan-copy">Wzór porządkuje przepływ dla wody i określonych warunków, ale nie dobiera pompy. Do tego potrzebne są straty liniowe i miejscowe, opór rozdzielaczy, zaworów, wymienników oraz charakterystyka urządzenia. Przy mieszaninie z glikolem trzeba użyć właściwości rzeczywistego medium.</p>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">ΣV̇</span><h3>Przepływ całkowity</h3><p>Powstaje z przepływów równocześnie pracujących obiegów, a nie z pojemności wodnej całej instalacji.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">Δp</span><h3>Droga krytyczna</h3><p>Do wysokości podnoszenia przyjmuje się właściwą drogę o największym wymaganym oporze, nie sumę wszystkich pętli.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">Q–H</span><h3>Punkt pracy</h3><p>Dobór jest sprawdzany na charakterystyce pompy przy przewidywanym sposobie regulacji i wymaganym zakresie pracy.</p></article>
      </div>
      <p class="rk-heatplan-copy">Szczegółowe narzędzie znajdziesz w <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatorze doboru pompy obiegowej</a>. Projekt powinien również wskazać <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicę przewodu zasilającego rozdzielacz</a>, długości pętli oraz wartości potrzebne do ustawienia <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów</a>.</p>
      <div class="rk-heatplan-note rk-heatplan-note-bad"><p><strong>Oznaczenie „25-60” nie jest wynikiem obliczeń.</strong> Bez wymaganego przepływu i wysokości podnoszenia nie wiadomo, czy dana pompa pracuje w odpowiednim obszarze charakterystyki.</p></div>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-source">
      <span class="rk-heatplan-eyebrow">OZC otwiera dobór, ale go nie kończy</span>
      <h2 class="rk-heatplan-section-title">Jak projekt prowadzi do doboru źródła ciepła?</h2>
      <p class="rk-heatplan-lead">Projektowa moc budynku jest jednym z najważniejszych danych, lecz urządzenie trzeba ocenić w warunkach, w których ma rzeczywiście pracować. Moc z nazwy modelu nie zawsze jest mocą dostępną przy mrozie i wymaganej temperaturze wody.</p>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">1</span><h3>Obciążenie budynku</h3><p>Wynik OZC określa zapotrzebowanie w warunkach projektowych oraz pozwala zbudować uproszczoną krzywą obciążenia.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">2</span><h3>Charakterystyka urządzenia</h3><p>Sprawdza się moc i efektywność przy temperaturze zewnętrznej oraz temperaturze zasilania wymaganej przez odbiorniki.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">3</span><h3>Praca całego systemu</h3><p>Uwzględnia się modulację, CWU, źródło szczytowe, odszranianie, przepływ minimalny i sposób sterowania.</p></article>
      </div>
      <div class="rk-heatplan-table-wrap">
        <table>
          <thead><tr><th>Źródło</th><th>Co sprawdzić poza OZC</th><th>Powiązanie z instalacją</th></tr></thead>
          <tbody>
            <tr><td data-label="Źródło"><strong>Pompa ciepła</strong></td><td data-label="Poza OZC">Moc w punktach pracy, punkt biwalentny, modulacja, odszranianie, CWU i udział grzałki.</td><td data-label="Instalacja">Możliwie niska temperatura zasilania, minimalny przepływ, pojemność wodna i logika stref.</td></tr>
            <tr><td data-label="Źródło"><strong>Kocioł gazowy</strong></td><td data-label="Poza OZC">Minimalna i maksymalna moc, modulacja, wymagania kominowe, CWU i warunki kondensacji.</td><td data-label="Instalacja">Temperatura powrotu, zakres przepływu, regulacja pogodowa i ewentualne rozdzielenie obiegów.</td></tr>
            <tr><td data-label="Źródło"><strong>Kocioł na pellet lub paliwo stałe</strong></td><td data-label="Poza OZC">Zakres mocy, bezwładność, sposób wygaszania, magazynowanie paliwa i wymagane zabezpieczenia.</td><td data-label="Instalacja">Ochrona powrotu, bufor lub inne rozwiązanie wynikające ze schematu i dokumentacji urządzenia.</td></tr>
            <tr><td data-label="Źródło"><strong>Ogrzewanie elektryczne</strong></td><td data-label="Poza OZC">Moc przyłączeniowa, taryfa, sterowanie i podział obciążeń elektrycznych.</td><td data-label="Instalacja">Rodzaj odbiorników, akumulacja budynku i sposób regulacji temperatury.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-heatplan-copy">Zależności dla instalacji niskotemperaturowej rozwija przewodnik <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>. Samą zasadę doboru i pracy urządzenia porządkuje dział <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a>.</p>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-controls-section">
      <span class="rk-heatplan-eyebrow">Projekt nie kończy się na średnicach rur</span>
      <h2 class="rk-heatplan-section-title">Automatyka, krzywa grzewcza i sterowanie strefowe</h2>
      <p class="rk-heatplan-lead">Dobrze policzona instalacja może działać źle, jeżeli źródło dostaje sprzeczne sygnały, wszystkie pętle są okresowo zamykane albo krzywa grzewcza wymusza wyższą temperaturę, niż potrzebują odbiorniki.</p>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">θ<sub>e</sub></span><h3>Sterowanie pogodowe</h3><p>Temperatura wody reaguje na warunki zewnętrzne. Ustawienie startowe wynika z projektu, a korekta z obserwacji budynku.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">MIN</span><h3>Minimalny przepływ</h3><p>Projekt sprawdza, co stanie się po zamknięciu części obiegów oraz jak zachować warunki wymagane przez źródło.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">τ</span><h3>Bezwładność</h3><p>Strategia regulacji uwzględnia masę jastrychu i opóźnienie reakcji, zamiast traktować podłogę jak szybko działający grzejnik.</p></article>
      </div>
      <p class="rk-heatplan-copy">W praktyce warto rozdzielić rolę <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>, <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowania pogodowego</a> i <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowania strefowego</a>. Każde z nich rozwiązuje inny problem.</p>
      <div class="rk-heatplan-note"><p><strong>Więcej automatyki nie zawsze oznacza lepszą regulację.</strong> Liczy się spójność z hydrauliką, minimalnym przepływem źródła, charakterem budynku i sposobem użytkowania pomieszczeń.</p></div>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-documents">
      <span class="rk-heatplan-eyebrow">Co inwestor powinien otrzymać na końcu?</span>
      <h2 class="rk-heatplan-section-title">Kompletna dokumentacja wykonawcza instalacji grzewczej</h2>
      <p class="rk-heatplan-lead">Zakres zależy od rodzaju systemu, ale dokument powinien być spójny: oznaczenie na rzucie musi prowadzić do tabeli, a tabela do parametrów potrzebnych podczas montażu i uruchomienia.</p>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">01</span><h3>Założenia i wyniki OZC</h3><p>Warunki obliczeniowe, dane przegród, wentylacja oraz obciążenie każdego pomieszczenia i całego budynku.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">02</span><h3>Rzuty instalacji</h3><p>Trasy, odbiorniki, rozdzielacze, średnice, pętle, rozstawy, strefy i jednoznaczne oznaczenia.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">03</span><h3>Tabela obiegów</h3><p>Długości, moce, przepływy, spadki temperatury, opory i nastawy wymagane do regulacji.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">04</span><h3>Schemat hydrauliczny</h3><p>Źródło, obiegi, pompy, zawory, zabezpieczenia, naczynie, odpowietrzenie i kierunki przepływu.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">05</span><h3>Dobór urządzeń</h3><p>Parametry wymagane przez projekt oraz kryteria weryfikacji równoważnych urządzeń i materiałów.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">06</span><h3>Uruchomienie i odbiór</h3><p>Próba, płukanie, napełnienie, nastawy startowe, dokumentowanie zmian i dane powykonawcze.</p></article>
      </div>
      <p class="rk-heatplan-copy">Wykonanie próby przed zakryciem instalacji omawia poradnik o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>. Rysunki powinny również pokazywać podział i lokalizację <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczy podłogówki</a>.</p>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-costs">
      <span class="rk-heatplan-eyebrow">Cena wynika z zakresu, nie wyłącznie z metrażu</span>
      <h2 class="rk-heatplan-section-title">Ile kosztuje projekt instalacji grzewczej domu?</h2>
      <p class="rk-heatplan-lead">Jedna „średnia cena rynkowa” niewiele mówi, jeżeli nie wiadomo, czy obejmuje OZC pomieszczeń, rysunki, hydraulikę, dobór źródła, schemat kotłowni, zestawienia i obsługę zmian.</p>
      <div class="rk-heatplan-table-wrap">
        <table>
          <thead><tr><th>Czynnik</th><th>Dlaczego wpływa na pracę</th><th>Co ustalić przed wyceną</th></tr></thead>
          <tbody>
            <tr><td data-label="Czynnik"><strong>Zakres obliczeń</strong></td><td data-label="Wpływ">OZC całego domu to mniej informacji niż bilans pomieszczeń połączony z doborem odbiorników.</td><td data-label="Ustal">Czy cena obejmuje obciążenia pomieszczeń, hydraulikę i dobór źródła.</td></tr>
            <tr><td data-label="Czynnik"><strong>Wielkość i geometria</strong></td><td data-label="Wpływ">Liczba kondygnacji, pomieszczeń, rozdzielaczy i nietypowych stref zwiększa liczbę decyzji.</td><td data-label="Ustal">Powierzchnię, liczbę pomieszczeń i stopień złożoności instalacji.</td></tr>
            <tr><td data-label="Czynnik"><strong>Rodzaj instalacji</strong></td><td data-label="Wpływ">Podłogówka, grzejniki i układ mieszany wymagają innych obliczeń i rysunków.</td><td data-label="Ustal">Odbiorniki, źródło, CWU, chłodzenie i liczbę obiegów.</td></tr>
            <tr><td data-label="Czynnik"><strong>Stan inwestycji</strong></td><td data-label="Wpływ">Modernizacja wymaga inwentaryzacji i oceny elementów, których nie wybiera się od zera.</td><td data-label="Ustal">Co już istnieje, co pozostaje i jakie są dostępne dane techniczne.</td></tr>
            <tr><td data-label="Czynnik"><strong>Dokumentacja końcowa</strong></td><td data-label="Wpływ">Rysunki, tabele, schemat, zestawienia i konsultacje mają różny nakład pracy.</td><td data-label="Ustal">Format, liczbę wariantów, poprawki i wsparcie dla wykonawcy.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-heatplan-copy">Aktualne zasady wyceny omawia osobny materiał <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">ile kosztuje projekt ogrzewania podłogowego</a>. Porównuj cenę dopiero po ujednoliceniu zakresu obu ofert.</p>
      <div class="rk-heatplan-note rk-heatplan-note-good"><p><strong>Uczciwa ocena opłacalności nie obiecuje stałej kwoty oszczędności.</strong> Projekt ogranicza ryzyko zbędnego materiału, niedopasowanego urządzenia i kosztownych poprawek, ale rzeczywisty efekt zależy od wariantu początkowego, cen i jakości wykonania.</p></div>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-timing">
      <span class="rk-heatplan-eyebrow">Najwięcej swobody jest przed zamówieniem materiałów</span>
      <h2 class="rk-heatplan-section-title">Kiedy zamówić projekt instalacji grzewczej?</h2>
      <p class="rk-heatplan-lead">Najlepszy moment następuje po ustaleniu architektury, przegród, stolarki i wentylacji, lecz przed przygotowaniem posadzek, wyborem urządzeń i rozpoczęciem instalacji.</p>
      <div class="rk-heatplan-grid-4">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">1</span><h3>Projekt budynku</h3><p>Potwierdź geometrię, funkcje pomieszczeń, okna, izolację, wentylację i planowaną zabudowę.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">2</span><h3>Projekt instalacji</h3><p>Policz obciążenia, odbiorniki, hydraulikę i wymagania źródła, zanim powstaną zamówienia.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">3</span><h3>Koordynacja branż</h3><p>Sprawdź wysokości podłogi, przejścia, dylatacje, zasilanie elektryczne, kominy i kanalizację kondensatu.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">4</span><h3>Zakup i montaż</h3><p>Zamawiaj elementy według zatwierdzonych parametrów i dokumentuj każdą zmianę przed zakryciem.</p></article>
      </div>
      <p class="rk-heatplan-copy">Harmonogram prac rozwija poradnik <a href="https://projekt-ogrzewania.pl/kiedy-najlepiej-planowac-montaz-ogrzewania-podlogowego-w-nowym-domu/">kiedy planować montaż ogrzewania podłogowego w nowym domu</a>. Im później powstaje projekt, tym częściej musi dopasowywać się do przypadkowo kupionych elementów zamiast optymalizować cały system.</p>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-offers">
      <span class="rk-heatplan-eyebrow">Porównuj zawartość, nie nazwę usługi</span>
      <h2 class="rk-heatplan-section-title">Jak porównać dwie oferty na projekt ogrzewania?</h2>
      <p class="rk-heatplan-lead">Dwie oferty mogą nosić tę samą nazwę, a obejmować zupełnie inny zakres. Najpierw sprowadź je do wspólnej listy elementów, terminów i odpowiedzialności.</p>
      <div class="rk-heatplan-table-wrap">
        <table>
          <thead><tr><th>Pytanie do oferty</th><th>Odpowiedź, której szukasz</th><th>Sygnał ostrzegawczy</th></tr></thead>
          <tbody>
            <tr><td data-label="Pytanie"><strong>Czy OZC jest liczone dla pomieszczeń?</strong></td><td data-label="Dobra odpowiedź">Tak, z tabelą warunków wejściowych i wynikami w W dla każdej strefy.</td><td data-label="Ostrzeżenie">Jedna moc z powierzchni domu albo świadectwa energetycznego.</td></tr>
            <tr><td data-label="Pytanie"><strong>Czy projekt zawiera hydraulikę?</strong></td><td data-label="Dobra odpowiedź">Przepływy, opory, drogę krytyczną, nastawy i punkt pracy pompy.</td><td data-label="Ostrzeżenie">Wyłącznie rysunek tras i ogólna nazwa pompy.</td></tr>
            <tr><td data-label="Pytanie"><strong>Czy dobór źródła jest częścią zakresu?</strong></td><td data-label="Dobra odpowiedź">Opis kryteriów, warunków pracy, modulacji, CWU i współpracy z instalacją.</td><td data-label="Ostrzeżenie">Dobór tylko przez zaokrąglenie kW w górę.</td></tr>
            <tr><td data-label="Pytanie"><strong>Jak wyglądają rysunki?</strong></td><td data-label="Dobra odpowiedź">Są powiązane z tabelami, czytelne dla wykonawcy i mają legendę oraz oznaczenia.</td><td data-label="Ostrzeżenie">Przykładowy rzut bez parametrów konkretnych obiegów.</td></tr>
            <tr><td data-label="Pytanie"><strong>Jak obsługiwane są zmiany?</strong></td><td data-label="Dobra odpowiedź">Oferta określa liczbę korekt, zasady aktualizacji i odpowiedzialność za zatwierdzenie.</td><td data-label="Ostrzeżenie">Brak wersjonowania i ustaleń po rozpoczęciu montażu.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-heatplan-note"><p><strong>Poproś o zanonimizowany przykład dokumentacji.</strong> Nie chodzi o przejęcie cudzego projektu, lecz o sprawdzenie czytelności, poziomu szczegółowości i powiązania rysunków z obliczeniami.</p></div>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-changes">
      <span class="rk-heatplan-eyebrow">Równoważny produkt musi być równoważny obliczeniowo</span>
      <h2 class="rk-heatplan-section-title">Co można zmienić na budowie bez utraty logiki projektu?</h2>
      <p class="rk-heatplan-lead">Projekt nie musi blokować każdej zmiany marki, ale powinien określać parametry, które trzeba zachować. Zmiana wpływająca na moc, przepływ albo opór wymaga ponownej kontroli odpowiedniej części obliczeń.</p>
      <div class="rk-heatplan-grid-2">
        <article class="rk-heatplan-card">
          <span class="rk-heatplan-icon">✓</span>
          <h3>Zmiana możliwa po potwierdzeniu równoważności</h3>
          <ul class="rk-heatplan-bullets"><li>rura o zgodnym świetle, klasie i systemie połączeń,</li><li>rozdzielacz o właściwych przepływach i oporach,</li><li>grzejnik zapewniający wymaganą moc przy tych samych parametrach,</li><li>pompa obejmująca wymagany punkt pracy,</li><li>armatura o zgodnej funkcji i charakterystyce.</li></ul>
        </article>
        <article class="rk-heatplan-card">
          <span class="rk-heatplan-icon">!</span>
          <h3>Zmiana wymagająca ponownej weryfikacji</h3>
          <ul class="rk-heatplan-bullets"><li>inne warstwy izolacji, okna albo wentylacja,</li><li>zmiana okładziny i powierzchni czynnej podłogi,</li><li>wydłużenie pętli lub zmiana średnicy wewnętrznej,</li><li>inne temperatury zasilania lub rodzaj źródła,</li><li>dodanie stref i automatyki zamykającej przepływ.</li></ul>
        </article>
      </div>
      <p class="rk-heatplan-copy">Porównanie podejścia obliczeniowego i improwizowanego znajdziesz w artykule <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt podłogówki „z głowy” a projekt z obliczeniami</a>. Zmiana na budowie powinna pozostawić ślad w dokumentacji powykonawczej.</p>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-errors">
      <span class="rk-heatplan-eyebrow">Błędy zaczynają się przed pierwszym metrem rury</span>
      <h2 class="rk-heatplan-section-title">Najczęstsze błędy w projekcie instalacji grzewczej</h2>
      <div class="rk-heatplan-grid-3">
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 1</span><h3>Moc z metrażu</h3><p>Stały wskaźnik W/m² nie zna przegród, przeszkleń, wentylacji ani temperatur poszczególnych pomieszczeń.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 2</span><h3>Jedna liczba dla domu</h3><p>Suma obciążenia nie mówi, czy podłoga w łazience albo salonie pokryje lokalną stratę.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 3</span><h3>Rozstaw wybrany z góry</h3><p>Ułożenie wszędzie co 10 lub 15 cm zastępuje obliczenie regułą i może zwiększyć metraż bez rozwiązania problemu mocy.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 4</span><h3>Limit pętli bez przepływu</h3><p>Sama długość nie opisuje oporu. Potrzebne są także światło rury, przepływ, medium i opory miejscowe.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 5</span><h3>Pompa dobrana po nazwie</h3><p>Model nie jest zweryfikowany, dopóki nie znamy punktu pracy oraz charakterystyki całego obiegu.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 6</span><h3>Źródło z zapasem procentowym</h3><p>Uniwersalny zapas nie zastępuje charakterystyki mocy, modulacji, punktu biwalentnego ani analizy CWU.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 7</span><h3>Brak powierzchni czynnej</h3><p>Projekt liczony na powierzchni brutto ignoruje kuchnię, szafy, wannę, kominek i inne wyłączenia.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 8</span><h3>Brak nastaw</h3><p>Wykonawca ma rysunek, lecz nie otrzymuje przepływów, nastaw rozdzielacza ani krzywej startowej.</p></article>
        <article class="rk-heatplan-card"><span class="rk-heatplan-card-number">BŁĄD 9</span><h3>Nieaktualna architektura</h3><p>Zmiany okien, izolacji, wentylacji i funkcji pomieszczeń nie są przenoszone do modelu obliczeniowego.</p></article>
      </div>
      <p class="rk-heatplan-copy">W praktyce projekt powinien również zapobiegać problemom opisanym w poradniku o <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstszych błędach montażu ogrzewania podłogowego</a> oraz w artykule o <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli</a>.</p>
    </section>

    <section class="rk-heatplan-section rk-heatplan-final" id="rk-heatplan-final">
      <span class="rk-heatplan-eyebrow">Wniosek dla inwestora</span>
      <h2 class="rk-heatplan-section-title">Projekt ma połączyć budynek, instalację i źródło w jeden działający system</h2>
      <p class="rk-heatplan-lead">Nie kupujesz samego rysunku. Kupujesz zestaw sprawdzalnych decyzji: ile mocy potrzebuje każde pomieszczenie, jak ją dostarczyć, jakie przepływy ustawić, jaki opór pokonać oraz w jakich warunkach ma pracować źródło.</p>
      <div class="rk-heatplan-cta">
        <div class="rk-heatplan-cta-title">Masz rzuty i dane przegród? Przejdź od założeń do policzonej instalacji</div>
        <p>Indywidualny projekt porządkuje rozstawy i trasy rur, podział na pętle, przepływy, opory, nastawy oraz wymagania źródła ciepła. Dzięki temu wykonawca otrzymuje dokumentację dla konkretnego domu, a nie zestaw uniwersalnych reguł.</p>
        <a class="rk-heatplan-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji grzewczej z obliczeniami</a>
        <small class="rk-heatplan-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-heatplan-section" id="rk-heatplan-sources">
      <span class="rk-heatplan-eyebrow">Podstawa techniczna i prawna</span>
      <h2 class="rk-heatplan-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-heatplan-lead">Poniższe źródła pomagają rozdzielić projektowe obciążenie cieplne, energię budynku, wydajność ogrzewania płaszczyznowego oraz formalny zakres dokumentacji. Dostęp do pełnych tekstów norm może wymagać zakupu.</p>
      <div class="rk-heatplan-source-grid">
        <article class="rk-heatplan-source-card"><a href="https://www.pkn.pl/" target="_blank" rel="nofollow noopener noreferrer">Polski Komitet Normalizacyjny</a><p>Oficjalny portal do wyszukiwania Polskich Norm, sprawdzania ich aktualności i nabywania dokumentów.</p></article>
        <article class="rk-heatplan-source-card"><a href="https://repo.pw.edu.pl/info/article/WUT7c194b7443134803a9d035c593eba8a2/Norma%2BPN-EN%2B12831-1%3A2017-08.%2BKluczowe%2Bzmiany%2Bw%2Bmetodyce%2Bobliczania%2Bobci%C4%85%C5%BCenia%2Bcieplnego%2Bbudynk%C3%B3w%2B" target="_blank" rel="nofollow noopener noreferrer">Politechnika Warszawska — PN-EN 12831-1</a><p>Opracowanie dotyczące zmian w metodyce obliczania projektowego obciążenia cieplnego budynków.</p></article>
        <article class="rk-heatplan-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021</a><p>Oficjalna karta normy dotyczącej określania projektowej mocy systemów ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-heatplan-source-card"><a href="https://www.iso.org/standard/65696.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52016-1:2017</a><p>Oficjalna karta metod obliczania potrzeb energetycznych, temperatur wewnętrznych i obciążeń cieplnych budynków.</p></article>
        <article class="rk-heatplan-source-card"><a href="https://eli.gov.pl/eli/DU/2022/1225/ogl" target="_blank" rel="nofollow noopener noreferrer">Dziennik Ustaw — Warunki Techniczne</a><p>Oficjalny tekst przepisów określających wymagania techniczne dla budynków i ich wyposażenia.</p></article>
        <article class="rk-heatplan-source-card"><a href="https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU20220001679/O/D20221679.pdf" target="_blank" rel="nofollow noopener noreferrer">Dziennik Ustaw — zakres projektu budowlanego</a><p>Tekst jednolity rozporządzenia w sprawie szczegółowego zakresu i formy projektu budowlanego.</p></article>
        <article class="rk-heatplan-source-card"><a href="https://energy.ec.europa.eu/topics/energy-efficiency/energy-efficient-buildings/energy-performance-buildings-directive_en" target="_blank" rel="nofollow noopener noreferrer">Komisja Europejska — charakterystyka energetyczna budynków</a><p>Oficjalne informacje o europejskich ramach efektywności energetycznej budynków i systemów technicznych.</p></article>
        <article class="rk-heatplan-source-card"><a href="https://www.iso.org/standard/65703.html" target="_blank" rel="nofollow noopener noreferrer">ISO 52010-1:2017</a><p>Oficjalna karta normy dotyczącej przekształcania danych klimatycznych do obliczeń energetycznych budynków.</p></article>
      </div>
      <div class="rk-heatplan-responsibility"><p><strong>Zakres poradnika:</strong> artykuł i analizator pomagają zrozumieć oraz porównać zakres dokumentacji. Nie są projektem budowlanym ani wykonawczym, nie wykonują OZC, nie zatwierdzają konkretnego urządzenia i nie zastępują obliczeń, dokumentacji producenta, uprawnień, odbioru ani oceny rzeczywistych warunków budynku.</p></div>
    </section>

    <section class="rk-heatplan-section rk-heatplan-section-soft" id="rk-heatplan-faq">
      <span class="rk-heatplan-eyebrow">Pytania inwestorów przed zleceniem i montażem</span>
      <h2 class="rk-heatplan-section-title">FAQ — projekt instalacji grzewczej domu</h2>
      <div class="rk-heatplan-faq">
        <details><summary>Czy projekt instalacji grzewczej jest potrzebny w domu jednorodzinnym?</summary><div class="rk-heatplan-faq-answer"><p>Jest potrzebny zawsze wtedy, gdy inwestor chce świadomie dobrać moc odbiorników, przepływy, średnice, źródło i nastawy zamiast pozostawić te decyzje do rozstrzygnięcia na budowie. Zakres formalnej dokumentacji budowlanej oraz szczegółowego projektu wykonawczego należy rozpatrywać osobno.</p></div></details>
        <details><summary>Czy OZC i projekt instalacji grzewczej to ten sam dokument?</summary><div class="rk-heatplan-faq-answer"><p>Nie. OZC wyznacza projektowe obciążenie cieplne budynku i pomieszczeń. Projekt instalacji wykorzystuje te wyniki do doboru odbiorników, temperatur wody, przepływów, hydrauliki, źródła, sterowania i dokumentacji wykonawczej.</p></div></details>
        <details><summary>Czym różni się OZC od świadectwa charakterystyki energetycznej?</summary><div class="rk-heatplan-faq-answer"><p>OZC odpowiada przede wszystkim na pytanie o projektową moc potrzebną w określonych warunkach. Świadectwo opisuje charakterystykę energetyczną według odrębnej metodologii i wskaźników. Wyniku rocznego w kWh nie należy bezpośrednio traktować jako mocy urządzenia w kW.</p></div></details>
        <details><summary>Jakie dane są niezbędne do wykonania projektu?</summary><div class="rk-heatplan-faq-answer"><p>Potrzebne są aktualne rzuty i przekroje, lokalizacja, warstwy przegród, okna i drzwi, wentylacja, temperatury pomieszczeń, rodzaje okładzin, stała zabudowa, planowane źródło oraz informacje o istniejących elementach w przypadku modernizacji.</p></div></details>
        <details><summary>Czy moc źródła można dobrać wyłącznie z powierzchni domu?</summary><div class="rk-heatplan-faq-answer"><p>Nie. Powierzchnia nie opisuje izolacji, przeszkleń, wentylacji, temperatur pomieszczeń ani lokalnych warunków klimatycznych. Dobór zaczyna się od obciążenia cieplnego, a następnie uwzględnia charakterystykę i sposób pracy konkretnego źródła.</p></div></details>
        <details><summary>Czy wynik OZC automatycznie wskazuje moc pompy ciepła?</summary><div class="rk-heatplan-faq-answer"><p>Nie automatycznie. Trzeba porównać krzywą obciążenia budynku z mocą pompy w odpowiednich punktach pracy, sprawdzić punkt biwalentny, minimalną modulację, CWU, odszranianie, źródło szczytowe i wymagany przepływ instalacji.</p></div></details>
        <details><summary>Czy projekt podłogówki może zawierać tylko rozstaw rur?</summary><div class="rk-heatplan-faq-answer"><p>Nie powinien. Rozstaw musi być powiązany z obciążeniem pomieszczenia, powierzchnią czynną, oporem podłogi, temperaturą wody, długością pętli, przepływem, oporem oraz nastawą rozdzielacza.</p></div></details>
        <details><summary>Czy 100 metrów jest bezwzględnym limitem każdej pętli?</summary><div class="rk-heatplan-faq-answer"><p>Nie jest jednym uniwersalnym limitem dla wszystkich warunków. Dopuszczalna długość zależy między innymi od średnicy wewnętrznej, przepływu, medium, oporów miejscowych, dostępnego ciśnienia i założeń regulacji. Około 100 m bywa stosowane jako praktyczny pułap dla określonych domowych układów 16 × 2 mm.</p></div></details>
        <details><summary>Czy pompę obiegową można dobrać tylko z przepływu?</summary><div class="rk-heatplan-faq-answer"><p>Nie. Potrzebny jest równocześnie wymagany przepływ i opór drogi krytycznej. Punkt pracy należy sprawdzić na charakterystyce pompy z uwzględnieniem sposobu regulacji całej instalacji.</p></div></details>
        <details><summary>Czy projekt powinien wskazywać konkretną markę materiałów?</summary><div class="rk-heatplan-faq-answer"><p>Może wskazać rozwiązanie referencyjne, ale kluczowe są wymagane parametry i zgodność systemowa. Jeżeli marka jest zmieniana, trzeba potwierdzić równoważność światła, oporów, mocy, zakresu pracy, połączeń oraz pozostałych cech wpływających na obliczenia.</p></div></details>
        <details><summary>Kiedy najlepiej zamówić projekt ogrzewania?</summary><div class="rk-heatplan-faq-answer"><p>Po ustaleniu aktualnej architektury, przegród, stolarki i wentylacji, ale przed zamówieniem źródła, przygotowaniem warstw podłogi i rozpoczęciem prac instalacyjnych. Pozostawia to czas na koordynację z innymi branżami.</p></div></details>
        <details><summary>Ile kosztuje projekt instalacji grzewczej?</summary><div class="rk-heatplan-faq-answer"><p>Cena zależy od zakresu: wielkości i złożoności domu, liczby pomieszczeń, rodzaju odbiorników, OZC, hydrauliki, doboru źródła, schematu, liczby wariantów i obsługi zmian. Dwie ceny można porównać dopiero po sprawdzeniu, czy obejmują te same elementy.</p></div></details>
        <details><summary>Czy wykonawca może zmienić projekt na budowie?</summary><div class="rk-heatplan-faq-answer"><p>Zmiana jest możliwa, jeżeli zostanie oceniony jej wpływ i potwierdzona równoważność. Zmiany średnic, długości, przepływów, temperatur, odbiorników albo źródła mogą wymagać ponownej weryfikacji obliczeń i powinny trafić do dokumentacji powykonawczej.</p></div></details>
        <details><summary>Jak sprawdzić, czy otrzymany projekt jest kompletny?</summary><div class="rk-heatplan-faq-answer"><p>Sprawdź spójność danych wejściowych, OZC pomieszczeń, doboru odbiorników, hydrauliki, źródła, schematu, tabel nastaw i rysunków. Oznaczenia powinny łączyć się między dokumentami, a każde ważne założenie być możliwe do odtworzenia. Analizator w tym artykule pomaga uporządkować taką kontrolę.</p></div></details>
      </div>
    </section>

    <section class="rk-heatplan-author" id="rk-heatplan-author">
      <span class="rk-heatplan-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-heatplan-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-heatplan-author-layout">
        <aside class="rk-heatplan-author-side">
          <div class="rk-heatplan-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-heatplan-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-heatplan-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-heatplan-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-b8b906199/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-heatplan-author-main">
          <div class="rk-heatplan-author-quote">„Moim zdaniem największym błędem projektu robionego z metrażu nie jest jedna niedokładna liczba, lecz brak połączenia obciążenia każdego pomieszczenia z mocą odbiorników, przepływami i nastawami instalacji.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W praktyce projektowej łączy obciążenie pomieszczeń z rozstawami, długościami pętli, przepływami, oporami i wymaganiami źródła ciepła.</p>
          <p>Treść poradnika została zweryfikowana pod kątem rozdzielenia mocy projektowej od energii rocznej, poprawnej kolejności doboru odbiorników i hydrauliki oraz ograniczeń uproszczonych narzędzi internetowych. Analizator celowo nie udaje OZC i nie zatwierdza urządzeń bez danych konkretnego budynku.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-heatplan-author-facts">
            <div class="rk-heatplan-author-fact"><strong>Praktyka projektowa</strong>OZC pomieszczeń, ogrzewanie podłogowe i hydraulika instalacji</div>
            <div class="rk-heatplan-author-fact"><strong>Metoda pracy</strong>Jawne dane wejściowe, obliczenia, dokumentacja i weryfikacja zmian</div>
            <div class="rk-heatplan-author-fact"><strong>Zakres aktualizacji</strong>Treść, analizator, źródła i FAQ sprawdzone 16 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "projektowanie instalacji grzewczych",
        "projektowe obciążenie cieplne OZC",
        "ogrzewanie podłogowe",
        "hydraulika instalacji grzewczych",
        "dobór źródeł ciepła",
        "równoważenie hydrauliczne"
      ],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-b8b906199/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Projekt-instalacji-grzewczej-domu-jednorodzinnego-Kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-OZC.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/07/Projekt-instalacji-grzewczej-domu-jednorodzinnego-Kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-OZC.webp",
      "width": 1050,
      "height": 1050,
      "caption": "Projekt instalacji grzewczej domu — OZC, hydraulika i dokumentacja"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Poradniki", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Projekt instalacji grzewczej domu", "item": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#webpage",
      "url": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/",
      "name": "Projekt instalacji grzewczej domu – zakres, OZC, hydraulika i koszty",
      "description": "Kompletny przewodnik po projekcie instalacji grzewczej domu: OZC pomieszczeń, dobór odbiorników, hydraulika, źródło ciepła, koszty i dokumentacja.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#primaryimage" },
      "datePublished": "2026-07-31T07:17:58+00:00",
      "dateModified": "2026-09-16T10:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#webpage" },
      "headline": "Projekt instalacji grzewczej domu – zakres, OZC, hydraulika i koszty",
      "description": "Praktyczny przewodnik pokazujący, jak dane budynku prowadzą przez OZC, dobór odbiorników i hydraulikę do źródła ciepła oraz dokumentacji wykonawczej.",
      "image": { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2026-07-31T07:17:58+00:00",
      "dateModified": "2026-09-16T10:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "projekt instalacji grzewczej domu",
        "projektowe obciążenie cieplne OZC",
        "ogrzewanie podłogowe",
        "obliczenia hydrauliczne",
        "dobór źródła ciepła",
        "dokumentacja wykonawcza"
      ],
      "keywords": "projekt instalacji grzewczej domu, OZC, projekt ogrzewania domu, hydraulika instalacji, projekt podłogówki, koszt projektu ogrzewania",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#analyzer" },
        { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#deliverables" },
        { "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#analyzer",
      "name": "Analizator kompletności projektu instalacji grzewczej",
      "url": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#rk-heatplan-analyzer-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie edukacyjne do sprawdzania zakresu danych wejściowych, OZC pomieszczeń, odbiorników, hydrauliki, źródła ciepła, automatyki i dokumentacji wykonawczej."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#howto",
      "name": "Jak powstaje projekt instalacji grzewczej domu",
      "description": "Sześć etapów prowadzących od danych budynku do dokumentacji wykonawczej i uruchomienia instalacji.",
      "totalTime": "P7D",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zbierz dane budynku", "text": "Przygotuj aktualne rzuty, lokalizację, przegrody, stolarkę, wentylację, temperatury, okładziny i stałą zabudowę." },
        { "@type": "HowToStep", "position": 2, "name": "Oblicz obciążenie pomieszczeń", "text": "Wyznacz projektowe obciążenie cieplne każdego pomieszczenia oraz całego budynku z jawnymi założeniami." },
        { "@type": "HowToStep", "position": 3, "name": "Dobierz odbiorniki", "text": "Sprawdź pokrycie obciążenia przez podłogówkę, grzejniki albo układ mieszany przy przyjętych parametrach wody." },
        { "@type": "HowToStep", "position": 4, "name": "Oblicz hydraulikę", "text": "Wyznacz długości, przepływy, opory, drogę krytyczną, średnice, nastawy i punkt pracy pompy." },
        { "@type": "HowToStep", "position": 5, "name": "Dobierz źródło i sterowanie", "text": "Porównaj obciążenie z charakterystyką źródła, modulacją, CWU, przepływem minimalnym i automatyką." },
        { "@type": "HowToStep", "position": 6, "name": "Przygotuj dokumentację i odbiór", "text": "Połącz rysunki, tabele, schemat, zestawienia, próbę, nastawy startowe i dokumentowanie zmian." }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#deliverables",
      "name": "Elementy kompletnego projektu instalacji grzewczej",
      "numberOfItems": 6,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Założenia i wyniki OZC" },
        { "@type": "ListItem", "position": 2, "name": "Rzuty instalacji" },
        { "@type": "ListItem", "position": 3, "name": "Tabela obiegów i nastaw" },
        { "@type": "ListItem", "position": 4, "name": "Schemat hydrauliczny" },
        { "@type": "ListItem", "position": 5, "name": "Dobór urządzeń i kryteria równoważności" },
        { "@type": "ListItem", "position": 6, "name": "Wytyczne uruchomienia i odbioru" }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Indywidualny projekt instalacji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/",
      "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "areaServed": { "@type": "Country", "name": "Polska" },
      "serviceType": "Projekt instalacji grzewczej i ogrzewania podłogowego"
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czy projekt instalacji grzewczej jest potrzebny w domu jednorodzinnym?", "acceptedAnswer": { "@type": "Answer", "text": "Jest potrzebny zawsze wtedy, gdy inwestor chce świadomie dobrać moc odbiorników, przepływy, średnice, źródło i nastawy zamiast pozostawić te decyzje do rozstrzygnięcia na budowie. Zakres formalnej dokumentacji budowlanej oraz szczegółowego projektu wykonawczego należy rozpatrywać osobno." } },
        { "@type": "Question", "name": "Czy OZC i projekt instalacji grzewczej to ten sam dokument?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. OZC wyznacza projektowe obciążenie cieplne budynku i pomieszczeń. Projekt instalacji wykorzystuje te wyniki do doboru odbiorników, temperatur wody, przepływów, hydrauliki, źródła, sterowania i dokumentacji wykonawczej." } },
        { "@type": "Question", "name": "Czym różni się OZC od świadectwa charakterystyki energetycznej?", "acceptedAnswer": { "@type": "Answer", "text": "OZC odpowiada przede wszystkim na pytanie o projektową moc potrzebną w określonych warunkach. Świadectwo opisuje charakterystykę energetyczną według odrębnej metodologii i wskaźników. Wyniku rocznego w kWh nie należy bezpośrednio traktować jako mocy urządzenia w kW." } },
        { "@type": "Question", "name": "Jakie dane są niezbędne do wykonania projektu?", "acceptedAnswer": { "@type": "Answer", "text": "Potrzebne są aktualne rzuty i przekroje, lokalizacja, warstwy przegród, okna i drzwi, wentylacja, temperatury pomieszczeń, rodzaje okładzin, stała zabudowa, planowane źródło oraz informacje o istniejących elementach w przypadku modernizacji." } },
        { "@type": "Question", "name": "Czy moc źródła można dobrać wyłącznie z powierzchni domu?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Powierzchnia nie opisuje izolacji, przeszkleń, wentylacji, temperatur pomieszczeń ani lokalnych warunków klimatycznych. Dobór zaczyna się od obciążenia cieplnego, a następnie uwzględnia charakterystykę i sposób pracy konkretnego źródła." } },
        { "@type": "Question", "name": "Czy wynik OZC automatycznie wskazuje moc pompy ciepła?", "acceptedAnswer": { "@type": "Answer", "text": "Nie automatycznie. Trzeba porównać krzywą obciążenia budynku z mocą pompy w odpowiednich punktach pracy, sprawdzić punkt biwalentny, minimalną modulację, CWU, odszranianie, źródło szczytowe i wymagany przepływ instalacji." } },
        { "@type": "Question", "name": "Czy projekt podłogówki może zawierać tylko rozstaw rur?", "acceptedAnswer": { "@type": "Answer", "text": "Nie powinien. Rozstaw musi być powiązany z obciążeniem pomieszczenia, powierzchnią czynną, oporem podłogi, temperaturą wody, długością pętli, przepływem, oporem oraz nastawą rozdzielacza." } },
        { "@type": "Question", "name": "Czy 100 metrów jest bezwzględnym limitem każdej pętli?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest jednym uniwersalnym limitem dla wszystkich warunków. Dopuszczalna długość zależy między innymi od średnicy wewnętrznej, przepływu, medium, oporów miejscowych, dostępnego ciśnienia i założeń regulacji. Około 100 m bywa stosowane jako praktyczny pułap dla określonych domowych układów 16 × 2 mm." } },
        { "@type": "Question", "name": "Czy pompę obiegową można dobrać tylko z przepływu?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Potrzebny jest równocześnie wymagany przepływ i opór drogi krytycznej. Punkt pracy należy sprawdzić na charakterystyce pompy z uwzględnieniem sposobu regulacji całej instalacji." } },
        { "@type": "Question", "name": "Czy projekt powinien wskazywać konkretną markę materiałów?", "acceptedAnswer": { "@type": "Answer", "text": "Może wskazać rozwiązanie referencyjne, ale kluczowe są wymagane parametry i zgodność systemowa. Jeżeli marka jest zmieniana, trzeba potwierdzić równoważność cech wpływających na obliczenia." } },
        { "@type": "Question", "name": "Kiedy najlepiej zamówić projekt ogrzewania?", "acceptedAnswer": { "@type": "Answer", "text": "Po ustaleniu aktualnej architektury, przegród, stolarki i wentylacji, ale przed zamówieniem źródła, przygotowaniem warstw podłogi i rozpoczęciem prac instalacyjnych." } },
        { "@type": "Question", "name": "Ile kosztuje projekt instalacji grzewczej?", "acceptedAnswer": { "@type": "Answer", "text": "Cena zależy od wielkości i złożoności domu, liczby pomieszczeń, rodzaju odbiorników, OZC, hydrauliki, doboru źródła, schematu, liczby wariantów i obsługi zmian. Dwie ceny można porównać dopiero po sprawdzeniu zakresu." } },
        { "@type": "Question", "name": "Czy wykonawca może zmienić projekt na budowie?", "acceptedAnswer": { "@type": "Answer", "text": "Zmiana jest możliwa, jeżeli zostanie oceniony jej wpływ i potwierdzona równoważność. Zmiany wpływające na moc, przepływ, opór lub sterowanie mogą wymagać ponownej weryfikacji obliczeń." } },
        { "@type": "Question", "name": "Jak sprawdzić, czy otrzymany projekt jest kompletny?", "acceptedAnswer": { "@type": "Answer", "text": "Sprawdź spójność danych wejściowych, OZC pomieszczeń, doboru odbiorników, hydrauliki, źródła, schematu, tabel nastaw i rysunków. Oznaczenia powinny łączyć się między dokumentami, a założenia być możliwe do odtworzenia." } }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var guide = document.getElementById("rk-heatplan-guide");
  if (!guide) {
    return;
  }

  var processes = {
    inputs: {
      title: "Dane budynku",
      summary: "Projekt zaczyna się od informacji o rzeczywistym budynku, a nie od wyboru rozstawu rur lub mocy urządzenia.",
      input: "Rzuty, przekroje, lokalizacja, warstwy przegród, okna, wentylacja, temperatury pomieszczeń i okładziny.",
      output: "Spójny model budynku z opisanymi strefami cieplnymi i założeniami do obliczeń.",
      risk: "Wynik może opisywać inny budynek niż ten, który faktycznie powstanie."
    },
    load: {
      title: "OZC pomieszczeń",
      summary: "Obciążenie projektowe wyznacza moc potrzebną w warunkach obliczeniowych osobno dla każdego pomieszczenia.",
      input: "Model budynku, temperatury projektowe, przenikanie, wentylacja, grunt, strefy sąsiednie i mostki cieplne.",
      output: "Straty składowe oraz projektowe obciążenie pomieszczeń i całego budynku w W lub kW.",
      risk: "Jedna wartość dla całego domu nie pozwoli dobrać odbiorników ani przepływów w poszczególnych pomieszczeniach."
    },
    emitters: {
      title: "Odbiorniki ciepła",
      summary: "Podłogówka, grzejniki albo układ mieszany muszą pokryć obciążenie przy konkretnych parametrach wody.",
      input: "OZC pomieszczeń, powierzchnie czynne, opór okładzin, dopuszczalne temperatury i planowana aranżacja.",
      output: "Moc odbiorników, rozstawy lub wymiary, temperatury zasilania i powrotu oraz podział na obiegi.",
      risk: "Odbiornik może nie pokryć strat albo wymagać temperatury niekorzystnej dla źródła ciepła."
    },
    hydraulics: {
      title: "Hydraulika instalacji",
      summary: "Dopiero przepływy i opory pokazują, czy wszystkie obiegi można zasilić, wyregulować i poprawnie uruchomić.",
      input: "Moce odbiorników, różnica temperatur, długości tras, średnice, armatura i właściwości medium.",
      output: "Przepływy, straty ciśnienia, droga krytyczna, średnice, nastawy i punkt pracy pompy.",
      risk: "Instalacja może grzać nierówno, hałasować albo wymagać przypadkowego dławienia i przewymiarowanej pompy."
    },
    source: {
      title: "Źródło ciepła i sterowanie",
      summary: "Źródło dobiera się do obciążenia i charakterystyki całej instalacji, a nie wyłącznie do powierzchni domu.",
      input: "Krzywa obciążenia, parametry wody, zapotrzebowanie na CWU, minimalna modulacja, przepływ i zabezpieczenia.",
      output: "Wymagana moc w punktach pracy, strategia biwalencji, krzywa grzewcza, automatyka i schemat połączeń.",
      risk: "Urządzenie może taktować, nie osiągać mocy przy mrozie albo pracować z temperaturą obniżającą sprawność."
    },
    docs: {
      title: "Dokumentacja, uruchomienie i odbiór",
      summary: "Obliczenia muszą zostać przełożone na rysunki, tabele i nastawy możliwe do wykorzystania na budowie.",
      input: "Zatwierdzone obliczenia, dobory urządzeń, trasy, schemat, zasady próby oraz uzgodnione zmiany.",
      output: "Rysunki wykonawcze, zestawienia, tabela nastaw, instrukcja uruchomienia i dokumentacja powykonawcza.",
      risk: "Poprawne obliczenia pozostaną niewykorzystane, jeśli wykonawca nie otrzyma jednoznacznych parametrów."
    }
  };

  var processButtons = guide.querySelectorAll("[data-rk-process]");
  var processTitle = document.getElementById("rk-heatplan-process-title");
  var processSummary = document.getElementById("rk-heatplan-process-summary");
  var processInput = document.getElementById("rk-heatplan-process-input");
  var processOutput = document.getElementById("rk-heatplan-process-output");
  var processRisk = document.getElementById("rk-heatplan-process-risk");

  function showProcess(key) {
    var data = processes[key];
    if (!data) {
      return;
    }
    processTitle.textContent = data.title;
    processSummary.textContent = data.summary;
    processInput.textContent = data.input;
    processOutput.textContent = data.output;
    processRisk.textContent = data.risk;
    processButtons.forEach(function (button) {
      var selected = button.getAttribute("data-rk-process") === key;
      button.setAttribute("aria-selected", selected ? "true" : "false");
    });
  }

  processButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      showProcess(button.getAttribute("data-rk-process"));
    });
  });

  var activeMode = "prepare";
  var modeButtons = guide.querySelectorAll("[data-rk-mode]");
  modeButtons.forEach(function (button) {
    button.addEventListener("click", function () {
      activeMode = button.getAttribute("data-rk-mode");
      modeButtons.forEach(function (item) {
        var selected = item === button;
        item.setAttribute("aria-selected", selected ? "true" : "false");
      });
    });
  });

  function selectedText(id) {
    var field = document.getElementById(id);
    if (!field) {
      return "nie określono";
    }
    if (field.selectedIndex < 0) {
      return "nie określono";
    }
    return field.options[field.selectedIndex].text;
  }

  function renderList(id, items, emptyText) {
    var list = document.getElementById(id);
    if (!list) {
      return;
    }
    list.textContent = "";
    if (items.length === 0) {
      var emptyItem = document.createElement("li");
      emptyItem.textContent = emptyText;
      list.appendChild(emptyItem);
      return;
    }
    items.forEach(function (itemText) {
      var item = document.createElement("li");
      item.textContent = itemText;
      list.appendChild(item);
    });
  }

  function buildBrief(critical, missing, selected, total) {
    var modeText = "przygotowanie zakresu przyszłego zlecenia";
    if (activeMode === "audit") {
      modeText = "weryfikacja otrzymanego projektu lub oferty";
    }
    var lines = [
      "BRIEF — PROJEKT INSTALACJI GRZEWCZEJ",
      "Tryb: " + modeText + ".",
      "Etap inwestycji: " + selectedText("rk-heatplan-stage") + ".",
      "Odbiorniki: " + selectedText("rk-heatplan-system") + ".",
      "Źródło ciepła: " + selectedText("rk-heatplan-source-select") + ".",
      "Wentylacja: " + selectedText("rk-heatplan-ventilation") + ".",
      "Potwierdzono: " + selected + " z " + total + " elementów."
    ];

    if (critical.length > 0) {
      lines.push("Braki krytyczne: " + critical.join("; ") + ".");
    } else {
      lines.push("Braki krytyczne: nie wskazano na podstawie zaznaczonych odpowiedzi.");
    }
    if (missing.length > 0) {
      lines.push("Do uzupełnienia: " + missing.join("; ") + ".");
    } else {
      lines.push("Do uzupełnienia: brak pozycji na liście kontrolnej.");
    }
    lines.push("Uwaga: lista ocenia obecność elementów, a nie poprawność obliczeń ani zgodność projektu z warunkami budynku.");
    return lines.join("\n");
  }

  function analyzeScope() {
    var checks = guide.querySelectorAll("[data-rk-check]");
    var ok = [];
    var missing = [];
    var critical = [];
    var selected = 0;

    checks.forEach(function (check) {
      var label = check.getAttribute("data-label");
      if (!label) {
        label = "Element bez opisu";
      }
      if (check.checked) {
        selected += 1;
        ok.push(label);
      } else {
        if (check.getAttribute("data-critical") === "true") {
          critical.push(label);
        } else {
          missing.push(label);
        }
      }
    });

    var total = checks.length;
    var percentage = 0;
    if (total > 0) {
      percentage = Math.round((selected / total) * 100);
    }

    var result = document.getElementById("rk-heatplan-audit-result");
    var status = document.getElementById("rk-heatplan-audit-status");
    var intro = document.getElementById("rk-heatplan-audit-intro");
    var progress = document.getElementById("rk-heatplan-progress-fill");
    var progressLabel = document.getElementById("rk-heatplan-progress-label");
    var brief = document.getElementById("rk-heatplan-brief-output");

    result.classList.remove("is-ready");
    result.classList.remove("is-stop");

    if (critical.length > 0) {
      result.classList.add("is-stop");
      status.textContent = "Zakres ma braki krytyczne";
      intro.textContent = "Brakuje co najmniej jednego ogniwa potrzebnego do połączenia danych, obliczeń i parametrów wykonawczych.";
    } else {
      if (missing.length > 0) {
        status.textContent = "Podstawa jest zachowana, ale zakres wymaga uzupełnienia";
        intro.textContent = "Nie wskazano braku krytycznego, jednak część danych lub dokumentów nadal nie została potwierdzona.";
      } else {
        result.classList.add("is-ready");
        status.textContent = "Zakres listy kontrolnej jest kompletny";
        intro.textContent = "Wszystkie pozycje zostały zaznaczone. Następnym krokiem jest merytoryczna kontrola ich poprawności i wzajemnej spójności.";
      }
    }

    progress.style.width = percentage + "%";
    progressLabel.textContent = "Kompletność zakresu: " + selected + " z " + total + " elementów (" + percentage + "%)";
    renderList("rk-heatplan-ok-list", ok, "Nie potwierdzono jeszcze żadnego elementu.");
    renderList("rk-heatplan-missing-list", missing, "Brak dodatkowych pozycji do uzupełnienia.");
    renderList("rk-heatplan-critical-list", critical, "Nie wskazano braku krytycznego.");
    brief.textContent = buildBrief(critical, missing, selected, total);
    return brief.textContent;
  }

  function copyFallback(textValue) {
    var textarea = document.createElement("textarea");
    textarea.value = textValue;
    textarea.setAttribute("readonly", "readonly");
    textarea.style.position = "fixed";
    textarea.style.opacity = "0";
    document.body.appendChild(textarea);
    textarea.select();
    var copied = false;
    try {
      copied = document.execCommand("copy");
    } catch (error) {
      copied = false;
    }
    document.body.removeChild(textarea);
    return copied;
  }

  function showCopyMessage(message) {
    var confirmation = document.getElementById("rk-heatplan-copy-confirmation");
    confirmation.textContent = message;
  }

  function copyBrief() {
    var textValue = analyzeScope();
    if (navigator.clipboard) {
      if (navigator.clipboard.writeText) {
        navigator.clipboard.writeText(textValue).then(function () {
          showCopyMessage("Brief skopiowany.");
        }).catch(function () {
          var copiedAfterError = copyFallback(textValue);
          showCopyMessage(copiedAfterError ? "Brief skopiowany." : "Nie udało się skopiować automatycznie.");
        });
        return;
      }
    }
    var copied = copyFallback(textValue);
    showCopyMessage(copied ? "Brief skopiowany." : "Nie udało się skopiować automatycznie.");
  }

  function resetAnalyzer() {
    var checks = guide.querySelectorAll("[data-rk-check]");
    checks.forEach(function (check) {
      check.checked = false;
    });
    var selects = guide.querySelectorAll(".rk-heatplan-context-grid select");
    selects.forEach(function (field) {
      field.selectedIndex = 0;
    });
    activeMode = "prepare";
    modeButtons.forEach(function (button) {
      var selected = button.getAttribute("data-rk-mode") === "prepare";
      button.setAttribute("aria-selected", selected ? "true" : "false");
    });
    var result = document.getElementById("rk-heatplan-audit-result");
    result.classList.remove("is-ready");
    result.classList.remove("is-stop");
    document.getElementById("rk-heatplan-audit-status").textContent = "Zaznacz elementy i uruchom analizę";
    document.getElementById("rk-heatplan-audit-intro").textContent = "Wynik rozdzieli elementy potwierdzone, dane do uzupełnienia i braki krytyczne.";
    document.getElementById("rk-heatplan-progress-fill").style.width = "0%";
    document.getElementById("rk-heatplan-progress-label").textContent = "Kompletność zakresu: 0 z 40 ocenionych elementów";
    document.getElementById("rk-heatplan-brief-output").textContent = "Po analizie pojawi się tutaj opis inwestycji i lista danych wymagających uzupełnienia.";
    renderList("rk-heatplan-ok-list", [], "Jeszcze nie przeprowadzono analizy.");
    renderList("rk-heatplan-missing-list", [], "Zaznacz elementy faktycznie dostępne.");
    renderList("rk-heatplan-critical-list", [], "Brak oceny nie oznacza akceptacji projektu.");
    showCopyMessage("");
  }

  var runButton = document.getElementById("rk-heatplan-run");
  var copyButton = document.getElementById("rk-heatplan-copy-brief");
  var resetButton = document.getElementById("rk-heatplan-reset");
  if (runButton) {
    runButton.addEventListener("click", analyzeScope);
  }
  if (copyButton) {
    copyButton.addEventListener("click", copyBrief);
  }
  if (resetButton) {
    resetButton.addEventListener("click", resetAnalyzer);
  }

  showProcess("inputs");
  resetAnalyzer();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-instalacji-grzewczej-domu-jednorodzinnego-kompletny-przewodnik-inzynieryjny-koszty-i-obliczenia-ozc/">Projekt instalacji grzewczej domu – OZC, zakres i koszt.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Samodzielny montaż ogrzewania podłogowego – 5 błędów przed wylewką.</title>
		<link>https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 19:27:33 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Systemy ogrzewania]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[błędy wykonawcze]]></category>
		<category><![CDATA[budowa domu]]></category>
		<category><![CDATA[dylatacje]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[izolacja termiczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[montaż samodzielny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pętle grzewcze]]></category>
		<category><![CDATA[porady techniczne]]></category>
		<category><![CDATA[próba szczelności]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[rura pex]]></category>
		<category><![CDATA[zebra termiczna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4245</guid>

					<description><![CDATA[<p>Planujesz samodzielny montaż instalacji grzewczej, by zaoszczędzić na robociźnie? Wiele osób, wpisując w wyszukiwarkę frazę „jak samemu zrobić ogrzewanie podłogowe”, skupia się wyłącznie na prostocie rozkładania rur PEX, zapominając o bezlitosnych prawach fizyki budowli i mechaniki płynów. Ten techniczny przewodnik obala popularne mity i analizuje pięć najpoważniejszych „grzechów głównych” popełnianych przez inwestorów. Dowiesz się z niego, dlaczego brak profesjonalnego projektu, zignorowanie dylatacji czy zbyt długie pętle grzewcze mogą doprowadzić do nieodwracalnych uszkodzeń wylewki i kosztownego remontu. Zamiast uczyć się na własnych błędach pod warstwą betonu, poznaj inżynierskie standardy, które zagwarantują Ci komfort cieplny i niskie rachunki przez kolejne trzydzieści lat.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów przed wylewką.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-diy-guide {
    --rk-navy: #0b2536;
    --rk-navy-2: #12394d;
    --rk-navy-3: #1b465b;
    --rk-cyan: #29c4d7;
    --rk-cyan-dark: #0786a6;
    --rk-cyan-soft: #def7fa;
    --rk-orange: #ff6846;
    --rk-orange-dark: #df4e30;
    --rk-yellow: #f2b526;
    --rk-green: #2fcda1;
    --rk-green-dark: #14775f;
    --rk-red: #d7504a;
    --rk-red-dark: #9f332e;
    --rk-ink: #10283a;
    --rk-copy: #3c5668;
    --rk-muted: #688091;
    --rk-line: #d3e2e8;
    --rk-bg: #f3f8fa;
    --rk-white: #ffffff;
    color: var(--rk-ink);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.62;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }

  #rk-diy-guide,
  #rk-diy-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

  #rk-diy-guide a {
    color: var(--rk-cyan-dark);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-diy-guide a:hover,
  #rk-diy-guide a:focus-visible {
    color: var(--rk-orange-dark);
  }

  #rk-diy-guide button,
  #rk-diy-guide input,
  #rk-diy-guide select {
    font: inherit;
  }

  #rk-diy-guide button:focus-visible,
  #rk-diy-guide a:focus-visible,
  #rk-diy-guide summary:focus-visible,
  #rk-diy-guide select:focus-visible {
    outline: 3px solid rgba(41, 196, 215, 0.48);
    outline-offset: 3px;
  }

  #rk-diy-guide img {
    display: block;
    height: auto;
    max-width: 100%;
  }

  #rk-diy-guide .rk-diy-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    box-shadow: 0 22px 65px rgba(13, 41, 57, 0.12);
    overflow: hidden;
  }

  #rk-diy-guide .rk-diy-hero {
    background:
      radial-gradient(circle at 89% 111%, rgba(41, 196, 215, 0.24) 0, rgba(41, 196, 215, 0.24) 17%, transparent 17.2%),
      linear-gradient(120deg, #0b2536 0%, #143e52 61%, #0d6576 100%);
    color: #ffffff;
    overflow: hidden;
    padding: 62px 58px 56px;
    position: relative;
  }

  #rk-diy-guide .rk-diy-hero::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 9px rgba(255, 104, 70, 0.14);
    content: "";
    height: 12px;
    left: 58px;
    position: absolute;
    top: 43px;
    width: 12px;
  }

  #rk-diy-guide .rk-diy-kicker {
    color: #6ce5ef;
    display: block;
    font-size: 0.77rem;
    font-weight: 900;
    letter-spacing: 0.13em;
    margin: 0 0 19px 28px;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-hero-title,
  #rk-diy-guide .rk-diy-section-title,
  #rk-diy-guide .rk-diy-cta-title,
  #rk-diy-guide .rk-diy-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

  #rk-diy-guide .rk-diy-hero-title {
    font-size: clamp(2.35rem, 5.8vw, 5.15rem);
    margin: 0;
    max-width: 1190px;
  }

  #rk-diy-guide .rk-diy-hero-title span {
    color: #69e7f2;
  }

  #rk-diy-guide .rk-diy-hero-lead {
    color: #e3f0f4;
    font-size: clamp(1.08rem, 2vw, 1.42rem);
    line-height: 1.55;
    margin: 27px 0 0;
    max-width: 1110px;
  }

  #rk-diy-guide .rk-diy-hero-tags,
  #rk-diy-guide .rk-diy-meta,
  #rk-diy-guide .rk-diy-shortcuts {
    display: flex;
    flex-wrap: wrap;
  }

  #rk-diy-guide .rk-diy-hero-tags {
    gap: 10px;
    margin-top: 30px;
  }

  #rk-diy-guide .rk-diy-hero-tags span {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 999px;
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 800;
    padding: 8px 14px;
  }

  #rk-diy-guide .rk-diy-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

  #rk-diy-guide .rk-diy-meta strong {
    color: #ffffff;
  }

  #rk-diy-guide .rk-diy-shortcuts {
    align-items: center;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    gap: 9px;
    padding: 22px 34px;
    position: static;
  }

  #rk-diy-guide .rk-diy-shortcuts-label {
    color: var(--rk-ink);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    margin-right: 4px;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-shortcuts a {
    background: #f1f6f8;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--rk-ink);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-diy-guide .rk-diy-shortcuts a:hover,
  #rk-diy-guide .rk-diy-shortcuts a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

  #rk-diy-guide .rk-diy-section {
    padding: 64px 58px;
  }

  #rk-diy-guide .rk-diy-section + .rk-diy-section {
    border-top: 1px solid var(--rk-line);
  }

  #rk-diy-guide .rk-diy-section-soft {
    background: var(--rk-bg);
  }

  #rk-diy-guide .rk-diy-section-dark {
    background: var(--rk-navy);
    color: #ffffff;
  }

  #rk-diy-guide .rk-diy-eyebrow {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    margin-bottom: 12px;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-section-dark .rk-diy-eyebrow {
    color: #68e6ef;
  }

  #rk-diy-guide .rk-diy-section-title,
  #rk-diy-guide .rk-diy-author-title {
    color: var(--rk-ink);
    font-size: clamp(2rem, 4vw, 3.55rem);
    margin: 0;
    max-width: 1090px;
  }

  #rk-diy-guide .rk-diy-section-dark .rk-diy-section-title {
    color: #ffffff;
  }

  #rk-diy-guide .rk-diy-lead {
    color: var(--rk-copy);
    font-size: clamp(1.03rem, 1.7vw, 1.25rem);
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 1130px;
  }

  #rk-diy-guide .rk-diy-copy {
    color: var(--rk-copy);
    margin: 22px 0 0;
  }

  #rk-diy-guide .rk-diy-section-dark .rk-diy-lead,
  #rk-diy-guide .rk-diy-section-dark .rk-diy-copy {
    color: #c8dbe2;
  }

  #rk-diy-guide .rk-diy-copy strong,
  #rk-diy-guide .rk-diy-lead strong {
    color: var(--rk-ink);
  }

  #rk-diy-guide .rk-diy-section-dark .rk-diy-copy strong,
  #rk-diy-guide .rk-diy-section-dark .rk-diy-lead strong {
    color: #ffffff;
  }

  #rk-diy-guide .rk-diy-answer {
    background: linear-gradient(135deg, #e6fafd 0%, #f8fcfd 100%);
    border: 1px solid #9cdfe8;
    border-left: 7px solid var(--rk-cyan);
    border-radius: 18px;
    margin-top: 28px;
    padding: 27px 29px;
  }

  #rk-diy-guide .rk-diy-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.22rem;
    line-height: 1.4;
  }

  #rk-diy-guide .rk-diy-answer p {
    color: var(--rk-copy);
    margin: 10px 0 0;
  }

  #rk-diy-guide .rk-diy-grid-2,
  #rk-diy-guide .rk-diy-grid-3,
  #rk-diy-guide .rk-diy-grid-4,
  #rk-diy-guide .rk-diy-source-grid,
  #rk-diy-guide .rk-diy-author-facts {
    display: grid;
    gap: 18px;
    margin-top: 30px;
  }

  #rk-diy-guide .rk-diy-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-diy-guide .rk-diy-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-diy-guide .rk-diy-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-diy-guide .rk-diy-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

  #rk-diy-guide .rk-diy-section-soft .rk-diy-card {
    background: rgba(255, 255, 255, 0.88);
  }

  #rk-diy-guide .rk-diy-card-number,
  #rk-diy-guide .rk-diy-icon {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: inline-flex;
    font-size: 0.8rem;
    font-weight: 900;
    height: 36px;
    justify-content: center;
    margin-bottom: 14px;
    min-width: 36px;
    padding: 0 10px;
  }

  #rk-diy-guide .rk-diy-icon.is-stop {
    background: #ffe8e2;
    color: var(--rk-red-dark);
  }

  #rk-diy-guide .rk-diy-icon.is-check {
    background: #fff3d4;
    color: #79580d;
  }

  #rk-diy-guide .rk-diy-icon.is-ok {
    background: #e5f9f2;
    color: var(--rk-green-dark);
  }

  #rk-diy-guide .rk-diy-card h3,
  #rk-diy-guide .rk-diy-card h4 {
    color: var(--rk-ink);
    line-height: 1.3;
    margin: 0 0 9px;
  }

  #rk-diy-guide .rk-diy-card h3 {
    font-size: 1.12rem;
  }

  #rk-diy-guide .rk-diy-card h4 {
    font-size: 1rem;
  }

  #rk-diy-guide .rk-diy-card p {
    color: var(--rk-copy);
    margin: 0;
  }

  #rk-diy-guide .rk-diy-card p + p {
    margin-top: 10px;
  }

  #rk-diy-guide .rk-diy-note {
    background: #fff6e2;
    border-left: 6px solid var(--rk-yellow);
    border-radius: 14px;
    color: #5b4a1d;
    margin-top: 26px;
    padding: 18px 21px;
  }

  #rk-diy-guide .rk-diy-note p {
    margin: 0;
  }

  #rk-diy-guide .rk-diy-note-good {
    background: #e9faf5;
    border-left-color: var(--rk-green);
    color: #145e4d;
  }

  #rk-diy-guide .rk-diy-note-bad {
    background: #fff0ec;
    border-left-color: var(--rk-orange);
    color: #743425;
  }

  #rk-diy-guide .rk-diy-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

  #rk-diy-guide .rk-diy-bullets li + li {
    margin-top: 9px;
  }

  #rk-diy-guide .rk-diy-table-wrap {
    margin-top: 30px;
    overflow-x: auto;
  }

  #rk-diy-guide table {
    border-collapse: separate;
    border-spacing: 0;
    min-width: 780px;
    width: 100%;
  }

  #rk-diy-guide th {
    background: var(--rk-navy);
    border-bottom: 1px solid #31576a;
    color: #ffffff;
    font-size: 0.77rem;
    letter-spacing: 0.04em;
    padding: 15px 16px;
    text-align: left;
    text-transform: uppercase;
  }

  #rk-diy-guide th:first-child {
    border-radius: 14px 0 0;
  }

  #rk-diy-guide th:last-child {
    border-radius: 0 14px 0 0;
  }

  #rk-diy-guide td {
    background: #ffffff;
    border-bottom: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 16px;
    vertical-align: top;
  }

  #rk-diy-guide tbody tr td:first-child {
    border-left: 1px solid var(--rk-line);
  }

  #rk-diy-guide tbody tr td:last-child {
    border-right: 1px solid var(--rk-line);
  }

  #rk-diy-guide tbody tr:last-child td:first-child {
    border-radius: 0 0 0 14px;
  }

  #rk-diy-guide tbody tr:last-child td:last-child {
    border-radius: 0 0 14px;
  }

  #rk-diy-guide td strong {
    color: var(--rk-ink);
  }

  #rk-diy-guide .rk-diy-stage-graphic {
    background: var(--rk-navy);
    border-radius: 22px;
    color: #ffffff;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-diy-guide .rk-diy-stage-intro {
    color: #bdd5de;
    margin: 0 0 20px;
  }

  #rk-diy-guide .rk-diy-stage-tabs {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  #rk-diy-guide .rk-diy-stage-tab {
    background: #173e51;
    border: 1px solid #356178;
    border-radius: 13px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    line-height: 1.25;
    min-height: 64px;
    padding: 11px 12px;
  }

  #rk-diy-guide .rk-diy-stage-tab[aria-selected="true"] {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: #072838;
  }

  #rk-diy-guide .rk-diy-stage-panel {
    background: #17394b;
    border: 1px solid #356178;
    border-radius: 18px;
    margin-top: 18px;
    padding: 25px;
  }

  #rk-diy-guide .rk-diy-stage-label {
    color: #71e6ef;
    display: block;
    font-size: 0.73rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-stage-panel h3 {
    color: #ffffff;
    font-size: 1.55rem;
    line-height: 1.25;
    margin: 7px 0 8px;
  }

  #rk-diy-guide .rk-diy-stage-panel > p {
    color: #c8dce3;
    margin: 0;
  }

  #rk-diy-guide .rk-diy-stage-facts {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 20px;
  }

  #rk-diy-guide .rk-diy-stage-fact {
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-diy-guide .rk-diy-stage-fact strong {
    color: #71e6ef;
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-stage-fact span {
    color: #ffffff;
  }

  #rk-diy-guide .rk-diy-analyzer {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-diy-guide .rk-diy-analyzer-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 25px;
    padding-bottom: 20px;
  }

  #rk-diy-guide .rk-diy-analyzer-head h3 {
    color: #ffffff;
    font-size: clamp(1.55rem, 3vw, 2.3rem);
    line-height: 1.2;
    margin: 0;
  }

  #rk-diy-guide .rk-diy-analyzer-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

  #rk-diy-guide .rk-diy-analyzer-stage {
    background: #17394b;
    border: 1px solid #376177;
    border-radius: 17px;
    margin-top: 18px;
    padding: 22px;
  }

  #rk-diy-guide .rk-diy-analyzer-stage.is-optional {
    background: #153647;
  }

  #rk-diy-guide .rk-diy-stage-head {
    align-items: flex-start;
    display: flex;
    gap: 13px;
    margin-bottom: 18px;
  }

  #rk-diy-guide .rk-diy-stage-number {
    align-items: center;
    background: var(--rk-cyan);
    border-radius: 10px;
    color: #082c3c;
    display: inline-flex;
    flex: 0 0 38px;
    font-weight: 900;
    height: 38px;
    justify-content: center;
  }

  #rk-diy-guide .rk-diy-stage-head h4 {
    color: #ffffff;
    font-size: 1.15rem;
    line-height: 1.3;
    margin: 0;
  }

  #rk-diy-guide .rk-diy-stage-head p {
    color: #aecad5;
    font-size: 0.88rem;
    margin: 4px 0 0;
  }

  #rk-diy-guide .rk-diy-fields {
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-diy-guide .rk-diy-field {
    display: block;
  }

  #rk-diy-guide .rk-diy-field > span {
    color: #eaf6f8;
    display: block;
    font-size: 0.79rem;
    font-weight: 800;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-diy-guide .rk-diy-field small {
    color: #9bbbc7;
    display: block;
    font-size: 0.72rem;
    line-height: 1.4;
    margin-top: 6px;
  }

  #rk-diy-guide .rk-diy-field select {
    appearance: auto;
    background: #ffffff;
    border: 1px solid #b8ccd5;
    border-radius: 10px;
    color: var(--rk-ink);
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-diy-guide .rk-diy-analyzer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
  }

  #rk-diy-guide .rk-diy-analyze-button,
  #rk-diy-guide .rk-diy-reset-button {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 18px;
  }

  #rk-diy-guide .rk-diy-analyze-button {
    background: var(--rk-orange);
    border: 1px solid var(--rk-orange);
    color: #ffffff;
  }

  #rk-diy-guide .rk-diy-analyze-button:hover {
    background: var(--rk-orange-dark);
  }

  #rk-diy-guide .rk-diy-reset-button {
    background: transparent;
    border: 1px solid #5d7c8d;
    color: #ffffff;
  }

  #rk-diy-guide .rk-diy-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-yellow);
    border-radius: 17px;
    margin-top: 22px;
    padding: 24px;
  }

  #rk-diy-guide .rk-diy-result.is-good {
    border-left-color: var(--rk-green);
  }

  #rk-diy-guide .rk-diy-result.is-stop {
    border-left-color: var(--rk-orange);
  }

  #rk-diy-guide .rk-diy-result-status {
    color: var(--rk-ink) !important;
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    font-weight: 900;
    line-height: 1.25;
    margin: 0;
  }

  #rk-diy-guide .rk-diy-result-intro {
    color: var(--rk-copy) !important;
    margin: 8px 0 0;
  }

  #rk-diy-guide .rk-diy-result-counts {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 19px;
  }

  #rk-diy-guide .rk-diy-result-count {
    background: #f1f7f9;
    border: 1px solid var(--rk-line);
    border-radius: 12px;
    padding: 14px;
  }

  #rk-diy-guide .rk-diy-result-count span {
    color: var(--rk-muted) !important;
    display: block;
    font-size: 0.71rem;
    font-weight: 900;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-result-count strong {
    color: var(--rk-ink) !important;
    display: block;
    font-size: 1.45rem;
    margin-top: 3px;
  }

  #rk-diy-guide .rk-diy-result-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 14px;
  }

  #rk-diy-guide .rk-diy-result-column {
    background: #f5f9fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 16px;
  }

  #rk-diy-guide .rk-diy-result-column h4 {
    color: var(--rk-ink) !important;
    font-size: 0.88rem;
    letter-spacing: 0.05em;
    margin: 0 0 10px;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-result-column.is-ok h4 {
    color: var(--rk-green-dark) !important;
  }

  #rk-diy-guide .rk-diy-result-column.is-check h4 {
    color: #88600e !important;
  }

  #rk-diy-guide .rk-diy-result-column.is-stop h4 {
    color: #a83d2d !important;
  }

  #rk-diy-guide .rk-diy-result-column ul {
    color: var(--rk-copy) !important;
    font-size: 0.87rem;
    margin: 0;
    padding-left: 18px;
  }

  #rk-diy-guide .rk-diy-result-column li + li {
    margin-top: 7px;
  }

  #rk-diy-guide .rk-diy-disclaimer {
    color: #667d8c !important;
    font-size: 0.78rem;
    margin: 15px 0 0;
  }

  #rk-diy-guide .rk-diy-cta {
    background:
      radial-gradient(circle at 93% 120%, rgba(41, 196, 215, 0.22) 0, rgba(41, 196, 215, 0.22) 19%, transparent 19.2%),
      linear-gradient(125deg, #0b2536 0%, #153e51 62%, #0d6272 100%);
    border-radius: 21px;
    color: #ffffff;
    margin-top: 34px;
    overflow: hidden;
    padding: 36px;
  }

  #rk-diy-guide .rk-diy-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 990px;
  }

  #rk-diy-guide .rk-diy-cta p {
    color: #cee0e6;
    margin: 14px 0 0;
    max-width: 990px;
  }

  #rk-diy-guide .rk-diy-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    box-shadow: 0 12px 25px rgba(255, 104, 70, 0.24);
    color: #ffffff;
    display: inline-block;
    font-weight: 900;
    margin-top: 22px;
    padding: 14px 20px;
    text-decoration: none;
  }

  #rk-diy-guide .rk-diy-cta-button:hover,
  #rk-diy-guide .rk-diy-cta-button:focus-visible {
    background: #ffffff;
    color: var(--rk-orange-dark);
  }

  #rk-diy-guide .rk-diy-link-disclosure {
    color: #a9c4ce;
    display: block;
    font-size: 0.75rem;
    margin-top: 12px;
  }

  #rk-diy-guide .rk-diy-final {
    background: linear-gradient(180deg, #f4fafb 0%, #ffffff 100%);
  }

  #rk-diy-guide .rk-diy-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-diy-guide .rk-diy-source-card {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 15px;
    padding: 20px;
  }

  #rk-diy-guide .rk-diy-source-card a {
    color: var(--rk-cyan-dark);
    font-size: 1rem;
    font-weight: 900;
  }

  #rk-diy-guide .rk-diy-source-card p {
    color: var(--rk-copy);
    margin: 8px 0 0;
  }

  #rk-diy-guide .rk-diy-responsibility {
    background: #fff0eb;
    border-left: 6px solid var(--rk-orange);
    border-radius: 14px;
    color: #613427;
    margin-top: 26px;
    padding: 19px 22px;
  }

  #rk-diy-guide .rk-diy-responsibility p {
    margin: 0;
  }

  #rk-diy-guide .rk-diy-faq {
    display: grid;
    gap: 12px;
    margin-top: 30px;
  }

  #rk-diy-guide .rk-diy-faq details {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    overflow: hidden;
  }

  #rk-diy-guide .rk-diy-faq summary {
    color: var(--rk-ink);
    cursor: pointer;
    font-weight: 900;
    list-style: none;
    padding: 19px 52px 19px 20px;
    position: relative;
  }

  #rk-diy-guide .rk-diy-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-diy-guide .rk-diy-faq summary::after {
    color: var(--rk-cyan-dark);
    content: "+";
    font-size: 1.55rem;
    font-weight: 700;
    position: absolute;
    right: 20px;
    top: 12px;
  }

  #rk-diy-guide .rk-diy-faq details[open] summary::after {
    content: "−";
  }

  #rk-diy-guide .rk-diy-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: var(--rk-copy);
    padding: 18px 20px;
  }

  #rk-diy-guide .rk-diy-faq-answer p {
    margin: 0;
  }

  #rk-diy-guide .rk-diy-author {
    background: #eef6f8;
    border-top: 1px solid var(--rk-line);
    padding: 64px 58px;
  }

  #rk-diy-guide .rk-diy-author-layout {
    background: #ffffff;
    border: 1px solid #cbdde5;
    border-radius: 21px;
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
    overflow: hidden;
  }

  #rk-diy-guide .rk-diy-author-side {
    align-items: center;
    background: var(--rk-navy);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    padding: 35px 25px;
    text-align: center;
  }

  #rk-diy-guide .rk-diy-author-photo {
    background: #ffffff;
    border: 6px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    overflow: hidden;
    width: 158px;
  }

  #rk-diy-guide .rk-diy-author-name {
    font-size: 1.25rem;
    font-weight: 900;
    margin-top: 20px;
  }

  #rk-diy-guide .rk-diy-author-name a {
    color: #ffffff;
    text-decoration: none;
  }

  #rk-diy-guide .rk-diy-author-role {
    color: #bcd2db;
    font-size: 0.82rem;
    margin: 8px 0 0;
  }

  #rk-diy-guide .rk-diy-author-social {
    display: flex;
    gap: 10px;
    margin-top: 21px;
  }

  #rk-diy-guide .rk-diy-author-social a {
    align-items: center;
    border: 1px solid #497185;
    border-radius: 50%;
    color: #d8e9ee;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    text-decoration: none;
    width: 42px;
  }

  #rk-diy-guide .rk-diy-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-diy-guide .rk-diy-author-main {
    padding: 37px;
  }

  #rk-diy-guide .rk-diy-author-title {
    font-size: clamp(1.85rem, 3.5vw, 3rem);
  }

  #rk-diy-guide .rk-diy-author-quote {
    background: #f7fbfc;
    border: 1px solid #cfe0e7;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 14px;
    color: var(--rk-ink);
    font-size: 1.04rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1.7;
    margin-top: 24px;
    padding: 20px 22px;
  }

  #rk-diy-guide .rk-diy-author-main > p {
    color: var(--rk-copy);
    margin: 18px 0 0;
  }

  #rk-diy-guide .rk-diy-author-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-diy-guide .rk-diy-author-fact {
    background: #eef7f9;
    border: 1px solid #d2e4e9;
    border-radius: 13px;
    color: var(--rk-copy);
    font-size: 0.84rem;
    padding: 15px;
  }

  #rk-diy-guide .rk-diy-author-fact strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.73rem;
    letter-spacing: 0.06em;
    margin-bottom: 5px;
    text-transform: uppercase;
  }

  #rk-diy-guide .rk-diy-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

  @media (max-width: 1050px) {
    #rk-diy-guide .rk-diy-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-diy-guide .rk-diy-stage-tabs {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-diy-guide .rk-diy-result-grid,
    #rk-diy-guide .rk-diy-result-counts {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 820px) {
    #rk-diy-guide .rk-diy-hero,
    #rk-diy-guide .rk-diy-section,
    #rk-diy-guide .rk-diy-author {
      padding-left: 28px;
      padding-right: 28px;
    }

    #rk-diy-guide .rk-diy-hero::before {
      left: 28px;
    }

    #rk-diy-guide .rk-diy-shortcuts {
      padding-left: 22px;
      padding-right: 22px;
    }

    #rk-diy-guide .rk-diy-grid-3 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-diy-guide .rk-diy-stage-facts {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-diy-guide .rk-diy-author-layout {
      grid-template-columns: minmax(0, 1fr);
    }
  }

  @media (max-width: 660px) {
    #rk-diy-guide .rk-diy-hero {
      padding-bottom: 42px;
      padding-top: 52px;
    }

    #rk-diy-guide .rk-diy-section,
    #rk-diy-guide .rk-diy-author {
      padding-bottom: 46px;
      padding-top: 46px;
    }

    #rk-diy-guide .rk-diy-grid-2,
    #rk-diy-guide .rk-diy-grid-3,
    #rk-diy-guide .rk-diy-grid-4,
    #rk-diy-guide .rk-diy-fields,
    #rk-diy-guide .rk-diy-source-grid,
    #rk-diy-guide .rk-diy-author-facts,
    #rk-diy-guide .rk-diy-stage-tabs {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-diy-guide .rk-diy-stage-graphic,
    #rk-diy-guide .rk-diy-analyzer,
    #rk-diy-guide .rk-diy-cta {
      border-radius: 17px;
      padding: 20px;
    }

    #rk-diy-guide .rk-diy-stage-panel,
    #rk-diy-guide .rk-diy-analyzer-stage,
    #rk-diy-guide .rk-diy-result {
      padding: 18px;
    }

    #rk-diy-guide .rk-diy-analyzer-actions {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-diy-guide .rk-diy-analyze-button,
    #rk-diy-guide .rk-diy-reset-button,
    #rk-diy-guide .rk-diy-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-diy-guide .rk-diy-table-wrap {
      overflow: visible;
    }

    #rk-diy-guide table,
    #rk-diy-guide thead,
    #rk-diy-guide tbody,
    #rk-diy-guide tr,
    #rk-diy-guide th,
    #rk-diy-guide td {
      display: block;
      min-width: 0;
      width: 100%;
    }

    #rk-diy-guide thead {
      clip: rect(0 0 0 0);
      clip-path: inset(50%);
      height: 1px;
      overflow: hidden;
      position: absolute;
      white-space: nowrap;
      width: 1px;
    }

    #rk-diy-guide tbody {
      display: grid;
      gap: 14px;
    }

    #rk-diy-guide tbody tr {
      background: #ffffff;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      overflow: hidden;
    }

    #rk-diy-guide td,
    #rk-diy-guide tbody tr td:first-child,
    #rk-diy-guide tbody tr td:last-child {
      border: 0;
      border-bottom: 1px solid #e1ebef;
      border-radius: 0;
      padding: 13px 15px;
    }

    #rk-diy-guide td:last-child {
      border-bottom: 0;
    }

    #rk-diy-guide td::before {
      color: var(--rk-cyan-dark);
      content: attr(data-label);
      display: block;
      font-size: 0.69rem;
      font-weight: 900;
      letter-spacing: 0.07em;
      margin-bottom: 4px;
      text-transform: uppercase;
    }

    #rk-diy-guide .rk-diy-author-main {
      padding: 25px 20px;
    }
  }

  @media (max-width: 430px) {
    #rk-diy-guide .rk-diy-hero,
    #rk-diy-guide .rk-diy-section,
    #rk-diy-guide .rk-diy-author {
      padding-left: 18px;
      padding-right: 18px;
    }

    #rk-diy-guide .rk-diy-hero::before {
      left: 18px;
    }

    #rk-diy-guide .rk-diy-shortcuts {
      padding-left: 14px;
      padding-right: 14px;
    }

    #rk-diy-guide .rk-diy-shortcuts a {
      flex: 1 1 calc(50% - 9px);
      text-align: center;
    }

    #rk-diy-guide .rk-diy-shortcuts-label {
      flex: 1 0 100%;
    }

    #rk-diy-guide .rk-diy-hero-title {
      font-size: 2.2rem;
    }

    #rk-diy-guide .rk-diy-section-title {
      font-size: 1.88rem;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-diy-guide *,
    #rk-diy-guide *::before,
    #rk-diy-guide *::after {
      scroll-behavior: auto;
      transition-duration: 0.01ms;
    }
  }
</style>

<article id="rk-diy-guide" aria-labelledby="rk-diy-visual-title">
  <div class="rk-diy-shell">
    <header class="rk-diy-hero">
      <span class="rk-diy-kicker">Samodzielny montaż · kontrola przed wylewką 2026</span>
      <div class="rk-diy-hero-title" id="rk-diy-visual-title">Samodzielny montaż ogrzewania podłogowego: <span>5 błędów, których beton nie ukryje</span></div>
      <p class="rk-diy-hero-lead">Ułożenie rury to tylko widoczna część pracy. O tym, czy instalacja będzie grzała równomiernie i da się wyregulować, decydują także obliczenia, hydraulika pętli, dylatacje, próba szczelności oraz dokumentacja wykonana przed zakryciem podłogi.</p>
      <div class="rk-diy-hero-tags" aria-label="Zakres poradnika">
        <span>projekt i OZC</span>
        <span>pętle i hydraulika</span>
        <span>rury i dylatacje</span>
        <span>próba szczelności</span>
        <span>jastrych i dokumentacja</span>
      </div>
      <div class="rk-diy-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 27 minut</strong></span>
        <span>Aktualizacja techniczna: <strong>17 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-diy-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-diy-shortcuts-label">Na skróty</span>
      <a href="#rk-diy-answer">Szybka odpowiedź</a>
      <a href="#rk-diy-scope">Zakres prac</a>
      <a href="#rk-diy-return">Punkt bez powrotu</a>
      <a href="#rk-diy-analyzer-section">Analizator</a>
      <a href="#rk-diy-error1">Błąd 1</a>
      <a href="#rk-diy-error2">Błąd 2</a>
      <a href="#rk-diy-repair">Uszkodzona rura</a>
      <a href="#rk-diy-error3">Błąd 3</a>
      <a href="#rk-diy-error4">Błąd 4</a>
      <a href="#rk-diy-error5">Błąd 5</a>
      <a href="#rk-diy-hydraulics">Hydraulika</a>
      <a href="#rk-diy-pour-day">Dzień wylewki</a>
      <a href="#rk-diy-documentation">Dokumentacja</a>
      <a href="#rk-diy-after">Po wylewce</a>
      <a href="#rk-diy-myths">Fakty i mity</a>
      <a href="#rk-diy-checklist">Checklista</a>
      <a href="#rk-diy-summary">Podsumowanie</a>
      <a href="#rk-diy-sources">Źródła</a>
      <a href="#rk-diy-faq">FAQ</a>
      <a href="#rk-diy-author">Autor</a>
    </nav>

    <section class="rk-diy-section" id="rk-diy-answer">
      <span class="rk-diy-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-diy-section-title">Czy można samemu zrobić ogrzewanie podłogowe?</h2>
      <p class="rk-diy-lead"><strong>Można samodzielnie wykonać część prac montażowych, ale nie należy zastępować obliczeń zestawem uniwersalnych reguł.</strong> Inwestor może przygotować podłoże, rozłożyć izolację, zamocować rury i wykonać dokumentację, jeżeli pracuje według kompletnego projektu oraz zna wymagania zastosowanego systemu.</p>
      <div class="rk-diy-answer">
        <strong>Samodzielność dotyczy sposobu wykonania — nie zwalnia z projektu, kontroli ani odbioru.</strong>
        <p>Przed wylewką trzeba potwierdzić powierzchnie czynne, rozstawy, podział i długości pętli, wymagane przepływy, stan rur, dylatacje, wynik próby szczelności oraz technologię jastrychu. Po zakryciu nie da się już łatwo przełożyć rury ani odtworzyć jej rzeczywistej trasy.</p>
      </div>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-icon is-ok">MOŻESZ</span><h3>Wykonać zgodnie z dokumentacją</h3><p>Przygotować warstwy, rozwinąć i zamocować rurę, oznaczyć pętle, zrobić zdjęcia oraz uczestniczyć w kontroli, jeżeli projekt i instrukcje są jednoznaczne.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-icon is-check">POLICZ</span><h3>Nie dobierać „na oko”</h3><p>Rozstaw, długość, przepływ, opór pętli, parametry wody i nastawy rozdzielacza muszą wynikać z obciążenia cieplnego oraz hydrauliki.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-icon is-stop">STOP</span><h3>Nie zakrywać wątpliwości</h3><p>Uszkodzona rura, niezgodny przebieg, brak próby lub nieustalone dylatacje są powodem do zatrzymania wylewki, a nie do liczenia na późniejszą regulację.</p></article>
      </div>
      <p class="rk-diy-copy">Punktem odniesienia powinien być <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt ogrzewania podłogowego</a>, a nie sam schemat z katalogu lub metraż rury wyliczony z powierzchni domu.</p>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-scope">
      <span class="rk-diy-eyebrow">Rozdziel wykonanie od projektowania</span>
      <h2 class="rk-diy-section-title">Co można wykonać samodzielnie, a co wymaga obliczeń?</h2>
      <p class="rk-diy-lead">Najbezpieczniejszy model to samodzielny montaż według policzonej dokumentacji. Projekt określa wynik, a wykonawca — także inwestor wykonujący instalację dla siebie — odpowiada za przeniesienie go na budowę i zgłoszenie każdej potrzebnej zmiany.</p>
      <div class="rk-diy-table-wrap">
        <table>
          <thead><tr><th>Decyzja lub czynność</th><th>Co jest potrzebne</th><th>Czy można wykonać samodzielnie?</th><th>Dowód przed wylewką</th></tr></thead>
          <tbody>
            <tr><td data-label="Czynność"><strong>Przygotowanie podłoża i izolacji</strong></td><td data-label="Podstawa">Projekt warstw, rzędne, parametry materiałów i koordynacja instalacji.</td><td data-label="Samodzielnie">Tak, po rozpoznaniu podłoża i technologii.</td><td data-label="Dowód">Oględziny stabilności, ciągłości warstw i zdjęcia.</td></tr>
            <tr><td data-label="Czynność"><strong>Obciążenie cieplne pomieszczeń</strong></td><td data-label="Podstawa">Dane przegród, wentylacji, temperatur i warunków projektowych.</td><td data-label="Samodzielnie">Tylko przy właściwej wiedzy i metodzie obliczeniowej.</td><td data-label="Dowód">Wyniki dla każdego pomieszczenia, nie tylko całego domu.</td></tr>
            <tr><td data-label="Czynność"><strong>Rozstaw i podział pętli</strong></td><td data-label="Podstawa">Moc, powierzchnia czynna, podłoga, parametry wody i hydraulika.</td><td data-label="Samodzielnie">Układanie tak; dobór bez obliczeń — nie.</td><td data-label="Dowód">Rzut z rozstawami, trasami, długościami i numerami pętli.</td></tr>
            <tr><td data-label="Czynność"><strong>Rozwijanie i mocowanie rury</strong></td><td data-label="Podstawa">Instrukcja systemu, promienie gięcia, rozstaw mocowań i projekt.</td><td data-label="Samodzielnie">Tak, przy użyciu właściwych narzędzi i kontroli.</td><td data-label="Dowód">Brak uszkodzeń, zgodna trasa i zdjęcia z miarą.</td></tr>
            <tr><td data-label="Czynność"><strong>Próba i odbiór</strong></td><td data-label="Podstawa">Ustalona procedura, odpowiednie przyrządy i protokół.</td><td data-label="Samodzielnie">Tylko jeżeli osoba potrafi bezpiecznie wykonać i ocenić próbę.</td><td data-label="Dowód">Podpisany protokół z warunkami, czasem i wynikiem.</td></tr>
          </tbody>
        </table>
      </div>
      <div class="rk-diy-note"><p><strong>Ważne:</strong> fraza „robię sam” nie oznacza, że każdy etap musi być wykonany bez konsultacji. Najbardziej opłaca się zachować dla siebie prace kontrolowalne, a zlecić te, których błędny wynik zostanie trwale zamknięty w podłodze.</p></div>
    </section>

    <section class="rk-diy-section" id="rk-diy-return">
      <span class="rk-diy-eyebrow">Granica między poprawką a remontem</span>
      <h2 class="rk-diy-section-title">Punkt bez powrotu: co znika pod jastrychem?</h2>
      <p class="rk-diy-lead">Wykonanie wylewki nie kończy całej instalacji, ale zamyka dostęp do jej najdłuższego elementu. Dlatego odbiór przed zalaniem powinien dotyczyć nie tylko szczelności, lecz wszystkich cech, których później nie da się potwierdzić bez odkrywek.</p>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-card-number">PRZED</span><h3>Łatwe do poprawienia</h3><ul class="rk-diy-bullets"><li>przebieg i rozstaw rur,</li><li>mocowanie oraz łuki,</li><li>oznaczenia pętli,</li><li>osłony przejść,</li><li>lokalizacja dylatacji.</li></ul></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">PO</span><h3>Możliwe bez kucia</h3><ul class="rk-diy-bullets"><li>odpowietrzenie,</li><li>regulacja przepływów,</li><li>nastawy temperatur,</li><li>część usterek automatyki,</li><li>serwis elementów rozdzielacza.</li></ul></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">TRUDNE</span><h3>Zamknięte w podłodze</h3><ul class="rk-diy-bullets"><li>zbyt mała powierzchnia czynna,</li><li>zły rozstaw lub podział obwodów,</li><li>załamanie i uszkodzenie rury,</li><li>brak ochrony na dylatacji,</li><li>nieznana trasa przewodów.</li></ul></article>
      </div>
      <div class="rk-diy-note rk-diy-note-bad"><p><strong>Nie traktuj regulacji jako planu naprawczego.</strong> Rotametr może ograniczyć lub ustawić przepływ w dostępnych granicach, ale nie zmieni powierzchni grzejnej, średnicy rury, jej przebiegu ani konstrukcji podłogi.</p></div>
    </section>

    <section class="rk-diy-section rk-diy-section-dark" id="rk-diy-analyzer-section">
      <span class="rk-diy-eyebrow">Jedno narzędzie, które ma praktyczny sens</span>
      <h2 class="rk-diy-section-title">Analizator: czy można już wykonać wylewkę?</h2>
      <p class="rk-diy-lead">To audyt kompletności, a nie kalkulator jakości i nie protokół odbioru. Odpowiadaj na podstawie projektu, oględzin, pomiarów i dokumentów. Wynik nie przyznaje punktów — rozdziela fakty potwierdzone, braki do sprawdzenia oraz warunki blokujące zakrycie instalacji.</p>
      <div class="rk-diy-analyzer" id="rk-diy-analyzer">
        <div class="rk-diy-analyzer-head">
          <h3>Kontrola przed zamówieniem jastrychu</h3>
          <p>Jeżeli nie masz dowodu, wybierz „nie wiem”. Brak informacji o elemencie ukrywanym w podłodze jest wynikiem kontroli, a nie neutralną odpowiedzią.</p>
        </div>

        <div class="rk-diy-analyzer-stage">
          <div class="rk-diy-stage-head"><span class="rk-diy-stage-number">1</span><div><h4>Projekt cieplny i układ pętli</h4><p>Czy wiadomo, jaką moc ma przekazać każde pomieszczenie i jak instalacja ma to osiągnąć?</p></div></div>
          <div class="rk-diy-fields">
            <label class="rk-diy-field"><span>Obciążenie cieplne jest określone dla każdego pomieszczenia</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Obciążenie cieplne pomieszczeń" data-action="Wstrzymaj wylewkę i ustal projektowe obciążenie cieplne każdego pomieszczenia."><option value="unknown">Nie wiem / brak dokumentu</option><option value="yes">Tak, mam wyniki</option><option value="no">Nie, przyjęto wartość orientacyjną</option></select></label>
            <label class="rk-diy-field"><span>Powierzchnie czynne i strefy bez rur są naniesione na rzut</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Powierzchnie czynne" data-action="Porównaj rzeczywiste pola grzewcze ze stałą zabudową i wymaganą mocą przed ich zakryciem."><option value="unknown">Nie wiem / nie porównano</option><option value="yes">Tak, są zgodne z rzutem</option><option value="no">Nie, układ zmieniano na budowie</option></select></label>
            <label class="rk-diy-field"><span>Rzut określa rozstawy, podział, długości i numery pętli</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Rzut wykonawczy pętli" data-action="Uzupełnij przebieg, rozstawy, podział i długości pętli oraz zweryfikuj je z wykonaniem."><option value="unknown">Brak kompletnego rzutu</option><option value="yes">Tak, wykonanie porównano</option><option value="no">Nie, pętle ułożono z głowy</option></select></label>
          </div>
        </div>

        <div class="rk-diy-analyzer-stage">
          <div class="rk-diy-stage-head"><span class="rk-diy-stage-number">2</span><div><h4>Hydraulika i identyfikacja obwodów</h4><p>Równe odstępy rur nie potwierdzają, że pompa i rozdzielacz zapewnią wymagane przepływy.</p></div></div>
          <div class="rk-diy-fields">
            <label class="rk-diy-field"><span>Typ i wymiar rury są zgodne z projektem oraz systemem połączeń</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Zgodność rury" data-action="Potwierdź dokładny typ, wymiar, barierę tlenową i zgodność połączeń przed zakryciem."><option value="unknown">Nie wiem / brak karty</option><option value="yes">Tak, zgodność potwierdzona</option><option value="no">Nie, zastosowano zamiennik bez weryfikacji</option></select></label>
            <label class="rk-diy-field"><span>Przepływy i opory pętli policzono dla rzeczywistych długości</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Hydraulika pętli" data-action="Policz wymagane przepływy i spadki ciśnienia dla rzeczywistych obwodów oraz medium."><option value="unknown">Nie wiem / niepoliczone</option><option value="yes">Tak, mam zestawienie</option><option value="no">Nie, oceniono tylko długość</option></select></label>
            <label class="rk-diy-field"><span>Każda pętla jest trwale opisana przy rozdzielaczu</span><select class="rk-diy-audit-field" data-severity="warning" data-label="Oznaczenia pętli" data-action="Oznacz zasilanie i powrót każdego obwodu oraz zapisz pomieszczenie i rzeczywistą długość."><option value="unknown">Nie wiem / opisy tymczasowe</option><option value="yes">Tak, oznaczenia są trwałe</option><option value="no">Nie, obwody nie są opisane</option></select></label>
          </div>
        </div>

        <div class="rk-diy-analyzer-stage">
          <div class="rk-diy-stage-head"><span class="rk-diy-stage-number">3</span><div><h4>Stan rur i przejścia</h4><p>Oględziny wykonuje się na całej dostępnej trasie, również przy nawrotach, dobiegach i mocowaniach.</p></div></div>
          <div class="rk-diy-fields">
            <label class="rk-diy-field"><span>Nie ma załamań, nacięć, spłaszczeń ani niezatwierdzonych napraw</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Stan rur" data-action="Wstrzymaj zakrycie, oznacz każde uszkodzenie i zastosuj wyłącznie procedurę dopuszczoną dla konkretnego systemu."><option value="unknown">Nie sprawdzono całej trasy</option><option value="yes">Tak, stan potwierdzony</option><option value="no">Nie, jest uszkodzenie lub przypadkowa naprawa</option></select></label>
            <label class="rk-diy-field"><span>Rury są stabilnie zamocowane, a łuki spełniają wymagania systemu</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Mocowanie i łuki" data-action="Popraw mocowania, nawroty i miejsca unoszenia się rury przed wykonaniem jastrychu."><option value="unknown">Nie sprawdzono</option><option value="yes">Tak, sprawdzono</option><option value="no">Nie, są luźne odcinki lub ciasne łuki</option></select></label>
            <label class="rk-diy-field"><span>Przejścia przez dylatacje i przegrody mają zaprojektowaną ochronę</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Ochrona przejść" data-action="Ustal i wykonaj osłony rur w miejscach ruchu pól oraz przejść przez przegrody."><option value="unknown">Nie wiem / brak planu</option><option value="yes">Tak, wykonano zgodnie z planem</option><option value="no">Nie, rura przechodzi bez ochrony</option></select></label>
          </div>
        </div>

        <div class="rk-diy-analyzer-stage">
          <div class="rk-diy-stage-head"><span class="rk-diy-stage-number">4</span><div><h4>Dylatacje, taśma brzegowa i próba</h4><p>Technologia jastrychu musi być skoordynowana z instalacją przed przyjazdem ekipy posadzkarskiej.</p></div></div>
          <div class="rk-diy-fields">
            <label class="rk-diy-field"><span>Taśma brzegowa jest ciągła i nie została obcięta przedwcześnie</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Taśma brzegowa" data-action="Przywróć ciągłe oddzielenie jastrychu od ścian, słupów i innych elementów zgodnie z technologią."><option value="unknown">Nie sprawdzono obwodu</option><option value="yes">Tak, ciągłość potwierdzona</option><option value="no">Nie, są przerwy lub za niski pas</option></select></label>
            <label class="rk-diy-field"><span>Plan pól i szczelin dylatacyjnych uzgodniono z jastrychem oraz okładziną</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Plan dylatacji" data-action="Uzgodnij podział pól, szczeliny konstrukcyjne i ich przeniesienie do okładziny przed wylewką."><option value="unknown">Nie wiem / brak planu</option><option value="yes">Tak, plan jest uzgodniony</option><option value="no">Nie, decyzję zostawiono ekipie w dniu wylewki</option></select></label>
            <label class="rk-diy-field"><span>Próba szczelności została wykonana właściwą procedurą i zakończona wynikiem pozytywnym</span><select class="rk-diy-audit-field" data-severity="critical" data-label="Próba szczelności" data-action="Nie wykonuj jastrychu bez zakończonej próby, wyjaśnienia nieprawidłowości i protokołu."><option value="unknown">Brak protokołu / nie wiem</option><option value="yes">Tak, wynik pozytywny</option><option value="no">Nie wykonano lub wynik budzi wątpliwości</option></select></label>
          </div>
        </div>

        <div class="rk-diy-analyzer-stage">
          <div class="rk-diy-stage-head"><span class="rk-diy-stage-number">5</span><div><h4>Dokumentacja i technologia jastrychu</h4><p>Ostatnia kontrola tworzy punkt odniesienia dla posadzkarza, późniejszego wiercenia i uruchomienia.</p></div></div>
          <div class="rk-diy-fields">
            <label class="rk-diy-field"><span>Zdjęcia pokazują wszystkie pętle, przejścia i odległości od stałych punktów</span><select class="rk-diy-audit-field" data-severity="warning" data-label="Dokumentacja zdjęciowa" data-action="Wykonaj zdjęcia całej powierzchni z miarą i punktami odniesienia przed zakryciem rur."><option value="unknown">Zdjęcia niepełne</option><option value="yes">Tak, komplet wykonany</option><option value="no">Nie wykonano zdjęć</option></select></label>
            <label class="rk-diy-field"><span>Protokół zawiera pętle, długości, odstępstwa i wynik próby</span><select class="rk-diy-audit-field" data-severity="warning" data-label="Protokół i inwentaryzacja" data-action="Uzupełnij zestawienie obwodów, zaakceptowane zmiany, wynik próby i osoby odpowiedzialne."><option value="unknown">Dokument niekompletny</option><option value="yes">Tak, dokumentacja kompletna</option><option value="no">Nie ma protokołu</option></select></label>
            <label class="rk-diy-field"><span>Rodzaj, grubość, pielęgnacja i procedura wygrzewania jastrychu są uzgodnione</span><select class="rk-diy-audit-field" data-severity="warning" data-label="Technologia jastrychu" data-action="Uzgodnij z wykonawcą jastrychu warunki ułożenia, pielęgnacji, uruchomienia i pomiaru wilgotności."><option value="unknown">Nie ustalono</option><option value="yes">Tak, mam pisemne wytyczne</option><option value="no">Nie, plan ma powstać później</option></select></label>
          </div>
        </div>

        <div class="rk-diy-analyzer-actions">
          <button class="rk-diy-analyze-button" id="rk-diy-run" type="button">Sprawdź gotowość do wylewki</button>
          <button class="rk-diy-reset-button" id="rk-diy-reset" type="button">Wyczyść odpowiedzi</button>
        </div>
        <div class="rk-diy-result" id="rk-diy-result" aria-live="polite">
          <p class="rk-diy-result-status" id="rk-diy-result-status">Uzupełnij 15 punktów na podstawie rzeczywistego wykonania</p>
          <p class="rk-diy-result-intro" id="rk-diy-result-intro">Wynik rozdzieli informacje potwierdzone, wymagające uzupełnienia i blokujące zakrycie instalacji.</p>
          <div class="rk-diy-result-counts" aria-label="Podsumowanie analizy">
            <div class="rk-diy-result-count"><span>Potwierdzone</span><strong id="rk-diy-ok-count">0</strong></div>
            <div class="rk-diy-result-count"><span>Do sprawdzenia</span><strong id="rk-diy-check-count">15</strong></div>
            <div class="rk-diy-result-count"><span>Krytyczne</span><strong id="rk-diy-stop-count">0</strong></div>
          </div>
          <div class="rk-diy-result-grid">
            <div class="rk-diy-result-column is-ok"><h4>Potwierdzone</h4><ul id="rk-diy-ok-list"><li>Jeszcze brak ocenionych danych.</li></ul></div>
            <div class="rk-diy-result-column is-check"><h4>Do sprawdzenia</h4><ul id="rk-diy-check-list"><li>Uzupełnij formularz na podstawie projektu, oględzin i protokołów.</li></ul></div>
            <div class="rk-diy-result-column is-stop"><h4>Wstrzymaj wylewkę</h4><ul id="rk-diy-stop-list"><li>Brak oceny nie oznacza gotowości do zakrycia rur.</li></ul></div>
          </div>
          <p class="rk-diy-disclaimer">Analizator jest edukacyjną listą kontrolną. Nie zastępuje projektu, instrukcji zastosowanego systemu, procedury próby, odbioru instalacji ani oceny technologii jastrychu.</p>
        </div>
      </div>

      <aside class="rk-diy-cta" aria-label="Weryfikacja projektu przed wykonaniem wylewki">
        <div class="rk-diy-cta-title">Rury są już rozłożone? Zanim zamówisz wylewkę, porównaj wykonanie z obliczeniami</div>
        <p>Projekt pozwala sprawdzić powierzchnie czynne, rozstawy, długości pętli, wymagane przepływy, spadki ciśnienia i nastawy rozdzielacza, dopóki instalacja pozostaje dostępna i można jeszcze skorygować jej przebieg.</p>
        <a class="rk-diy-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt i zweryfikuj układ przed wylewką</a>
        <small class="rk-diy-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-diy-section" id="rk-diy-error1">
      <span class="rk-diy-eyebrow">Błąd 1 · montaż „na oko”</span>
      <h2 class="rk-diy-section-title">Układanie rur bez projektu cieplnego i hydraulicznego</h2>
      <p class="rk-diy-lead">Najbardziej niebezpieczny skrót zaczyna się od założenia, że jeden rozstaw i jedna maksymalna długość pętli pasują do każdego pomieszczenia. W rzeczywistości łazienka, salon z przeszkleniami i sypialnia mogą mieć inne obciążenie, inną powierzchnię czynną oraz inną okładzinę.</p>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-card-number">1</span><h3>Brak mocy dla pomieszczeń</h3><p>Wskaźnik W/m² dla całego domu nie pokazuje, gdzie wystąpi największe obciążenie. Potrzebne jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne</a> przypisane do konkretnych pomieszczeń.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">2</span><h3>Rozstaw z przyzwyczajenia</h3><p>Odstęp rur wynika z wymaganej mocy, parametrów wody, konstrukcji podłogi i ograniczeń temperatury powierzchni, a nie z samego rodzaju źródła ciepła.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">3</span><h3>Metraż bez podziału obwodów</h3><p>Orientacyjna ilość rury nie wyznacza liczby pętli, ich dobiegów, wymaganych przepływów ani oporu krytycznej drogi.</p></article>
      </div>
      <p class="rk-diy-copy">Dylemat <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur co 10 czy 15 cm</a> należy rozstrzygać na podstawie warunków danego pola grzewczego. Gęściej nie zawsze znaczy lepiej: rośnie metraż, liczba obwodów i koszt, a ostateczny efekt nadal ogranicza podłoga oraz parametry wody.</p>
      <div class="rk-diy-note rk-diy-note-bad"><p><strong>Nie używaj tabeli „rozstaw = moc” bez warunków.</strong> Wydajność zależy od różnicy temperatur, budowy podłogi, położenia rury i oporu okładziny. Ta sama geometria nie daje jednej stałej mocy w każdym domu.</p></div>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-error2">
      <span class="rk-diy-eyebrow">Błąd 2 · estetyka zamiast kontroli</span>
      <h2 class="rk-diy-section-title">Niewłaściwe pętle, mocowanie i uszkodzenia rur</h2>
      <p class="rk-diy-lead">Równo ułożony ślimak może mieć niezgodną długość, zbyt ciasny nawrót albo uszkodzoną warstwę zewnętrzną. Odbiór nie powinien kończyć się na zdjęciu całego pomieszczenia — trzeba obejrzeć newralgiczne miejsca z bliska.</p>
      <div class="rk-diy-grid-4">
        <article class="rk-diy-card"><span class="rk-diy-card-number">A</span><h3>Rozwijanie kręgu</h3><p>Użyj rozwijaka i prowadź rurę bez skręcania osiowego. Nie ciągnij jej po ostrych krawędziach, zbrojeniu ani zabrudzonym podłożu.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">B</span><h3>Promień gięcia</h3><p>Wartość dopuszczalna zależy od konkretnego wyrobu, temperatury montażu i narzędzia. Nie przyjmuj uniwersalnej wielokrotności bez dokumentacji.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">C</span><h3>Mocowanie</h3><p>Rura ma pozostać w zaprojektowanym położeniu podczas chodzenia i wykonywania jastrychu, bez punktowego zgniatania oraz unoszenia łuków.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">D</span><h3>Dobiegi</h3><p>Odcinki od rozdzielacza do pola zwiększają długość i opór. Ich skupienie może też zmienić lokalną emisję ciepła i wymagać ochrony.</p></article>
      </div>
      <div class="rk-diy-note"><p><strong>Kolor rury niczego nie rozstrzyga.</strong> Przed montażem sprawdź dokładne oznaczenie, wymiar, klasę zastosowania, barierę ograniczającą przenikanie tlenu, zgodne złączki oraz instrukcję transportu i gięcia.</p></div>
    </section>

    <section class="rk-diy-section" id="rk-diy-repair">
      <span class="rk-diy-eyebrow">Nie improwizuj z elementem ukrywanym na dekady</span>
      <h2 class="rk-diy-section-title">Co zrobić z załamaną lub uszkodzoną rurą?</h2>
      <p class="rk-diy-lead">Nie istnieje jedna metoda naprawy właściwa dla każdego PE-X, PE-RT i przewodu wielowarstwowego. Sposób postępowania musi wynikać z dokumentacji dokładnego systemu. Podgrzewanie, prostowanie lub zakładanie przypadkowej złączki na podstawie filmu nie potwierdza trwałości naprawy.</p>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-icon is-stop">1</span><h3>Zatrzymaj pracę</h3><p>Nie zakrywaj miejsca i nie próbuj ukryć śladu. Oznacz położenie, zrób zdjęcie oraz zapisz typ rury i charakter uszkodzenia.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-icon is-check">2</span><h3>Sprawdź procedurę systemu</h3><p>Ustal, czy wyrób dopuszcza przywrócenie kształtu, wycięcie odcinka, wymianę całej pętli albo konkretną naprawę systemową.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-icon is-ok">3</span><h3>Zweryfikuj i udokumentuj</h3><p>Po zaakceptowanej czynności wykonaj ponowną kontrolę i próbę. Miejsce nanieś na rzut powykonawczy wraz z użytymi elementami.</p></article>
      </div>
      <p class="rk-diy-copy"><strong>Celem pozostaje pętla z jednego odcinka bez ukrytych połączeń.</strong> Gdy naprawa pod jastrychem jest konieczna i dopuszczona, powinna być dostępna w dokumentacji systemu, wykonana właściwymi narzędziami, sprawdzona oraz trwale zlokalizowana.</p>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-error3">
      <span class="rk-diy-eyebrow">Błąd 3 · manometr bez procedury</span>
      <h2 class="rk-diy-section-title">Brak poprawnie udokumentowanej próby szczelności</h2>
      <p class="rk-diy-lead">Zdjęcie wskazówki manometru nie jest pełnym protokołem. Wynik trzeba interpretować razem z medium, temperaturą, czasem, ciśnieniem początkowym i końcowym, konfiguracją instalacji oraz wymaganiami przyjętej procedury.</p>
      <div class="rk-diy-table-wrap">
        <table>
          <thead><tr><th>Element protokołu</th><th>Dlaczego jest potrzebny</th><th>Czego nie wolno zakładać</th></tr></thead>
          <tbody>
            <tr><td data-label="Element"><strong>Identyfikacja instalacji</strong></td><td data-label="Znaczenie">Łączy wynik z budynkiem, rozdzielaczem, zakresem i datą próby.</td><td data-label="Nie zakładaj">Że samo zdjęcie bez opisu będzie czytelne po latach.</td></tr>
            <tr><td data-label="Element"><strong>Medium i warunki</strong></td><td data-label="Znaczenie">Zmiany temperatury i właściwości medium wpływają na wskazania.</td><td data-label="Nie zakładaj">Że każda zmiana wskazówki oznacza przeciek albo że każdy stabilny odczyt potwierdza całość.</td></tr>
            <tr><td data-label="Element"><strong>Ciśnienie i czas</strong></td><td data-label="Znaczenie">Muszą odpowiadać projektowi, dokumentacji elementów i przyjętej procedurze.</td><td data-label="Nie zakładaj">Uniwersalnego „6 bar przez 24 godziny” dla wszystkich systemów.</td></tr>
            <tr><td data-label="Element"><strong>Oględziny</strong></td><td data-label="Znaczenie">Pozwalają sprawdzić dostępne połączenia, rury i armaturę podczas próby.</td><td data-label="Nie zakładaj">Że manometr zastępuje kontrolę całej dostępnej instalacji.</td></tr>
            <tr><td data-label="Element"><strong>Wynik i podpisy</strong></td><td data-label="Znaczenie">Zapisują ocenę, uwagi, odstępstwa i odpowiedzialność uczestników.</td><td data-label="Nie zakładaj">Że brak zauważonego wycieku jest automatycznie formalnym odbiorem.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-diy-copy">Szczegółowy zakres czynności omawia poradnik o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>. Stan instalacji podczas wykonywania jastrychu również należy ustalić w procedurze — ciśnienie ma przede wszystkim umożliwić wykrycie uszkodzenia, a nie „usztywniać” rurę czy chronić nieistniejące połączenia w polu.</p>
    </section>

    <section class="rk-diy-section" id="rk-diy-error4">
      <span class="rk-diy-eyebrow">Błąd 4 · plan pól dopiero przy pompie</span>
      <h2 class="rk-diy-section-title">Dylatacje, taśma brzegowa i przejścia rur „na później”</h2>
      <p class="rk-diy-lead">Rura, jastrych, ściany i okładzina pracują w jednym układzie. Podział pól nie powinien powstać spontanicznie w dniu wylewki, bo musi uwzględniać geometrię pomieszczeń, istniejące szczeliny konstrukcyjne, przewężenia, progi i późniejsze wykończenie.</p>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-card-number">OBWÓD</span><h3>Taśma brzegowa</h3><p>Oddziela jastrych od ścian, słupów i innych elementów. Musi tworzyć ciągłą barierę i zachować odpowiednią wysokość do zakończenia prac posadzkowych.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">POLE</span><h3>Szczeliny i podział</h3><p>Nie ma jednej powierzchni lub długości boku właściwej dla każdego jastrychu. Kryteria zależą od materiału, kształtu, grubości i technologii wykonawcy.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">PRZEJŚCIE</span><h3>Rury przez szczeliny</h3><p>Przejścia ogranicza się i chroni tak, aby ruch sąsiednich pól nie działał bezpośrednio na przewód. Rodzaj oraz długość osłony wynikają z rozwiązania projektowego.</p></article>
      </div>
      <p class="rk-diy-copy">Więcej przykładów i zasad koordynacji opisuje artykuł o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>. Plan szczelin trzeba też przekazać wykonawcy okładziny, ponieważ zachowanie jastrychu i wykończenia nie są od siebie niezależne.</p>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-error5">
      <span class="rk-diy-eyebrow">Błąd 5 · warstwy traktowane osobno</span>
      <h2 class="rk-diy-section-title">Zła izolacja, przypadkowy jastrych i zbyt wczesne uruchomienie</h2>
      <p class="rk-diy-lead">Podłogówka nie jest samą rurą. Izolacja, podłoże, jastrych, okładzina i sposób uruchomienia wpływają na straty w dół, trwałość podłogi, bezwładność oraz osiągalną moc.</p>
      <div class="rk-diy-grid-4">
        <article class="rk-diy-card"><span class="rk-diy-card-number">1</span><h3>Izolacja bez obliczeń</h3><p>Grubość w centymetrach nie wystarcza. Liczą się przewodność materiału, układ warstw, mostki, warunki pod przegrodą i wytrzymałość mechaniczna.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">2</span><h3>Niestabilne podparcie</h3><p>Szczeliny, kołyszące się płyty i instalacje wciśnięte przypadkowo pod izolację mogą tworzyć miejsca nierównomiernego podparcia jastrychu.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">3</span><h3>Jastrych „jak zawsze”</h3><p>Rodzaj, grubość, zbrojenie, dodatki, pola, pielęgnacja i dopuszczenie do ogrzewania muszą tworzyć jedną technologię, a nie zestaw osobnych porad.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">4</span><h3>Grzanie jako suszarka</h3><p>Nie uruchamiaj instalacji przypadkową temperaturą, aby przyspieszyć prace. Wygrzewanie i pomiar wilgotności wykonuje się według uzgodnionej procedury.</p></article>
      </div>
      <p class="rk-diy-copy">Warstwy izolacyjne szerzej omawia poradnik <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a>, a wymagania posadzki — <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">kompletny przewodnik po wylewce na podłogówkę</a>.</p>
    </section>

    <section class="rk-diy-section" id="rk-diy-hydraulics">
      <span class="rk-diy-eyebrow">Długość jest jednym z parametrów</span>
      <h2 class="rk-diy-section-title">Dlaczego długość pętli nie wystarcza do oceny hydrauliki?</h2>
      <p class="rk-diy-lead">Dwie pętle o tej samej długości mogą wymagać innych przepływów, a dwie o różnych długościach mogą być poprawnie zrównoważone. Ocena wymaga połączenia mocy, temperatur, geometrii rury, medium i dostępnego ciśnienia.</p>
      <div class="rk-diy-grid-4">
        <article class="rk-diy-card"><span class="rk-diy-card-number">Q</span><h3>Moc pętli</h3><p>Im więcej ciepła ma przenieść obwód przy przyjętej różnicy temperatur, tym większy przepływ może być potrzebny.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">dᵢ</span><h3>Średnica wewnętrzna</h3><p>Ten sam wymiar zewnętrzny nie zawsze oznacza identyczne światło i charakterystykę hydrauliczną produktu.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">L</span><h3>Cała droga</h3><p>Liczy się pętla wraz z dobiegami, przyłączami i elementami miejscowymi — od belki zasilającej do powrotnej.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">Δp</span><h3>Dostępny napór</h3><p>Pompa ma obsłużyć przepływ całego układu i opór drogi krytycznej, a rozdzielacz musi umożliwić regulację pozostałych obwodów.</p></article>
      </div>
      <div class="rk-diy-note"><p><strong>Około 100 m dla typowej rury 16 × 2 mm może być praktycznym pułapem roboczym, ale nie jest uniwersalnym limitem normowym.</strong> Dopuszczalna długość może być mniejsza lub inna zależnie od przepływu, światła rury, medium i założeń regulacji.</p></div>
      <p class="rk-diy-copy">Zobacz osobne wyjaśnienie <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalnej długości pętli</a> oraz skutków, jakie może powodować <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/">za długa pętla podłogówki</a>.</p>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-pour-day">
      <span class="rk-diy-eyebrow">Ostatnie godziny pełnego dostępu</span>
      <h2 class="rk-diy-section-title">Dzień wykonywania jastrychu: plan kontroli</h2>
      <p class="rk-diy-lead">W dniu wylewki nie powinny powstawać nowe decyzje projektowe. Celem jest ochrona wcześniej odebranej instalacji, kontrola uzgodnionych warunków i szybka reakcja, jeżeli podczas robót wydarzy się coś nieprzewidzianego.</p>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-card-number">PRZED</span><h3>Odbiór i przekazanie</h3><ul class="rk-diy-bullets"><li>porównaj trasy z rzutem,</li><li>sprawdź wynik próby,</li><li>potwierdź taśmy i dylatacje,</li><li>wykonaj komplet zdjęć,</li><li>przekaż technologię ekipie.</li></ul></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">W TRAKCIE</span><h3>Ochrona instalacji</h3><ul class="rk-diy-bullets"><li>kontroluj sposób poruszania się,</li><li>nie przeciągaj sprzętu po rurach,</li><li>obserwuj wskazania przyjętej kontroli,</li><li>pilnuj szczelin i przejść,</li><li>zgłaszaj każde uszkodzenie natychmiast.</li></ul></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">PO</span><h3>Zapis warunków</h3><ul class="rk-diy-bullets"><li>zanotuj datę i rodzaj jastrychu,</li><li>zapisz zauważone zdarzenia,</li><li>potwierdź pielęgnację,</li><li>ustal termin kolejnych kontroli,</li><li>zabezpiecz dokumentację.</li></ul></article>
      </div>
      <div class="rk-diy-note rk-diy-note-bad"><p><strong>Jeżeli rura zostanie uszkodzona podczas prac, zatrzymaj roboty w tym miejscu.</strong> Natychmiastowa lokalizacja i naprawa według właściwej procedury są lepsze niż próba odnalezienia problemu po zakończeniu całej podłogi.</p></div>
    </section>

    <section class="rk-diy-section" id="rk-diy-documentation">
      <span class="rk-diy-eyebrow">Najtańsze ubezpieczenie wiedzy o instalacji</span>
      <h2 class="rk-diy-section-title">Zdjęcia i inwentaryzacja powykonawcza</h2>
      <p class="rk-diy-lead">Zdjęcia powinny pozwolić odtworzyć położenie rur, a nie tylko potwierdzić, że na budowie leżała podłogówka. Fotografuj całe pola i szczegóły, zawsze z rozpoznawalnym punktem odniesienia.</p>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-card-number">KADR</span><h3>Pełne pomieszczenie</h3><p>Wykonaj zdjęcia z kilku stron, obejmujące ściany, otwory, stałe elementy i cały przebieg pętli. Zachowaj logiczną kolejność plików.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">MIARA</span><h3>Odległości od punktów stałych</h3><p>Dodaj miarkę lub zaznacz wymiary od ścian, progów, słupów i przepustów. Sama perspektywa aparatu nie pozwala później wyznaczyć bezpiecznego miejsca wiercenia.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">DETAL</span><h3>Przejścia i odstępstwa</h3><p>Sfotografuj dylatacje, osłony, podejścia do rozdzielacza, zagęszczenia dobiegów i każdą zaakceptowaną zmianę lub naprawę.</p></article>
      </div>
      <ul class="rk-diy-bullets">
        <li>zapisz producenta, pełne oznaczenie i numery partii rury,</li>
        <li>zanotuj rzeczywistą długość i obsługiwane pomieszczenie każdej pętli,</li>
        <li>oznacz pary zasilanie–powrót oraz numer belki rozdzielacza,</li>
        <li>dołącz protokół próby, zmiany względem projektu i osoby zatwierdzające,</li>
        <li>zachowaj dokumenty jastrychu, procedurę wygrzewania i późniejsze nastawy.</li>
      </ul>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-after">
      <span class="rk-diy-eyebrow">Zakrycie rur nie oznacza końca prac</span>
      <h2 class="rk-diy-section-title">Co robić po wykonaniu jastrychu?</h2>
      <p class="rk-diy-lead">Po wylewce rozpoczyna się etap pielęgnacji, kontrolowanego uruchomienia i przygotowania podłoża do okładziny. Terminy i temperatury zależą od konkretnego jastrychu — nie należy kopiować jednej procedury do każdego materiału.</p>
      <div class="rk-diy-grid-4">
        <article class="rk-diy-card"><span class="rk-diy-card-number">1</span><h3>Pielęgnacja</h3><p>Chroń podłogę przed zbyt szybkim wysychaniem, przeciągami, mrozem i obciążeniami zgodnie z wytycznymi wykonawcy jastrychu.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">2</span><h3>Wygrzewanie</h3><p>Rozpocznij w terminie i według przebiegu właściwego dla zastosowanej mieszanki. Zapisuj daty oraz temperatury zamiast polegać na pamięci.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">3</span><h3>Wilgotność</h3><p>Protokół wygrzewania nie zastępuje oceny wilgotności przed montażem okładziny. Metodę i wartości graniczne dobiera się do materiałów.</p></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">4</span><h3>Regulacja</h3><p>Po odpowietrzeniu i ustabilizowaniu pracy ustaw projektowe przepływy oraz parametry źródła. Nie kopiuj jednej wartości na wszystkie rotametry.</p></article>
      </div>
      <div class="rk-diy-note"><p><strong>Próba szczelności, wygrzewanie jastrychu, pomiar wilgotności i regulacja hydrauliczna to cztery różne czynności.</strong> Pozytywny wynik jednej nie zastępuje pozostałych.</p></div>
    </section>

    <section class="rk-diy-section" id="rk-diy-myths">
      <span class="rk-diy-eyebrow">Skróty myślowe, które trafiają pod beton</span>
      <h2 class="rk-diy-section-title">Fakty i mity samodzielnego montażu</h2>
      <div class="rk-diy-table-wrap">
        <table>
          <thead><tr><th>Stwierdzenie</th><th>Ocena</th><th>Wyjaśnienie</th></tr></thead>
          <tbody>
            <tr><td data-label="Stwierdzenie"><strong>„Rozstaw 15 cm pasuje do całego domu”</strong></td><td data-label="Ocena">Mit</td><td data-label="Wyjaśnienie">Rozstaw wynika z wymaganej mocy, powierzchni czynnej, podłogi i parametrów wody dla danego pomieszczenia.</td></tr>
            <tr><td data-label="Stwierdzenie"><strong>„Każda pętla musi mieć niemal identyczną długość”</strong></td><td data-label="Ocena">Mit</td><td data-label="Wyjaśnienie">Celem są właściwe przepływy i możliwa regulacja. Długość jest ważna, ale nie zastępuje obliczenia oporu.</td></tr>
            <tr><td data-label="Stwierdzenie"><strong>„100 m to absolutny limit każdej pętli”</strong></td><td data-label="Ocena">Mit</td><td data-label="Wyjaśnienie">To bywa praktyczny pułap w typowych warunkach, lecz granica zależy od rury, przepływu, medium i dostępnego ciśnienia.</td></tr>
            <tr><td data-label="Stwierdzenie"><strong>„6 bar przez 24 godziny wystarcza zawsze”</strong></td><td data-label="Ocena">Mit</td><td data-label="Wyjaśnienie">Warunki próby przyjmuje się z właściwej procedury, projektu i dokumentacji konkretnych elementów.</td></tr>
            <tr><td data-label="Stwierdzenie"><strong>„Zdjęcia przed wylewką są częścią dokumentacji”</strong></td><td data-label="Ocena">Fakt</td><td data-label="Wyjaśnienie">Pomagają odtworzyć trasy, ograniczyć ryzyko wiercenia i zlokalizować późniejsze odstępstwa.</td></tr>
            <tr><td data-label="Stwierdzenie"><strong>„Samodzielny montaż może być poprawny”</strong></td><td data-label="Ocena">Fakt warunkowy</td><td data-label="Wyjaśnienie">Wymaga projektu, właściwych materiałów, umiejętności, kontroli, próby i uczciwego zatrzymania prac przy niepewności.</td></tr>
          </tbody>
        </table>
      </div>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-checklist">
      <span class="rk-diy-eyebrow">Do wydrukowania przed odbiorem</span>
      <h2 class="rk-diy-section-title">Checklista przed wylewką</h2>
      <p class="rk-diy-lead">Poniższa lista jest podsumowaniem, nie substytutem dokumentacji systemu. Każde „nie wiem” przy elemencie ukrywanym pod jastrychem powinno mieć właściciela i termin wyjaśnienia.</p>
      <div class="rk-diy-grid-3">
        <article class="rk-diy-card"><span class="rk-diy-card-number">PROJEKT</span><h3>Dane zgodne z wykonaniem</h3><ul class="rk-diy-bullets"><li>obciążenia pomieszczeń,</li><li>powierzchnie czynne,</li><li>rozstawy i strefy brzegowe,</li><li>podział oraz długości pętli,</li><li>przepływy, opory i nastawy.</li></ul></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">MONTAŻ</span><h3>Warstwy i rury odebrane</h3><ul class="rk-diy-bullets"><li>stabilne podłoże i izolacja,</li><li>ciągła taśma brzegowa,</li><li>brak uszkodzeń rur,</li><li>poprawne mocowania i łuki,</li><li>chronione przejścia.</li></ul></article>
        <article class="rk-diy-card"><span class="rk-diy-card-number">DOWODY</span><h3>Dokumenty gotowe</h3><ul class="rk-diy-bullets"><li>pozytywny protokół próby,</li><li>opisy rozdzielacza,</li><li>zdjęcia z miarą,</li><li>rzut powykonawczy i zmiany,</li><li>procedura jastrychu i uruchomienia.</li></ul></article>
      </div>
      <div class="rk-diy-note rk-diy-note-good"><p><strong>Zasada odbioru:</strong> sprawdzaj cechę, dokumentuj wynik i przypisuj odpowiedzialność. Sam podpis pod ogólnym zdaniem „instalacja wykonana prawidłowo” nie zastępuje danych, na podstawie których można to stwierdzić.</p></div>
    </section>

    <section class="rk-diy-section rk-diy-final" id="rk-diy-summary">
      <span class="rk-diy-eyebrow">Najważniejszy wniosek</span>
      <h2 class="rk-diy-section-title">Samodzielny montaż ma sens, jeśli projekt wyprzedza wykonanie</h2>
      <p class="rk-diy-lead">Największą oszczędnością nie jest pominięcie obliczeń, lecz wykonanie pracy raz i zachowanie możliwości korekty do ostatniej chwili przed jastrychem. Projekt określa parametry, montaż je realizuje, a odbiór potwierdza zgodność.</p>
      <div class="rk-diy-cta">
        <div class="rk-diy-cta-title">Zanim beton zakryje instalację, zamień układ rur w sprawdzony projekt</div>
        <p>Opracowanie łączy obciążenia cieplne, powierzchnie czynne, rozstawy, długości obwodów, przepływy, spadki ciśnienia i nastawy rozdzielacza. Dzięki temu wiadomo, które elementy można wykonać samodzielnie i z czym porównać gotową instalację.</p>
        <a class="rk-diy-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-diy-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-diy-section" id="rk-diy-sources">
      <span class="rk-diy-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-diy-section-title">Źródła oficjalne i zakres poradnika</h2>
      <p class="rk-diy-lead">Odnośniki zewnętrzne w treści zostały zebrane wyłącznie w tej sekcji i prowadzą do oficjalnych kart norm oraz dokumentów urzędowych. Pełne wymagania trzeba zawsze połączyć z projektem i dokumentacją dokładnie zastosowanego systemu.</p>
      <div class="rk-diy-source-grid">
        <article class="rk-diy-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wydajność systemów płaszczyznowych</a><p>Oficjalna karta części opisującej metody wyznaczania wydajności wbudowanych wodnych systemów ogrzewania i chłodzenia.</p></article>
        <article class="rk-diy-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta części obejmującej metody projektowania oraz wymiarowania systemów płaszczyznowych.</p></article>
        <article class="rk-diy-source-card"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — instalowanie systemów</a><p>Oficjalna karta części dotyczącej wymagań instalacyjnych dla wbudowanych wodnych systemów ogrzewania i chłodzenia.</p></article>
        <article class="rk-diy-source-card"><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-installation-1" target="_blank" rel="nofollow noopener noreferrer">BS EN 1264-4:2021 — instalowanie</a><p>Oficjalna karta BSI części normy dotyczącej konstrukcji, wykonania oraz kontroli systemów wbudowanych.</p></article>
        <article class="rk-diy-source-card"><a href="https://isap.sejm.gov.pl/isap.nsf/download.xsp/WDU20220001225/O/D20221225.pdf" target="_blank" rel="nofollow noopener noreferrer">Warunki Techniczne — tekst jednolity</a><p>Oficjalny dokument Dziennika Ustaw zawierający między innymi wymagania izolacyjności cieplnej przegród.</p></article>
      </div>
      <div class="rk-diy-responsibility"><p><strong>Zakres odpowiedzialności:</strong> poradnik i analizator pomagają uporządkować decyzje przed wylewką, lecz nie są projektem, instrukcją konkretnego wyrobu, protokołem próby, formalnym odbiorem ani oceną jastrychu. Ostateczne wymagania wynikają z dokumentacji inwestycji, aktualnych dokumentów zastosowanych elementów i rzeczywistych warunków budynku.</p></div>
    </section>

    <section class="rk-diy-section rk-diy-section-soft" id="rk-diy-faq">
      <span class="rk-diy-eyebrow">Pytania inwestorów wykonujących instalację samodzielnie</span>
      <h2 class="rk-diy-section-title">FAQ — samodzielny montaż ogrzewania podłogowego</h2>
      <div class="rk-diy-faq">
        <details><summary>Czy można samodzielnie zamontować wodne ogrzewanie podłogowe?</summary><div class="rk-diy-faq-answer"><p>Można samodzielnie wykonać prace montażowe, jeżeli instalacja ma kompletny projekt, zastosowane elementy są zgodne systemowo, a osoba wykonująca potrafi kontrolować warstwy, rury, połączenia i próbę. Samodzielność nie zastępuje obliczeń cieplnych, hydrauliki ani odbioru przed wylewką.</p></div></details>
        <details><summary>Czy projekt podłogówki jest formalnie obowiązkowy?</summary><div class="rk-diy-faq-answer"><p>Zakres formalny zależy od rodzaju inwestycji i dokumentacji budynku. Niezależnie od kwalifikacji prawnej potrzebne są dane wykonawcze pozwalające ustalić moc pomieszczeń, powierzchnie czynne, rozstawy, pętle, przepływy i nastawy. Brak jednego uniwersalnego obowiązku nie oznacza, że instalację można prawidłowo dobrać bez obliczeń.</p></div></details>
        <details><summary>Czy rozstaw 15 cm jest odpowiedni w każdym pomieszczeniu?</summary><div class="rk-diy-faq-answer"><p>Nie. Rozstaw dobiera się do obciążenia cieplnego, dostępnej powierzchni, konstrukcji podłogi, okładziny, temperatury wody i limitów temperatury powierzchni. Jedna wartość dla całego domu może prowadzić do niepotrzebnego zagęszczenia albo niedoboru mocy.</p></div></details>
        <details><summary>Czy 100 m to absolutna maksymalna długość pętli?</summary><div class="rk-diy-faq-answer"><p>Nie jest to uniwersalny limit normowy. Około 100 m bywa praktycznym pułapem dla typowych pętli 16 × 2 mm, lecz poprawność zależy od światła rury, przepływu, medium, oporów miejscowych, dostępnego ciśnienia i możliwości regulacji.</p></div></details>
        <details><summary>Czy wszystkie pętle powinny mieć taką samą długość?</summary><div class="rk-diy-faq-answer"><p>Nie. Powinny zapewniać wymagane przepływy i dać się zrównoważyć. Bardzo duże różnice mogą utrudniać regulację, ale sztuczne wydłużanie krótkiej pętli również zwiększa opór. Ocenia się obliczone przepływy i spadki ciśnienia, nie sam procent różnicy długości.</p></div></details>
        <details><summary>Jakie ciśnienie i czas próby szczelności zastosować?</summary><div class="rk-diy-faq-answer"><p>Nie należy przyjmować jednej wartości dla wszystkich instalacji. Ciśnienie, czas, medium, etapy i kryteria oceny trzeba ustalić według projektu, dokumentacji zastosowanych elementów oraz właściwej procedury odbiorowej. Warunki i wynik zapisuje się w protokole.</p></div></details>
        <details><summary>Czy rury powinny pozostać pod ciśnieniem podczas wykonywania jastrychu?</summary><div class="rk-diy-faq-answer"><p>Stan instalacji podczas robót ustala się według przyjętej procedury i dokumentacji systemu. Kontrola ma pomóc szybko wykryć ewentualne uszkodzenie. Nie należy uzasadniać jej twierdzeniem, że ciśnienie uniwersalnie usztywnia rurę lub zabezpiecza połączenia.</p></div></details>
        <details><summary>Czy próbę można wykonać sprężonym powietrzem?</summary><div class="rk-diy-faq-answer"><p>Medium próby oraz środki bezpieczeństwa muszą wynikać z właściwej procedury i warunków budowy. Gaz pod ciśnieniem magazynuje energię i wymaga szczególnej ostrożności, właściwych przyrządów oraz oceny ryzyka. Nie należy improwizować ani przekraczać dopuszczeń elementów.</p></div></details>
        <details><summary>Co zrobić z załamaną rurą ogrzewania podłogowego?</summary><div class="rk-diy-faq-answer"><p>Zatrzymaj montaż, oznacz miejsce i sprawdź instrukcję dokładnego produktu. Dopuszczona metoda zależy od materiału oraz konstrukcji rury. Po każdej zaakceptowanej naprawie potrzebna jest ponowna kontrola, próba i dokumentacja lokalizacji.</p></div></details>
        <details><summary>Czy wolno ukryć złączkę naprawczą pod wylewką?</summary><div class="rk-diy-faq-answer"><p>Pętle projektuje się bez ukrytych połączeń. Jeśli awaryjna naprawa jest konieczna, musi być rozwiązaniem wyraźnie dopuszczonym dla danego systemu, wykonanym właściwymi narzędziami, sprawdzonym próbą i dokładnie naniesionym na dokumentację. W wielu sytuacjach bezpieczniejsza jest wymiana całej pętli.</p></div></details>
        <details><summary>Gdzie trzeba wykonać dylatacje jastrychu?</summary><div class="rk-diy-faq-answer"><p>Podział zależy od materiału jastrychu, geometrii, grubości, przewężeń, istniejących szczelin konstrukcyjnych, pól grzewczych i wykończenia. Nie ma jednej powierzchni ani długości boku właściwej dla każdej technologii. Plan trzeba uzgodnić przed wylewką.</p></div></details>
        <details><summary>Jak chronić rurę przechodzącą przez dylatację?</summary><div class="rk-diy-faq-answer"><p>Przejścia ogranicza się do niezbędnych i prowadzi w osłonie pozwalającej przejąć ruch sąsiednich pól. Rodzaj oraz długość zabezpieczenia powinny wynikać z projektu i technologii jastrychu, a położenie należy sfotografować.</p></div></details>
        <details><summary>Ile izolacji ułożyć pod ogrzewaniem podłogowym?</summary><div class="rk-diy-faq-answer"><p>Nie można odpowiedzieć samą liczbą centymetrów. Dobór zależy od współczynnika przewodzenia materiału, wymaganej izolacyjności całej przegrody, temperatur po obu stronach, mostków cieplnych, dostępnej wysokości i wytrzymałości pod obciążeniem.</p></div></details>
        <details><summary>Kiedy można rozpocząć wygrzewanie jastrychu?</summary><div class="rk-diy-faq-answer"><p>Termin i przebieg zależą od rodzaju jastrychu, jego receptury, grubości, warunków dojrzewania oraz wytycznych wykonawcy. Nie należy automatycznie stosować jednej liczby dni i jednego przyrostu temperatury do wszystkich podłóg.</p></div></details>
        <details><summary>Jakie zdjęcia zrobić przed wylewką?</summary><div class="rk-diy-faq-answer"><p>Sfotografuj całe pomieszczenia z kilku kierunków, podejścia do rozdzielacza, przejścia, dylatacje, miejsca napraw i strefy bez rur. Dodaj miarę oraz stałe punkty odniesienia, aby można było odtworzyć odległości po zakryciu instalacji.</p></div></details>
        <details><summary>Co sprawdzić bezpośrednio przed rozpoczęciem wylewki?</summary><div class="rk-diy-faq-answer"><p>Porównaj wykonanie z projektem, obejrzyj całą rurę, sprawdź mocowania, osłony, taśmę i dylatacje, zakończ próbę z protokołem, oznacz pętle, wykonaj dokumentację zdjęciową oraz potwierdź technologię jastrychu, pielęgnację i późniejsze uruchomienie.</p></div></details>
      </div>
    </section>

    <section class="rk-diy-author" id="rk-diy-author">
      <span class="rk-diy-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-diy-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-diy-author-layout">
        <aside class="rk-diy-author-side">
          <div class="rk-diy-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-diy-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-diy-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-diy-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-b8b906199/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-diy-author-main">
          <div class="rk-diy-author-quote">„Moim zdaniem samodzielny montaż może być wykonany dobrze, ale tylko wtedy, gdy inwestor nie próbuje zastąpić projektu zestawem internetowych reguł. Rurę można ułożyć własnymi rękami; strat ciepła, przepływów i oporów nie da się jednak policzyć na oko.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W poradnikach oddziela czynności możliwe do wykonania na budowie od decyzji wymagających danych oraz obliczeń.</p>
          <p>Weryfikacja tego materiału objęła obciążenia pomieszczeń, podział i hydraulikę pętli, wymagania przed zakryciem rur, znaczenie próby szczelności, koordynację dylatacji oraz dokumentację powykonawczą. Treść nie przypisuje uniwersalnych wartości wszystkim systemom, ponieważ warunki montażu i odbioru zależą od projektu oraz dokładnie zastosowanych elementów.</p>
          <p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-diy-author-facts">
            <div class="rk-diy-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, bilanse cieplne i hydraulika instalacji</div>
            <div class="rk-diy-author-fact"><strong>Metoda pracy</strong>projekt, dokumentacja systemu i kontrola rzeczywistego wykonania</div>
            <div class="rk-diy-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 17 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "samodzielny montaż ogrzewania podłogowego",
        "projektowe obciążenie cieplne",
        "hydraulika pętli grzewczych",
        "próba szczelności instalacji",
        "równoważenie hydrauliczne"
      ],
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-b8b906199/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Samodzielny-montaz-ogrzewania-podlogowego-–-5-bledow-ktorych-nie-naprawisz-po-wylewce.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Samodzielny-montaz-ogrzewania-podlogowego-–-5-bledow-ktorych-nie-naprawisz-po-wylewce.webp",
      "width": 900,
      "height": 900,
      "caption": "Samodzielny montaż ogrzewania podłogowego — pięć błędów przed wylewką"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#breadcrumb",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/" },
        { "@type": "ListItem", "position": 2, "name": "Poradniki", "item": "https://projekt-ogrzewania.pl/blog/" },
        { "@type": "ListItem", "position": 3, "name": "Samodzielny montaż ogrzewania podłogowego", "item": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#webpage",
      "url": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/",
      "name": "Samodzielny montaż ogrzewania podłogowego – 5 błędów przed wylewką",
      "description": "Praktyczny poradnik samodzielnego montażu podłogówki: projekt, pętle, rury, dylatacje, próba szczelności, jastrych i kontrola przed zakryciem instalacji.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#breadcrumb" },
      "primaryImageOfPage": { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#primaryimage" },
      "datePublished": "2026-04-19T19:27:33+00:00",
      "dateModified": "2026-09-17T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#webpage" },
      "headline": "Samodzielny montaż ogrzewania podłogowego – 5 błędów przed wylewką",
      "description": "Techniczny przewodnik dla inwestora wykonującego podłogówkę samodzielnie, z analizatorem gotowości do wylewki i checklistą odbiorową.",
      "image": { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#primaryimage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2026-04-19T19:27:33+00:00",
      "dateModified": "2026-09-17T12:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "samodzielny montaż ogrzewania podłogowego",
        "kontrola przed wylewką",
        "pętle ogrzewania podłogowego",
        "próba szczelności",
        "dylatacje jastrychu",
        "hydraulika podłogówki"
      ],
      "keywords": "samodzielny montaż ogrzewania podłogowego, montaż podłogówki, błędy przed wylewką, próba szczelności, pętle podłogówki, dylatacje",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#analyzer" },
        { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#error-list" },
        { "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#analyzer",
      "name": "Analizator gotowości podłogówki do wykonania wylewki",
      "url": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#rk-diy-analyzer-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Edukacyjny audyt piętnastu warunków dotyczących projektu, hydrauliki, rur, dylatacji, próby i dokumentacji przed zakryciem instalacji."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#howto",
      "name": "Jak sprawdzić samodzielnie zamontowaną podłogówkę przed wylewką",
      "description": "Sześć etapów kontroli ogrzewania podłogowego przed wykonaniem jastrychu.",
      "totalTime": "PT45M",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Porównaj wykonanie z projektem", "text": "Sprawdź obciążenia pomieszczeń, powierzchnie czynne, rozstawy, trasy, długości i zaakceptowane zmiany." },
        { "@type": "HowToStep", "position": 2, "name": "Zweryfikuj hydraulikę", "text": "Porównaj rzeczywiste pętle z wymaganymi przepływami, oporami i zakresem regulacji rozdzielacza." },
        { "@type": "HowToStep", "position": 3, "name": "Obejrzyj rury", "text": "Sprawdź brak uszkodzeń, poprawne łuki, mocowania, osłony przejść i zgodność zastosowanego wyrobu." },
        { "@type": "HowToStep", "position": 4, "name": "Skontroluj taśmy i dylatacje", "text": "Potwierdź ciągłość oddzielenia brzegowego, podział pól i ochronę rur przechodzących przez szczeliny." },
        { "@type": "HowToStep", "position": 5, "name": "Wykonaj i udokumentuj próbę", "text": "Przeprowadź właściwą procedurę, wyjaśnij nieprawidłowości i zachowaj kompletny protokół." },
        { "@type": "HowToStep", "position": 6, "name": "Zapisz stan przed zakryciem", "text": "Wykonaj zdjęcia z miarą, opisz pętle, nanieś odstępstwa i uzgodnij technologię jastrychu oraz uruchomienia." }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#error-list",
      "name": "Pięć błędów samodzielnego montażu ogrzewania podłogowego",
      "numberOfItems": 5,
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Układanie rur bez projektu cieplnego i hydraulicznego" },
        { "@type": "ListItem", "position": 2, "name": "Niewłaściwe pętle, mocowanie i uszkodzenia rur" },
        { "@type": "ListItem", "position": 3, "name": "Brak poprawnie udokumentowanej próby szczelności" },
        { "@type": "ListItem", "position": 4, "name": "Brak koordynacji dylatacji, taśmy brzegowej i przejść rur" },
        { "@type": "ListItem", "position": 5, "name": "Zła izolacja, przypadkowy jastrych i zbyt wczesne uruchomienie" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czy można samodzielnie zamontować wodne ogrzewanie podłogowe?", "acceptedAnswer": { "@type": "Answer", "text": "Można samodzielnie wykonać prace montażowe, jeżeli instalacja ma kompletny projekt, zastosowane elementy są zgodne, a wykonawca potrafi kontrolować warstwy, rury, połączenia i próbę. Samodzielność nie zastępuje obliczeń ani odbioru." } },
        { "@type": "Question", "name": "Czy projekt podłogówki jest formalnie obowiązkowy?", "acceptedAnswer": { "@type": "Answer", "text": "Zakres formalny zależy od inwestycji. Niezależnie od niego potrzebne są dane wykonawcze określające moc pomieszczeń, powierzchnie czynne, rozstawy, pętle, przepływy i nastawy." } },
        { "@type": "Question", "name": "Czy rozstaw 15 cm jest odpowiedni w każdym pomieszczeniu?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rozstaw dobiera się do obciążenia cieplnego, powierzchni czynnej, konstrukcji podłogi, okładziny, temperatury wody i limitów temperatury powierzchni." } },
        { "@type": "Question", "name": "Czy 100 m to absolutna maksymalna długość pętli?", "acceptedAnswer": { "@type": "Answer", "text": "Nie jest to uniwersalny limit normowy. Poprawność zależy od światła rury, przepływu, medium, oporów miejscowych, dostępnego ciśnienia i możliwości regulacji." } },
        { "@type": "Question", "name": "Czy wszystkie pętle powinny mieć taką samą długość?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Pętle powinny zapewniać wymagane przepływy i dać się zrównoważyć. Ocenia się obliczone przepływy i spadki ciśnienia, nie sam procent różnicy długości." } },
        { "@type": "Question", "name": "Jakie ciśnienie i czas próby szczelności zastosować?", "acceptedAnswer": { "@type": "Answer", "text": "Nie ma jednej wartości dla wszystkich instalacji. Ciśnienie, czas, medium, etapy i kryteria oceny trzeba ustalić według projektu, dokumentacji elementów i właściwej procedury." } },
        { "@type": "Question", "name": "Czy rury powinny pozostać pod ciśnieniem podczas wykonywania jastrychu?", "acceptedAnswer": { "@type": "Answer", "text": "Stan instalacji podczas robót ustala się według przyjętej procedury i dokumentacji systemu. Kontrola ma pomóc wykryć ewentualne uszkodzenie." } },
        { "@type": "Question", "name": "Czy próbę można wykonać sprężonym powietrzem?", "acceptedAnswer": { "@type": "Answer", "text": "Medium próby i środki bezpieczeństwa muszą wynikać z właściwej procedury. Gaz pod ciśnieniem magazynuje energię i wymaga oceny ryzyka, odpowiednich przyrządów i ostrożności." } },
        { "@type": "Question", "name": "Co zrobić z załamaną rurą ogrzewania podłogowego?", "acceptedAnswer": { "@type": "Answer", "text": "Trzeba zatrzymać montaż, oznaczyć miejsce i sprawdzić instrukcję dokładnego produktu. Po zaakceptowanej naprawie potrzebne są kontrola, próba i dokumentacja lokalizacji." } },
        { "@type": "Question", "name": "Czy wolno ukryć złączkę naprawczą pod wylewką?", "acceptedAnswer": { "@type": "Answer", "text": "Pętle projektuje się bez ukrytych połączeń. Konieczna naprawa musi być rozwiązaniem dopuszczonym dla systemu, wykonanym właściwie, sprawdzonym i naniesionym na dokumentację." } },
        { "@type": "Question", "name": "Gdzie trzeba wykonać dylatacje jastrychu?", "acceptedAnswer": { "@type": "Answer", "text": "Podział zależy od materiału jastrychu, geometrii, grubości, przewężeń, istniejących szczelin, pól grzewczych i wykończenia. Plan trzeba uzgodnić przed wylewką." } },
        { "@type": "Question", "name": "Jak chronić rurę przechodzącą przez dylatację?", "acceptedAnswer": { "@type": "Answer", "text": "Przejścia ogranicza się do niezbędnych i prowadzi w osłonie pozwalającej przejąć ruch sąsiednich pól. Rodzaj zabezpieczenia wynika z projektu i technologii jastrychu." } },
        { "@type": "Question", "name": "Ile izolacji ułożyć pod ogrzewaniem podłogowym?", "acceptedAnswer": { "@type": "Answer", "text": "Dobór zależy od przewodności materiału, wymaganej izolacyjności przegrody, temperatur, mostków, dostępnej wysokości i wytrzymałości. Sama liczba centymetrów nie wystarcza." } },
        { "@type": "Question", "name": "Kiedy można rozpocząć wygrzewanie jastrychu?", "acceptedAnswer": { "@type": "Answer", "text": "Termin i przebieg zależą od rodzaju jastrychu, receptury, grubości, warunków dojrzewania oraz wytycznych wykonawcy. Nie ma jednej procedury dla wszystkich podłóg." } },
        { "@type": "Question", "name": "Jakie zdjęcia zrobić przed wylewką?", "acceptedAnswer": { "@type": "Answer", "text": "Należy sfotografować całe pomieszczenia, podejścia, przejścia, dylatacje, naprawy i strefy bez rur, dodając miarę oraz stałe punkty odniesienia." } },
        { "@type": "Question", "name": "Co sprawdzić bezpośrednio przed rozpoczęciem wylewki?", "acceptedAnswer": { "@type": "Answer", "text": "Trzeba porównać wykonanie z projektem, obejrzeć rury, mocowania, osłony, taśmę i dylatacje, zakończyć próbę, oznaczyć pętle, wykonać zdjęcia i uzgodnić technologię jastrychu." } }
      ]
    },
    {
      "@type": "Service",
      "@id": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/#service",
      "name": "Indywidualny projekt instalacji ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/",
      "provider": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "areaServed": { "@type": "Country", "name": "Polska" },
      "serviceType": "Projekt ogrzewania podłogowego",
      "description": "Projekt obejmujący obliczenia cieplne i hydrauliczne, rozmieszczenie pętli, rozstawy, długości, przepływy i nastawy rozdzielacza."
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var guide = document.getElementById("rk-diy-guide");
  if (!guide) {
    return;
  }
  if (guide.getAttribute("data-rk-ready") === "1") {
    return;
  }
  guide.setAttribute("data-rk-ready", "1");

  function renderList(elementId, items, emptyText) {
    var list = document.getElementById(elementId);
    if (!list) {
      return;
    }
    list.textContent = "";
    if (items.length === 0) {
      var emptyItem = document.createElement("li");
      emptyItem.textContent = emptyText;
      list.appendChild(emptyItem);
      return;
    }
    items.forEach(function (itemText) {
      var item = document.createElement("li");
      item.textContent = itemText;
      list.appendChild(item);
    });
  }

  function analyzeReadiness() {
    var fields = guide.querySelectorAll(".rk-diy-audit-field");
    var ok = [];
    var check = [];
    var stop = [];

    fields.forEach(function (field) {
      var value = field.value;
      var severity = field.getAttribute("data-severity") || "warning";
      var label = field.getAttribute("data-label") || "Element kontroli";
      var action = field.getAttribute("data-action") || "Wyjaśnij ten punkt przed wykonaniem jastrychu.";

      if (value === "yes") {
        ok.push(label + " — potwierdzone.");
        return;
      }
      if (severity === "critical") {
        if (value === "no") {
          stop.push(action);
          return;
        }
        stop.push("Brak potwierdzenia: " + label.toLowerCase() + ". " + action);
        return;
      }
      check.push(action);
    });

    var result = document.getElementById("rk-diy-result");
    var status = document.getElementById("rk-diy-result-status");
    var intro = document.getElementById("rk-diy-result-intro");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");

    if (stop.length > 0) {
      result.classList.add("is-stop");
      status.textContent = "Nie zamawiaj jeszcze jastrychu — wyjaśnij warunki krytyczne";
      intro.textContent = "Co najmniej jeden brak dotyczy cechy, której po zakryciu nie da się wiarygodnie sprawdzić albo łatwo poprawić.";
    } else {
      if (check.length > 0) {
        status.textContent = "Dane krytyczne potwierdzone, ale dokumentacja nie jest kompletna";
        intro.textContent = "Uzupełnij wskazane materiały i uzgodnienia, a następnie wykonaj formalny odbiór przed wylewką.";
      } else {
        result.classList.add("is-good");
        status.textContent = "Lista kompletna — przejdź do formalnego odbioru instalacji";
        intro.textContent = "Analizator nie wykazał braków. Porównaj odpowiedzi z dokumentami i potwierdź gotowość zgodnie z procedurą inwestycji.";
      }
    }

    document.getElementById("rk-diy-ok-count").textContent = String(ok.length);
    document.getElementById("rk-diy-check-count").textContent = String(check.length);
    document.getElementById("rk-diy-stop-count").textContent = String(stop.length);
    renderList("rk-diy-ok-list", ok, "Brak potwierdzonych elementów.");
    renderList("rk-diy-check-list", check, "Brak dodatkowych punktów do sprawdzenia.");
    renderList("rk-diy-stop-list", stop, "Nie wskazano warunku blokującego wylewkę.");
  }

  function resetAnalyzer() {
    var fields = guide.querySelectorAll(".rk-diy-audit-field");
    fields.forEach(function (field) {
      field.selectedIndex = 0;
    });
    var result = document.getElementById("rk-diy-result");
    result.classList.remove("is-good");
    result.classList.remove("is-stop");
    document.getElementById("rk-diy-result-status").textContent = "Uzupełnij 15 punktów na podstawie rzeczywistego wykonania";
    document.getElementById("rk-diy-result-intro").textContent = "Wynik rozdzieli informacje potwierdzone, wymagające uzupełnienia i blokujące zakrycie instalacji.";
    document.getElementById("rk-diy-ok-count").textContent = "0";
    document.getElementById("rk-diy-check-count").textContent = String(fields.length);
    document.getElementById("rk-diy-stop-count").textContent = "0";
    renderList("rk-diy-ok-list", [], "Jeszcze brak ocenionych danych.");
    renderList("rk-diy-check-list", [], "Uzupełnij formularz na podstawie projektu, oględzin i protokołów.");
    renderList("rk-diy-stop-list", [], "Brak oceny nie oznacza gotowości do zakrycia rur.");
  }

  var runButton = document.getElementById("rk-diy-run");
  var resetButton = document.getElementById("rk-diy-reset");
  if (runButton) {
    runButton.addEventListener("click", analyzeReadiness);
  }
  if (resetButton) {
    resetButton.addEventListener("click", resetAnalyzer);
  }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/samodzielny-montaz-ogrzewania-podlogowego-5-bledow-ktorych-nie-naprawisz-po-wylewce/">Samodzielny montaż ogrzewania podłogowego – 5 błędów przed wylewką.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Temperatura zasilania pompy ciepła – czy 35°C wystarczy?</title>
		<link>https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 10:17:48 +0000</pubDate>
				<category><![CDATA[Efektywne ogrzewanie]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Instalacje niskotemperaturowe]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[koszty eksploatacji]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[scop]]></category>
		<category><![CDATA[systemy niskotemperaturowe]]></category>
		<category><![CDATA[temperatura zasilania]]></category>
		<category><![CDATA[termodynamika]]></category>
		<category><![CDATA[współczynnik cop]]></category>
		<category><![CDATA[wylewka anhydrytowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=4200</guid>

					<description><![CDATA[<p>Wybór odpowiednich parametrów grzewczych to absolutny fundament, od którego zależą Twoje przyszłe rachunki za prąd oraz trwałość wykończenia wnętrz. W świecie nowoczesnych instalacji coraz częściej pojawia się kluczowe pytanie o to, jaka powinna być niska temperatura zasilania pompy ciepła – dlaczego 35 stopni to ideał dla podłogówki? Odpowiedź na nie wymaga zrozumienia praw fizyki, a konkretnie zależności między temperaturą czynnika a współczynnikiem wydajności COP. Utrzymywanie zasilania na tym poziomie pozwala urządzeniu pracować z maksymalną efektywnością, co bezpośrednio przekłada się na realne oszczędności w domowym budżecie. W niniejszym tekście szczegółowo analizujemy aspekty techniczne, wpływ temperatury na jastrych oraz wyjaśniamy, dlaczego precyzyjny projekt instalacji jest ważniejszy niż zakup najdroższej jednostki grzewczej dostępnej na rynku.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">Temperatura zasilania pompy ciepła – czy 35°C wystarczy?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-temp35-guide {
    --rk-temp35-navy: #123247;
    --rk-temp35-navy-deep: #0b2536;
    --rk-temp35-teal: #0e7787;
    --rk-temp35-cyan: #5fdef0;
    --rk-temp35-orange: #ff7a21;
    --rk-temp35-green: #248c68;
    --rk-temp35-red: #c64b48;
    --rk-temp35-amber: #b77812;
    --rk-temp35-ink: #173246;
    --rk-temp35-muted: #5d7180;
    --rk-temp35-line: #d7e1e7;
    --rk-temp35-soft: #f3f7f9;
    --rk-temp35-white: #ffffff;
    --rk-temp35-shadow: 0 18px 48px rgba(13, 43, 60, 0.12);
    color: var(--rk-temp35-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 18px;
    line-height: 1.72;
    overflow-x: hidden;
  }

  #rk-temp35-guide,
  #rk-temp35-guide *,
  #rk-temp35-guide *::before,
  #rk-temp35-guide *::after {
    box-sizing: border-box;
  }

  #rk-temp35-guide .rk-temp35-shell {
    width: min(1240px, 100%);
    margin: 0 auto;
  }

  #rk-temp35-guide a {
    color: #087a9f;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
  }

  #rk-temp35-guide a:hover {
    color: #055d79;
  }

  #rk-temp35-guide p,
  #rk-temp35-guide ul,
  #rk-temp35-guide ol {
    margin: 0 0 1.1rem;
  }

  #rk-temp35-guide strong {
    color: inherit;
  }

  #rk-temp35-guide .rk-temp35-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(42px, 6vw, 78px);
    border-radius: 32px;
    background:
      radial-gradient(circle at 90% 112%, rgba(95, 222, 240, 0.16) 0 150px, transparent 151px),
      radial-gradient(circle at 90% 112%, transparent 0 205px, rgba(95, 222, 240, 0.09) 206px 275px, transparent 276px),
      linear-gradient(115deg, #122f43 0%, #123c4f 56%, #0d5b63 100%);
    color: #ffffff;
    box-shadow: var(--rk-temp35-shadow);
  }

  #rk-temp35-guide .rk-temp35-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    left: -120px;
    bottom: -180px;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    background: rgba(255, 122, 33, 0.10);
    filter: blur(2px);
  }

  #rk-temp35-guide .rk-temp35-hero-inner {
    position: relative;
    z-index: 1;
  }

  #rk-temp35-guide .rk-temp35-kicker,
  #rk-temp35-guide .rk-temp35-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    color: var(--rk-temp35-orange);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.13em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-temp35-guide .rk-temp35-kicker::before,
  #rk-temp35-guide .rk-temp35-eyebrow::before {
    content: "";
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: currentColor;
  }

  #rk-temp35-guide .rk-temp35-hero-title {
    max-width: 1110px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(2.55rem, 6.1vw, 5.2rem);
    font-weight: 900;
    letter-spacing: -0.055em;
    line-height: 0.98;
    text-wrap: balance;
  }

  #rk-temp35-guide .rk-temp35-hero-title span {
    color: var(--rk-temp35-cyan);
  }

  #rk-temp35-guide .rk-temp35-hero-lead {
    max-width: 1050px;
    margin: 30px 0 0;
    color: #eef9fc;
    font-size: clamp(1.05rem, 2vw, 1.34rem);
    line-height: 1.62;
  }

  #rk-temp35-guide .rk-temp35-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin: 28px 0 0;
  }

  #rk-temp35-guide .rk-temp35-hero-tag {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 17px;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.84rem;
    font-weight: 800;
    line-height: 1.3;
  }

  #rk-temp35-guide .rk-temp35-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 24px;
    margin: 34px 0 0;
    color: #e5f0f4;
    font-size: 0.85rem;
    font-weight: 700;
  }

  #rk-temp35-guide .rk-temp35-hero-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 38px;
  }

  #rk-temp35-guide .rk-temp35-hero-metric {
    min-width: 0;
    padding: 22px 24px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 19px;
    background: rgba(255, 255, 255, 0.08);
    color: #eff9fb;
    backdrop-filter: blur(5px);
  }

  #rk-temp35-guide .rk-temp35-hero-metric b {
    display: block;
    margin-bottom: 7px;
    color: #ffffff;
    font-size: 1.02rem;
    line-height: 1.3;
  }

  #rk-temp35-guide .rk-temp35-hero-metric span {
    display: block;
    color: #e2f1f5;
    font-size: 0.88rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0;
    padding: 22px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(18, 50, 71, 0.07);
  }

  #rk-temp35-guide .rk-temp35-shortcuts-label {
    display: block;
    flex-basis: 100%;
    color: var(--rk-temp35-navy);
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-temp35-guide .rk-temp35-shortcuts a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 13px;
    border: 1px solid #cbd9e1;
    border-radius: 999px;
    background: var(--rk-temp35-soft);
    color: var(--rk-temp35-navy);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1.25;
    text-decoration: none;
  }

  #rk-temp35-guide .rk-temp35-shortcuts a:hover {
    border-color: var(--rk-temp35-teal);
    background: #e8f6f8;
    color: #075f6b;
  }

  #rk-temp35-guide .rk-temp35-section,
  #rk-temp35-guide .rk-temp35-author {
    margin: 24px 0;
    padding: clamp(30px, 5vw, 62px);
    border: 1px solid var(--rk-temp35-line);
    border-radius: 28px;
    background: #ffffff;
    box-shadow: 0 14px 42px rgba(18, 50, 71, 0.07);
    scroll-margin-top: 28px;
  }

  #rk-temp35-guide .rk-temp35-section-soft {
    background: var(--rk-temp35-soft);
  }

  #rk-temp35-guide .rk-temp35-section-dark {
    border-color: #234c61;
    background:
      radial-gradient(circle at 105% 100%, rgba(95, 222, 240, 0.12) 0 190px, transparent 191px),
      linear-gradient(135deg, #102d40, #0e4854);
    color: #eff8fb;
  }

  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-section-title,
  #rk-temp35-guide .rk-temp35-section-dark h3,
  #rk-temp35-guide .rk-temp35-section-dark strong {
    color: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-lead,
  #rk-temp35-guide .rk-temp35-section-dark p,
  #rk-temp35-guide .rk-temp35-section-dark li {
    color: #e3f0f4;
  }

  #rk-temp35-guide .rk-temp35-section-title,
  #rk-temp35-guide .rk-temp35-author-title {
    max-width: 1010px;
    margin: 0 0 18px;
    color: var(--rk-temp35-navy);
    font-size: clamp(1.8rem, 3.7vw, 3.05rem);
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.12;
    text-wrap: balance;
  }

  #rk-temp35-guide .rk-temp35-lead {
    max-width: 1040px;
    color: #314c5e;
    font-size: 1.08rem;
    line-height: 1.75;
  }

  #rk-temp35-guide .rk-temp35-answer {
    margin: 24px 0;
    padding: 26px 28px;
    border-left: 6px solid var(--rk-temp35-cyan);
    border-radius: 8px 20px 20px 8px;
    background: var(--rk-temp35-navy);
    color: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-answer-label {
    display: block;
    margin-bottom: 9px;
    color: var(--rk-temp35-cyan);
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-temp35-guide .rk-temp35-answer p {
    margin: 0;
    color: #ffffff;
    font-size: 1.06rem;
  }

  #rk-temp35-guide .rk-temp35-grid-2,
  #rk-temp35-guide .rk-temp35-grid-3,
  #rk-temp35-guide .rk-temp35-grid-4 {
    display: grid;
    gap: 18px;
    margin: 24px 0;
  }

  #rk-temp35-guide .rk-temp35-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-temp35-guide .rk-temp35-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-temp35-guide .rk-temp35-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-temp35-guide .rk-temp35-card {
    min-width: 0;
    padding: 23px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-temp35-ink);
  }

  #rk-temp35-guide .rk-temp35-card h3 {
    margin: 0 0 10px;
    color: var(--rk-temp35-navy);
    font-size: 1.06rem;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-card p,
  #rk-temp35-guide .rk-temp35-card li {
    color: #3e5869;
    font-size: 0.92rem;
    line-height: 1.65;
  }

  #rk-temp35-guide .rk-temp35-card p:last-child,
  #rk-temp35-guide .rk-temp35-card ul:last-child {
    margin-bottom: 0;
  }

  #rk-temp35-guide .rk-temp35-card-number {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    margin-bottom: 14px;
    border-radius: 50%;
    background: #dff8fb;
    color: #086678;
    font-size: 0.85rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-callout,
  #rk-temp35-guide .rk-temp35-note,
  #rk-temp35-guide .rk-temp35-warning {
    margin: 24px 0 0;
    padding: 20px 22px;
    border-radius: 16px;
    color: #274657;
    font-size: 0.94rem;
    line-height: 1.68;
  }

  #rk-temp35-guide .rk-temp35-callout {
    border: 1px solid #b9e7ed;
    background: #eaf9fb;
  }

  #rk-temp35-guide .rk-temp35-note {
    border: 1px solid #d7e1e7;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-warning {
    border: 1px solid #efd0a1;
    background: #fff6e9;
  }

  #rk-temp35-guide .rk-temp35-tool {
    overflow: hidden;
    margin: 28px 0 0;
    border: 1px solid #aacbd2;
    border-radius: 26px;
    background: #ffffff;
    box-shadow: 0 18px 46px rgba(15, 66, 78, 0.12);
  }

  #rk-temp35-guide .rk-temp35-tool-head {
    padding: 28px clamp(22px, 4vw, 40px);
    background: linear-gradient(125deg, var(--rk-temp35-navy), #0d5962);
    color: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-tool-head .rk-temp35-eyebrow {
    color: #ffad73;
  }

  #rk-temp35-guide .rk-temp35-tool-head h3 {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: clamp(1.35rem, 3vw, 2.05rem);
    line-height: 1.2;
  }

  #rk-temp35-guide .rk-temp35-tool-head p {
    max-width: 920px;
    margin: 0;
    color: #e9f7fa;
    font-size: 0.94rem;
  }

  #rk-temp35-guide .rk-temp35-tool-body {
    padding: clamp(22px, 4vw, 40px);
  }

  #rk-temp35-guide .rk-temp35-control-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 22px;
  }

  #rk-temp35-guide .rk-temp35-control {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 18px;
    background: var(--rk-temp35-soft);
  }

  #rk-temp35-guide .rk-temp35-control-label {
    display: block;
    margin-bottom: 11px;
    color: var(--rk-temp35-navy);
    font-size: 0.84rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-segmented {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #rk-temp35-guide .rk-temp35-segmented button {
    min-width: 0;
    min-height: 48px;
    padding: 9px 12px;
    border: 1px solid #bfd0d9;
    border-radius: 13px;
    background: #ffffff;
    color: var(--rk-temp35-navy);
    font: inherit;
    font-size: 0.84rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
    transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
  }

  #rk-temp35-guide .rk-temp35-segmented button:hover {
    transform: translateY(-1px);
    border-color: var(--rk-temp35-teal);
  }

  #rk-temp35-guide .rk-temp35-segmented button[aria-pressed="true"] {
    border-color: var(--rk-temp35-navy);
    background: var(--rk-temp35-navy);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(18, 50, 71, 0.18);
  }

  #rk-temp35-guide .rk-temp35-state-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    margin: 0 0 22px;
    padding: 20px;
    border: 1px solid #b9e7ed;
    border-radius: 18px;
    background: #eaf9fb;
  }

  #rk-temp35-guide .rk-temp35-state-dot {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--rk-temp35-green);
    color: #ffffff;
    font-size: 1.25rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-state-summary[data-flow="closed"] {
    border-color: #e5c4c2;
    background: #fff1f0;
  }

  #rk-temp35-guide .rk-temp35-state-summary[data-flow="closed"] .rk-temp35-state-dot {
    background: var(--rk-temp35-red);
  }

  #rk-temp35-guide .rk-temp35-state-summary strong {
    display: block;
    margin-bottom: 2px;
    color: var(--rk-temp35-navy);
    font-size: 1.05rem;
  }

  #rk-temp35-guide .rk-temp35-state-summary p {
    margin: 0;
    color: #405c6d;
    font-size: 0.91rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-flow-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  #rk-temp35-guide .rk-temp35-flow-step {
    position: relative;
    min-width: 0;
    padding: 22px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 20px;
    background: #ffffff;
    color: var(--rk-temp35-ink);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  }

  #rk-temp35-guide .rk-temp35-flow-step.is-active {
    border-color: #64c7d2;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-temp35-guide .rk-temp35-flow-step.is-rest {
    background: #f7f9fa;
  }

  #rk-temp35-guide .rk-temp35-flow-top {
    display: flex;
    gap: 13px;
    align-items: center;
    margin-bottom: 14px;
  }

  #rk-temp35-guide .rk-temp35-flow-icon {
    display: grid;
    flex: 0 0 52px;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: #e6f7f9;
    color: #087083;
  }

  #rk-temp35-guide .rk-temp35-flow-icon svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
  }

  #rk-temp35-guide .rk-temp35-flow-number {
    display: block;
    color: var(--rk-temp35-orange);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-temp35-guide .rk-temp35-flow-step h4 {
    margin: 2px 0 0;
    color: var(--rk-temp35-navy);
    font-size: 1rem;
    line-height: 1.25;
  }

  #rk-temp35-guide .rk-temp35-flow-value {
    display: inline-flex;
    align-items: center;
    min-height: 31px;
    margin-bottom: 10px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #dff6e9;
    color: #176a4e;
    font-size: 0.77rem;
    font-weight: 900;
    line-height: 1.2;
  }

  #rk-temp35-guide .rk-temp35-flow-value.is-off {
    background: #eef1f3;
    color: #5c6e79;
  }

  #rk-temp35-guide .rk-temp35-flow-value.is-closed {
    background: #fde7e6;
    color: #9c3936;
  }

  #rk-temp35-guide .rk-temp35-flow-copy {
    margin: 0;
    color: #405b6c;
    font-size: 0.87rem;
    line-height: 1.6;
  }

  #rk-temp35-guide .rk-temp35-tool-disclaimer {
    margin: 22px 0 0;
    padding: 17px 19px;
    border: 1px solid #efd0a1;
    border-radius: 15px;
    background: #fff6e9;
    color: #5f4a2c;
    font-size: 0.86rem;
    line-height: 1.6;
  }

  #rk-temp35-guide .rk-temp35-compare-table,
  #rk-temp35-guide .rk-temp35-diagnostic-table {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 20px;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-table-row {
    display: grid;
    grid-template-columns: minmax(150px, 0.8fr) repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rk-temp35-line);
  }

  #rk-temp35-guide .rk-temp35-table-row:first-child {
    border-top: 0;
  }

  #rk-temp35-guide .rk-temp35-table-row > div {
    min-width: 0;
    padding: 18px 20px;
    border-left: 1px solid var(--rk-temp35-line);
    color: #3b5667;
    font-size: 0.89rem;
    line-height: 1.58;
  }

  #rk-temp35-guide .rk-temp35-table-row > div:first-child {
    border-left: 0;
  }

  #rk-temp35-guide .rk-temp35-table-head {
    background: var(--rk-temp35-navy);
  }

  #rk-temp35-guide .rk-temp35-table-head > div {
    color: #ffffff;
    font-weight: 850;
  }

  #rk-temp35-guide .rk-temp35-table-label {
    background: #f2f6f8;
    color: var(--rk-temp35-navy) !important;
    font-weight: 850;
  }

  #rk-temp35-guide .rk-temp35-diagnostic-table .rk-temp35-table-row {
    grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1fr) minmax(0, 1.15fr);
  }

  #rk-temp35-guide .rk-temp35-spec-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
  }

  #rk-temp35-guide .rk-temp35-spec {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-spec-mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #daf4f7;
    color: #0b7180;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-spec strong {
    display: block;
    margin-bottom: 4px;
    color: var(--rk-temp35-navy);
    font-size: 0.94rem;
  }

  #rk-temp35-guide .rk-temp35-spec span {
    display: block;
    color: #4b6474;
    font-size: 0.84rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-chain {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    align-items: stretch;
    margin: 26px 0;
  }

  #rk-temp35-guide .rk-temp35-chain-item {
    position: relative;
    min-width: 0;
    padding: 19px 15px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 17px;
    background: #ffffff;
    color: var(--rk-temp35-ink);
    text-align: center;
  }

  #rk-temp35-guide .rk-temp35-chain-item::after {
    content: "→";
    position: absolute;
    top: 50%;
    right: -15px;
    z-index: 2;
    width: 18px;
    color: var(--rk-temp35-orange);
    font-size: 1.15rem;
    font-weight: 900;
    line-height: 1;
    transform: translateY(-50%);
  }

  #rk-temp35-guide .rk-temp35-chain-item:last-child::after {
    display: none;
  }

  #rk-temp35-guide .rk-temp35-chain-item strong {
    display: block;
    color: var(--rk-temp35-navy);
    font-size: 0.9rem;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-chain-item span {
    display: block;
    margin-top: 5px;
    color: #56707f;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-temp35-guide .rk-temp35-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
    counter-reset: rk-temp35-step;
  }

  #rk-temp35-guide .rk-temp35-step {
    position: relative;
    min-width: 0;
    padding: 21px 21px 21px 67px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 19px;
    background: #ffffff;
    color: var(--rk-temp35-ink);
    counter-increment: rk-temp35-step;
  }

  #rk-temp35-guide .rk-temp35-step::before {
    content: counter(rk-temp35-step);
    position: absolute;
    top: 20px;
    left: 20px;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--rk-temp35-navy);
    color: #ffffff;
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-step h3 {
    margin: 0 0 7px;
    color: var(--rk-temp35-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-step p {
    margin: 0;
    color: #435e6f;
    font-size: 0.88rem;
    line-height: 1.6;
  }

  #rk-temp35-guide .rk-temp35-mistakes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
  }

  #rk-temp35-guide .rk-temp35-mistake {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    min-width: 0;
    padding: 19px;
    border: 1px solid #ead4d2;
    border-radius: 17px;
    background: #fff7f6;
  }

  #rk-temp35-guide .rk-temp35-mistake-icon {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-temp35-red);
    color: #ffffff;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-mistake strong {
    color: #7e302e;
    font-size: 0.94rem;
  }

  #rk-temp35-guide .rk-temp35-mistake p {
    margin: 4px 0 0;
    color: #5f4d4c;
    font-size: 0.85rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
  }

  #rk-temp35-guide .rk-temp35-checklist-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 17px;
    background: #ffffff;
    color: #425d6e;
    font-size: 0.86rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-checklist-item > span {
    display: grid;
    place-items: center;
    width: 31px;
    height: 31px;
    border-radius: 50%;
    background: #dff6e9;
    color: var(--rk-temp35-green);
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-checklist-item strong {
    color: var(--rk-temp35-navy);
    font-size: 0.92rem;
  }

  #rk-temp35-guide .rk-temp35-formula {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 18px;
    align-items: stretch;
    margin: 24px 0;
  }

  #rk-temp35-guide .rk-temp35-formula-box {
    display: grid;
    place-items: center;
    min-height: 170px;
    padding: 24px;
    border-radius: 20px;
    background: var(--rk-temp35-navy);
    color: #ffffff;
    text-align: center;
  }

  #rk-temp35-guide .rk-temp35-formula-box strong {
    display: block;
    color: var(--rk-temp35-cyan);
    font-size: clamp(1.35rem, 3vw, 2rem);
    line-height: 1.25;
  }

  #rk-temp35-guide .rk-temp35-formula-box span {
    display: block;
    margin-top: 8px;
    color: #dcecf2;
    font-size: 0.82rem;
  }

  #rk-temp35-guide .rk-temp35-formula-copy {
    padding: 23px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 20px;
    background: #ffffff;
    color: #3f596a;
  }

  #rk-temp35-guide .rk-temp35-formula-copy h3 {
    margin: 0 0 9px;
    color: var(--rk-temp35-navy);
    font-size: 1.08rem;
  }

  #rk-temp35-guide .rk-temp35-formula-copy p:last-child {
    margin-bottom: 0;
  }

  #rk-temp35-guide .rk-temp35-cta {
    margin: 32px 0 0;
    padding: clamp(27px, 4vw, 42px);
    border-radius: 24px;
    background:
      radial-gradient(circle at 100% 110%, rgba(95, 222, 240, 0.14) 0 130px, transparent 131px),
      linear-gradient(125deg, var(--rk-temp35-navy), #0b5761);
    color: #ffffff;
    box-shadow: 0 18px 45px rgba(11, 45, 62, 0.18);
  }

  #rk-temp35-guide .rk-temp35-cta-title {
    max-width: 930px;
    margin: 0 0 12px;
    color: #ffffff;
    font-size: clamp(1.45rem, 3.2vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.16;
  }

  #rk-temp35-guide .rk-temp35-cta p {
    max-width: 980px;
    margin-bottom: 20px;
    color: #e7f3f6;
  }

  #rk-temp35-guide .rk-temp35-cta-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 52px;
    padding: 12px 20px;
    border: 2px solid var(--rk-temp35-orange);
    border-radius: 12px;
    background: var(--rk-temp35-orange);
    color: #ffffff !important;
    font-weight: 900;
    line-height: 1.3;
    text-align: center;
    text-decoration: none !important;
    box-shadow: 0 10px 22px rgba(255, 122, 33, 0.22);
  }

  #rk-temp35-guide .rk-temp35-cta-button:hover {
    border-color: #ff9652;
    background: #ff9652;
    color: #ffffff !important;
  }

  #rk-temp35-guide .rk-temp35-link-disclosure {
    display: block;
    margin-top: 13px;
    color: #cfe1e6;
    font-size: 0.72rem;
    line-height: 1.45;
  }

  #rk-temp35-guide .rk-temp35-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 24px;
  }

  #rk-temp35-guide .rk-temp35-source-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-source-card a {
    display: inline-block;
    color: var(--rk-temp35-navy);
    font-size: 0.93rem;
    font-weight: 900;
    line-height: 1.45;
  }

  #rk-temp35-guide .rk-temp35-source-card p {
    margin: 8px 0 0;
    color: #516a79;
    font-size: 0.83rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-responsibility {
    margin-top: 20px;
    padding: 21px;
    border: 1px solid #d7e1e7;
    border-radius: 18px;
    background: #ffffff;
    color: #405a6b;
    font-size: 0.87rem;
    line-height: 1.62;
  }

  #rk-temp35-guide .rk-temp35-responsibility p:last-child {
    margin-bottom: 0;
  }

  #rk-temp35-guide .rk-temp35-faq details {
    overflow: hidden;
    margin: 12px 0;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 16px;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-faq summary {
    position: relative;
    padding: 18px 52px 18px 20px;
    color: var(--rk-temp35-navy);
    font-size: 0.96rem;
    font-weight: 850;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-temp35-guide .rk-temp35-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-temp35-guide .rk-temp35-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 20px;
    color: var(--rk-temp35-teal);
    font-size: 1.4rem;
    font-weight: 700;
    transform: translateY(-50%);
  }

  #rk-temp35-guide .rk-temp35-faq details[open] summary::after {
    content: "−";
  }

  #rk-temp35-guide .rk-temp35-faq-answer {
    padding: 0 20px 18px;
    color: #415c6d;
    font-size: 0.9rem;
    line-height: 1.65;
  }

  #rk-temp35-guide .rk-temp35-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-temp35-guide .rk-temp35-author {
    background:
      radial-gradient(circle at 98% 100%, rgba(95, 222, 240, 0.12) 0 150px, transparent 151px),
      linear-gradient(130deg, #102d40, #113f4e);
    color: #eaf4f7;
  }

  #rk-temp35-guide .rk-temp35-author .rk-temp35-eyebrow {
    color: #ff9a57;
  }

  #rk-temp35-guide .rk-temp35-author-title {
    color: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-author-layout {
    display: grid;
    grid-template-columns: minmax(210px, 0.34fr) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin-top: 25px;
  }

  #rk-temp35-guide .rk-temp35-author-side {
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.07);
    text-align: center;
  }

  #rk-temp35-guide .rk-temp35-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 16px;
    overflow: hidden;
    border: 4px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-temp35-guide .rk-temp35-author-name a {
    color: #ffffff;
    font-size: 1.12rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-author-role {
    margin: 7px 0 13px;
    color: #dbeaf0;
    font-size: 0.82rem;
    line-height: 1.5;
  }

  #rk-temp35-guide .rk-temp35-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
  }

  #rk-temp35-guide .rk-temp35-author-social a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 0.8rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-temp35-guide .rk-temp35-author-main p {
    color: #dcecf1;
    font-size: 0.92rem;
  }

  #rk-temp35-guide .rk-temp35-author-main a {
    color: var(--rk-temp35-cyan);
  }

  #rk-temp35-guide .rk-temp35-author-quote {
    margin-bottom: 21px;
    padding: 22px;
    border-left: 5px solid var(--rk-temp35-cyan);
    border-radius: 7px 17px 17px 7px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
    font-size: 1.03rem;
    font-weight: 750;
    line-height: 1.6;
  }

  #rk-temp35-guide .rk-temp35-author-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
    margin-top: 20px;
  }

  #rk-temp35-guide .rk-temp35-author-fact {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.06);
    color: #d7e8ed;
    font-size: 0.75rem;
    line-height: 1.45;
  }

  #rk-temp35-guide .rk-temp35-author-fact strong {
    display: block;
    margin-bottom: 4px;
    color: #ffffff;
    font-size: 0.8rem;
  }

  #rk-temp35-guide .rk-temp35-tool-tabs,
  #rk-temp35-guide .rk-temp35-graphic-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 22px;
  }

  #rk-temp35-guide .rk-temp35-tool-tabs button,
  #rk-temp35-guide .rk-temp35-graphic-controls button {
    min-height: 44px;
    padding: 9px 15px;
    border: 1px solid #bdd0d8;
    border-radius: 999px;
    background: #ffffff;
    color: var(--rk-temp35-navy);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 850;
    line-height: 1.25;
    cursor: pointer;
  }

  #rk-temp35-guide .rk-temp35-tool-tabs button[aria-selected="true"],
  #rk-temp35-guide .rk-temp35-graphic-controls button[aria-pressed="true"] {
    border-color: var(--rk-temp35-navy);
    background: var(--rk-temp35-navy);
    color: #ffffff;
    box-shadow: 0 8px 20px rgba(18, 50, 71, 0.18);
  }

  #rk-temp35-guide .rk-temp35-panel[hidden],
  #rk-temp35-guide .rk-temp35-is-hidden {
    display: none !important;
  }

  #rk-temp35-guide .rk-temp35-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0;
  }

  #rk-temp35-guide .rk-temp35-field-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-temp35-guide .rk-temp35-field {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 16px;
    background: var(--rk-temp35-soft);
  }

  #rk-temp35-guide .rk-temp35-field label,
  #rk-temp35-guide .rk-temp35-field-label {
    display: block;
    margin: 0 0 7px;
    color: var(--rk-temp35-navy);
    font-size: 0.79rem;
    font-weight: 900;
    line-height: 1.4;
  }

  #rk-temp35-guide .rk-temp35-field input,
  #rk-temp35-guide .rk-temp35-field select,
  #rk-temp35-guide .rk-temp35-loop-row input,
  #rk-temp35-guide .rk-temp35-curve-row input {
    width: 100%;
    min-height: 47px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #b9cbd4;
    border-radius: 11px;
    background: #ffffff;
    color: #173246;
    font: inherit;
    font-size: 0.91rem;
    line-height: 1.2;
  }

  #rk-temp35-guide .rk-temp35-field input:focus,
  #rk-temp35-guide .rk-temp35-field select:focus,
  #rk-temp35-guide .rk-temp35-loop-row input:focus,
  #rk-temp35-guide .rk-temp35-curve-row input:focus {
    outline: 3px solid rgba(95, 222, 240, 0.34);
    border-color: var(--rk-temp35-teal);
  }

  #rk-temp35-guide .rk-temp35-field-help {
    display: block;
    margin-top: 7px;
    color: #5c7180;
    font-size: 0.7rem;
    line-height: 1.45;
  }

  #rk-temp35-guide .rk-temp35-tool-subtitle {
    margin: 26px 0 10px;
    color: var(--rk-temp35-navy);
    font-size: 1.12rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-loop-editor,
  #rk-temp35-guide .rk-temp35-curve-editor {
    margin: 18px 0;
    padding: 18px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 18px;
    background: var(--rk-temp35-soft);
  }

  #rk-temp35-guide .rk-temp35-loop-row,
  #rk-temp35-guide .rk-temp35-curve-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.46fr) auto;
    gap: 9px;
    align-items: end;
    margin-top: 10px;
  }

  #rk-temp35-guide .rk-temp35-curve-row {
    grid-template-columns: 42px repeat(2, minmax(110px, 1fr));
  }

  #rk-temp35-guide .rk-temp35-loop-row:first-child,
  #rk-temp35-guide .rk-temp35-curve-row:first-child {
    margin-top: 0;
  }

  #rk-temp35-guide .rk-temp35-loop-cell label,
  #rk-temp35-guide .rk-temp35-curve-cell label {
    display: block;
    margin-bottom: 5px;
    color: #496371;
    font-size: 0.68rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-remove-loop,
  #rk-temp35-guide .rk-temp35-add-loop {
    min-height: 45px;
    padding: 9px 13px;
    border: 1px solid #c7d5dc;
    border-radius: 11px;
    background: #ffffff;
    color: var(--rk-temp35-navy);
    font: inherit;
    font-size: 0.77rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-temp35-guide .rk-temp35-remove-loop {
    width: 45px;
    padding: 8px;
    color: #9b3b38;
  }

  #rk-temp35-guide .rk-temp35-add-loop {
    margin-top: 13px;
    border-color: #86cdd5;
    background: #eaf9fb;
    color: #075f6b;
  }

  #rk-temp35-guide .rk-temp35-calc-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
    gap: 20px;
    align-items: start;
  }

  #rk-temp35-guide .rk-temp35-results {
    min-width: 0;
  }

  #rk-temp35-guide .rk-temp35-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
    margin: 0 0 16px;
  }

  #rk-temp35-guide .rk-temp35-result {
    min-width: 0;
    padding: 17px;
    border: 1px solid #b8dce1;
    border-radius: 16px;
    background: #effbfc;
  }

  #rk-temp35-guide .rk-temp35-result span {
    display: block;
    color: #4c6876;
    font-size: 0.7rem;
    font-weight: 850;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-result strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-temp35-navy);
    font-size: clamp(1.2rem, 2.5vw, 1.7rem);
    line-height: 1.2;
  }

  #rk-temp35-guide .rk-temp35-breakdown {
    padding: 18px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 17px;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-breakdown-title {
    display: block;
    margin-bottom: 12px;
    color: var(--rk-temp35-navy);
    font-size: 0.86rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-break-row {
    display: grid;
    grid-template-columns: minmax(104px, 0.62fr) minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    margin: 9px 0;
    color: #496371;
    font-size: 0.73rem;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-break-row strong,
  #rk-temp35-guide .rk-temp35-curve-row > strong {
    color: var(--rk-temp35-navy);
  }

  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-callout strong {
    color: var(--rk-temp35-navy);
  }

  #rk-temp35-guide .rk-temp35-break-track {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eef1;
  }

  #rk-temp35-guide .rk-temp35-break-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-temp35-teal), var(--rk-temp35-cyan));
  }

  #rk-temp35-guide .rk-temp35-chart-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 18px;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-chart-title {
    margin: 0 0 11px;
    color: var(--rk-temp35-navy);
    font-size: 0.95rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-chart-wrap {
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border-radius: 13px;
    background: #f8fbfc;
  }

  #rk-temp35-guide .rk-temp35-chart-wrap svg {
    display: block;
    width: 100%;
    height: auto;
    min-height: 310px;
  }

  #rk-temp35-guide .rk-temp35-chart-grid-line {
    stroke: #dbe5ea;
    stroke-width: 1;
  }

  #rk-temp35-guide .rk-temp35-chart-axis {
    stroke: #6f8592;
    stroke-width: 1.4;
  }

  #rk-temp35-guide .rk-temp35-system-path {
    fill: none;
    stroke: var(--rk-temp35-teal);
    stroke-width: 4;
  }

  #rk-temp35-guide .rk-temp35-device-path {
    fill: none;
    stroke: var(--rk-temp35-orange);
    stroke-width: 4;
  }

  #rk-temp35-guide .rk-temp35-design-point {
    fill: var(--rk-temp35-navy);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-temp35-guide .rk-temp35-operating-point {
    fill: var(--rk-temp35-orange);
    stroke: #ffffff;
    stroke-width: 4;
  }

  #rk-temp35-guide .rk-temp35-chart-tick,
  #rk-temp35-guide .rk-temp35-chart-label {
    fill: #55707f;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
  }

  #rk-temp35-guide .rk-temp35-chart-label {
    fill: var(--rk-temp35-navy);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-temp35-guide .rk-temp35-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 15px;
    margin-top: 12px;
    color: #536d7b;
    font-size: 0.69rem;
    font-weight: 800;
  }

  #rk-temp35-guide .rk-temp35-legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
  }

  #rk-temp35-guide .rk-temp35-legend i {
    display: inline-block;
    width: 25px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-temp35-teal);
  }

  #rk-temp35-guide .rk-temp35-legend .is-pump i {
    background: var(--rk-temp35-orange);
  }

  #rk-temp35-guide .rk-temp35-legend .is-point i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-temp35-navy);
  }

  #rk-temp35-guide .rk-temp35-status {
    margin: 15px 0 0;
    padding: 15px 17px;
    border: 1px solid #b8dce1;
    border-radius: 14px;
    background: #effbfc;
    color: #315261;
    font-size: 0.79rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-status.is-warning {
    border-color: #efd0a1;
    background: #fff6e9;
    color: #664d2b;
  }

  #rk-temp35-guide .rk-temp35-status.is-bad {
    border-color: #e6c2c0;
    background: #fff2f1;
    color: #743b38;
  }

  #rk-temp35-guide .rk-temp35-status.is-good {
    border-color: #b8ddce;
    background: #eefaf5;
    color: #245d48;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card {
    min-width: 0;
    padding: 20px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 18px;
    background: #ffffff;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card.is-active {
    border-color: #5fc6d1;
    box-shadow: 0 12px 28px rgba(14, 119, 135, 0.13);
    transform: translateY(-2px);
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card.is-muted {
    opacity: 0.58;
    background: #f3f6f7;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-number {
    display: inline-grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: #ddf6f8;
    color: #086878;
    font-size: 0.78rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card h3 {
    margin: 0 0 8px;
    color: var(--rk-temp35-navy);
    font-size: 1rem;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-value {
    display: inline-flex;
    min-height: 29px;
    align-items: center;
    margin: 0 0 9px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #eef4f6;
    color: #3f5e6d;
    font-size: 0.71rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card.is-active .rk-temp35-hydraulic-value {
    background: #dff6e9;
    color: #21664e;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card p {
    margin: 0;
    color: #466171;
    font-size: 0.82rem;
    line-height: 1.58;
  }

  #rk-temp35-guide .rk-temp35-graphic-result {
    margin-top: 16px;
    padding: 20px;
    border-left: 5px solid var(--rk-temp35-cyan);
    border-radius: 8px 16px 16px 8px;
    background: var(--rk-temp35-navy);
    color: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-graphic-result strong {
    display: block;
    margin-bottom: 5px;
    color: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-graphic-result p {
    margin: 0;
    color: #e8f5f8;
    font-size: 0.87rem;
  }

  #rk-temp35-guide .rk-temp35-equation {
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
  }

  #rk-temp35-guide .rk-temp35-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  @media (max-width: 1040px) {
    #rk-temp35-guide .rk-temp35-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-temp35-guide .rk-temp35-flow-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-temp35-guide .rk-temp35-chain {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-temp35-guide .rk-temp35-chain-item::after {
      display: none;
    }

    #rk-temp35-guide .rk-temp35-calc-layout {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 820px) {
    #rk-temp35-guide {
      font-size: 17px;
    }

    #rk-temp35-guide .rk-temp35-hero {
      border-radius: 24px;
    }

    #rk-temp35-guide .rk-temp35-hero-metrics,
    #rk-temp35-guide .rk-temp35-grid-3,
    #rk-temp35-guide .rk-temp35-source-grid,
    #rk-temp35-guide .rk-temp35-author-facts {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-control-grid,
    #rk-temp35-guide .rk-temp35-formula,
    #rk-temp35-guide .rk-temp35-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-author-side {
      max-width: 430px;
    }

    #rk-temp35-guide .rk-temp35-field-grid-3,
    #rk-temp35-guide .rk-temp35-hydraulic-grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 700px) {
    #rk-temp35-guide .rk-temp35-section,
    #rk-temp35-guide .rk-temp35-author {
      border-radius: 22px;
    }

    #rk-temp35-guide .rk-temp35-grid-2,
    #rk-temp35-guide .rk-temp35-grid-4,
    #rk-temp35-guide .rk-temp35-flow-grid,
    #rk-temp35-guide .rk-temp35-spec-grid,
    #rk-temp35-guide .rk-temp35-steps,
    #rk-temp35-guide .rk-temp35-mistakes,
    #rk-temp35-guide .rk-temp35-checklist,
    #rk-temp35-guide .rk-temp35-chain {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-field-grid,
    #rk-temp35-guide .rk-temp35-result-grid {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-table-row,
    #rk-temp35-guide .rk-temp35-diagnostic-table .rk-temp35-table-row {
      display: block;
      padding: 8px 0;
      border-top: 8px solid var(--rk-temp35-soft);
    }

    #rk-temp35-guide .rk-temp35-table-row:first-child {
      display: none;
    }

    #rk-temp35-guide .rk-temp35-table-row > div {
      display: grid;
      grid-template-columns: minmax(104px, 0.42fr) minmax(0, 1fr);
      gap: 10px;
      padding: 12px 15px;
      border: 0;
    }

    #rk-temp35-guide .rk-temp35-table-row > div::before {
      content: attr(data-label);
      color: var(--rk-temp35-navy);
      font-size: 0.76rem;
      font-weight: 900;
      line-height: 1.45;
    }

    #rk-temp35-guide .rk-temp35-table-label {
      background: #eef4f6;
    }

    #rk-temp35-guide .rk-temp35-loop-row {
      grid-template-columns: minmax(0, 1fr) minmax(100px, 0.6fr) auto;
    }
  }

  @media (max-width: 520px) {
    #rk-temp35-guide {
      font-size: 16px;
    }

    #rk-temp35-guide .rk-temp35-hero {
      padding: 34px 22px;
      border-radius: 20px;
    }

    #rk-temp35-guide .rk-temp35-hero-title {
      font-size: clamp(2.25rem, 12vw, 3.5rem);
      letter-spacing: -0.05em;
    }

    #rk-temp35-guide .rk-temp35-hero-lead {
      margin-top: 23px;
    }

    #rk-temp35-guide .rk-temp35-hero-tag {
      min-height: 38px;
      padding: 7px 12px;
      font-size: 0.75rem;
    }

    #rk-temp35-guide .rk-temp35-byline {
      display: grid;
      gap: 7px;
    }

    #rk-temp35-guide .rk-temp35-hero-metric {
      padding: 19px;
    }

    #rk-temp35-guide .rk-temp35-shortcuts {
      padding: 17px;
      border-radius: 18px;
    }

    #rk-temp35-guide .rk-temp35-shortcuts a {
      font-size: 0.72rem;
    }

    #rk-temp35-guide .rk-temp35-section,
    #rk-temp35-guide .rk-temp35-author {
      padding: 28px 19px;
    }

    #rk-temp35-guide .rk-temp35-answer,
    #rk-temp35-guide .rk-temp35-card,
    #rk-temp35-guide .rk-temp35-flow-step {
      padding: 20px;
    }

    #rk-temp35-guide .rk-temp35-tool-head,
    #rk-temp35-guide .rk-temp35-tool-body {
      padding: 22px 17px;
    }

    #rk-temp35-guide .rk-temp35-segmented {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-state-summary {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-state-dot {
      width: 44px;
      height: 44px;
    }

    #rk-temp35-guide .rk-temp35-step {
      padding: 66px 19px 19px;
    }

    #rk-temp35-guide .rk-temp35-step::before {
      top: 19px;
      left: 19px;
    }

    #rk-temp35-guide .rk-temp35-cta-button {
      width: 100%;
    }

    #rk-temp35-guide .rk-temp35-table-row > div {
      grid-template-columns: 1fr;
      gap: 4px;
    }

    #rk-temp35-guide .rk-temp35-loop-row,
    #rk-temp35-guide .rk-temp35-curve-row {
      grid-template-columns: 1fr;
      padding: 13px;
      border: 1px solid var(--rk-temp35-line);
      border-radius: 14px;
      background: #ffffff;
    }

    #rk-temp35-guide .rk-temp35-remove-loop {
      width: 100%;
    }

    #rk-temp35-guide .rk-temp35-chart-wrap svg {
      min-height: 260px;
    }

    #rk-temp35-guide .rk-temp35-break-row {
      grid-template-columns: 1fr auto;
    }

    #rk-temp35-guide .rk-temp35-break-track {
      grid-column: 1 / -1;
      grid-row: 2;
    }
  }

  @media print {
    #rk-temp35-guide .rk-temp35-shortcuts,
    #rk-temp35-guide .rk-temp35-control-grid {
      display: none !important;
    }

    #rk-temp35-guide .rk-temp35-section,
    #rk-temp35-guide .rk-temp35-author,
    #rk-temp35-guide .rk-temp35-hero {
      break-inside: avoid;
      box-shadow: none;
    }

    #rk-temp35-guide .rk-temp35-faq details {
      break-inside: avoid;
    }

    #rk-temp35-guide .rk-temp35-faq details:not([open]) .rk-temp35-faq-answer {
      display: block;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-temp35-guide *,
    #rk-temp35-guide *::before,
    #rk-temp35-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }

  #rk-temp35-guide .rk-temp35-field input.rk-temp35-range {
    width: 100%;
    min-height: 10px;
    height: 10px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: #dce8ed;
    accent-color: var(--rk-temp35-orange);
    cursor: pointer;
  }

  #rk-temp35-guide .rk-temp35-field input.rk-temp35-range:focus {
    outline: 3px solid rgba(95, 222, 240, 0.34);
    outline-offset: 5px;
  }

  #rk-temp35-guide .rk-temp35-control-label {
    display: block;
    margin: 22px 0 10px;
    color: var(--rk-temp35-navy);
    font-size: 0.82rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-limit-line {
    stroke: #ad6f13;
    stroke-width: 2;
    stroke-dasharray: 7 6;
  }

  #rk-temp35-guide .rk-temp35-limit-label {
    fill: #8a5914;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 800;
  }

  #rk-temp35-guide .rk-temp35-current-guide {
    stroke: #8da0aa;
    stroke-width: 1.5;
    stroke-dasharray: 3 5;
  }

  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-card {
    border-color: #cbd9e1;
    background: #ffffff;
    color: #173246;
  }

  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-card h3 {
    color: #123247;
  }

  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-card p,
  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-card li {
    color: #3e5869;
  }

  #rk-temp35-guide .rk-temp35-section-dark .rk-temp35-card a {
    color: #087a9f;
  }

  #rk-temp35-guide button:focus-visible,
  #rk-temp35-guide a:focus-visible,
  #rk-temp35-guide summary:focus-visible {
    outline: 3px solid var(--rk-temp35-cyan);
    outline-offset: 3px;
  }

  @media (max-width: 520px) {
    #rk-temp35-guide .rk-temp35-chart-card {
      padding: 12px;
    }

    #rk-temp35-guide .rk-temp35-chart-wrap svg {
      min-height: 235px;
    }

    #rk-temp35-guide .rk-temp35-graphic-controls button {
      width: 100%;
    }
  }



  #rk-temp35-guide .rk-temp35-equation-box {
    margin: 20px 0;
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid #add6dc;
    border-radius: 20px;
    background: linear-gradient(135deg, #f0fbfc 0%, #ffffff 100%);
    box-shadow: 0 12px 30px rgba(13, 73, 88, 0.08);
  }

  #rk-temp35-guide .rk-temp35-equation-label {
    display: block;
    margin-bottom: 8px;
    color: #087083;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-temp35-guide .rk-temp35-equation-main {
    margin-bottom: 10px;
    color: var(--rk-temp35-navy);
    font-size: clamp(1.18rem, 3vw, 1.78rem);
    font-weight: 950;
    line-height: 1.25;
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
  }

  #rk-temp35-guide .rk-temp35-equation-box p {
    margin: 0;
    color: #3f5b69;
  }

  #rk-temp35-guide .rk-temp35-chart-bar {
    fill: var(--rk-temp35-teal);
    stroke: transparent;
    stroke-width: 0;
    transition: opacity 0.18s ease, fill 0.18s ease;
  }

  #rk-temp35-guide .rk-temp35-chart-bar:hover,
  #rk-temp35-guide .rk-temp35-chart-bar:focus {
    opacity: 0.78;
    outline: none;
  }

  #rk-temp35-guide .rk-temp35-chart-bar.is-selected {
    fill: var(--rk-temp35-orange);
  }

  #rk-temp35-guide .rk-temp35-chart-bar.is-over {
    fill: var(--rk-temp35-red);
  }

  #rk-temp35-guide .rk-temp35-chart-bar.is-selected.is-over {
    fill: var(--rk-temp35-red);
    stroke: var(--rk-temp35-orange);
    stroke-width: 4;
  }

  #rk-temp35-guide .rk-temp35-chart-target-line {
    stroke: #9b6512;
    stroke-width: 2;
    stroke-dasharray: 8 6;
  }

  #rk-temp35-guide .rk-temp35-chart-target-label {
    fill: #81540e;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-chart-value {
    fill: #294b5c;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-chart-axis-title {
    fill: #476474;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 12px;
    font-weight: 800;
  }

  #rk-temp35-guide .rk-temp35-legend .is-danger i {
    background: var(--rk-temp35-red);
  }

  @media (max-width: 620px) {
    #rk-temp35-guide .rk-temp35-equation-main {
      font-size: 1.08rem;
    }

    #rk-temp35-guide .rk-temp35-chart-value,
    #rk-temp35-guide .rk-temp35-chart-target-label,
    #rk-temp35-guide .rk-temp35-chart-axis-title {
      font-size: 10px;
    }
  }



  #rk-temp35-guide .rk-temp35-circuit-editor {
    display: grid;
    gap: 11px;
    margin: 22px 0 12px;
  }

  #rk-temp35-guide .rk-temp35-circuit-row {
    display: grid;
    grid-template-columns: minmax(135px, 1.2fr) minmax(105px, 0.8fr) minmax(135px, 0.9fr) minmax(112px, 0.7fr) 42px;
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 15px;
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-circuit-cell label,
  #rk-temp35-guide .rk-temp35-circuit-flow span {
    display: block;
    margin-bottom: 6px;
    color: #496674;
    font-size: 0.72rem;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-circuit-cell input {
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 9px 10px;
    border: 1px solid #b9ccd5;
    border-radius: 10px;
    background: #ffffff;
    color: var(--rk-temp35-navy);
    font: inherit;
    font-weight: 750;
    line-height: 1.25;
  }

  #rk-temp35-guide .rk-temp35-circuit-cell input:focus {
    border-color: var(--rk-temp35-teal);
    outline: 3px solid rgba(15, 137, 151, 0.18);
  }

  #rk-temp35-guide .rk-temp35-circuit-flow {
    min-height: 44px;
    padding: 7px 9px;
    border-radius: 10px;
    background: #eef8fa;
  }

  #rk-temp35-guide .rk-temp35-circuit-flow span {
    margin-bottom: 2px;
  }

  #rk-temp35-guide .rk-temp35-circuit-flow strong {
    display: block;
    color: var(--rk-temp35-navy);
    font-size: 0.94rem;
    font-variant-numeric: tabular-nums;
  }

  #rk-temp35-guide .rk-temp35-add-loop:disabled {
    cursor: not-allowed;
    opacity: 0.56;
  }

  #rk-temp35-guide .rk-temp35-chart-common {
    fill: #80cbd3;
  }

  #rk-temp35-guide .rk-temp35-chart-branch {
    fill: var(--rk-temp35-teal);
  }

  #rk-temp35-guide .rk-temp35-chart-critical-outline {
    fill: none;
    stroke: var(--rk-temp35-orange);
    stroke-width: 4;
  }

  #rk-temp35-guide .rk-temp35-chart-grid {
    stroke: #dbe5e9;
    stroke-width: 1;
  }

  #rk-temp35-guide .rk-temp35-chart-tick,
  #rk-temp35-guide .rk-temp35-chart-name,
  #rk-temp35-guide .rk-temp35-chart-index,
  #rk-temp35-guide .rk-temp35-chart-value,
  #rk-temp35-guide .rk-temp35-chart-axis-title {
    fill: #3f5d6c;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 800;
  }

  #rk-temp35-guide .rk-temp35-chart-value {
    fill: var(--rk-temp35-navy);
    font-size: 12px;
    font-weight: 950;
  }

  #rk-temp35-guide .rk-temp35-chart-index {
    fill: #6e8490;
    font-size: 9px;
  }

  #rk-temp35-guide .rk-temp35-legend .is-common i {
    background: #80cbd3;
  }

  #rk-temp35-guide .rk-temp35-legend .is-pump i {
    border: 3px solid var(--rk-temp35-orange);
    background: transparent;
  }

  #rk-temp35-guide .rk-temp35-state-controls {
    margin-bottom: 18px;
  }

  @media (max-width: 900px) {
    #rk-temp35-guide .rk-temp35-circuit-row {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-temp35-guide .rk-temp35-circuit-flow {
      align-self: end;
    }

    #rk-temp35-guide .rk-temp35-remove-loop {
      width: 100%;
      grid-column: 1 / -1;
    }
  }

  @media (max-width: 560px) {
    #rk-temp35-guide .rk-temp35-circuit-row {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-chart-tick,
    #rk-temp35-guide .rk-temp35-chart-name,
    #rk-temp35-guide .rk-temp35-chart-value,
    #rk-temp35-guide .rk-temp35-chart-axis-title {
      font-size: 9px;
    }
  }



  #rk-temp35-guide .rk-temp35-segmented button[aria-selected="true"] {
    border-color: var(--rk-temp35-navy);
    background: var(--rk-temp35-navy);
    color: #ffffff;
    box-shadow: 0 8px 18px rgba(18, 50, 71, 0.18);
  }

  #rk-temp35-guide .rk-temp35-field-grid-single {
    grid-template-columns: minmax(0, 1fr);
  }

  #rk-temp35-guide .rk-temp35-calc-summary {
    margin: 22px 0;
    padding: 18px;
    border: 1px solid #b9e3e8;
    border-radius: 18px;
    background: #f0fbfc;
  }

  #rk-temp35-guide .rk-temp35-calc-summary .rk-temp35-result-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 13px;
  }

  #rk-temp35-guide .rk-temp35-calc-summary .rk-temp35-result {
    background: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-calc-summary .rk-temp35-result strong {
    font-size: clamp(1.05rem, 2.1vw, 1.42rem);
  }

  #rk-temp35-guide .rk-temp35-calc-summary .rk-temp35-equation {
    margin: 0;
    color: #365665;
    font-size: 0.78rem;
    font-weight: 800;
  }

  #rk-temp35-guide .rk-temp35-pipe-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 20px 0;
  }

  #rk-temp35-guide .rk-temp35-pipe-result {
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--rk-temp35-line);
    border-radius: 18px;
    background: #ffffff;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
  }

  #rk-temp35-guide .rk-temp35-pipe-result.is-selected {
    border-color: var(--rk-temp35-orange);
    box-shadow: 0 12px 28px rgba(245, 112, 32, 0.13);
    transform: translateY(-2px);
  }

  #rk-temp35-guide .rk-temp35-pipe-result-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 7px 14px;
    align-items: baseline;
    margin-bottom: 13px;
    color: var(--rk-temp35-navy);
  }

  #rk-temp35-guide .rk-temp35-pipe-result-head span {
    font-size: 1.05rem;
    font-weight: 950;
  }

  #rk-temp35-guide .rk-temp35-pipe-result-head strong {
    color: #54707e;
    font-size: 0.74rem;
  }

  #rk-temp35-guide .rk-temp35-pipe-metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  #rk-temp35-guide .rk-temp35-pipe-metrics > div {
    min-width: 0;
    padding: 11px;
    border-radius: 11px;
    background: #f2f7f8;
  }

  #rk-temp35-guide .rk-temp35-pipe-metrics span,
  #rk-temp35-guide .rk-temp35-pipe-metrics strong {
    display: block;
  }

  #rk-temp35-guide .rk-temp35-pipe-metrics span {
    color: #5b7380;
    font-size: 0.65rem;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-temp35-guide .rk-temp35-pipe-metrics strong {
    margin-top: 3px;
    color: var(--rk-temp35-navy);
    font-size: 0.87rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.3;
  }

  #rk-temp35-guide .rk-temp35-pipe-status {
    margin: 12px 0;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.45;
  }

  #rk-temp35-guide .rk-temp35-pipe-status.is-within {
    background: #eaf8f1;
    color: #245e49;
  }

  #rk-temp35-guide .rk-temp35-pipe-status.is-over {
    background: #fff2e8;
    color: #7b421d;
  }

  #rk-temp35-guide .rk-temp35-pipe-result button {
    width: 100%;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid #bcd0d8;
    border-radius: 11px;
    background: #ffffff;
    color: var(--rk-temp35-navy);
    font: inherit;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1.3;
    cursor: pointer;
  }

  #rk-temp35-guide .rk-temp35-pipe-result button[aria-pressed="true"] {
    border-color: var(--rk-temp35-navy);
    background: var(--rk-temp35-navy);
    color: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-series-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 13px;
    margin: 0 0 12px;
  }

  #rk-temp35-guide .rk-temp35-series-controls button {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: #425f6e;
    font: inherit;
    font-size: 0.72rem;
    font-weight: 850;
    cursor: pointer;
  }

  #rk-temp35-guide .rk-temp35-series-controls button[aria-pressed="false"] {
    opacity: 0.45;
    text-decoration: line-through;
  }

  #rk-temp35-guide .rk-temp35-series-controls i {
    display: inline-block;
    width: 24px;
    height: 4px;
    border-radius: 999px;
  }

  #rk-temp35-guide .rk-temp35-series-controls .is-p16,
  #rk-temp35-guide .rk-temp35-chart-curve.is-p16,
  #rk-temp35-guide .rk-temp35-chart-point.is-p16 {
    stroke: #e96a28;
    background: #e96a28;
    fill: #e96a28;
  }

  #rk-temp35-guide .rk-temp35-series-controls .is-p17,
  #rk-temp35-guide .rk-temp35-chart-curve.is-p17,
  #rk-temp35-guide .rk-temp35-chart-point.is-p17 {
    stroke: #087f91;
    background: #087f91;
    fill: #087f91;
  }

  #rk-temp35-guide .rk-temp35-series-controls .is-p20,
  #rk-temp35-guide .rk-temp35-chart-curve.is-p20,
  #rk-temp35-guide .rk-temp35-chart-point.is-p20 {
    stroke: #315aa6;
    background: #315aa6;
    fill: #315aa6;
  }

  #rk-temp35-guide .rk-temp35-series-controls .is-custom,
  #rk-temp35-guide .rk-temp35-chart-curve.is-custom,
  #rk-temp35-guide .rk-temp35-chart-point.is-custom {
    stroke: #7a4ea3;
    background: #7a4ea3;
    fill: #7a4ea3;
  }

  #rk-temp35-guide .rk-temp35-chart-grid line {
    stroke: #dbe5e9;
    stroke-width: 1;
  }

  #rk-temp35-guide .rk-temp35-chart-grid text,
  #rk-temp35-guide .rk-temp35-chart-axis-title,
  #rk-temp35-guide .rk-temp35-chart-criterion-label {
    fill: #506d7b;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 11px;
    font-weight: 750;
  }

  #rk-temp35-guide .rk-temp35-chart-axis-title {
    fill: var(--rk-temp35-navy);
    font-size: 12px;
    font-weight: 900;
  }

  #rk-temp35-guide .rk-temp35-chart-frame {
    fill: none;
    stroke: #91a8b2;
    stroke-width: 1.2;
  }

  #rk-temp35-guide .rk-temp35-chart-curve {
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  #rk-temp35-guide .rk-temp35-chart-curve.is-selected {
    stroke-width: 4.5;
  }

  #rk-temp35-guide .rk-temp35-chart-guide {
    stroke: var(--rk-temp35-navy);
    stroke-width: 1.5;
    stroke-dasharray: 6 5;
  }

  #rk-temp35-guide .rk-temp35-chart-point {
    stroke-width: 2;
    stroke: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-chart-point.is-selected {
    stroke: var(--rk-temp35-navy);
    stroke-width: 3;
  }

  #rk-temp35-guide .rk-temp35-chart-criterion {
    stroke: #ac5a24;
    stroke-width: 1.5;
    stroke-dasharray: 3 4;
  }

  #rk-temp35-guide .rk-temp35-chart-criterion-label {
    fill: #7b4a29;
  }

  #rk-temp35-guide .rk-temp35-chart-reading {
    margin-top: 12px;
    padding: 13px 15px;
    border-left: 4px solid var(--rk-temp35-cyan);
    border-radius: 7px 12px 12px 7px;
    background: #edf8fa;
    color: #345463;
    font-size: 0.75rem;
    line-height: 1.5;
  }

  #rk-temp35-guide .rk-temp35-chart-reading strong {
    color: var(--rk-temp35-navy);
  }

  @media (max-width: 900px) {
    #rk-temp35-guide .rk-temp35-calc-summary .rk-temp35-result-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 700px) {
    #rk-temp35-guide .rk-temp35-pipe-results {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 460px) {
    #rk-temp35-guide .rk-temp35-calc-summary .rk-temp35-result-grid,
    #rk-temp35-guide .rk-temp35-pipe-metrics {
      grid-template-columns: 1fr;
    }

    #rk-temp35-guide .rk-temp35-chart-grid text,
    #rk-temp35-guide .rk-temp35-chart-axis-title {
      font-size: 10px;
    }
  }


  /* Dodatkowe style modułów temperatury zasilania */
  #rk-temp35-guide .rk-temp35-result-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-temp35-guide .rk-temp35-field-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-temp35-guide .rk-temp35-chart-card {
    margin-top: 24px;
  }

  #rk-temp35-guide .rk-temp35-chart-unit {
    fill: #476474;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 14px;
    font-weight: 850;
  }

  #rk-temp35-guide .rk-temp35-chart-bar.is-required {
    fill: #123247;
  }

  #rk-temp35-guide .rk-temp35-chart-bar.is-available {
    fill: #0e7787;
  }

  #rk-temp35-guide .rk-temp35-chart-bar.is-low {
    fill: #248c68;
  }

  #rk-temp35-guide .rk-temp35-chart-bar.is-high {
    fill: #ff7a21;
  }

  #rk-temp35-guide .rk-temp35-chart-value.is-inside {
    fill: #ffffff;
  }

  #rk-temp35-guide .rk-temp35-chart-label {
    font-size: 14px;
  }

  #rk-temp35-guide .rk-temp35-chart-value {
    font-size: 14px;
  }

  #rk-temp35-guide .rk-temp35-chart-reading {
    margin-top: 12px;
    padding: 13px 15px;
    border: 1px solid #cfe0e6;
    border-radius: 12px;
    background: #f5f9fa;
    color: #365665;
    font-size: 0.78rem;
    line-height: 1.55;
  }

  #rk-temp35-guide .rk-temp35-equation {
    margin: 15px 0 0;
    padding: 14px 16px;
    border: 1px solid #d6e3e8;
    border-radius: 13px;
    background: #ffffff;
    color: #365665;
    font-size: 0.78rem;
    font-weight: 800;
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card.is-warning {
    border-color: #e3ad58;
    background: #fff8ed;
    box-shadow: 0 12px 28px rgba(183, 120, 18, 0.12);
    transform: translateY(-2px);
  }

  #rk-temp35-guide .rk-temp35-hydraulic-card.is-warning .rk-temp35-hydraulic-value {
    background: #ffe9c5;
    color: #7a4e0c;
  }

  #rk-temp35-guide .rk-temp35-source-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  @media (max-width: 1040px) {
    #rk-temp35-guide .rk-temp35-field-grid-4 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 820px) {
    #rk-temp35-guide .rk-temp35-source-grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 700px) {
    #rk-temp35-guide .rk-temp35-result-grid-3,
    #rk-temp35-guide .rk-temp35-field-grid-4 {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 520px) {
    #rk-temp35-guide .rk-temp35-chart-label,
    #rk-temp35-guide .rk-temp35-chart-tick,
    #rk-temp35-guide .rk-temp35-chart-value,
    #rk-temp35-guide .rk-temp35-chart-unit {
      font-size: 12px;
    }
  }
</style>

<article id="rk-temp35-guide" aria-labelledby="rk-temp35-visual-title">
  <div class="rk-temp35-shell">
    <header class="rk-temp35-hero">
      <div class="rk-temp35-hero-inner">
        <span class="rk-temp35-kicker">35°C to punkt projektowy, nie dogmat</span>
        <div class="rk-temp35-hero-title" id="rk-temp35-visual-title">Najniższa temperatura, <span>która pokrywa straty</span></div>
        <p class="rk-temp35-hero-lead">Podłogówka nie potrzebuje z definicji dokładnie 35°C. Prawidłowa temperatura zasilania wynika z obciążenia każdego pomieszczenia, czynnej powierzchni podłogi, jej konstrukcji, okładziny i warunków obliczeniowych. Dla pompy ciepła celem jest możliwie niski parametr, ale bez utraty wymaganej mocy.</p>

        <div class="rk-temp35-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-temp35-hero-tag">parametr 35/30°C</span>
          <span class="rk-temp35-hero-tag">moc podłogi</span>
          <span class="rk-temp35-hero-tag">COP i SCOP</span>
          <span class="rk-temp35-hero-tag">krzywa grzewcza</span>
          <span class="rk-temp35-hero-tag">przepływ i ΔT</span>
        </div>

        <div class="rk-temp35-byline">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: około 39 minut</span>
          <span>Aktualizacja techniczna: 11 września 2026 r.</span>
        </div>

        <div class="rk-temp35-hero-metrics" aria-label="Trzy etapy wyznaczania temperatury zasilania">
          <div class="rk-temp35-hero-metric">
            <b>OZC wyznacza potrzebną moc</b>
            <span>Najpierw ustala się obciążenie każdego pomieszczenia w warunkach projektowych.</span>
          </div>
          <div class="rk-temp35-hero-metric">
            <b>Podłoga musi ją przekazać</b>
            <span>Liczą się powierzchnia czynna, rozstaw, warstwy, okładzina oraz średnia temperatura wody.</span>
          </div>
          <div class="rk-temp35-hero-metric">
            <b>Pompa pracuje w wynikowym punkcie</b>
            <span>Sprawność zależy od rzeczywistych temperatur, pogody, obciążenia i konkretnego urządzenia.</span>
          </div>
        </div>
      </div>
    </header>

    <nav class="rk-temp35-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-temp35-shortcuts-label">Na skróty — wszystkie H2</span>
      <a href="#rk-temp35-answer">Szybka odpowiedź</a>
      <a href="#rk-temp35-notation">Co oznacza 35/30°C?</a>
      <a href="#rk-temp35-efficiency">Wpływ na sprawność</a>
      <a href="#rk-temp35-not-universal">Dlaczego nie zawsze 35°C?</a>
      <a href="#rk-temp35-factors">Czynniki doboru</a>
      <a href="#rk-temp35-heat-flux">Wymagane W/m²</a>
      <a href="#rk-temp35-calculator">Kalkulator i wykres</a>
      <a href="#rk-temp35-results">Interpretacja</a>
      <a href="#rk-temp35-graphic">Grafika zależności</a>
      <a href="#rk-temp35-spacing">Rozstaw rur</a>
      <a href="#rk-temp35-coverings">Okładziny</a>
      <a href="#rk-temp35-curve">Krzywa grzewcza</a>
      <a href="#rk-temp35-hydraulics">ΔT i przepływ</a>
      <a href="#rk-temp35-architecture">Układ instalacji</a>
      <a href="#rk-temp35-buffer">Bufor i zład</a>
      <a href="#rk-temp35-example">Przykład</a>
      <a href="#rk-temp35-errors">Błędy i mity</a>
      <a href="#rk-temp35-checklist">Lista kontrolna</a>
      <a href="#rk-temp35-conclusions">Wnioski</a>
      <a href="#rk-temp35-references">Źródła</a>
      <a href="#rk-temp35-faq">FAQ</a>
      <a href="#rk-temp35-author">Autor</a>
    </nav>

    <section class="rk-temp35-section" id="rk-temp35-answer">
      <span class="rk-temp35-eyebrow">Odpowiedź w 30 sekund</span>
      <h2 class="rk-temp35-section-title">Czy 35°C zawsze wystarczy do ogrzewania podłogowego?</h2>
      <div class="rk-temp35-answer">
        <span class="rk-temp35-answer-label">Najkrótsza poprawna odpowiedź</span>
        <p><strong>Nie zawsze. Temperatura zasilania 35°C wystarczy wtedy, gdy rzeczywista moc ogrzewania podłogowego przy danej konstrukcji i powierzchni czynnej jest co najmniej równa obciążeniu wszystkich pomieszczeń. W dobrze ocieplonym domu może wystarczyć jeszcze niższa wartość, a w pomieszczeniu o dużych stratach, małej powierzchni czynnej lub opornej okładzinie może być potrzebny wyższy parametr albo zmiana projektu emitera.</strong></p>
      </div>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>32°C może wystarczyć</h3><p>W budynku o małym obciążeniu i dużej powierzchni czynnej podłoga może pokryć straty przy temperaturze niższej niż 35°C.</p></article>
        <article class="rk-temp35-card"><h3>35°C jest częstym założeniem</h3><p>Parametr 35/30°C jest użytecznym punktem obliczeniowym, ale jego skuteczność trzeba potwierdzić dla każdego pomieszczenia.</p></article>
        <article class="rk-temp35-card"><h3>40°C nie oznacza awarii projektu</h3><p>Wyższy parametr może być uzasadniony w trudniejszym budynku. Nadal należy szukać najniższej wartości zapewniającej wymaganą moc.</p></article>
      </div>

      <p>Najważniejsza zasada brzmi: <strong>nie wybieramy temperatury na podstawie samego napisu „pompa ciepła”</strong>. Punktem wyjścia jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, a następnie zdolność konkretnej podłogi do przekazania tej mocy. Dopiero wtedy ocenia się wymagany parametr źródła.</p>
      <div class="rk-temp35-callout"><strong>35°C nie jest uniwersalnym nakazem normowym.</strong> Normowe metody opisują sposób wyznaczania mocy i wymiarowania ogrzewania płaszczyznowego. Wynik zależy od różnicy temperatur, konstrukcji, geometrii oraz warunków pomieszczenia.</div>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-notation">
      <span class="rk-temp35-eyebrow">Jedna liczba nie opisuje całego obiegu</span>
      <h2 class="rk-temp35-section-title">Co właściwie oznacza parametr 35/30°C?</h2>
      <p class="rk-temp35-lead">Zapis 35/30°C oznacza projektową temperaturę zasilania 35°C i powrotu 30°C. Różnica wynosi 5 K, a średnia temperatura wody — w prostym ujęciu — 32,5°C.</p>

      <div class="rk-temp35-equation-box">
        <span class="rk-temp35-equation-label">Podstawowe zależności</span>
        <div class="rk-temp35-equation-main">ΔT = 35 − 30 = 5 K &nbsp; | &nbsp; θ<sub>m</sub> = (35 + 30) ÷ 2 = 32,5°C</div>
        <p>Do emisji podłogi istotna jest średnia różnica pomiędzy temperaturą czynnika i pomieszczenia, a nie wyłącznie temperatura na króćcu zasilającym.</p>
      </div>

      <div class="rk-temp35-compare-table" role="table" aria-label="Znaczenie temperatur w instalacji ogrzewania podłogowego">
        <div class="rk-temp35-table-row rk-temp35-table-head" role="row"><div role="columnheader">Wielkość</div><div role="columnheader">Co opisuje?</div><div role="columnheader">Dlaczego jest ważna?</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wielkość" role="cell">Zasilanie 35°C</div><div data-label="Opis" role="cell">Temperaturę wody wpływającej do obiegu lub rozdzielacza.</div><div data-label="Znaczenie" role="cell">Wpływa na możliwą moc emitera i punkt pracy pompy ciepła.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wielkość" role="cell">Powrót 30°C</div><div data-label="Opis" role="cell">Temperaturę wody po oddaniu części energii do podłogi.</div><div data-label="Znaczenie" role="cell">Wspólnie z zasilaniem określa średnią temperaturę i projektowe ΔT.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wielkość" role="cell">Podłoga 24–29°C</div><div data-label="Opis" role="cell">Temperaturę powierzchni odczuwaną w pomieszczeniu.</div><div data-label="Znaczenie" role="cell">Nie jest równa temperaturze wody i wynika z przekazywanego strumienia ciepła.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wielkość" role="cell">Powietrze 20–24°C</div><div data-label="Opis" role="cell">Projektową lub regulowaną temperaturę pomieszczenia.</div><div data-label="Znaczenie" role="cell">Zmienia różnicę napędzającą przepływ ciepła z podłogi.</div></div>
      </div>

      <p>Parametr 35/30°C nie gwarantuje automatycznie określonej temperatury posadzki. Zależność opisuje poradnik o <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperaturze ogrzewania podłogowego</a>. Osobno należy kontrolować również <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalną temperaturę zasilania podłogówki</a>.</p>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-efficiency">
      <span class="rk-temp35-eyebrow">Niższe podnoszenie temperatury zwykle pomaga</span>
      <h2 class="rk-temp35-section-title">Dlaczego niższa temperatura zasilania wspiera sprawność pompy ciepła?</h2>
      <p class="rk-temp35-lead">Pompa ciepła przenosi energię z dolnego źródła do instalacji. Im mniejsza różnica pomiędzy temperaturą źródła i wymaganą temperaturą wody, tym korzystniejsze mogą być warunki pracy sprężarki. Nie istnieje jednak jeden procent poprawy wspólny dla wszystkich urządzeń.</p>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Temperatura dolnego źródła</h3><p>Powietrze zewnętrzne, grunt lub woda zmieniają warunki parowania. Dlatego COP ma sens tylko razem z opisem punktu pomiarowego.</p></article>
        <article class="rk-temp35-card"><h3>Temperatura po stronie instalacji</h3><p>Wyższa temperatura wody zwykle zwiększa wymagane podniesienie temperatury, lecz skala skutku zależy od konstrukcji urządzenia.</p></article>
        <article class="rk-temp35-card"><h3>Obciążenie częściowe</h3><p>Modulacja, odszranianie, praca pomp i przygotowanie CWU wpływają na wynik sezonowy inaczej niż pojedynczy punkt katalogowy.</p></article>
      </div>

      <div class="rk-temp35-grid-2">
        <article class="rk-temp35-card"><h3>COP</h3><p>Opisuje stosunek uzyskanej mocy cieplnej do pobranej mocy elektrycznej w konkretnych warunkach badania lub pracy.</p></article>
        <article class="rk-temp35-card"><h3>SCOP</h3><p>Jest wskaźnikiem sezonowym. Nie powinno się go zastępować pojedynczym COP ani obliczać z samej temperatury zasilania.</p></article>
      </div>

      <p>W praktyce porównujemy dane tego samego modelu w porównywalnych warunkach. Nie przenosimy COP jednej pompy na inne urządzenie i nie wyznaczamy trwałości sprężarki z prostego suwaka temperatury. Ogólny kontekst pracy źródła rozwija poradnik <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła i instalacja ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-temp35-section rk-temp35-section-dark" id="rk-temp35-not-universal">
      <span class="rk-temp35-eyebrow">Najpierw moc, potem parametr</span>
      <h2 class="rk-temp35-section-title">Dlaczego 35°C nie jest uniwersalnym optimum?</h2>
      <p class="rk-temp35-lead">Dwa domy z identyczną pompą mogą wymagać innej temperatury. Nawet w jednym budynku łazienka, salon z przeszkleniami i sypialnia mogą mieć zupełnie różne obciążenie przypadające na metr czynnej podłogi.</p>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Za niska temperatura</h3><p>Jeżeli podłoga nie pokrywa strat w warunkach projektowych, pomieszczenie nie osiągnie zadanej temperatury mimo prawidłowego przepływu.</p></article>
        <article class="rk-temp35-card"><h3>Temperatura wystarczająca</h3><p>Emiter pokrywa obciążenie z rozsądną rezerwą, a instalacja zachowuje wymagane warunki powierzchniowe i hydrauliczne.</p></article>
        <article class="rk-temp35-card"><h3>Temperatura niepotrzebnie wysoka</h3><p>Może pogarszać warunki pracy źródła i regulację, choć pomieszczenia nadal będą ogrzane.</p></article>
      </div>

      <p>Właściwy cel to <strong>najniższa krzywa grzewcza zapewniająca bilans wszystkich pomieszczeń</strong>, a nie bezwarunkowe utrzymywanie 35°C przez cały sezon. Czasami wymaga to zagęszczenia rur, zwiększenia powierzchni czynnej, zmiany okładziny, ograniczenia strat budynku albo zastosowania dodatkowego emitera.</p>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-factors">
      <span class="rk-temp35-eyebrow">Osiem danych zamiast jednej liczby</span>
      <h2 class="rk-temp35-section-title">Od czego zależy wymagana temperatura zasilania?</h2>
      <p class="rk-temp35-lead">Temperatura jest wynikiem projektu cieplnego. Nie można jej dobrać poprawnie z powierzchni domu, mocy znamionowej pompy ani samego rozstawu rur.</p>

      <div class="rk-temp35-spec-grid">
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">1</span><div><strong>Obciążenie pomieszczenia</strong><span>Projektowe straty w watach dla temperatury zewnętrznej właściwej lokalizacji.</span></div></div>
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">2</span><div><strong>Powierzchnia czynna</strong><span>Fragment podłogi rzeczywiście uczestniczący w oddawaniu ciepła.</span></div></div>
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">3</span><div><strong>Temperatura pomieszczenia</strong><span>Inne warunki projektowe przyjmuje się dla sypialni, salonu i łazienki.</span></div></div>
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">4</span><div><strong>Rozstaw oraz rura</strong><span>Geometria systemu wpływa na pole charakterystyk cieplnych i hydraulikę.</span></div></div>
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">5</span><div><strong>Warstwy nad rurą</strong><span>Rodzaj i grubość jastrychu zmieniają przewodzenie oraz bezwładność.</span></div></div>
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">6</span><div><strong>Okładzina podłogowa</strong><span>Płytki, winyl, panele i drewno mają różny opór cieplny oraz ograniczenia producenta.</span></div></div>
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">7</span><div><strong>Temperatura i ΔT wody</strong><span>Zasilanie oraz powrót wyznaczają średnią temperaturę czynnika i przepływ.</span></div></div>
        <div class="rk-temp35-spec"><span class="rk-temp35-spec-mark">8</span><div><strong>Warunki źródła</strong><span>Charakterystyka pompy, przepływ minimalny, automatyka i temperatura zewnętrzna.</span></div></div>
      </div>

      <p>Podstawą pozostaje obliczenie dla każdego pomieszczenia. Zobacz, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła budynku</a> oraz jak powstaje <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>.</p>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-heat-flux">
      <span class="rk-temp35-eyebrow">Wymagana moc przypada na powierzchnię, która naprawdę grzeje</span>
      <h2 class="rk-temp35-section-title">Jak obciążenie i powierzchnia czynna wyznaczają wymagane W/m²?</h2>
      <p class="rk-temp35-lead">Jeżeli pomieszczenie wymaga 1000 W, nie wolno dzielić tej wartości przez cały metraż, gdy część podłogi zajmuje stała zabudowa. Najpierw ustala się powierzchnię aktywną.</p>

      <div class="rk-temp35-equation-box">
        <span class="rk-temp35-equation-label">Wymagana gęstość strumienia ciepła</span>
        <div class="rk-temp35-equation-main">q<sub>wym.</sub> = Q<sub>pom.</sub> ÷ A<sub>czynna</sub></div>
        <p>Dla obciążenia 1000 W i 20 m² czynnej podłogi potrzeba średnio 50 W/m². Jeżeli powierzchnia zmaleje do 16 m², wymaganie wzrośnie do 62,5 W/m².</p>
      </div>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Q pomieszczenia</h3><p>Pochodzi z OZC. Nie dodajemy automatycznego procentowego narzutu bez wskazania jego przyczyny.</p></article>
        <article class="rk-temp35-card"><h3>A czynna</h3><p>Powinna wynikać z rzutu i uzgodnionej zabudowy, a nie z przybliżonego udziału procentowego.</p></article>
        <article class="rk-temp35-card"><h3>q dostępne</h3><p>Odczytuje się z obliczenia lub tabeli konkretnego systemu dla przyjętych temperatur i warstw.</p></article>
      </div>

      <p>Dopiero zestawienie q<sub>wym.</sub> z dostępną mocą podłogi odpowiada na pytanie, czy 35/30°C wystarczy. Znaczenie mebli i powierzchni wyłączonych omawia poradnik <a href="https://projekt-ogrzewania.pl/wodne-ogrzewanie-podlogowe-a-meble-jak-polaczyc-komfort-i-aranzacje/">ogrzewanie podłogowe a meble</a>.</p>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-calculator">
      <span class="rk-temp35-eyebrow">Kalkulator bilansu i porównania sezonowego</span>
      <h2 class="rk-temp35-section-title">Sprawdź parametr 35/30°C i porównaj koszty na podstawie SCOP</h2>
      <p class="rk-temp35-lead">Pierwsza zakładka weryfikuje bilans jednego pomieszczenia. Druga porównuje dwa warianty na podstawie sezonowych współczynników wpisanych z dokumentacji konkretnego urządzenia.</p>

      <div class="rk-temp35-tool" id="rk-temp35-calculator-tool">
        <div class="rk-temp35-tool-head">
          <span class="rk-temp35-eyebrow">Jedno narzędzie, dwa odrębne pytania</span>
          <h3>Weryfikator temperatury i kosztów pracy pompy ciepła</h3>
          <p>Kalkulator nie zgaduje mocy podłogi ani SCOP. Wymaga wprowadzenia danych z projektu, tabel systemu podłogowego i dokumentacji pompy.</p>
        </div>

        <div class="rk-temp35-tool-body">
          <div class="rk-temp35-segmented" role="tablist" aria-label="Wybierz rodzaj obliczenia">
            <button type="button" role="tab" id="rk-temp35-tab-balance" data-rk-temp35-mode="balance" aria-selected="true" aria-controls="rk-temp35-panel-balance">Czy 35/30°C wystarczy?</button>
            <button type="button" role="tab" id="rk-temp35-tab-scop" data-rk-temp35-mode="scop" aria-selected="false" aria-controls="rk-temp35-panel-scop">Porównaj SCOP i koszt</button>
          </div>

          <div class="rk-temp35-panel" id="rk-temp35-panel-balance" role="tabpanel" aria-labelledby="rk-temp35-tab-balance">
            <div class="rk-temp35-field-grid rk-temp35-field-grid-3">
              <div class="rk-temp35-field">
                <label for="rk-temp35-room-load">Obciążenie pomieszczenia</label>
                <input id="rk-temp35-room-load" type="number" min="10" max="20000" step="10" value="1000" inputmode="decimal">
                <span class="rk-temp35-field-help">Projektowa wartość Q w watach.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-active-area">Czynna powierzchnia podłogi</label>
                <input id="rk-temp35-active-area" type="number" min="0.5" max="300" step="0.5" value="20" inputmode="decimal">
                <span class="rk-temp35-field-help">Powierzchnia faktycznie oddająca ciepło w m².</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-table-output">Moc podłogi z tabeli</label>
                <input id="rk-temp35-table-output" type="number" min="1" max="250" step="1" value="50" inputmode="decimal">
                <span class="rk-temp35-field-help">W/m² dla wpisanego parametru i konkretnej konstrukcji.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-supply-temp">Temperatura zasilania</label>
                <input id="rk-temp35-supply-temp" type="number" min="20" max="70" step="0.5" value="35" inputmode="decimal">
                <span class="rk-temp35-field-help">Temperatura projektowa w °C.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-return-temp">Temperatura powrotu</label>
                <input id="rk-temp35-return-temp" type="number" min="15" max="65" step="0.5" value="30" inputmode="decimal">
                <span class="rk-temp35-field-help">Musi być niższa od zasilania.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-room-temp">Temperatura pomieszczenia</label>
                <input id="rk-temp35-room-temp" type="number" min="15" max="28" step="0.5" value="20" inputmode="decimal">
                <span class="rk-temp35-field-help">Do pokazania średniej różnicy temperatur.</span>
              </div>
            </div>

            <div class="rk-temp35-result-grid rk-temp35-result-grid-3">
              <div class="rk-temp35-result"><span>Wymagana moc jednostkowa</span><strong id="rk-temp35-result-required-output">50,0 W/m²</strong></div>
              <div class="rk-temp35-result"><span>Dostępna moc podłogi</span><strong id="rk-temp35-result-available-power">1000 W</strong></div>
              <div class="rk-temp35-result"><span>Bilans mocy</span><strong id="rk-temp35-result-balance">0 W</strong></div>
              <div class="rk-temp35-result"><span>Potrzebna powierzchnia</span><strong id="rk-temp35-result-required-area">20,0 m²</strong></div>
              <div class="rk-temp35-result"><span>Przepływ dla pomieszczenia</span><strong id="rk-temp35-result-flow">2,87 l/min</strong></div>
              <div class="rk-temp35-result"><span>Średnia różnica woda–pokój</span><strong id="rk-temp35-result-medium-delta">12,5 K</strong></div>
            </div>

            <p class="rk-temp35-equation" id="rk-temp35-balance-equation">1000 W ÷ 20 m² = 50,0 W/m²; 50 W/m² × 20 m² = 1000 W.</p>
          </div>

          <div class="rk-temp35-panel" id="rk-temp35-panel-scop" role="tabpanel" aria-labelledby="rk-temp35-tab-scop" hidden="">
            <div class="rk-temp35-field-grid rk-temp35-field-grid-3">
              <div class="rk-temp35-field">
                <label for="rk-temp35-annual-heat">Roczne użyteczne ciepło</label>
                <input id="rk-temp35-annual-heat" type="number" min="100" max="200000" step="100" value="10000" inputmode="decimal">
                <span class="rk-temp35-field-help">Energia dostarczana do budynku w kWh/rok.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-energy-price">Cena energii elektrycznej</label>
                <input id="rk-temp35-energy-price" type="number" min="0.01" max="10" step="0.01" value="1.10" inputmode="decimal">
                <span class="rk-temp35-field-help">Łączny koszt 1 kWh w PLN.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-years">Okres porównania</label>
                <input id="rk-temp35-years" type="number" min="1" max="30" step="1" value="10" inputmode="numeric">
                <span class="rk-temp35-field-help">Bez prognozowania zmian ceny energii.</span>
              </div>
            </div>
            <div class="rk-temp35-field-grid rk-temp35-field-grid-4">
              <div class="rk-temp35-field">
                <label for="rk-temp35-low-temp">Niższa temperatura zasilania</label>
                <input id="rk-temp35-low-temp" type="number" min="20" max="65" step="1" value="35" inputmode="decimal">
                <span class="rk-temp35-field-help">Etykieta wariantu w °C.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-low-scop">SCOP niższego parametru</label>
                <input id="rk-temp35-low-scop" type="number" min="1" max="10" step="0.1" value="4.2" inputmode="decimal">
                <span class="rk-temp35-field-help">Wartość z porównywalnych danych producenta.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-high-temp">Wyższa temperatura zasilania</label>
                <input id="rk-temp35-high-temp" type="number" min="20" max="70" step="1" value="45" inputmode="decimal">
                <span class="rk-temp35-field-help">Etykieta wariantu porównawczego w °C.</span>
              </div>
              <div class="rk-temp35-field">
                <label for="rk-temp35-high-scop">SCOP wyższego parametru</label>
                <input id="rk-temp35-high-scop" type="number" min="1" max="10" step="0.1" value="3.4" inputmode="decimal">
                <span class="rk-temp35-field-help">Nie zastępuj SCOP chwilowym COP.</span>
              </div>
            </div>

            <div class="rk-temp35-result-grid rk-temp35-result-grid-3">
              <div class="rk-temp35-result"><span id="rk-temp35-low-energy-label">Prąd przy 35°C</span><strong id="rk-temp35-result-low-energy">2381 kWh/rok</strong></div>
              <div class="rk-temp35-result"><span id="rk-temp35-high-energy-label">Prąd przy 45°C</span><strong id="rk-temp35-result-high-energy">2941 kWh/rok</strong></div>
              <div class="rk-temp35-result"><span>Różnica zużycia</span><strong id="rk-temp35-result-energy-difference">560 kWh/rok</strong></div>
              <div class="rk-temp35-result"><span id="rk-temp35-low-cost-label">Koszt przy 35°C</span><strong id="rk-temp35-result-low-cost">2619 zł/rok</strong></div>
              <div class="rk-temp35-result"><span id="rk-temp35-high-cost-label">Koszt przy 45°C</span><strong id="rk-temp35-result-high-cost">3235 zł/rok</strong></div>
              <div class="rk-temp35-result"><span>Różnica w całym okresie</span><strong id="rk-temp35-result-period-difference">6162 zł</strong></div>
            </div>

            <p class="rk-temp35-equation" id="rk-temp35-scop-equation">10 000 kWh ÷ 4,2 = 2381 kWh prądu; 10 000 kWh ÷ 3,4 = 2941 kWh prądu.</p>
          </div>

          <div class="rk-temp35-chart-card">
            <div class="rk-temp35-chart-title" id="rk-temp35-chart-visible-title">Bilans mocy pomieszczenia przy wpisanym parametrze</div>
            <div class="rk-temp35-chart-wrap" id="rk-temp35-chart-wrap">
              <svg id="rk-temp35-comparison-chart" viewBox="0 0 760 330" role="img" aria-labelledby="rk-temp35-chart-title-svg rk-temp35-chart-desc">
                <title id="rk-temp35-chart-title-svg">Porównanie wymaganej i dostępnej mocy</title>
                <desc id="rk-temp35-chart-desc">Wykres porównuje projektowe obciążenie pomieszczenia z mocą dostępną z czynnej powierzchni podłogi.</desc>
              </svg>
            </div>
            <div class="rk-temp35-chart-reading" id="rk-temp35-chart-reading" aria-live="polite"><strong>Bilans:</strong> dostępna moc 1000 W odpowiada obciążeniu 1000 W.</div>
          </div>

          <div class="rk-temp35-status is-good" id="rk-temp35-calculator-status" role="status">Dla wpisanych danych podłoga pokrywa projektowe obciążenie bez rezerwy. Zweryfikuj, czy 50 W/m² pochodzi z tabeli odpowiadającej dokładnie parametrowi 35/30°C i konstrukcji podłogi.</div>
          <div class="rk-temp35-tool-disclaimer"><strong>Granice kalkulatora:</strong> narzędzie nie wyznacza mocy podłogi z rozstawu rur, nie oblicza temperatury powierzchni i nie tworzy charakterystyki pompy ciepła. Wartość W/m² oraz SCOP muszą pochodzić z wiarygodnych, porównywalnych danych. Wynik nie zastępuje projektu według właściwych metod obliczeniowych ani dokumentacji producentów.</div>
        </div>
      </div>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-results">
      <span class="rk-temp35-eyebrow">Wynik mówi o bilansie, nie o całym projekcie</span>
      <h2 class="rk-temp35-section-title">Jak interpretować wynik kalkulatora?</h2>
      <p class="rk-temp35-lead">Kalkulator odpowiada na dwa precyzyjne pytania: czy wpisana moc jednostkowa wystarcza dla danego pomieszczenia oraz jak zmienia się rachunek przy dwóch wpisanych wartościach SCOP. Nie wybiera automatycznie temperatury ani urządzenia.</p>

      <div class="rk-temp35-compare-table" role="table" aria-label="Interpretacja bilansu mocy ogrzewania podłogowego">
        <div class="rk-temp35-table-row rk-temp35-table-head" role="row"><div role="columnheader">Wynik</div><div role="columnheader">Co oznacza?</div><div role="columnheader">Co sprawdzić dalej?</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wynik" role="cell">Dodatnia rezerwa</div><div data-label="Znaczenie" role="cell">Wpisana moc podłogi przewyższa obciążenie pomieszczenia.</div><div data-label="Dalsza kontrola" role="cell">Temperaturę powierzchni, dane systemu, hydraulikę oraz pozostałe pomieszczenia.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wynik" role="cell">Bilans bliski zera</div><div data-label="Znaczenie" role="cell">Podłoga pokrywa obciążenie bez istotnej rezerwy dla wpisanych danych.</div><div data-label="Dalsza kontrola" role="cell">Dokładność OZC, powierzchnię czynną i warunki skrajne.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wynik" role="cell">Deficyt mocy</div><div data-label="Znaczenie" role="cell">Przyjęta moc W/m² pomnożona przez powierzchnię jest zbyt mała.</div><div data-label="Dalsza kontrola" role="cell">Możliwość zwiększenia powierzchni, zmiany konstrukcji, rozstawu, parametru lub dodania emitera.</div></div>
      </div>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Nie przenoś wyniku na cały dom</h3><p>Salon może mieć rezerwę, a łazienka lub pomieszczenie z dużymi przeszkleniami — deficyt. Sprawdza się każde pomieszczenie.</p></article>
        <article class="rk-temp35-card"><h3>Nie mieszaj COP ze SCOP</h3><p>Chwilowy COP nie służy bezpośrednio do prognozy rocznego zużycia. Kalkulator kosztów wymaga sezonowych danych.</p></article>
        <article class="rk-temp35-card"><h3>Nie traktuj W/m² jako stałej</h3><p>Moc z tabeli musi odpowiadać temperaturze, rozstawowi, konstrukcji, okładzinie i warunkom pomieszczenia.</p></article>
      </div>

      <div class="rk-temp35-cta">
        <div class="rk-temp35-cta-title">35°C wystarcza tylko wtedy, gdy wynika to z bilansu pomieszczeń</div>
        <p>Kalkulator sprawdza jeden warunek dla wpisanych danych. W kompletnym projekcie trzeba połączyć OZC każdego pomieszczenia, powierzchnie czynne, warstwy podłogi, rozstaw rur, parametr 35/30°C, długości pętli, przepływy oraz punkt pracy pompy obiegowej. Dopiero wtedy wiadomo, gdzie niska temperatura rzeczywiście wystarczy.</p>
        <a class="rk-temp35-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki do pompy ciepła</a>
        <small class="rk-temp35-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-graphic">
      <span class="rk-temp35-eyebrow">Interaktywna grafika edukacyjna</span>
      <h2 class="rk-temp35-section-title">Jak budynek i podłoga prowadzą do temperatury pracy pompy?</h2>
      <p class="rk-temp35-lead">Wybierz zmianę. Sześć modułów pokaże jej kierunek oddziaływania — od warunków budynku do wymaganego parametru i pracy źródła.</p>

      <div class="rk-temp35-tool" id="rk-temp35-dependency-tool">
        <div class="rk-temp35-tool-head">
          <span class="rk-temp35-eyebrow">Łańcuch cieplny od pogody do sprężarki</span>
          <h3>Sprawdź, co naprawdę zmienia wymagane zasilanie</h3>
          <p>Grafika pokazuje kierunek zmian przy pozostałych warunkach niezmienionych. Nie przypisuje uniwersalnych wartości temperatury ani sprawności.</p>
        </div>
        <div class="rk-temp35-tool-body">
          <div class="rk-temp35-graphic-controls" role="group" aria-label="Wybierz analizowaną zmianę">
            <button type="button" data-rk-temp35-scenario="insulation" aria-pressed="true">Mniejsze straty budynku</button>
            <button type="button" data-rk-temp35-scenario="area" aria-pressed="false">Mniej czynnej podłogi</button>
            <button type="button" data-rk-temp35-scenario="covering" aria-pressed="false">Większy opór okładziny</button>
            <button type="button" data-rk-temp35-scenario="spacing" aria-pressed="false">Gęstszy rozstaw rur</button>
          </div>

          <div class="rk-temp35-hydraulic-grid" aria-live="polite">
            <article class="rk-temp35-hydraulic-card is-muted" data-rk-temp35-component="weather"><span class="rk-temp35-hydraulic-number">1</span><h3>Warunki zewnętrzne</h3><span class="rk-temp35-hydraulic-value" data-rk-temp35-component-value="">Bez zmian</span><p data-rk-temp35-component-copy="">Temperatura obliczeniowa lokalizacji pozostaje taka sama.</p></article>
            <article class="rk-temp35-hydraulic-card is-active" data-rk-temp35-component="load"><span class="rk-temp35-hydraulic-number">2</span><h3>Obciążenie pomieszczenia</h3><span class="rk-temp35-hydraulic-value" data-rk-temp35-component-value="">Maleje</span><p data-rk-temp35-component-copy="">Lepsza izolacyjność ogranicza moc potrzebną do utrzymania temperatury.</p></article>
            <article class="rk-temp35-hydraulic-card is-muted" data-rk-temp35-component="area"><span class="rk-temp35-hydraulic-number">3</span><h3>Powierzchnia czynna</h3><span class="rk-temp35-hydraulic-value" data-rk-temp35-component-value="">Bez zmian</span><p data-rk-temp35-component-copy="">Dostępny obszar grzewczy nie zmienia się.</p></article>
            <article class="rk-temp35-hydraulic-card is-active" data-rk-temp35-component="emission"><span class="rk-temp35-hydraulic-number">4</span><h3>Wymagane W/m²</h3><span class="rk-temp35-hydraulic-value" data-rk-temp35-component-value="">Maleją</span><p data-rk-temp35-component-copy="">Ta sama podłoga musi przekazać mniej energii na każdy metr kwadratowy.</p></article>
            <article class="rk-temp35-hydraulic-card is-active" data-rk-temp35-component="water"><span class="rk-temp35-hydraulic-number">5</span><h3>Temperatura wody</h3><span class="rk-temp35-hydraulic-value" data-rk-temp35-component-value="">Może być niższa</span><p data-rk-temp35-component-copy="">Do uzyskania mniejszej mocy może wystarczyć niższa średnia temperatura czynnika.</p></article>
            <article class="rk-temp35-hydraulic-card is-active" data-rk-temp35-component="pump"><span class="rk-temp35-hydraulic-number">6</span><h3>Pompa ciepła</h3><span class="rk-temp35-hydraulic-value" data-rk-temp35-component-value="">Korzystniejszy punkt</span><p data-rk-temp35-component-copy="">Mniejszy wymagany poziom temperatury może poprawić warunki pracy urządzenia.</p></article>
          </div>

          <div class="rk-temp35-graphic-result" id="rk-temp35-scenario-result" role="status" aria-live="polite"><strong>Mniejsze straty budynku otwierają drogę do niższej temperatury.</strong><p>Obciążenie na metr czynnej powierzchni maleje. Nie oznacza to automatycznie konkretnej wartości — trzeba ponownie odczytać moc systemu dla jego konstrukcji.</p></div>
          <div class="rk-temp35-tool-disclaimer"><strong>Granica grafiki:</strong> moduł nie liczy mocy i nie zastępuje OZC ani tabel systemu. Pokazuje, który element łańcucha się zmienia i dlaczego temperatura zasilania jest wynikiem, a nie punktem wyjścia.</div>
        </div>
      </div>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-spacing">
      <span class="rk-temp35-eyebrow">10 cm nie jest jedynym poprawnym rozstawem</span>
      <h2 class="rk-temp35-section-title">Jak temperatura zasilania wiąże się z rozstawem rur?</h2>
      <p class="rk-temp35-lead">Mniejszy rozstaw może zwiększyć zdolność przekazywania ciepła przy tej samej średniej temperaturze wody i poprawić równomierność powierzchni. Nie oznacza jednak, że każdy dom z pompą ciepła wymaga rur co 10 cm.</p>

      <div class="rk-temp35-compare-table" role="table" aria-label="Znaczenie rozstawu rur dla temperatury zasilania">
        <div class="rk-temp35-table-row rk-temp35-table-head" role="row"><div role="columnheader">Rozstaw</div><div role="columnheader">Możliwa rola</div><div role="columnheader">Warunek zastosowania</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Rozstaw" role="cell">10 cm</div><div data-label="Rola" role="cell">Większa długość rury na m² i zwykle korzystniejsze pole charakterystyk cieplnych.</div><div data-label="Warunek" role="cell">Musi wynikać z mocy, hydrauliki, długości pętli oraz wykonalności.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Rozstaw" role="cell">15 cm</div><div data-label="Rola" role="cell">Częsty kompromis w pomieszczeniach o umiarkowanym obciążeniu.</div><div data-label="Warunek" role="cell">Podłoga musi pokrywać obliczone W/m² przy przyjętych temperaturach.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Rozstaw" role="cell">20 cm</div><div data-label="Rola" role="cell">Może być wystarczający w strefach o małym zapotrzebowaniu albo odpowiedniej konstrukcji.</div><div data-label="Warunek" role="cell">Nie wolno go zatwierdzić wyłącznie na podstawie oszczędności rury.</div></div>
      </div>

      <p>Rozstaw dobiera się z obliczeń, a nie z rodzaju źródła. Więcej przykładów zawiera poradnik <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur przy pompie ciepła</a> oraz analiza, <a href="https://projekt-ogrzewania.pl/jak-gesto-rozkladac-podlogowke/">jak gęsto rozkładać podłogówkę</a>.</p>
      <div class="rk-temp35-note"><strong>Gęściej nie znaczy automatycznie lepiej.</strong> Większa długość rury wpływa na liczbę pętli, opory, objętość wody, rozdzielacz i koszt. Korzyść cieplną trzeba połączyć z poprawnym projektem hydraulicznym.</div>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-coverings">
      <span class="rk-temp35-eyebrow">Temperatura wody nie omija oporu warstw</span>
      <h2 class="rk-temp35-section-title">Jak płytki, panele i drewno zmieniają wymagany parametr?</h2>
      <p class="rk-temp35-lead">Okładzina o większym oporze cieplnym ogranicza strumień przekazywany do pomieszczenia przy tej samej temperaturze wody. Projekt musi jednocześnie respektować dopuszczalne warunki pracy wykończenia podane przez jego producenta.</p>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Płytki ceramiczne</h3><p>Zwykle mają korzystne przewodzenie i ułatwiają uzyskanie wymaganej mocy przy niższej temperaturze, ale znaczenie ma cały układ kleju i jastrychu.</p></article>
        <article class="rk-temp35-card"><h3>Panele i winyl</h3><p>Należy sprawdzić łączny opór panelu oraz podkładu, dopuszczenie do ogrzewania podłogowego i maksymalną temperaturę powierzchni.</p></article>
        <article class="rk-temp35-card"><h3>Drewno</h3><p>Liczą się gatunek, budowa warstwowa, grubość, stabilność wymiarowa, wilgotność oraz wymagania producenta podłogi i chemii.</p></article>
      </div>

      <p>Nie można zagwarantować określonej temperatury powierzchni ani wilgotności drewna wyłącznie przez ustawienie 35°C. Zobacz, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina wpływa na wydajność podłogówki</a>, oraz porównanie <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">gatunków drewna na ogrzewanie podłogowe</a>.</p>
    </section>

    <section class="rk-temp35-section rk-temp35-section-dark" id="rk-temp35-curve">
      <span class="rk-temp35-eyebrow">Przez większość sezonu potrzebna jest niższa temperatura niż projektowa</span>
      <h2 class="rk-temp35-section-title">Co zmienia krzywa grzewcza?</h2>
      <p class="rk-temp35-lead">Jeżeli 35°C jest wymagane przy obliczeniowej temperaturze zewnętrznej, nie oznacza to stałego zasilania 35°C jesienią, wiosną i podczas łagodnej zimy. Automatyka pogodowa powinna dopasowywać parametr do bieżącego obciążenia.</p>

      <div class="rk-temp35-chain" aria-label="Zależność działania krzywej grzewczej">
        <div class="rk-temp35-chain-item"><strong>Pogoda</strong><span>zmienia straty</span></div>
        <div class="rk-temp35-chain-item"><strong>Obciążenie</strong><span>zmienia potrzebną moc</span></div>
        <div class="rk-temp35-chain-item"><strong>Krzywa</strong><span>wyznacza zasilanie</span></div>
        <div class="rk-temp35-chain-item"><strong>Podłoga</strong><span>oddaje energię</span></div>
        <div class="rk-temp35-chain-item"><strong>Korekta</strong><span>stabilizuje komfort</span></div>
      </div>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Nachylenie</h3><p>Określa, jak mocno temperatura wody ma wzrastać wraz ze spadkiem temperatury zewnętrznej.</p></article>
        <article class="rk-temp35-card"><h3>Przesunięcie</h3><p>Koryguje cały poziom krzywej bez automatycznego zmieniania wszystkich pozostałych elementów projektu.</p></article>
        <article class="rk-temp35-card"><h3>Weryfikacja</h3><p>Nastawy dopracowuje się na stabilnie pracującej instalacji, małymi zmianami i z uwzględnieniem bezwładności podłogi.</p></article>
      </div>

      <p>Nie istnieje uniwersalne nachylenie 0,2 albo 0,3 dla każdego budynku. Mechanizm oraz sposób regulacji opisuje poradnik <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywa grzewcza w ogrzewaniu podłogowym</a>.</p>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-hydraulics">
      <span class="rk-temp35-eyebrow">Niska temperatura nie oznacza automatycznie „potężnego przepływu”</span>
      <h2 class="rk-temp35-section-title">Jak temperatura, ΔT i przepływ łączą się hydraulicznie?</h2>
      <p class="rk-temp35-lead">Dla zadanej mocy przepływ zależy przede wszystkim od projektowej różnicy temperatur pomiędzy zasilaniem i powrotem oraz właściwości czynnika. Sama wartość 35°C nie wyznacza strumienia.</p>

      <div class="rk-temp35-equation-box">
        <span class="rk-temp35-equation-label">Przybliżenie dla wody</span>
        <div class="rk-temp35-equation-main">V̇ [l/h] ≈ 0,86 × Q [W] ÷ ΔT [K]</div>
        <p>Dla mocy 1000 W i ΔT = 5 K przepływ wynosi około 172 l/h, czyli 2,87 l/min. Jeżeli tę moc przenoszą dwie pętle, przepływ rozdziela się zgodnie z ich udziałem.</p>
      </div>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Mniejsze ΔT</h3><p>Przy tej samej mocy wymaga większego przepływu, co może podnieść prędkość i opór instalacji.</p></article>
        <article class="rk-temp35-card"><h3>Większe ΔT</h3><p>Zmniejsza wymagany przepływ, ale wpływa na średnią temperaturę wody i rozkład temperatury wzdłuż pętli.</p></article>
        <article class="rk-temp35-card"><h3>Podział na pętle</h3><p>Zmienia przepływ oraz opór pojedynczej gałęzi, choć suma energii potrzebnej w pomieszczeniu pozostaje taka sama.</p></article>
      </div>

      <p>ΔT nie powinno być wybierane jedynie z etykiety źródła. Zależność rozwija materiał o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatur zasilania i powrotu</a>. Opory warto później sprawdzić w poradnikach o <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">średnicach rur podłogówki</a> i <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">doborze pompy obiegowej</a>.</p>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-architecture">
      <span class="rk-temp35-eyebrow">Jedna temperatura nie opisuje całej instalacji</span>
      <h2 class="rk-temp35-section-title">Układ bezpośredni, mieszacz czy dwa poziomy temperatury?</h2>
      <p class="rk-temp35-lead">Sposób wytworzenia 35°C zależy od architektury instalacji. Inaczej pracuje pompa ciepła zasilająca wyłącznie podłogówkę, a inaczej system mieszany z grzejnikami, kilkoma obiegami lub elementem separującym hydraulicznie.</p>

      <div class="rk-temp35-compare-table" role="table" aria-label="Porównanie architektury instalacji niskotemperaturowej">
        <div class="rk-temp35-table-row rk-temp35-table-head" role="row"><div role="columnheader">Wariant</div><div role="columnheader">Kiedy ma sens?</div><div role="columnheader">Co trzeba zweryfikować?</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wariant" role="cell">Układ bezpośredni</div><div data-label="Zastosowanie" role="cell">Jednorodny obieg niskotemperaturowy, w którym źródło podaje parametr wymagany przez podłogę.</div><div data-label="Weryfikacja" role="cell">Minimalny przepływ i zład źródła, zakres modulacji, regulację pogodową oraz pracę po zamknięciu stref.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wariant" role="cell">Układ z mieszaniem</div><div data-label="Zastosowanie" role="cell">Wspólne źródło obsługuje obiegi wymagające różnych temperatur albo podłoga musi otrzymać parametr niższy od obiegu pierwotnego.</div><div data-label="Weryfikacja" role="cell">Autorytet zaworu, temperatury obu stron, pompę obiegu, sterowanie i wpływ mieszania na pracę źródła.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wariant" role="cell">Separacja hydrauliczna</div><div data-label="Zastosowanie" role="cell">Kilka obiegów ma różne przepływy albo producent źródła wymaga stabilnych warunków po stronie pierwotnej.</div><div data-label="Weryfikacja" role="cell">Czy separacja jest rzeczywiście potrzebna, ile pomp wymaga układ i jakie straty oraz konsekwencje regulacyjne wprowadza.</div></div>
      </div>

      <p>Sam mieszacz nie naprawi zbyt małej powierzchni grzewczej, a sprzęgło nie zastąpi obliczeń. Zobacz, jak działa <a href="https://projekt-ogrzewania.pl/obieg-grzewczy-w-wodnym-ogrzewaniu-podlogowym/">obieg grzewczy podłogówki</a>, kiedy stosuje się <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">zawór mieszający</a> oraz jak połączyć <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-mozna-podlaczyc-do-grzejnikow/">ogrzewanie podłogowe z grzejnikami</a>.</p>
      <div class="rk-temp35-callout"><strong>Najprostszy poprawny układ jest zwykle najłatwiejszy do regulacji.</strong> Liczba pomp, zaworów i elementów separujących powinna wynikać z funkcji hydraulicznej, a nie z automatycznego schematu przypisanego do pompy ciepła.</div>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-buffer">
      <span class="rk-temp35-eyebrow">35°C nie odpowiada na pytanie o objętość i minimalny przepływ</span>
      <h2 class="rk-temp35-section-title">Czy niska temperatura zasilania eliminuje potrzebę bufora?</h2>
      <p class="rk-temp35-lead">Nie. O potrzebie, funkcji i wielkości bufora decydują wymagania konkretnego źródła oraz zachowanie całego układu: minimalny zład, minimalny przepływ, modulacja, odszranianie, liczba zamykanych stref, separacja hydrauliczna i sposób sterowania.</p>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Bufor jako zwiększenie zładu</h3><p>Może pomagać spełnić wymaganie minimalnej objętości wody lub ograniczyć niekorzystne skutki krótkich cykli, jeżeli wynika to z danych urządzenia.</p></article>
        <article class="rk-temp35-card"><h3>Bufor jako separacja</h3><p>Może rozdzielać obiegi o różnych przepływach, ale zmienia hydraulikę, liczbę pomp i sposób regulacji temperatury.</p></article>
        <article class="rk-temp35-card"><h3>Instalacja bez bufora</h3><p>Może być poprawna, gdy układ bezpośredni zapewnia wymagany zład, przepływ, odbiór mocy i warunki pracy w każdym stanie regulacji.</p></article>
      </div>

      <p>Gęstszy rozstaw zwiększa długość rur i ilość wody, lecz nie daje automatycznie wszystkich funkcji bufora. Osobno trzeba przeanalizować <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła w ogrzewaniu podłogowym</a> oraz wpływ <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/">sterowania strefowego</a> na minimalny czynny obieg.</p>
      <div class="rk-temp35-warning"><strong>Nie usuwaj bufora tylko dlatego, że projekt pracuje na 35°C.</strong> Najpierw sprawdź dokumentację pompy ciepła i policz aktywny zład oraz przepływ przy najbardziej ograniczonym stanie pracy instalacji.</div>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-example">
      <span class="rk-temp35-eyebrow">Przejrzysty przykład bez udawania tabeli systemowej</span>
      <h2 class="rk-temp35-section-title">Przykład: czy 35/30°C wystarczy w salonie?</h2>
      <p class="rk-temp35-lead">Załóżmy projektowe obciążenie salonu 1150 W, powierzchnię brutto 28 m² oraz 6 m² trwałej zabudowy. Czynna podłoga ma więc 22 m², a wymaganie wynosi 52,3 W/m². Przyjmijmy wyłącznie do porównania, że sprawdzona tabela konkretnego systemu podaje 48 W/m² dla 35/30°C.</p>

      <div class="rk-temp35-compare-table" role="table" aria-label="Przykład bilansu mocy salonu dla parametru 35 na 30 stopni Celsjusza">
        <div class="rk-temp35-table-row rk-temp35-table-head" role="row"><div role="columnheader">Wariant</div><div role="columnheader">Obliczenie</div><div role="columnheader">Wniosek</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wariant" role="cell">Bazowy: 22 m² i 48 W/m²</div><div data-label="Obliczenie" role="cell">Dostępna moc 1056 W; deficyt 94 W.</div><div data-label="Wniosek" role="cell">Dla założeń przykładu 35/30°C nie wystarcza.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wariant" role="cell">Większa powierzchnia: 24 m²</div><div data-label="Obliczenie" role="cell">24 × 48 = 1152 W; rezerwa 2 W.</div><div data-label="Wniosek" role="cell">Bilans się domyka, jeżeli dodatkowe 2 m² rzeczywiście mogą grzać.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wariant" role="cell">Wyższa moc systemu: 53 W/m²</div><div data-label="Obliczenie" role="cell">22 × 53 = 1166 W; rezerwa 16 W.</div><div data-label="Wniosek" role="cell">Może pomóc inna konstrukcja lub geometria, ale wartość musi pochodzić z weryfikacji.</div></div>
        <div class="rk-temp35-table-row" role="row"><div class="rk-temp35-table-label" data-label="Wariant" role="cell">Dodatkowy emiter</div><div data-label="Obliczenie" role="cell">Podłoga pozostaje przy 1056 W, a emiter pokrywa co najmniej brakujące 94 W.</div><div data-label="Wniosek" role="cell">Pozwala zachować niski parametr, jeżeli oba emitery są do niego dobrane.</div></div>
      </div>

      <p>Dla mocy 1150 W i ΔT = 5 K wymagany przepływ dla salonu wynosi około 198 l/h, czyli 3,30 l/min. Przy dwóch równomiernie obciążonych pętlach byłoby to orientacyjnie po 1,65 l/min, lecz rzeczywiste nastawy wynikają z przypisanej mocy każdej pętli i jej hydrauliki.</p>
      <div class="rk-temp35-note"><strong>To przykład metody, nie uniwersalna charakterystyka podłogi.</strong> Wartość 48 W/m² została przyjęta hipotetycznie. W projekcie odczytuje się ją z obliczeń lub dokumentacji odpowiadającej dokładnej konstrukcji, rozstawowi, okładzinie i temperaturom.</div>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-errors">
      <span class="rk-temp35-eyebrow">Najgroźniejsze skróty myślowe brzmią jak precyzyjne reguły</span>
      <h2 class="rk-temp35-section-title">Najczęstsze błędy i mity o zasilaniu 35°C</h2>
      <div class="rk-temp35-mistakes">
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>„35°C wymaga norma”</strong><p>Metoda normowa prowadzi do obliczenia mocy i wymiarowania systemu; nie nadaje jednej temperatury każdemu budynkowi.</p></div></div>
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>Prognoza COP z samej temperatury</strong><p>COP zależy między innymi od warunków źródła, obciążenia i konkretnego urządzenia. Do rocznych porównań potrzebne są porównywalne dane sezonowe.</p></div></div>
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>Wyliczanie trwałości sprężarki suwakiem</strong><p>Nie ma podstaw, aby z samego przejścia z 35 na 45°C obliczać procent skrócenia życia urządzenia.</p></div></div>
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>Rozstaw 10 cm w każdym pomieszczeniu</strong><p>Geometria wynika z wymaganej mocy, konstrukcji i hydrauliki. Ten sam rozstaw nie musi być optymalny w całym domu.</p></div></div>
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>Naprawianie deficytu rotametrem</strong><p>Zwiększenie przepływu nie zastąpi brakującej powierzchni i nie stworzy dowolnej mocy przy zbyt niskiej średniej temperaturze wody.</p></div></div>
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>Stały narzut procentowy do OZC</strong><p>Rezerwę należy uzasadnić niepewnością danych, dynamiką lub konkretnym ryzykiem, a nie dodawać automatycznie do każdego pomieszczenia.</p></div></div>
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>„Dużo rury zastępuje bufor”</strong><p>Zład wodny jest tylko jednym warunkiem. Znaczenie mają także minimalny przepływ, regulacja, odszranianie i funkcja hydrauliczna bufora.</p></div></div>
        <div class="rk-temp35-mistake"><span class="rk-temp35-mistake-icon">!</span><div><strong>Sprawdzenie domu bez pomieszczeń</strong><p>Bilans całego budynku może wyglądać dobrze, gdy pojedyncza łazienka lub strefa przy przeszkleniach nadal ma deficyt mocy.</p></div></div>
      </div>

      <p>Niepewności warto opisywać wprost, a każdą liczbę przypisać do źródła lub obliczenia. Pomaga w tym analiza, czy <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">podłogówka może być jedynym źródłem ciepła</a>, oraz poradnik o <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-w-ogrzewaniu-podlogowym/">strefach brzegowych</a>.</p>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-checklist">
      <span class="rk-temp35-eyebrow">Przed zatwierdzeniem temperatury projektowej</span>
      <h2 class="rk-temp35-section-title">Lista kontrolna instalacji 35/30°C</h2>
      <p class="rk-temp35-lead">Każdy punkt powinien mieć odpowiedź w obliczeniach, dokumentacji produktu albo projekcie wykonawczym. Braku nie uzupełnia się intuicyjną temperaturą.</p>

      <div class="rk-temp35-checklist">
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Lokalizacja i warunki obliczeniowe</strong><br>Czy przyjęto właściwą temperaturę zewnętrzną i warunki brzegowe budynku?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>OZC każdego pomieszczenia</strong><br>Czy znane jest projektowe obciążenie w watach, a nie tylko wskaźnik całego domu?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Powierzchnia czynna</strong><br>Czy odjęto trwałą zabudowę i skoordynowano układ z aranżacją?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Temperatura pomieszczenia</strong><br>Czy łazienka, salon i sypialnie mają właściwe założenia projektowe?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Konstrukcja podłogi</strong><br>Czy znane są jastrych, położenie rury i wszystkie warstwy nad nią?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Okładzina i jej ograniczenia</strong><br>Czy sprawdzono łączny opór cieplny oraz warunki producentów materiałów?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Moc przy docelowym parametrze</strong><br>Czy W/m² pochodzi z obliczenia lub właściwej tabeli systemu dla 35/30°C?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Temperatura powierzchni</strong><br>Czy obliczony strumień nie narusza warunków komfortu i zastosowanych materiałów?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Rozstaw i trasy rur</strong><br>Czy geometria pokrywa obciążenie i daje wykonalne długości pętli?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>ΔT i przepływy</strong><br>Czy dla każdej pętli obliczono strumień odpowiadający jej mocy?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Opory i pompa obiegowa</strong><br>Czy droga krytyczna mieści się w osiągalnym punkcie pracy?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Dane pompy ciepła</strong><br>Czy moc, COP lub SCOP, zakres modulacji i ograniczenia odczytano dla właściwych warunków?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Minimalny przepływ, zład i sterowanie</strong><br>Czy układ spełnia wymagania źródła także po zamknięciu części stref?</div></div>
        <div class="rk-temp35-checklist-item"><span>✓</span><div><strong>Dokumentacja i uruchomienie</strong><br>Czy zapisano krzywą, przepływy, nastawy, próby oraz sposób późniejszej korekty?</div></div>
      </div>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-conclusions">
      <span class="rk-temp35-eyebrow">Wnioski projektanta</span>
      <h2 class="rk-temp35-section-title">Kiedy 35°C jest dobrym parametrem dla pompy ciepła?</h2>
      <p class="rk-temp35-lead">Wtedy, gdy przy projektowej pogodzie podłoga pokrywa obciążenie każdego pomieszczenia, pozostaje zgodna z ograniczeniami powierzchni i materiałów, a hydraulika oraz pompa ciepła pracują w zweryfikowanym zakresie.</p>

      <div class="rk-temp35-grid-3">
        <article class="rk-temp35-card"><h3>Moc się bilansuje</h3><p>Dostępne W/m² pomnożone przez powierzchnię czynną pokrywają projektowe straty pomieszczenia.</p></article>
        <article class="rk-temp35-card"><h3>Hydraulika jest osiągalna</h3><p>Przepływy, ΔT, opory, zład oraz stany częściowego odbioru odpowiadają urządzeniom i armaturze.</p></article>
        <article class="rk-temp35-card"><h3>Regulacja obniża parametr</h3><p>Krzywa pogodowa prowadzi instalację poniżej wartości projektowej, gdy na zewnątrz robi się cieplej.</p></article>
      </div>

      <div class="rk-temp35-answer"><span class="rk-temp35-answer-label">Reguła końcowa</span><p><strong>Nie projektuj domu „na 35°C”. Zaprojektuj podłogę dla obciążeń pomieszczeń, a następnie wyznacz najniższą temperaturę zasilania, przy której cały system spełnia wymagania w warunkach projektowych.</strong></p></div>

      <div class="rk-temp35-cta">
        <div class="rk-temp35-cta-title">Zaprojektuj najniższą temperaturę, która naprawdę wystarczy</div>
        <p>Kompletny projekt łączy OZC, powierzchnie czynne, warstwy podłogi, temperatury, rozstawy, pętle, przepływy, opory, rozdzielacze, punkt pracy pompy oraz nastawy potrzebne do uruchomienia układu.</p>
        <a class="rk-temp35-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
        <small class="rk-temp35-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-temp35-section rk-temp35-section-soft" id="rk-temp35-references">
      <span class="rk-temp35-eyebrow">Podstawa techniczna i granice interpretacji</span>
      <h2 class="rk-temp35-section-title">Źródła i zakres odpowiedzialności</h2>
      <p class="rk-temp35-lead">Oficjalne źródła potwierdzają potrzebę obliczenia mocy i wymiarowania systemu oraz znaczenie optymalizacji całej instalacji. Nie stanowią podstawy do przypisania jednego COP, kosztu albo temperatury wszystkim budynkom.</p>

      <div class="rk-temp35-source-grid">
        <article class="rk-temp35-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 wraz z Amd 1:2023 — określanie mocy</a><p>Oficjalna karta wydania dotyczącego wyznaczania strumienia ciepła, temperatur powierzchni i zależności charakterystycznych wodnych systemów ogrzewania oraz chłodzenia.</p></article>
        <article class="rk-temp35-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 wraz z Amd 1:2023 — projektowanie i wymiarowanie</a><p>Oficjalna karta wydania opisującego metodę projektowania i wymiarowania wbudowanych systemów płaszczyznowych.</p></article>
        <article class="rk-temp35-source-card"><a href="https://www.gov.uk/government/news/heat-pumps-explained-experts-answer-your-questions" target="_blank" rel="nofollow noopener noreferrer">DESNZ — Heat pumps explained: experts answer your questions</a><p>Oficjalny materiał brytyjskiego resortu energii wyjaśniający znaczenie projektu całego systemu i warunków pracy dla efektywności pompy ciepła.</p></article>
      </div>

      <div class="rk-temp35-responsibility">
        <p><strong>Status źródeł:</strong> oficjalne karty ISO wskazują wydania z 2021 r. i poprawki Amd 1:2023. Stan odnośników i opisu technicznego sprawdzono 11 września 2026 r.</p>
        <p><strong>Zakres kalkulatora:</strong> bilans korzysta z danych wpisanych przez użytkownika, a przepływ z przybliżenia dla wody. Porównanie sezonowe dzieli użyteczne ciepło przez podany SCOP; nie modeluje pogody, taryf godzinowych, CWU, grzałki, odszraniania ani charakterystyki urządzenia.</p>
        <p><strong>Odpowiedzialność:</strong> artykuł ma charakter edukacyjny. Nie jest projektem wykonawczym, doborem pompy ciepła, instrukcją producenta, audytem energetycznym ani oceną istniejącej instalacji.</p>
      </div>
    </section>

    <section class="rk-temp35-section" id="rk-temp35-faq">
      <span class="rk-temp35-eyebrow">Najczęstsze pytania o niskotemperaturową podłogówkę</span>
      <h2 class="rk-temp35-section-title">FAQ — temperatura zasilania pompy ciepła i podłogówki</h2>
      <div class="rk-temp35-faq">
        <details><summary>Czy 35°C zawsze wystarczy do ogrzewania podłogowego?</summary><div class="rk-temp35-faq-answer"><p>Nie. Wystarczy tylko wtedy, gdy moc podłogi przy przyjętym zasilaniu, powrocie, konstrukcji i okładzinie pokrywa obciążenie każdego pomieszczenia. W domu o małych stratach może wystarczyć mniej, a w trudnym pomieszczeniu może być potrzebna zmiana emitera lub wyższy parametr.</p></div></details>
        <details><summary>Czy 35°C jest temperaturą wymaganą przez normę?</summary><div class="rk-temp35-faq-answer"><p>Nie należy przedstawiać jej jako jednej temperatury nakazanej dla wszystkich instalacji. Metody projektowe służą do określania mocy i wymiarowania systemu, dlatego wynik zależy od warunków pomieszczenia, powierzchni, konstrukcji i geometrii.</p></div></details>
        <details><summary>Co dokładnie oznacza zapis 35/30°C?</summary><div class="rk-temp35-faq-answer"><p>Najczęściej oznacza projektową temperaturę zasilania 35°C i powrotu 30°C, czyli ΔT równe 5 K. Nie jest to temperatura podłogi ani powietrza w pomieszczeniu.</p></div></details>
        <details><summary>Czy niższa temperatura zasilania zawsze zwiększa COP?</summary><div class="rk-temp35-faq-answer"><p>Niższy wymagany poziom temperatury może poprawiać warunki pracy pompy, lecz dokładny skutek zależy od dolnego źródła, pogody, obciążenia i konstrukcji urządzenia. Warto porównywać dane tego samego modelu w tych samych warunkach.</p></div></details>
        <details><summary>Jak sprawdzić, czy parametr 35/30°C pokryje straty?</summary><div class="rk-temp35-faq-answer"><p>Podziel obciążenie pomieszczenia przez czynną powierzchnię podłogi, a otrzymane W/m² porównaj z mocą konkretnego systemu przy 35/30°C, właściwej temperaturze wnętrza, rozstawie i okładzinie. Następnie sprawdź temperaturę powierzchni oraz hydraulikę.</p></div></details>
        <details><summary>Czy rury trzeba zawsze układać co 10 cm przy pompie ciepła?</summary><div class="rk-temp35-faq-answer"><p>Nie. Rozstaw 10 cm może być uzasadniony obliczoną mocą i charakterystyką systemu, ale w części pomieszczeń wystarczający może być inny rozstaw. Trzeba równocześnie kontrolować długości, liczbę pętli, przepływy i opory.</p></div></details>
        <details><summary>Czy drewno na podłodze wyklucza zasilanie 35°C?</summary><div class="rk-temp35-faq-answer"><p>Nie automatycznie. Trzeba sprawdzić cały opór cieplny warstw, dopuszczenie produktu do podłogówki, warunki montażu i ograniczenia temperatury powierzchni. Następnie oblicza się, czy dostępna moc pokrywa obciążenie.</p></div></details>
        <details><summary>Czy podniesienie przepływu naprawi za niską moc podłogi?</summary><div class="rk-temp35-faq-answer"><p>Nie zawsze. Przepływ wpływa na ΔT i rozkład temperatury, ale nie może dowolnie zwiększyć mocy ograniczonej przez średnią temperaturę wody, powierzchnię oraz opór warstw. Najpierw trzeba ustalić przyczynę deficytu.</p></div></details>
        <details><summary>Czy instalacja 35/30°C potrzebuje bufora?</summary><div class="rk-temp35-faq-answer"><p>Sam parametr nie rozstrzyga tej kwestii. Decydują wymagania producenta pompy, minimalny zład i przepływ, modulacja, odszranianie, sterowanie strefowe oraz funkcja hydrauliczna, którą bufor miałby pełnić.</p></div></details>
        <details><summary>Jak ustawić krzywą grzewczą dla podłogówki?</summary><div class="rk-temp35-faq-answer"><p>Punkt projektowy wynika z obliczeń, a nachylenie i przesunięcie dopracowuje się podczas stabilnej pracy instalacji małymi krokami. Należy uwzględnić bezwładność podłogi i nie oceniać każdej zmiany po kilku minutach.</p></div></details>
      </div>
    </section>

    <section class="rk-temp35-author" id="rk-temp35-author">
      <span class="rk-temp35-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-temp35-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-temp35-author-layout">
        <aside class="rk-temp35-author-side">
          <div class="rk-temp35-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i specjalista HVAC" width="400" height="400" loading="lazy" decoding="async"></div>
          <div class="rk-temp35-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-temp35-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-temp35-author-social" aria-label="Profile autora">
            <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Profil Projekt HVAC w serwisie X">X</a>
          </div>
        </aside>
        <div class="rk-temp35-author-main">
          <div class="rk-temp35-author-quote">„35°C nie jest nagrodą za wybór pompy ciepła. To jeden z możliwych wyników bilansu pomieszczeń, konstrukcji podłogi i hydrauliki całej instalacji.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz dokumentację wykonawczą dla inwestorów i wykonawców. W projekcie łączy OZC, aktywne powierzchnie, model emisji, trasy pętli, przepływy, opory i wymagania źródła.</p>
          <p>W tej aktualizacji usunięto bezwarunkowe przedstawianie 35°C jako ideału, stałe procenty wpływu temperatury na koszty i trwałość sprężarki, obowiązkowy rozstaw 10 cm, automatyczny narzut do OZC oraz stwierdzenie, że duży zład w rurach zawsze zastępuje bufor.</p>
          <p>Kalkulator rozdziela bilans pomieszczenia od porównania sezonowego. Nie wyprowadza SCOP z temperatury, lecz pozwala wpisać porównywalne dane konkretnej pompy. Interaktywna grafika pokazuje cały łańcuch prowadzący od strat budynku do punktu pracy źródła.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego</a>.</p>
          <div class="rk-temp35-author-facts">
            <div class="rk-temp35-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, pompy ciepła i hydraulika instalacji</div>
            <div class="rk-temp35-author-fact"><strong>Metoda pracy</strong>OZC, moc powierzchniowa, temperatura, przepływy i punkt pracy źródła</div>
            <div class="rk-temp35-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 11 września 2026 r.</div>
          </div>
        </div>
      </div>
    </section>
  </div>
</article>

<script>
(function () {
  'use strict';

  var root = document.getElementById('rk-temp35-guide');
  if (!root) return;

  var svgNamespace = 'http://www.w3.org/2000/svg';
  var mode = 'balance';
  var lastBalance = null;
  var lastScop = null;
  var resizeTimer = null;

  function byId(id) {
    return document.getElementById(id);
  }

  function each(selector, callback) {
    var nodes = root.querySelectorAll(selector);
    Array.prototype.forEach.call(nodes, callback);
  }

  function numberFrom(id) {
    var element = byId(id);
    if (!element) return NaN;
    return Number(String(element.value).replace(',', '.'));
  }

  function formatNumber(value, decimals) {
    return new Intl.NumberFormat('pl-PL', {
      minimumFractionDigits: decimals,
      maximumFractionDigits: decimals
    }).format(value);
  }

  function signed(value, decimals, unit) {
    var prefix = value > 0 ? '+' : '';
    return prefix + formatNumber(value, decimals) + ' ' + unit;
  }

  function setText(id, value) {
    var element = byId(id);
    if (element) element.textContent = value;
  }

  function setStatus(message, kind) {
    var status = byId('rk-temp35-calculator-status');
    if (!status) return;
    status.textContent = message;
    status.classList.remove('is-good');
    status.classList.remove('is-warning');
    if (kind) status.classList.add(kind);
  }

  function isPositive(value) {
    return Number.isFinite(value) ? value > 0 : false;
  }

  function calculateBalance() {
    var roomLoad = numberFrom('rk-temp35-room-load');
    var activeArea = numberFrom('rk-temp35-active-area');
    var tableOutput = numberFrom('rk-temp35-table-output');
    var supply = numberFrom('rk-temp35-supply-temp');
    var returnTemperature = numberFrom('rk-temp35-return-temp');
    var roomTemperature = numberFrom('rk-temp35-room-temp');

    var baseValid = isPositive(roomLoad) ? isPositive(activeArea) : false;
    baseValid = baseValid ? isPositive(tableOutput) : false;
    baseValid = baseValid ? Number.isFinite(supply) : false;
    baseValid = baseValid ? Number.isFinite(returnTemperature) : false;
    baseValid = baseValid ? Number.isFinite(roomTemperature) : false;

    if (!baseValid) {
      setStatus('Uzupełnij wszystkie pola dodatnimi, liczbowymi wartościami.', 'is-warning');
      return;
    }

    var deltaT = supply - returnTemperature;
    if (deltaT <= 0) {
      setStatus('Temperatura zasilania musi być wyższa od temperatury powrotu.', 'is-warning');
      return;
    }

    var requiredOutput = roomLoad / activeArea;
    var availablePower = tableOutput * activeArea;
    var balance = availablePower - roomLoad;
    var requiredArea = roomLoad / tableOutput;
    var flowLh = 0.86 * roomLoad / deltaT;
    var flowLmin = flowLh / 60;
    var meanWaterTemperature = (supply + returnTemperature) / 2;
    var mediumDelta = meanWaterTemperature - roomTemperature;

    setText('rk-temp35-result-required-output', formatNumber(requiredOutput, 1) + ' W/m²');
    setText('rk-temp35-result-available-power', formatNumber(availablePower, 0) + ' W');
    setText('rk-temp35-result-balance', signed(balance, 0, 'W'));
    setText('rk-temp35-result-required-area', formatNumber(requiredArea, 1) + ' m²');
    setText('rk-temp35-result-flow', formatNumber(flowLmin, 2) + ' l/min');
    setText('rk-temp35-result-medium-delta', formatNumber(mediumDelta, 1) + ' K');
    setText(
      'rk-temp35-balance-equation',
      formatNumber(roomLoad, 0) + ' W ÷ ' + formatNumber(activeArea, 1) + ' m² = ' +
      formatNumber(requiredOutput, 1) + ' W/m²; ' + formatNumber(tableOutput, 1) +
      ' W/m² × ' + formatNumber(activeArea, 1) + ' m² = ' + formatNumber(availablePower, 0) + ' W.'
    );

    var tolerance = Math.max(1, roomLoad * 0.01);
    var reserveThreshold = Math.max(1, roomLoad * 0.03);
    if (balance >= reserveThreshold) {
      setStatus(
        'Dla wpisanych danych podłoga pokrywa obciążenie z rezerwą ' +
        formatNumber(balance, 0) + ' W. Nadal sprawdź temperaturę powierzchni, hydraulikę i pozostałe pomieszczenia.',
        'is-good'
      );
    } else if (balance >= -tolerance) {
      setStatus(
        'Dla wpisanych danych bilans jest bliski zeru. Zweryfikuj dokładność OZC, powierzchnię czynną i moc z tabeli systemu.',
        'is-good'
      );
    } else {
      setStatus(
        'Dla wpisanych danych brakuje ' + formatNumber(Math.abs(balance), 0) +
        ' W. Nie kompensuj tego samym przepływem — sprawdź powierzchnię, konstrukcję, rozstaw, temperaturę lub dodatkowy emiter.',
        'is-warning'
      );
    }

    lastBalance = {
      required: roomLoad,
      available: availablePower,
      balance: balance,
      supply: supply,
      returnTemperature: returnTemperature
    };
    drawChart();
  }

  function calculateScop() {
    var annualHeat = numberFrom('rk-temp35-annual-heat');
    var energyPrice = numberFrom('rk-temp35-energy-price');
    var years = numberFrom('rk-temp35-years');
    var lowTemperature = numberFrom('rk-temp35-low-temp');
    var lowScop = numberFrom('rk-temp35-low-scop');
    var highTemperature = numberFrom('rk-temp35-high-temp');
    var highScop = numberFrom('rk-temp35-high-scop');

    var valid = isPositive(annualHeat) ? isPositive(energyPrice) : false;
    valid = valid ? isPositive(years) : false;
    valid = valid ? Number.isFinite(lowTemperature) : false;
    valid = valid ? isPositive(lowScop) : false;
    valid = valid ? Number.isFinite(highTemperature) : false;
    valid = valid ? isPositive(highScop) : false;

    if (!valid) {
      setStatus('Uzupełnij wszystkie pola porównania dodatnimi, liczbowymi wartościami.', 'is-warning');
      return;
    }

    var lowEnergy = annualHeat / lowScop;
    var highEnergy = annualHeat / highScop;
    var energyDifference = highEnergy - lowEnergy;
    var lowCost = lowEnergy * energyPrice;
    var highCost = highEnergy * energyPrice;
    var annualCostDifference = highCost - lowCost;
    var periodDifference = annualCostDifference * years;
    var percentageDifference = lowEnergy > 0 ? (highEnergy / lowEnergy - 1) * 100 : 0;

    setText('rk-temp35-low-energy-label', 'Prąd przy ' + formatNumber(lowTemperature, 0) + '°C');
    setText('rk-temp35-high-energy-label', 'Prąd przy ' + formatNumber(highTemperature, 0) + '°C');
    setText('rk-temp35-low-cost-label', 'Koszt przy ' + formatNumber(lowTemperature, 0) + '°C');
    setText('rk-temp35-high-cost-label', 'Koszt przy ' + formatNumber(highTemperature, 0) + '°C');
    setText('rk-temp35-result-low-energy', formatNumber(lowEnergy, 0) + ' kWh/rok');
    setText('rk-temp35-result-high-energy', formatNumber(highEnergy, 0) + ' kWh/rok');
    setText('rk-temp35-result-energy-difference', signed(energyDifference, 0, 'kWh/rok'));
    setText('rk-temp35-result-low-cost', formatNumber(lowCost, 0) + ' zł/rok');
    setText('rk-temp35-result-high-cost', formatNumber(highCost, 0) + ' zł/rok');
    setText('rk-temp35-result-period-difference', signed(periodDifference, 0, 'zł'));
    setText(
      'rk-temp35-scop-equation',
      formatNumber(annualHeat, 0) + ' kWh ÷ ' + formatNumber(lowScop, 1) + ' = ' +
      formatNumber(lowEnergy, 0) + ' kWh prądu; ' + formatNumber(annualHeat, 0) +
      ' kWh ÷ ' + formatNumber(highScop, 1) + ' = ' + formatNumber(highEnergy, 0) + ' kWh prądu.'
    );

    if (energyDifference > 0) {
      setStatus(
        'Z wpisanych wartości wynika, że wariant ' + formatNumber(highTemperature, 0) + '°C zużywa o ' +
        formatNumber(energyDifference, 0) + ' kWh/rok więcej, czyli o ' + formatNumber(percentageDifference, 1) +
        '%. To porównanie danych wejściowych, nie prognoza SCOP z temperatury.',
        'is-good'
      );
    } else if (Math.abs(energyDifference) < 0.5) {
      setStatus('Wpisane wartości SCOP dają praktycznie takie samo zużycie energii w obu wariantach.', 'is-good');
    } else {
      setStatus(
        'Wpisane dane pokazują mniejsze zużycie dla wariantu o wyższej temperaturze. Sprawdź, czy wartości SCOP pochodzą z porównywalnych warunków i tego samego urządzenia.',
        'is-warning'
      );
    }

    lastScop = {
      lowTemperature: lowTemperature,
      highTemperature: highTemperature,
      lowEnergy: lowEnergy,
      highEnergy: highEnergy,
      difference: energyDifference,
      years: years,
      periodDifference: periodDifference
    };
    drawChart();
  }

  function svgElement(name, attributes, content) {
    var element = document.createElementNS(svgNamespace, name);
    Object.keys(attributes).forEach(function (key) {
      element.setAttribute(key, attributes[key]);
    });
    if (typeof content === 'string') element.textContent = content;
    return element;
  }

  function appendSvg(parent, name, attributes, content) {
    var element = svgElement(name, attributes, content);
    parent.appendChild(element);
    return element;
  }

  function drawBarChart(data, unit, title, description, reading) {
    var svg = byId('rk-temp35-comparison-chart');
    if (!svg) return;
    while (svg.firstChild) svg.removeChild(svg.firstChild);

    appendSvg(svg, 'title', { id: 'rk-temp35-chart-title-svg' }, title);
    appendSvg(svg, 'desc', { id: 'rk-temp35-chart-desc' }, description);

    var renderedWidth = 760;
    var wrap = byId('rk-temp35-chart-wrap');
    if (wrap) {
      var measuredWidth = Number(wrap.clientWidth);
      if (Number.isFinite(measuredWidth)) {
        if (measuredWidth > 0) renderedWidth = measuredWidth;
      }
    }
    var compact = renderedWidth < 560;
    var width = compact ? 420 : 760;
    var height = 330;
    var left = compact ? 18 : 205;
    var right = compact ? 24 : 78;
    var top = compact ? 88 : 70;
    var plotWidth = width - left - right;
    var maxValue = Math.max(data[0].value, data[1].value, 1) * 1.12;
    var ticks = 4;

    svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);

    appendSvg(svg, 'text', { x: left, y: 31, class: 'rk-temp35-chart-unit' }, unit);
    for (var tick = 0; tick <= ticks; tick += 1) {
      var ratio = tick / ticks;
      var x = left + plotWidth * ratio;
      appendSvg(svg, 'line', {
        x1: x,
        y1: top - 10,
        x2: x,
        y2: height - 44,
        class: 'rk-temp35-chart-grid-line'
      });
      appendSvg(svg, 'text', {
        x: x,
        y: height - 18,
        'text-anchor': 'middle',
        class: 'rk-temp35-chart-tick'
      }, formatNumber(maxValue * ratio, 0));
    }

    data.forEach(function (item, index) {
      var y = top + index * 105;
      var barWidth = Math.max(2, plotWidth * item.value / maxValue);
      appendSvg(svg, 'text', {
        x: compact ? left : 18,
        y: compact ? y - 10 : y + 31,
        class: 'rk-temp35-chart-label'
      }, item.label);
      appendSvg(svg, 'rect', {
        x: left,
        y: y,
        width: barWidth,
        height: 48,
        rx: 10,
        class: 'rk-temp35-chart-bar ' + item.className
      });

      var valueInside = barWidth >= 105;
      var valueX = valueInside ? left + barWidth - 12 : left + barWidth + 10;
      appendSvg(svg, 'text', {
        x: valueX,
        y: y + 31,
        'text-anchor': valueInside ? 'end' : 'start',
        class: valueInside ? 'rk-temp35-chart-value is-inside' : 'rk-temp35-chart-value'
      }, formatNumber(item.value, 0));
    });

    setText('rk-temp35-chart-visible-title', title);
    var readingElement = byId('rk-temp35-chart-reading');
    if (readingElement) readingElement.innerHTML = reading;
  }

  function drawChart() {
    if (mode === 'scop') {
      if (!lastScop) return;
      var scopReading;
      if (lastScop.difference >= 0) {
        scopReading = '<strong>Różnica:</strong> wariant ' + formatNumber(lastScop.highTemperature, 0) +
          '°C wymaga według wpisanych SCOP o ' + formatNumber(lastScop.difference, 0) +
          ' kWh energii elektrycznej rocznie więcej.';
      } else {
        scopReading = '<strong>Sprawdź dane:</strong> wpisane SCOP dają niższe zużycie wariantowi ' +
          formatNumber(lastScop.highTemperature, 0) + '°C.';
      }
      drawBarChart(
        [
          { label: 'Wariant ' + formatNumber(lastScop.lowTemperature, 0) + '°C', value: lastScop.lowEnergy, className: 'is-low' },
          { label: 'Wariant ' + formatNumber(lastScop.highTemperature, 0) + '°C', value: lastScop.highEnergy, className: 'is-high' }
        ],
        'Zużycie energii elektrycznej [kWh/rok]',
        'Roczne zużycie energii na podstawie wpisanych wartości SCOP',
        'Wykres porównuje roczne zużycie energii elektrycznej obliczone z użytecznego ciepła i wpisanych wartości SCOP.',
        scopReading
      );
      return;
    }

    if (!lastBalance) return;
    var balanceReading;
    if (lastBalance.balance > 0) {
      balanceReading = '<strong>Rezerwa:</strong> dostępna moc jest wyższa od obciążenia o ' +
        formatNumber(lastBalance.balance, 0) + ' W.';
    } else if (lastBalance.balance < 0) {
      balanceReading = '<strong>Deficyt:</strong> dostępna moc jest niższa od obciążenia o ' +
        formatNumber(Math.abs(lastBalance.balance), 0) + ' W.';
    } else {
      balanceReading = '<strong>Bilans:</strong> dostępna moc odpowiada projektowemu obciążeniu pomieszczenia.';
    }
    drawBarChart(
      [
        { label: 'Obciążenie pomieszczenia', value: lastBalance.required, className: 'is-required' },
        { label: 'Moc dostępna z podłogi', value: lastBalance.available, className: 'is-available' }
      ],
      'Moc [W]',
      'Bilans mocy pomieszczenia dla ' + formatNumber(lastBalance.supply, 1) + '/' +
        formatNumber(lastBalance.returnTemperature, 1) + '°C',
      'Wykres porównuje projektowe obciążenie pomieszczenia z mocą dostępną z czynnej powierzchni podłogi.',
      balanceReading
    );
  }

  function selectMode(nextMode, focusTab) {
    mode = nextMode === 'scop' ? 'scop' : 'balance';
    each('[data-rk-temp35-mode]', function (button) {
      var selected = button.getAttribute('data-rk-temp35-mode') === mode;
      button.setAttribute('aria-selected', selected ? 'true' : 'false');
      if (selected) {
        button.removeAttribute('tabindex');
        if (focusTab) button.focus();
      } else {
        button.setAttribute('tabindex', '-1');
      }
    });

    var balancePanel = byId('rk-temp35-panel-balance');
    var scopPanel = byId('rk-temp35-panel-scop');
    if (balancePanel) balancePanel.hidden = mode !== 'balance';
    if (scopPanel) scopPanel.hidden = mode !== 'scop';
    if (mode === 'scop') calculateScop();
    else calculateBalance();
  }

  var scenarios = {
    insulation: {
      components: {
        weather: ['Bez zmian', 'Temperatura obliczeniowa lokalizacji pozostaje taka sama.', 'muted'],
        load: ['Maleje', 'Lepsza izolacyjność ogranicza moc potrzebną do utrzymania temperatury.', 'active'],
        area: ['Bez zmian', 'Dostępny obszar grzewczy nie zmienia się.', 'muted'],
        emission: ['Maleją', 'Ta sama podłoga musi przekazać mniej energii na każdy metr kwadratowy.', 'active'],
        water: ['Może być niższa', 'Do uzyskania mniejszej mocy może wystarczyć niższa średnia temperatura czynnika.', 'active'],
        pump: ['Korzystniejszy punkt', 'Mniejszy wymagany poziom temperatury może poprawić warunki pracy urządzenia.', 'active']
      },
      title: 'Mniejsze straty budynku otwierają drogę do niższej temperatury.',
      copy: 'Obciążenie na metr czynnej powierzchni maleje. Nie oznacza to automatycznie konkretnej wartości — trzeba ponownie odczytać moc systemu dla jego konstrukcji.'
    },
    area: {
      components: {
        weather: ['Bez zmian', 'Warunki zewnętrzne i lokalizacja pozostają takie same.', 'muted'],
        load: ['Bez zmian', 'Pomieszczenie nadal traci tę samą projektową moc.', 'muted'],
        area: ['Maleje', 'Stała zabudowa ogranicza fragment powierzchni, który może oddawać ciepło.', 'warning'],
        emission: ['Rosną', 'Ta sama moc musi zostać przekazana przez mniejszą liczbę metrów kwadratowych.', 'warning'],
        water: ['Może być wyższa', 'Jeżeli system nie osiąga wymaganych W/m², może wymagać zmiany geometrii lub temperatury.', 'warning'],
        pump: ['Trudniejszy punkt', 'Wyższy wymagany poziom temperatury może pogarszać warunki pracy źródła.', 'warning']
      },
      title: 'Mniejsza powierzchnia czynna zwiększa wymaganie W/m².',
      copy: 'Najpierw sprawdź możliwość uwolnienia powierzchni lub zmianę systemu. Podnoszenie temperatury jest jedną z opcji, ale nie pierwszym automatycznym ruchem.'
    },
    covering: {
      components: {
        weather: ['Bez zmian', 'Temperatura zewnętrzna nie zależy od wyboru okładziny.', 'muted'],
        load: ['Bez zmian', 'Straty pomieszczenia pozostają takie same.', 'muted'],
        area: ['Bez zmian', 'W przykładzie zmienia się materiał, a nie ogrzewany obszar.', 'muted'],
        emission: ['Trudniejsza', 'Większy opór warstw ogranicza moc przy tej samej temperaturze wody.', 'warning'],
        water: ['Może być wyższa', 'Do pokrycia tej samej mocy może być potrzebna większa różnica temperatur.', 'warning'],
        pump: ['Mniej korzystny punkt', 'Wyższy parametr może zwiększyć wymagane podniesienie temperatury.', 'warning']
      },
      title: 'Większy opór okładziny ogranicza zdolność oddawania ciepła.',
      copy: 'Nie wolno jednak przekraczać ograniczeń producenta podłogi. Rozwiązaniem może być także redukcja strat, większa powierzchnia albo dodatkowy emiter.'
    },
    spacing: {
      components: {
        weather: ['Bez zmian', 'Warunki zewnętrzne nie zależą od rozstawu rur.', 'muted'],
        load: ['Bez zmian', 'Zagęszczenie rury nie zmienia strat pomieszczenia.', 'muted'],
        area: ['Bez zmian', 'Czynny obszar podłogi pozostaje taki sam.', 'muted'],
        emission: ['Wymaganie bez zmian', 'Potrzebne W/m² nadal wynikają z obciążenia i powierzchni.', 'muted'],
        water: ['Może być niższa', 'Korzystniejsza charakterystyka systemu może pokryć tę samą moc przy niższym parametrze.', 'active'],
        pump: ['Bilans do sprawdzenia', 'Niższa temperatura może pomóc źródłu, ale większa długość rur zmienia hydraulikę.', 'active']
      },
      title: 'Gęstszy rozstaw może obniżyć wymagany parametr, lecz zwiększa długość rur.',
      copy: 'Korzyść cieplną trzeba zestawić z liczbą pętli, oporami, przepływem, kosztami i możliwościami wykonawczymi.'
    }
  };

  function selectScenario(name) {
    var scenario = scenarios[name] || scenarios.insulation;
    each('[data-rk-temp35-scenario]', function (button) {
      button.setAttribute('aria-pressed', button.getAttribute('data-rk-temp35-scenario') === name ? 'true' : 'false');
    });

    each('[data-rk-temp35-component]', function (card) {
      var key = card.getAttribute('data-rk-temp35-component');
      var item = scenario.components[key];
      if (!item) return;
      card.classList.remove('is-active');
      card.classList.remove('is-muted');
      card.classList.remove('is-warning');
      card.classList.add('is-' + item[2]);
      var value = card.querySelector('[data-rk-temp35-component-value]');
      var copy = card.querySelector('[data-rk-temp35-component-copy]');
      if (value) value.textContent = item[0];
      if (copy) copy.textContent = item[1];
    });

    var result = byId('rk-temp35-scenario-result');
    if (result) result.innerHTML = '<strong>' + scenario.title + '</strong><p>' + scenario.copy + '</p>';
  }

  each('[data-rk-temp35-mode]', function (button, index) {
    button.addEventListener('click', function () {
      selectMode(button.getAttribute('data-rk-temp35-mode'), false);
    });
    button.addEventListener('keydown', function (event) {
      if (['ArrowRight', 'ArrowLeft'].indexOf(event.key) === -1) return;
      event.preventDefault();
      var nextIndex = event.key === 'ArrowRight' ? index + 1 : index - 1;
      var tabs = root.querySelectorAll('[data-rk-temp35-mode]');
      if (nextIndex >= tabs.length) nextIndex = 0;
      if (nextIndex < 0) nextIndex = tabs.length - 1;
      selectMode(tabs[nextIndex].getAttribute('data-rk-temp35-mode'), true);
    });
  });

  each('#rk-temp35-calculator-tool input', function (input) {
    input.addEventListener('input', function () {
      if (mode === 'scop') calculateScop();
      else calculateBalance();
    });
  });

  each('[data-rk-temp35-scenario]', function (button) {
    button.addEventListener('click', function () {
      selectScenario(button.getAttribute('data-rk-temp35-scenario'));
    });
  });

  calculateBalance();
  calculateScop();
  selectMode('balance', false);
  selectScenario('insulation');

  if (typeof window !== 'undefined') {
    window.addEventListener('resize', function () {
      if (resizeTimer) window.clearTimeout(resizeTimer);
      resizeTimer = window.setTimeout(drawChart, 100);
    });
  }
}());
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Profesjonalne projektowanie ogrzewania podłogowego i poradniki techniczne HVAC.",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "potentialAction": {
        "@type": "SearchAction",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://projekt-ogrzewania.pl/?s={search_term_string}"
        },
        "query-input": "required name=search_term_string"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@id": "https://projekt-ogrzewania.pl/#logo"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      }
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#logo",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
      "width": 1024,
      "height": 1024,
      "caption": "Projekt Ogrzewania"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "affiliation": [
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "pompy ciepła",
        "obliczenia OZC",
        "temperatura zasilania",
        "hydraulika instalacji",
        "krzywa grzewcza"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Niska-temperatura-zasilania-pompy-ciepla-–-dlaczego-35-stopni-to-ideal-dla-podlogowki.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Niska-temperatura-zasilania-pompy-ciepla-–-dlaczego-35-stopni-to-ideal-dla-podlogowki.webp",
      "width": 900,
      "height": 900,
      "caption": "Niska temperatura zasilania pompy ciepła i ogrzewania podłogowego"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Pompa ciepła",
          "item": "https://projekt-ogrzewania.pl/pompa-ciepla/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Temperatura zasilania pompy ciepła",
          "item": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webpage",
      "url": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/",
      "name": "Temperatura zasilania pompy ciepła – czy 35°C wystarczy?",
      "description": "Czy 35°C wystarczy do podłogówki z pompą ciepła? Sprawdź wpływ OZC, powierzchni czynnej i okładziny na dobór zasilania, COP oraz koszty pracy.",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#primaryimage"
      },
      "datePublished": "2026-04-17T10:17:48+00:00",
      "dateModified": "2026-09-11T00:00:00+00:00",
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          "#rk-temp35-answer",
          "#rk-temp35-conclusions"
        ]
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article",
      "url": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/",
      "headline": "Temperatura zasilania pompy ciepła do podłogówki – czy 35°C zawsze wystarczy?",
      "alternativeHeadline": "Czy zasilanie 35°C jest optymalne dla podłogówki z pompą ciepła?",
      "description": "Czy 35°C wystarczy do podłogówki z pompą ciepła? Sprawdź wpływ OZC, powierzchni czynnej i okładziny na dobór zasilania, COP oraz koszty pracy.",
      "image": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#primaryimage"
      },
      "thumbnailUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/Niska-temperatura-zasilania-pompy-ciepla-–-dlaczego-35-stopni-to-ideal-dla-podlogowki.webp",
      "datePublished": "2026-04-17T10:17:48+00:00",
      "dateModified": "2026-09-11T00:00:00+00:00",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "wordCount": 4433,
      "timeRequired": "PT39M",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webpage"
      },
      "articleSection": [
        "Temperatura zasilania ogrzewania podłogowego",
        "Pompa ciepła i sprawność",
        "Moc powierzchniowa podłogi",
        "Krzywa grzewcza",
        "Hydraulika i przepływ",
        "Bufor i sterowanie"
      ],
      "keywords": [
        "temperatura zasilania pompy ciepła",
        "czy 35°C wystarczy do podłogówki",
        "parametr 35/30°C",
        "jaka temperatura podłogówki przy pompie ciepła",
        "COP a temperatura zasilania",
        "SCOP pompy ciepła",
        "krzywa grzewcza ogrzewania podłogowego",
        "przepływ podłogówki przy ΔT 5 K"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Pompa ciepła"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Temperatura zasilania"
        },
        {
          "@type": "Thing",
          "name": "Sezonowy współczynnik efektywności SCOP"
        }
      ],
      "citation": [
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html",
        "https://www.gov.uk/government/news/heat-pumps-explained-experts-answer-your-questions"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#calculator-app"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dependency-app"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#checklist-schema"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#faq-schema"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#calculator-app",
      "url": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#rk-temp35-calculator",
      "name": "Kalkulator bilansu 35/30°C i porównania kosztów na podstawie SCOP",
      "description": "Sprawdza bilans mocy jednego pomieszczenia i porównuje roczne zużycie oraz koszt dwóch wariantów na podstawie danych wpisanych przez użytkownika.",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      },
      "featureList": [
        "obliczenie wymaganej mocy jednostkowej",
        "bilans obciążenia i dostępnej mocy",
        "przepływ dla wpisanego ΔT",
        "porównanie zużycia na podstawie SCOP",
        "responsywny wykres wyników"
      ],
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article"
      }
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#dependency-app",
      "url": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#rk-temp35-graphic",
      "name": "Interaktywna grafika zależności temperatury zasilania",
      "description": "Pokazuje, jak straty budynku, powierzchnia czynna, okładzina i rozstaw rur wpływają na wymagane W/m², temperaturę wody i warunki pracy pompy ciepła.",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      },
      "featureList": [
        "cztery scenariusze zmian",
        "sześć modułów zależności",
        "interpretacja bez uniwersalnych temperatur",
        "układ responsywny dla desktopu i telefonu"
      ],
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#article"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#howto",
      "url": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#rk-temp35-checklist",
      "name": "Jak sprawdzić, czy 35/30°C wystarczy do ogrzewania podłogowego",
      "description": "Proces od obciążenia pomieszczeń do weryfikacji źródła, hydrauliki i regulacji.",
      "inLanguage": "pl-PL",
      "totalTime": "PT10M",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Oblicz OZC pomieszczeń",
          "text": "Wyznacz projektowe straty ciepła dla właściwych warunków zewnętrznych i temperatur wnętrz."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Ustal powierzchnie czynne",
          "text": "Odejmij trwałą zabudowę i skoordynuj aktywną podłogę z aranżacją."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Oblicz wymagane W/m²",
          "text": "Podziel obciążenie każdego pomieszczenia przez jego powierzchnię czynną."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Sprawdź konstrukcję i okładzinę",
          "text": "Uwzględnij warstwy podłogi, ich opór oraz ograniczenia producentów."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zweryfikuj moc przy 35/30°C",
          "text": "Porównaj wymaganie z charakterystyką konkretnego systemu dla przyjętego rozstawu i temperatur."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Policz przepływy i opory",
          "text": "Wyznacz przepływy z mocy i ΔT, a następnie sprawdź pętle oraz drogę krytyczną."
        },
        {
          "@type": "HowToStep",
          "position": 7,
          "name": "Sprawdź wymagania pompy ciepła",
          "text": "Porównaj moc, punkt pracy, minimalny przepływ, zład, modulację i sposób sterowania."
        },
        {
          "@type": "HowToStep",
          "position": 8,
          "name": "Ustaw i zweryfikuj krzywą",
          "text": "Uruchom układ z nastawami projektowymi i koryguj krzywą małymi krokami po ustabilizowaniu instalacji."
        }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#checklist-schema",
      "url": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#rk-temp35-checklist",
      "name": "Lista kontrolna instalacji 35/30°C",
      "numberOfItems": 14,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Lokalizacja i warunki obliczeniowe",
          "description": "Czy przyjęto właściwą temperaturę zewnętrzną i warunki brzegowe budynku?"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "OZC każdego pomieszczenia",
          "description": "Czy znane jest projektowe obciążenie w watach, a nie tylko wskaźnik całego domu?"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Powierzchnia czynna",
          "description": "Czy odjęto trwałą zabudowę i skoordynowano układ z aranżacją?"
        },
        {
          "@type": "ListItem",
          "position": 4,
          "name": "Temperatura pomieszczenia",
          "description": "Czy łazienka, salon i sypialnie mają właściwe założenia projektowe?"
        },
        {
          "@type": "ListItem",
          "position": 5,
          "name": "Konstrukcja podłogi",
          "description": "Czy znane są jastrych, położenie rury i wszystkie warstwy nad nią?"
        },
        {
          "@type": "ListItem",
          "position": 6,
          "name": "Okładzina i jej ograniczenia",
          "description": "Czy sprawdzono łączny opór cieplny oraz warunki producentów materiałów?"
        },
        {
          "@type": "ListItem",
          "position": 7,
          "name": "Moc przy docelowym parametrze",
          "description": "Czy W/m² pochodzi z obliczenia lub właściwej tabeli systemu dla 35/30°C?"
        },
        {
          "@type": "ListItem",
          "position": 8,
          "name": "Temperatura powierzchni",
          "description": "Czy obliczony strumień nie narusza warunków komfortu i zastosowanych materiałów?"
        },
        {
          "@type": "ListItem",
          "position": 9,
          "name": "Rozstaw i trasy rur",
          "description": "Czy geometria pokrywa obciążenie i daje wykonalne długości pętli?"
        },
        {
          "@type": "ListItem",
          "position": 10,
          "name": "ΔT i przepływy",
          "description": "Czy dla każdej pętli obliczono strumień odpowiadający jej mocy?"
        },
        {
          "@type": "ListItem",
          "position": 11,
          "name": "Opory i pompa obiegowa",
          "description": "Czy droga krytyczna mieści się w osiągalnym punkcie pracy?"
        },
        {
          "@type": "ListItem",
          "position": 12,
          "name": "Dane pompy ciepła",
          "description": "Czy moc, COP lub SCOP, zakres modulacji i ograniczenia odczytano dla właściwych warunków?"
        },
        {
          "@type": "ListItem",
          "position": 13,
          "name": "Minimalny przepływ, zład i sterowanie",
          "description": "Czy układ spełnia wymagania źródła także po zamknięciu części stref?"
        },
        {
          "@type": "ListItem",
          "position": 14,
          "name": "Dokumentacja i uruchomienie",
          "description": "Czy zapisano krzywą, przepływy, nastawy, próby oraz sposób późniejszej korekty?"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#faq-schema",
      "url": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#rk-temp35-faq",
      "name": "FAQ — temperatura zasilania pompy ciepła i podłogówki",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy 35°C zawsze wystarczy do ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Wystarczy tylko wtedy, gdy moc podłogi przy przyjętym zasilaniu, powrocie, konstrukcji i okładzinie pokrywa obciążenie każdego pomieszczenia. W domu o małych stratach może wystarczyć mniej, a w trudnym pomieszczeniu może być potrzebna zmiana emitera lub wyższy parametr."
          }
        },
        {
          "@type": "Question",
          "name": "Czy 35°C jest temperaturą wymaganą przez normę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy przedstawiać jej jako jednej temperatury nakazanej dla wszystkich instalacji. Metody projektowe służą do określania mocy i wymiarowania systemu, dlatego wynik zależy od warunków pomieszczenia, powierzchni, konstrukcji i geometrii."
          }
        },
        {
          "@type": "Question",
          "name": "Co dokładnie oznacza zapis 35/30°C?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najczęściej oznacza projektową temperaturę zasilania 35°C i powrotu 30°C, czyli ΔT równe 5 K. Nie jest to temperatura podłogi ani powietrza w pomieszczeniu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy niższa temperatura zasilania zawsze zwiększa COP?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Niższy wymagany poziom temperatury może poprawiać warunki pracy pompy, lecz dokładny skutek zależy od dolnego źródła, pogody, obciążenia i konstrukcji urządzenia. Warto porównywać dane tego samego modelu w tych samych warunkach."
          }
        },
        {
          "@type": "Question",
          "name": "Jak sprawdzić, czy parametr 35/30°C pokryje straty?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Podziel obciążenie pomieszczenia przez czynną powierzchnię podłogi, a otrzymane W/m² porównaj z mocą konkretnego systemu przy 35/30°C, właściwej temperaturze wnętrza, rozstawie i okładzinie. Następnie sprawdź temperaturę powierzchni oraz hydraulikę."
          }
        },
        {
          "@type": "Question",
          "name": "Czy rury trzeba zawsze układać co 10 cm przy pompie ciepła?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Rozstaw 10 cm może być uzasadniony obliczoną mocą i charakterystyką systemu, ale w części pomieszczeń wystarczający może być inny rozstaw. Trzeba równocześnie kontrolować długości, liczbę pętli, przepływy i opory."
          }
        },
        {
          "@type": "Question",
          "name": "Czy drewno na podłodze wyklucza zasilanie 35°C?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie automatycznie. Trzeba sprawdzić cały opór cieplny warstw, dopuszczenie produktu do podłogówki, warunki montażu i ograniczenia temperatury powierzchni. Następnie oblicza się, czy dostępna moc pokrywa obciążenie."
          }
        },
        {
          "@type": "Question",
          "name": "Czy podniesienie przepływu naprawi za niską moc podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze. Przepływ wpływa na ΔT i rozkład temperatury, ale nie może dowolnie zwiększyć mocy ograniczonej przez średnią temperaturę wody, powierzchnię oraz opór warstw. Najpierw trzeba ustalić przyczynę deficytu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy instalacja 35/30°C potrzebuje bufora?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Sam parametr nie rozstrzyga tej kwestii. Decydują wymagania producenta pompy, minimalny zład i przepływ, modulacja, odszranianie, sterowanie strefowe oraz funkcja hydrauliczna, którą bufor miałby pełnić."
          }
        },
        {
          "@type": "Question",
          "name": "Jak ustawić krzywą grzewczą dla podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Punkt projektowy wynika z obliczeń, a nachylenie i przesunięcie dopracowuje się podczas stabilnej pracy instalacji małymi krokami. Należy uwzględnić bezwładność podłogi i nie oceniać każdej zmiany po kilku minutach."
          }
        }
      ],
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/#webpage"
      }
    }
  ]
}
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">Temperatura zasilania pompy ciepła – czy 35°C wystarczy?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kalkulator doboru pompy obiegowej w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/</link>
					<comments>https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 05 Mar 2026 09:13:56 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Hydraulika grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy obiegowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[dobór pompy]]></category>
		<category><![CDATA[hydraulika instalacji]]></category>
		<category><![CDATA[instalacja podłogówki]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kalkulator pompy obiegowej]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa 25-60]]></category>
		<category><![CDATA[pompa do podłogówki]]></category>
		<category><![CDATA[pompa obiegowa]]></category>
		<category><![CDATA[projekt instalacji grzewczej]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[przepływ instalacji]]></category>
		<category><![CDATA[przepływ w instalacji]]></category>
		<category><![CDATA[wysokość podnoszenia pompy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3575</guid>

					<description><![CDATA[<p>Dobór odpowiedniej pompy obiegowej ma ogromny wpływ na sprawność i komfort działania instalacji grzewczej. Właśnie dlatego kalkulator doboru pompy obiegowej w ogrzewaniu podłogowym może być niezwykle pomocnym narzędziem dla inwestorów, instalatorów oraz osób planujących budowę domu. Dzięki niemu można w prosty sposób oszacować wymagany przepływ wody oraz wysokość podnoszenia pompy, a następnie dopasować urządzenie do realnych parametrów instalacji. W artykule pokazuję krok po kroku, jak wykonać podstawowe obliczenia, zrozumieć charakterystyki pomp i uniknąć najczęstszych błędów przy projektowaniu podłogówki.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Kalkulator doboru pompy obiegowej w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #ez-toc-container .ez-toc-list,
  #ez-toc-container .ez-toc-list ul,
  #ez-toc-container .ez-toc-list ol{margin-top:0!important;margin-bottom:0!important}
  #ez-toc-container .ez-toc-list li{margin:0!important;padding:3px 0!important;line-height:1.4!important}
  #ez-toc-container .ez-toc-list ul,
  #ez-toc-container .ez-toc-list ol{padding-left:28px!important}

  #rk-pump-guide{
    --rk-dark:#102536;
    --rk-navy:#14384d;
    --rk-blue:#078fbe;
    --rk-cyan:#25c7d8;
    --rk-cyan-soft:#e8fbff;
    --rk-orange:#ff6a3d;
    --rk-orange-soft:#fff1eb;
    --rk-green:#16836b;
    --rk-green-soft:#eaf8f3;
    --rk-yellow:#d99b16;
    --rk-yellow-soft:#fff8df;
    --rk-red:#d94b3d;
    --rk-red-soft:#fff0ee;
    --rk-purple:#6f78d8;
    --rk-ink:#1f2c37;
    --rk-text:#475967;
    --rk-muted:#6b7e8a;
    --rk-line:#d5e4eb;
    --rk-soft:#f4f9fb;
    --rk-white:#fff;
    width:100%;
    max-width:1180px;
    margin:34px auto 72px;
    color:var(--rk-ink);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    font-size:18px;
    line-height:1.75;
  }
  #rk-pump-guide,#rk-pump-guide *{box-sizing:border-box}
  #rk-pump-guide img,#rk-pump-guide svg{max-width:100%}
  #rk-pump-guide button,#rk-pump-guide input,#rk-pump-guide select,#rk-pump-guide label,#rk-pump-guide summary,#rk-pump-guide a{font:inherit;-webkit-tap-highlight-color:transparent}
  #rk-pump-guide a{color:var(--rk-blue);font-weight:780;text-decoration-thickness:1px;text-underline-offset:3px}
  #rk-pump-guide p,#rk-pump-guide ul,#rk-pump-guide ol{margin-top:0;margin-bottom:1.1em}
  #rk-pump-guide h2,#rk-pump-guide h3,#rk-pump-guide h4{margin-top:0;color:var(--rk-dark);font-weight:950;letter-spacing:-.035em}
  #rk-pump-guide h2{margin-bottom:18px;font-size:clamp(1.8rem,4vw,2.75rem);line-height:1.08}
  #rk-pump-guide h3{margin-bottom:10px;font-size:clamp(1.08rem,2.2vw,1.34rem);line-height:1.22}
  #rk-pump-guide h4{margin-bottom:8px;font-size:1rem;line-height:1.3}
  #rk-pump-guide .rk-pump-shell{position:relative;overflow:hidden;border:1px solid var(--rk-line);border-radius:32px;background:var(--rk-white);box-shadow:0 28px 70px rgba(16,37,54,.11)}
  #rk-pump-guide .rk-pump-progress-track{position:sticky;z-index:60;top:0;height:5px;background:rgba(213,228,235,.88)}
  #rk-pump-guide .rk-pump-progress{width:0;height:100%;background:linear-gradient(90deg,var(--rk-orange),var(--rk-cyan))}
  #rk-pump-guide .rk-pump-hero{position:relative;overflow:hidden;padding:clamp(40px,7vw,78px);color:var(--rk-white);background:radial-gradient(circle at 91% 17%,rgba(255,106,61,.34),transparent 28%),radial-gradient(circle at 76% 96%,rgba(37,199,216,.26),transparent 35%),linear-gradient(126deg,#0f2233,#143d53 72%,#2e3944)}
  #rk-pump-guide .rk-pump-hero:after{content:"";position:absolute;right:-105px;bottom:-135px;width:330px;height:330px;border:42px solid rgba(255,255,255,.055);border-radius:50%}
  #rk-pump-guide .rk-pump-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.34fr) minmax(280px,.66fr);gap:clamp(28px,5vw,62px);align-items:center}
  #rk-pump-guide .rk-pump-eyebrow,#rk-pump-guide .rk-pump-kicker{display:inline-flex;align-items:center;gap:9px;margin-bottom:15px;color:var(--rk-blue);font-size:.68rem;font-weight:950;letter-spacing:.075em;line-height:1.35;text-transform:uppercase}
  #rk-pump-guide .rk-pump-eyebrow{color:#8ff4ff}
  #rk-pump-guide .rk-pump-eyebrow b{width:11px;height:11px;border-radius:50%;background:var(--rk-orange);box-shadow:0 0 0 7px rgba(255,106,61,.14)}
  #rk-pump-guide .rk-pump-hero-title{max-width:820px;margin-bottom:19px;color:var(--rk-white);font-size:clamp(2.2rem,5.8vw,4.25rem);font-weight:950;letter-spacing:-.055em;line-height:.99}
  #rk-pump-guide .rk-pump-hero-lead{max-width:760px;margin-bottom:25px;color:#dceaf0;font-size:clamp(1.02rem,2vw,1.23rem);line-height:1.68}
  #rk-pump-guide .rk-pump-meta{display:flex;flex-wrap:wrap;gap:10px}
  #rk-pump-guide .rk-pump-meta span{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:#eaf7fa;background:rgba(255,255,255,.075);font-size:.75rem;font-weight:800}
  #rk-pump-guide .rk-pump-hero-card{position:relative;padding:26px;border:1px solid rgba(255,255,255,.16);border-radius:25px;background:rgba(5,27,42,.56);box-shadow:0 20px 44px rgba(0,0,0,.19);backdrop-filter:blur(9px)}
  #rk-pump-guide .rk-pump-hero-card small{display:block;margin-bottom:10px;color:#8eeef7;font-size:.67rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
  #rk-pump-guide .rk-pump-hero-formula{margin-bottom:9px;color:var(--rk-white);font-size:clamp(1.55rem,3.6vw,2.35rem);font-weight:950;letter-spacing:-.05em;line-height:1.08}
  #rk-pump-guide .rk-pump-hero-card p{margin-bottom:16px;color:#d9e9ee;font-size:.77rem;line-height:1.55}
  #rk-pump-guide .rk-pump-hero-values{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  #rk-pump-guide .rk-pump-hero-values div{padding:12px;border-radius:14px;color:#dcecf1;background:rgba(255,255,255,.075);font-size:.68rem}
  #rk-pump-guide .rk-pump-hero-values strong{display:block;color:var(--rk-white);font-size:1.05rem}
  #rk-pump-guide .rk-pump-nav{padding:17px clamp(18px,5vw,58px) 20px;border-bottom:1px solid var(--rk-line);background:var(--rk-white)}
  #rk-pump-guide .rk-pump-nav-title{display:flex;align-items:center;gap:9px;margin-bottom:11px;color:var(--rk-muted);font-size:.64rem;font-weight:950;letter-spacing:.065em;text-transform:uppercase}
  #rk-pump-guide .rk-pump-nav-title:before{content:"";width:10px;height:10px;border-radius:3px;background:var(--rk-orange);box-shadow:0 0 0 5px var(--rk-orange-soft)}
  #rk-pump-guide .rk-pump-nav-links{display:flex;flex-wrap:wrap;gap:8px}
  #rk-pump-guide .rk-pump-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 12px;border-radius:999px;color:var(--rk-dark);background:var(--rk-soft);font-size:.69rem;font-weight:900;line-height:1.3;text-align:center;text-decoration:none}
  #rk-pump-guide .rk-pump-nav a:hover,#rk-pump-guide .rk-pump-nav a:focus-visible{color:var(--rk-white);background:var(--rk-blue)}
  #rk-pump-guide .rk-pump-body{padding:0 clamp(20px,6vw,76px) clamp(42px,7vw,76px)}
  #rk-pump-guide .rk-pump-section{padding:clamp(48px,7vw,82px) 0;border-bottom:1px solid var(--rk-line);scroll-margin-top:88px}
  #rk-pump-guide .rk-pump-section:last-child{border-bottom:0}
  #rk-pump-guide .rk-pump-lead{max-width:940px;color:var(--rk-text);font-size:clamp(1.02rem,2vw,1.16rem)}
  #rk-pump-guide .rk-pump-answer{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:20px;margin-top:24px}
  #rk-pump-guide .rk-pump-answer-main,#rk-pump-guide .rk-pump-answer-side,#rk-pump-guide .rk-pump-card,#rk-pump-guide .rk-pump-step{padding:clamp(20px,3vw,28px);border:1px solid var(--rk-line);border-radius:21px;background:var(--rk-white)}
  #rk-pump-guide .rk-pump-answer-main{border-left:7px solid var(--rk-cyan);background:var(--rk-cyan-soft)}
  #rk-pump-guide .rk-pump-answer-side{border-left:7px solid var(--rk-orange);background:var(--rk-orange-soft)}
  #rk-pump-guide .rk-pump-answer strong.rk-pump-big{display:block;margin:5px 0;color:var(--rk-dark);font-size:clamp(1.4rem,3.4vw,2.25rem);line-height:1.08}
  #rk-pump-guide .rk-pump-grid-2,#rk-pump-guide .rk-pump-grid-3,#rk-pump-guide .rk-pump-grid-4{display:grid;gap:17px;margin-top:23px}
  #rk-pump-guide .rk-pump-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rk-pump-guide .rk-pump-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #rk-pump-guide .rk-pump-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  #rk-pump-guide .rk-pump-card{position:relative;overflow:hidden}
  #rk-pump-guide .rk-pump-card-number{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;margin-bottom:14px;padding:0 10px;border-radius:13px;color:var(--rk-white);background:var(--rk-navy);font-weight:950}
  #rk-pump-guide .rk-pump-card p:last-child,#rk-pump-guide .rk-pump-step p:last-child{margin-bottom:0}
  #rk-pump-guide .rk-pump-table-wrap{margin-top:23px}
  #rk-pump-guide table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid var(--rk-line);border-radius:18px;background:var(--rk-white)}
  #rk-pump-guide th,#rk-pump-guide td{padding:14px 16px;border-right:1px solid var(--rk-line);border-bottom:1px solid var(--rk-line);text-align:left;vertical-align:top}
  #rk-pump-guide th:last-child,#rk-pump-guide td:last-child{border-right:0}
  #rk-pump-guide tbody tr:last-child td{border-bottom:0}
  #rk-pump-guide th{color:var(--rk-white);background:var(--rk-navy);font-size:.75rem;font-weight:900;letter-spacing:.025em}
  #rk-pump-guide tbody tr:nth-child(even) td{background:var(--rk-soft)}
  #rk-pump-guide .rk-pump-table-em{font-weight:950;color:var(--rk-dark)}
  #rk-pump-guide .rk-pump-callout{margin-top:22px;padding:20px 22px;border-left:6px solid var(--rk-cyan);border-radius:16px;background:var(--rk-cyan-soft)}
  #rk-pump-guide .rk-pump-callout.is-warm{border-color:var(--rk-orange);background:var(--rk-orange-soft)}
  #rk-pump-guide .rk-pump-callout.is-yellow{border-color:var(--rk-yellow);background:var(--rk-yellow-soft)}
  #rk-pump-guide .rk-pump-callout.is-green{border-color:var(--rk-green);background:var(--rk-green-soft)}
  #rk-pump-guide .rk-pump-callout p:last-child{margin-bottom:0}
  #rk-pump-guide .rk-pump-formula-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.64fr);gap:24px;align-items:center;margin:28px 0;padding:clamp(24px,5vw,42px);border-radius:25px;color:var(--rk-white);background:linear-gradient(130deg,var(--rk-dark),var(--rk-navy))}
  #rk-pump-guide .rk-pump-formula-box h3{color:var(--rk-white)}
  #rk-pump-guide .rk-pump-formula-box p{color:#d8e8ee}
  #rk-pump-guide .rk-pump-formula{padding:22px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.08);color:#92f4ff;font-size:clamp(1.05rem,2.6vw,1.58rem);font-weight:950;letter-spacing:-.025em;text-align:center}
  #rk-pump-guide .rk-pump-formula small{display:block;margin-top:8px;color:#cce4eb;font-size:.62rem;font-weight:700;letter-spacing:0}
  #rk-pump-guide .rk-pump-route{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:25px}
  #rk-pump-guide .rk-pump-route div{position:relative;min-height:104px;padding:15px 10px;border:1px solid var(--rk-line);border-radius:15px;background:var(--rk-soft);font-size:.67rem;font-weight:850;text-align:center}
  #rk-pump-guide .rk-pump-route div:not(:last-child):after{content:"→";position:absolute;z-index:2;top:33px;right:-13px;color:var(--rk-orange);font-size:1.1rem;font-weight:950}
  #rk-pump-guide .rk-pump-route strong{display:block;margin-bottom:5px;color:var(--rk-dark);font-size:.76rem}

  #rk-pump-guide .rk-pump-tool{overflow:hidden;margin-top:28px;border:1px solid #315469;border-radius:28px;background:#0f2636;box-shadow:0 25px 54px rgba(16,37,54,.18)}
  #rk-pump-guide .rk-pump-tool-head{padding:clamp(27px,5vw,44px);color:#dcebf1;background:radial-gradient(circle at 92% 12%,rgba(255,106,61,.26),transparent 24%),linear-gradient(125deg,#102536,#17435a)}
  #rk-pump-guide .rk-pump-tool-head h3{color:var(--rk-white);font-size:clamp(1.55rem,3.5vw,2.35rem)}
  #rk-pump-guide .rk-pump-tool-head p:last-child{margin-bottom:0}
  #rk-pump-guide .rk-pump-tool-body{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:20px;align-items:start;padding:clamp(20px,4vw,38px)}
  #rk-pump-guide .rk-pump-calc,#rk-pump-guide .rk-pump-right-column{min-width:0;align-self:start}
  #rk-pump-guide .rk-pump-right-column{display:grid;gap:20px;align-content:start}
  #rk-pump-guide .rk-pump-calc,#rk-pump-guide .rk-pump-visual{padding:22px;border:1px solid #38586c;border-radius:20px;background:rgba(255,255,255,.04)}
  #rk-pump-guide .rk-pump-calc h3,#rk-pump-guide .rk-pump-visual h3{color:var(--rk-white)}
  #rk-pump-guide .rk-pump-calc>p,#rk-pump-guide .rk-pump-visual>p{color:#a9bfca;font-size:.73rem}
  #rk-pump-guide .rk-pump-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  #rk-pump-guide .rk-pump-field{min-width:0}
  #rk-pump-guide .rk-pump-field.is-wide{grid-column:1/-1}
  #rk-pump-guide .rk-pump-field label{display:block;margin-bottom:7px;color:#dcebf1;font-size:.67rem;font-weight:900;line-height:1.35}
  #rk-pump-guide .rk-pump-field input,#rk-pump-guide .rk-pump-field select{width:100%;min-height:46px;padding:9px 11px;border:1px solid #557182;border-radius:11px;outline:none;color:var(--rk-dark);background:var(--rk-white)}
  #rk-pump-guide .rk-pump-field input:focus,#rk-pump-guide .rk-pump-field select:focus{border-color:var(--rk-cyan);box-shadow:0 0 0 3px rgba(37,199,216,.17)}
  #rk-pump-guide .rk-pump-field input:disabled,#rk-pump-guide .rk-pump-field select:disabled{color:#788a95;background:#dbe5e9;cursor:not-allowed}
  #rk-pump-guide .rk-pump-field small{display:block;margin-top:5px;color:#8fa9b5;font-size:.59rem;line-height:1.4}
  #rk-pump-guide .rk-pump-subhead{grid-column:1/-1;margin:8px 0 0;padding-top:14px;border-top:1px solid #36566a;color:#8ff4ff;font-size:.62rem;font-weight:950;letter-spacing:.055em;text-transform:uppercase}
  #rk-pump-guide .rk-pump-curve-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;grid-column:1/-1}
  #rk-pump-guide .rk-pump-curve-point{padding:9px;border:1px solid #36566a;border-radius:12px;background:rgba(255,255,255,.035)}
  #rk-pump-guide .rk-pump-curve-point strong{display:block;margin-bottom:7px;color:#8ff4ff;font-size:.58rem;text-align:center}
  #rk-pump-guide .rk-pump-curve-point label{font-size:.56rem}
  #rk-pump-guide .rk-pump-curve-point input{min-height:39px;margin-bottom:6px;padding:6px 8px}
  #rk-pump-guide .rk-pump-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:21px}
  #rk-pump-guide .rk-pump-calculate,#rk-pump-guide .rk-pump-reset{border:0;border-radius:12px;font-weight:900;cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}
  #rk-pump-guide .rk-pump-calculate{padding:14px 22px;color:var(--rk-white);background:linear-gradient(135deg,var(--rk-orange),#e9552c);box-shadow:0 12px 24px rgba(255,106,61,.22)}
  #rk-pump-guide .rk-pump-reset{padding:14px 19px;color:#dcebf1;background:#29485a}
  #rk-pump-guide .rk-pump-calculate:hover,#rk-pump-guide .rk-pump-reset:hover{transform:translateY(-2px)}
  #rk-pump-guide .rk-pump-chart{display:block;width:100%;margin:8px auto 0;overflow:visible}
  #rk-pump-guide .rk-pump-chart .rk-pump-grid-line{stroke:#355568;stroke-width:1}
  #rk-pump-guide .rk-pump-chart .rk-pump-axis{stroke:#9db5c0;stroke-width:2}
  #rk-pump-guide .rk-pump-chart .rk-pump-system-line{fill:none;stroke:var(--rk-cyan);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
  #rk-pump-guide .rk-pump-chart .rk-pump-device-line{fill:none;stroke:var(--rk-orange);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
  #rk-pump-guide .rk-pump-chart .rk-pump-design-dot{fill:#fff;stroke:var(--rk-cyan);stroke-width:5}
  #rk-pump-guide .rk-pump-chart .rk-pump-intersection-dot{fill:#f1bf3f;stroke:#fff;stroke-width:3}
  #rk-pump-guide .rk-pump-chart text{fill:#a9bfca;font-size:12px;font-weight:750}
  #rk-pump-guide .rk-pump-chart .rk-pump-axis-title{fill:#e8f3f7;font-size:13px;font-weight:900}
  #rk-pump-guide .rk-pump-chart .rk-pump-legend-system{fill:var(--rk-cyan)}
  #rk-pump-guide .rk-pump-chart .rk-pump-legend-device{fill:var(--rk-orange)}
  #rk-pump-guide .rk-pump-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:9px;color:#dcebf1;font-size:.64rem;font-weight:850}
  #rk-pump-guide .rk-pump-legend span{display:inline-flex;align-items:center;gap:7px}
  #rk-pump-guide .rk-pump-legend i{display:block;width:22px;height:5px;border-radius:999px;background:var(--rk-cyan)}
  #rk-pump-guide .rk-pump-legend span:nth-child(2) i{background:var(--rk-orange)}
  #rk-pump-guide .rk-pump-legend span:nth-child(3) i{width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#f1bf3f}
  #rk-pump-guide .rk-pump-loss-bars{display:grid;gap:11px;margin-top:17px;padding:16px;border:1px solid #36566a;border-radius:16px;background:rgba(255,255,255,.035)}
  #rk-pump-guide .rk-pump-bar-row{display:grid;grid-template-columns:105px minmax(0,1fr) 82px;gap:9px;align-items:center;color:#dcebf1;font-size:.63rem;font-weight:850}
  #rk-pump-guide .rk-pump-bar-track{height:13px;overflow:hidden;border-radius:999px;background:#29485a}
  #rk-pump-guide .rk-pump-bar{display:block;height:100%;width:0;border-radius:inherit;transition:width .3s ease}
  #rk-pump-guide .rk-pump-bar.is-loop{background:var(--rk-orange)}
  #rk-pump-guide .rk-pump-bar.is-main{background:var(--rk-cyan)}
  #rk-pump-guide .rk-pump-bar.is-extra{background:var(--rk-purple)}
  #rk-pump-guide .rk-pump-results{padding:22px;border:1px solid #38586c;border-radius:20px;color:#dcebf1;background:#0b202e}
  #rk-pump-guide .rk-pump-results h3,#rk-pump-guide .rk-pump-results h4{color:var(--rk-white)}
  #rk-pump-guide .rk-pump-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  #rk-pump-guide .rk-pump-result-card{min-width:0;padding:17px;border:1px solid #36566a;border-radius:17px;background:rgba(255,255,255,.045)}
  #rk-pump-guide .rk-pump-result-card.is-main{border-color:var(--rk-cyan);background:linear-gradient(145deg,rgba(37,199,216,.2),rgba(37,199,216,.07))}
  #rk-pump-guide .rk-pump-result-card small{display:block;min-height:2.8em;color:#9fb7c2;font-size:.65rem;font-weight:800;line-height:1.4}
  #rk-pump-guide .rk-pump-result-number{margin-top:7px;color:var(--rk-white);font-size:clamp(1.08rem,2.7vw,1.72rem);font-weight:950;letter-spacing:-.04em;line-height:1.1}
  #rk-pump-guide .rk-pump-status{margin-top:16px;padding:15px 17px;border-left:5px solid var(--rk-cyan);border-radius:13px;color:#dcebf1;background:rgba(37,199,216,.1)}
  #rk-pump-guide .rk-pump-status.is-warning{border-color:var(--rk-yellow);background:rgba(229,170,40,.12)}
  #rk-pump-guide .rk-pump-status.is-alert{border-color:var(--rk-orange);background:rgba(255,106,61,.12)}
  #rk-pump-guide .rk-pump-status strong{color:var(--rk-white)}
  #rk-pump-guide .rk-pump-tool-note{margin-top:14px;color:#94acb8;font-size:.65rem;line-height:1.55}
  #rk-pump-guide .rk-pump-inline-cta{position:relative;overflow:hidden;margin-top:31px;padding:clamp(27px,5vw,42px);border-radius:25px;color:var(--rk-white);background:radial-gradient(circle at 88% 15%,rgba(255,106,61,.26),transparent 25%),linear-gradient(126deg,#102536,#17465d)}
  #rk-pump-guide .rk-pump-inline-cta h3{color:var(--rk-white);font-size:clamp(1.45rem,3vw,2.1rem)}
  #rk-pump-guide .rk-pump-inline-cta p{max-width:900px;color:#d8e8ee}
  #rk-pump-guide .rk-pump-cta-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 20px;border-radius:14px;color:var(--rk-white)!important;background:linear-gradient(135deg,var(--rk-orange),#e9542d);box-shadow:0 14px 26px rgba(255,106,61,.24);text-decoration:none!important;transition:transform .18s ease,box-shadow .18s ease}
  #rk-pump-guide .rk-pump-cta-button:hover,#rk-pump-guide .rk-pump-cta-button:focus-visible{transform:translateY(-2px);box-shadow:0 18px 30px rgba(255,106,61,.3)}
  #rk-pump-guide .rk-pump-disclosure{display:block;margin-top:10px;color:#9eb6c2;font-size:.62rem}
  #rk-pump-guide .rk-pump-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px;counter-reset:rk-pump-step}
  #rk-pump-guide .rk-pump-step{position:relative;padding-top:62px;counter-increment:rk-pump-step}
  #rk-pump-guide .rk-pump-step:before{content:counter(rk-pump-step,decimal-leading-zero);position:absolute;top:18px;left:22px;color:var(--rk-blue);font-size:1.25rem;font-weight:950}
  #rk-pump-guide .rk-pump-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:22px 0 0;padding:0;list-style:none}
  #rk-pump-guide .rk-pump-checklist li{position:relative;margin:0;padding:14px 15px 14px 48px;border:1px solid var(--rk-line);border-radius:14px;background:var(--rk-soft)}
  #rk-pump-guide .rk-pump-checklist li:before{content:"✓";position:absolute;top:13px;left:16px;display:grid;width:23px;height:23px;place-items:center;border-radius:50%;color:var(--rk-white);background:var(--rk-green);font-size:.7rem;font-weight:950}
  #rk-pump-guide .rk-pump-faq{display:grid;gap:10px;margin-top:23px}
  #rk-pump-guide .rk-pump-faq details{overflow:hidden;border:1px solid var(--rk-line);border-radius:15px;background:var(--rk-white)}
  #rk-pump-guide .rk-pump-faq summary{position:relative;padding:17px 52px 17px 18px;color:var(--rk-dark);font-weight:900;cursor:pointer;list-style:none}
  #rk-pump-guide .rk-pump-faq summary::-webkit-details-marker{display:none}
  #rk-pump-guide .rk-pump-faq summary:after{content:"+";position:absolute;top:13px;right:17px;font-size:1.35rem}
  #rk-pump-guide .rk-pump-faq details[open] summary:after{content:"−"}
  #rk-pump-guide .rk-pump-faq-answer{padding:0 18px 18px;color:var(--rk-text)}
  #rk-pump-guide .rk-pump-faq-answer p:last-child{margin-bottom:0}
  #rk-pump-guide .rk-pump-sources{padding:23px;border:1px solid var(--rk-line);border-radius:18px;background:var(--rk-soft);color:var(--rk-text);font-size:.83rem}
  #rk-pump-guide .rk-pump-sources strong{display:block;margin-bottom:8px;color:var(--rk-dark)}
  #rk-pump-guide .rk-pump-update{margin-top:12px;color:var(--rk-muted);font-size:.7rem;font-weight:800}
  #rk-pump-guide .rk-pump-author{position:relative;overflow:hidden;margin-top:clamp(48px,7vw,82px);border:1px solid var(--rk-line);border-radius:27px;background:var(--rk-white)}
  #rk-pump-guide .rk-pump-author>input{position:absolute;opacity:0;pointer-events:none}
  #rk-pump-guide .rk-pump-author-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:27px clamp(22px,5vw,42px);color:#dcebf1;background:linear-gradient(126deg,var(--rk-dark),var(--rk-navy))}
  #rk-pump-guide .rk-pump-author-head h2{margin-bottom:4px;color:var(--rk-white)}
  #rk-pump-guide .rk-pump-author-head p{margin-bottom:0}
  #rk-pump-guide .rk-pump-author-mark{flex:0 0 auto;padding:9px 12px;border:1px solid rgba(255,255,255,.16);border-radius:999px;color:#93f3fc;font-size:.65rem;font-weight:950;letter-spacing:.06em}
  #rk-pump-guide .rk-pump-author-layout{display:grid;grid-template-columns:270px minmax(0,1fr)}
  #rk-pump-guide .rk-pump-author-side{padding:28px;border-right:1px solid var(--rk-line);background:var(--rk-soft);text-align:center}
  #rk-pump-guide .rk-pump-author-photo{width:150px;height:150px;margin:0 auto 16px;overflow:hidden;border:6px solid var(--rk-white);border-radius:50%;box-shadow:0 12px 28px rgba(16,37,54,.16)}
  #rk-pump-guide .rk-pump-author-photo img{width:100%;height:100%;object-fit:cover}
  #rk-pump-guide .rk-pump-author-name{color:var(--rk-dark);font-size:1.18rem;font-weight:950}
  #rk-pump-guide .rk-pump-author-role{margin-top:5px;color:var(--rk-muted);font-size:.72rem;line-height:1.55}
  #rk-pump-guide .rk-pump-author-social-label{margin-top:24px;color:var(--rk-muted);font-size:.63rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
  #rk-pump-guide .rk-pump-author-social{display:flex;justify-content:center;gap:9px;margin-top:9px}
  #rk-pump-guide .rk-pump-author-social a{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--rk-line);border-radius:13px;color:var(--rk-dark);background:var(--rk-white);transition:transform .18s ease,color .18s ease,border-color .18s ease}
  #rk-pump-guide .rk-pump-author-social a:hover,#rk-pump-guide .rk-pump-author-social a:focus-visible{transform:translateY(-2px);color:var(--rk-blue);border-color:var(--rk-cyan)}
  #rk-pump-guide .rk-pump-author-social svg{width:20px;height:20px;fill:currentColor}
  #rk-pump-guide .rk-pump-author-main{padding:clamp(24px,5vw,42px)}
  #rk-pump-guide .rk-pump-author-quote{position:relative;margin:0;padding:22px 22px 22px 28px;border-left:6px solid var(--rk-orange);border-radius:15px;background:var(--rk-orange-soft)}
  #rk-pump-guide .rk-pump-author-quote p{margin-bottom:0;color:var(--rk-dark);font-weight:760}
  #rk-pump-guide .rk-pump-author-tabs{display:flex;margin-top:24px;border-bottom:1px solid var(--rk-line)}
  #rk-pump-guide .rk-pump-author-tab{padding:11px 14px;border-bottom:3px solid transparent;color:var(--rk-muted);font-size:.72rem;font-weight:900;cursor:pointer}
  #rk-pump-guide .rk-pump-author-panel{display:none;padding-top:18px;color:var(--rk-text)}
  #rk-pump-guide .rk-pump-author-panel p:last-child{margin-bottom:0}
  #rk-pump-author-about:checked~.rk-pump-author-layout .rk-pump-author-panel-about,#rk-pump-author-exp:checked~.rk-pump-author-layout .rk-pump-author-panel-exp,#rk-pump-author-sites:checked~.rk-pump-author-layout .rk-pump-author-panel-sites{display:block}
  #rk-pump-author-about:checked~.rk-pump-author-layout label[for="rk-pump-author-about"],#rk-pump-author-exp:checked~.rk-pump-author-layout label[for="rk-pump-author-exp"],#rk-pump-author-sites:checked~.rk-pump-author-layout label[for="rk-pump-author-sites"]{color:var(--rk-dark);border-bottom-color:var(--rk-cyan)}
  #rk-pump-guide .rk-pump-site-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
  #rk-pump-guide .rk-pump-site-links a{padding:8px 11px;border-radius:999px;background:var(--rk-soft);font-size:.7rem;text-decoration:none}
  #rk-pump-guide .rk-pump-final-cta{margin-top:28px;padding:clamp(32px,6vw,58px);border-radius:27px;color:#dcebf1;background:radial-gradient(circle at 89% 16%,rgba(255,106,61,.29),transparent 25%),linear-gradient(126deg,#102536,#17465d);text-align:center}
  #rk-pump-guide .rk-pump-final-cta h2{max-width:850px;margin-right:auto;margin-left:auto;color:var(--rk-white)}
  #rk-pump-guide .rk-pump-final-cta p{max-width:850px;margin-right:auto;margin-left:auto}
  @media(max-width:1050px){
    #rk-pump-guide .rk-pump-tool-body{grid-template-columns:1fr}
    #rk-pump-guide .rk-pump-route{grid-template-columns:repeat(4,minmax(0,1fr))}
    #rk-pump-guide .rk-pump-route div:not(:last-child):after{display:none}
  }
  @media(max-width:980px){
    #rk-pump-guide .rk-pump-hero-grid,#rk-pump-guide .rk-pump-answer,#rk-pump-guide .rk-pump-formula-box{grid-template-columns:1fr}
    #rk-pump-guide .rk-pump-grid-4,#rk-pump-guide .rk-pump-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    #rk-pump-guide .rk-pump-grid-3,#rk-pump-guide .rk-pump-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media(max-width:760px){
    #rk-pump-guide{margin:16px auto 46px;font-size:16px}
    #rk-pump-guide .rk-pump-shell{border-radius:20px}
    #rk-pump-guide .rk-pump-hero{padding:34px 22px}
    #rk-pump-guide .rk-pump-body{padding-right:18px;padding-left:18px}
    #rk-pump-guide .rk-pump-nav{padding:15px 18px 18px}
    #rk-pump-guide .rk-pump-nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    #rk-pump-guide .rk-pump-nav a{width:100%;min-height:45px;padding:8px 9px;border-radius:13px;font-size:.65rem}
    #rk-pump-guide .rk-pump-grid-2,#rk-pump-guide .rk-pump-grid-3,#rk-pump-guide .rk-pump-grid-4,#rk-pump-guide .rk-pump-steps,#rk-pump-guide .rk-pump-checklist{grid-template-columns:1fr}
    #rk-pump-guide .rk-pump-result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    #rk-pump-guide .rk-pump-route{grid-template-columns:repeat(2,minmax(0,1fr))}
    #rk-pump-guide .rk-pump-author-layout{grid-template-columns:1fr}
    #rk-pump-guide .rk-pump-author-side{border-right:0;border-bottom:1px solid var(--rk-line)}
    #rk-pump-guide .rk-pump-author-head{align-items:flex-start}
    #rk-pump-guide .rk-pump-author-mark{display:none}
    #rk-pump-guide table,#rk-pump-guide thead,#rk-pump-guide tbody,#rk-pump-guide tr,#rk-pump-guide th,#rk-pump-guide td{display:block;width:100%}
    #rk-pump-guide thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
    #rk-pump-guide table{border:0;background:transparent}
    #rk-pump-guide tbody{display:grid;gap:13px}
    #rk-pump-guide tr{overflow:hidden;border:1px solid var(--rk-line);border-radius:15px;background:var(--rk-white)}
    #rk-pump-guide td,#rk-pump-guide tbody tr:last-child td{display:grid;grid-template-columns:minmax(108px,.78fr) minmax(0,1.22fr);gap:12px;padding:11px 13px;border-right:0;border-bottom:1px solid var(--rk-line)!important;background:var(--rk-white)!important}
    #rk-pump-guide td:last-child{border-bottom:0!important}
    #rk-pump-guide td:before{content:attr(data-label);color:var(--rk-muted);font-size:.69rem;font-weight:900}
  }
  @media(max-width:600px){
    #rk-pump-guide .rk-pump-curve-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  }
  @media(max-width:540px){
    #rk-pump-guide .rk-pump-fields,#rk-pump-guide .rk-pump-result-grid{grid-template-columns:1fr}
    #rk-pump-guide .rk-pump-bar-row{grid-template-columns:82px minmax(0,1fr) 68px;font-size:.58rem}
    #rk-pump-guide .rk-pump-author-tabs{overflow-x:auto}
    #rk-pump-guide .rk-pump-author-tab{flex:0 0 auto}
  }
  @media(prefers-reduced-motion:reduce){
    #rk-pump-guide *,#rk-pump-guide *:before,#rk-pump-guide *:after{scroll-behavior:auto!important;transition:none!important}
  }
</style>

<article id="rk-pump-guide">
  <div class="rk-pump-shell">
    <div class="rk-pump-progress-track" aria-hidden="true"><div class="rk-pump-progress" id="rk-pump-progress"></div></div>
    <header class="rk-pump-hero">
      <div class="rk-pump-hero-grid">
        <div>
          <span class="rk-pump-eyebrow"><b></b> Przepływ • opory • punkt pracy</span>
          <div class="rk-pump-hero-title">Pompy nie dobiera się z metrażu. Dobiera się punkt Q/H.</div>
          <p class="rk-pump-hero-lead">Oblicz przepływ całkowity, straty krytycznej drogi i wymaganą wysokość podnoszenia. Następnie sprawdź wynik na charakterystyce rozważanej pompy — bez automatycznego przypisywania 25-40 lub 25-60 do powierzchni domu.</p>
          <div class="rk-pump-meta"><span>Aktualizacja: 30.08.2026</span><span>Model Darcy’ego-Weisbacha</span><span>Dynamiczna krzywa Q/H</span></div>
        </div>
        <aside class="rk-pump-hero-card" aria-label="Najważniejsze zależności doboru pompy obiegowej">
          <small>Wymagany punkt pracy</small>
          <div class="rk-pump-hero-formula">Punkt = (V̇proj, Hproj)</div>
          <p>Maksymalny przepływ i maksymalna wysokość podnoszenia pompy nie występują jednocześnie. Liczy się zdolność urządzenia do osiągnięcia obu wymaganych wartości w tym samym punkcie.</p>
          <div class="rk-pump-hero-values"><div><strong>V̇</strong>przepływ projektowy</div><div><strong>H</strong>wysokość podnoszenia</div><div><strong>Δp</strong>strata krytycznej drogi</div><div><strong>Q/H</strong>sprawdzenie krzywej</div></div>
        </aside>
      </div>
    </header>

    <nav class="rk-pump-nav" aria-label="Spis treści artykułu">
      <span class="rk-pump-nav-title">Spis treści — przejdź do sekcji</span>
      <div class="rk-pump-nav-links">
        <a href="#rk-pump-answer">Szybka odpowiedź</a>
        <a href="#rk-pump-point">Punkt Q/H</a>
        <a href="#rk-pump-flow">Obliczanie przepływu</a>
        <a href="#rk-pump-head">Wysokość podnoszenia</a>
        <a href="#rk-pump-analyzer">Analizator</a>
        <a href="#rk-pump-markings">25-40 czy 25-60</a>
        <a href="#rk-pump-modes">Tryby pracy</a>
        <a href="#rk-pump-source">Pompa w źródle</a>
        <a href="#rk-pump-manifolds">Kilka rozdzielaczy</a>
        <a href="#rk-pump-separation">Sprzęgło i bufor</a>
        <a href="#rk-pump-diameter">Średnica i kawitacja</a>
        <a href="#rk-pump-balance">Rotametry</a>
        <a href="#rk-pump-diagnostics">Diagnostyka</a>
        <a href="#rk-pump-example">Przykład obliczeń</a>
        <a href="#rk-pump-mistakes">Najczęstsze błędy</a>
        <a href="#rk-pump-checklist">Checklista</a>
        <a href="#rk-pump-faq">FAQ</a>
        <a href="#rk-pump-sources">Źródła</a>
      </div>
    </nav>

    <main class="rk-pump-body">
      <section class="rk-pump-section" id="rk-pump-answer">
        <span class="rk-pump-kicker">Najważniejsza odpowiedź</span>
        <h2>Jak dobrać pompę obiegową do ogrzewania podłogowego?</h2>
        <p class="rk-pump-lead">Pompa jest odpowiednia wtedy, gdy przy wymaganym przepływie instalacji zapewnia wysokość podnoszenia potrzebną do pokonania strat krytycznej drogi hydraulicznej. Obie wartości muszą wystąpić jednocześnie na rzeczywistej charakterystyce urządzenia.</p>
        <div class="rk-pump-answer">
          <div class="rk-pump-answer-main">
            <span class="rk-pump-kicker">Prawidłowa kolejność</span>
            <strong class="rk-pump-big">Moc → przepływ → opory → punkt Q/H → krzywa pompy</strong>
            <p>Jeżeli znamy przepływy wszystkich pętli z projektu, sumujemy je. Jeżeli ich nie znamy, przepływ całkowity możemy wstępnie obliczyć z projektowej mocy i różnicy temperatur.</p>
          </div>
          <div class="rk-pump-answer-side">
            <span class="rk-pump-kicker">Czego nie robimy</span>
            <strong class="rk-pump-big">Nie dobieramy pompy z powierzchni domu</strong>
            <p>Metraż, liczba kondygnacji oraz sama liczba pętli nie określają wysokości podnoszenia. Potrzebne są przepływy, średnice, długości i opory elementów.</p>
          </div>
        </div>
        <p>Projektowa moc powinna wynikać z obliczeń cieplnych, a nie z uniwersalnego wskaźnika dla całego domu. Zobacz, czym jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-point">
        <span class="rk-pump-kicker">Dwie współrzędne jednej decyzji</span>
        <h2>Co oznaczają przepływ V̇, wysokość H i punkt pracy pompy?</h2>
        <div class="rk-pump-grid-3">
          <article class="rk-pump-card"><span class="rk-pump-card-number">V̇</span><h3>Przepływ projektowy</h3><p>Ilość medium, którą trzeba przetłoczyć w jednostce czasu, aby przenieść wymaganą moc przy przyjętej różnicy temperatur.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">H</span><h3>Wysokość podnoszenia</h3><p>Odpowiednik różnicy ciśnień potrzebnej do pokonania oporów krytycznej zamkniętej drogi przy przepływie projektowym.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">●</span><h3>Punkt pracy</h3><p>Przecięcie charakterystyki pompy z krzywą instalacji. To w tym miejscu ustalają się rzeczywisty przepływ i różnica ciśnień.</p></article>
        </div>
        <div class="rk-pump-callout"><p><strong>Maksimum nie jest punktem pracy.</strong> Pompa może osiągać maksymalną wysokość przy przepływie bliskim zeru, a maksymalny przepływ przy bardzo małej wysokości. Dlatego dwóch wartości maksymalnych nie wolno łączyć w jeden fikcyjny punkt.</p></div>
        <h3>Dlaczego sama nazwa pompy nie wystarcza?</h3>
        <p>Oznaczenie typoszeregu jest tylko pierwszym filtrem. Dwa urządzenia o podobnym oznaczeniu mogą mieć inne krzywe, tryby regulacji, pobór mocy i dopuszczalny zakres pracy. Ostateczną ocenę przeprowadza się na charakterystyce konkretnego urządzenia.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-flow">
        <span class="rk-pump-kicker">Pierwsza współrzędna punktu pracy</span>
        <h2>Jak obliczyć wymagany przepływ pompy obiegowej?</h2>
        <p class="rk-pump-lead">Dla wody przepływ objętościowy można obliczyć z mocy przekazywanej przez instalację i projektowej różnicy temperatur. Jeżeli projekt zawiera przepływy pętli, dokładniejszą metodą jest ich zsumowanie dla obwodów pracujących jednocześnie.</p>
        <div class="rk-pump-formula-box">
          <div><h3>Przepływ całkowity dla wody</h3><p>Zmniejszenie ΔT zwiększa przepływ potrzebny do przeniesienia tej samej mocy. Różnica temperatur jest założeniem projektowym, a nie stałą przypisaną automatycznie do pompy ciepła lub kotła.</p></div>
          <div class="rk-pump-formula">V̇ = P / (1,163 × ΔT)<small>V̇ [m³/h], P [kW], ΔT [K]</small></div>
        </div>
        <div class="rk-pump-table-wrap">
          <table>
            <thead><tr><th>Moc instalacji</th><th>Przepływ przy ΔT = 5 K</th><th>Przepływ przy ΔT = 7 K</th><th>Różnica</th></tr></thead>
            <tbody>
              <tr><td data-label="Moc instalacji" class="rk-pump-table-em">8 kW</td><td data-label="ΔT = 5 K">1,38 m³/h</td><td data-label="ΔT = 7 K">0,98 m³/h</td><td data-label="Różnica">około 40%</td></tr>
              <tr><td data-label="Moc instalacji" class="rk-pump-table-em">10 kW</td><td data-label="ΔT = 5 K">1,72 m³/h</td><td data-label="ΔT = 7 K">1,23 m³/h</td><td data-label="Różnica">około 40%</td></tr>
              <tr><td data-label="Moc instalacji" class="rk-pump-table-em">12 kW</td><td data-label="ΔT = 5 K">2,06 m³/h</td><td data-label="ΔT = 7 K">1,47 m³/h</td><td data-label="Różnica">około 40%</td></tr>
            </tbody>
          </table>
        </div>
        <h3>Przepływ całkowity a przepływ jednej pętli</h3>
        <p>Na magistrali pomiędzy źródłem a rozdzielaczem występuje suma przepływów czynnych pętli. W pojedynczej pętli występuje wyłącznie przepływ przypisany do tego obwodu. Nie wolno liczyć straty rury 16 × 2 mm przy przepływie całego domu.</p>
        <h4>Czy średnia z liczby pętli wystarczy?</h4>
        <p>Podzielenie przepływu całkowitego przez liczbę pętli daje jedynie wartość średnią. Rzeczywiste przepływy zależą od mocy poszczególnych pomieszczeń oraz przyjętego ΔT. Pętla krytyczna nie musi mieć ani największego przepływu, ani największej długości — decyduje jej całkowita strata ciśnienia.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-head">
        <span class="rk-pump-kicker">Druga współrzędna punktu pracy</span>
        <h2>Jak obliczyć wysokość podnoszenia pompy?</h2>
        <p class="rk-pump-lead">Wysokość podnoszenia wynika z sumy strat ciśnienia na krytycznej zamkniętej drodze. Obejmuje ona nie tylko pętlę, ale również odcinki wspólne oraz wszystkie elementy znajdujące się w obiegu obsługiwanym przez daną pompę.</p>
        <div class="rk-pump-route" aria-label="Elementy krytycznej drogi hydraulicznej">
          <div><strong>Źródło</strong>wymiennik, króćce</div>
          <div><strong>Zasilanie</strong>magistrala i armatura</div>
          <div><strong>Rozdzielacz</strong>rotametr i zawory</div>
          <div><strong>Pętla</strong>rura przy jej przepływie</div>
          <div><strong>Powrót belki</strong>zawór i wkładka</div>
          <div><strong>Magistrala</strong>wspólny powrót</div>
          <div><strong>Pompa</strong>zamknięcie drogi</div>
        </div>
        <div class="rk-pump-formula-box">
          <div><h3>Przeliczenie straty ciśnienia</h3><p>Dla wody 9,81 kPa odpowiada w przybliżeniu jednemu metrowi słupa wody. Do wyniku można dodać niewielką, jawną rezerwę projektową, ale nie zastępuje ona brakujących danych.</p></div>
          <div class="rk-pump-formula">H ≈ Δpkryt / 9,81<small>H [m H₂O], Δpkryt [kPa]</small></div>
        </div>
        <h3>Krytyczna droga nie zawsze oznacza najdłuższą pętlę</h3>
        <p>Długa pętla o małym przepływie może mieć mniejszy opór niż krótszy obwód o większym przepływie. Do tego dochodzą różne długości dobiegów, nastawy zaworów i opory magistral. Wszystkie pętle trzeba porównać przy ich projektowych przepływach. Zobacz również, <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">ile metrów podłogówki może mieć jedna pętla</a>.</p>
        <h3>Czy pompa musi podnosić wodę na piętro?</h3>
        <p>W prawidłowo napełnionej instalacji zamkniętej słup wody po stronie zasilania jest równoważony przez słup po stronie powrotu. Pompa nie pracuje jak pompa studzienna — pokonuje głównie opory przepływu. Wysokość budynku nadal wpływa na ciśnienie napełnienia i dobór naczynia przeponowego, ale nie dodaje się jej wprost do wymaganego H pompy obiegowej.</p>
        <div class="rk-pump-callout is-warm"><p><strong>Nie dodawaj wszystkich pętli szeregowo.</strong> Pętle na rozdzielaczu pracują równolegle. Do wysokości podnoszenia przyjmujemy opór jednej krytycznej drogi, natomiast do przepływu pompy sumę przepływów czynnych obwodów.</p></div>
      </section>

      <section class="rk-pump-section" id="rk-pump-analyzer">
        <span class="rk-pump-kicker">Jedno narzędzie zamiast kilku uproszczonych symulatorów</span>
        <h2>Interaktywny analizator punktu pracy pompy obiegowej</h2>
        <p class="rk-pump-lead">Narzędzie oddzielnie liczy przepływ całkowity w magistrali oraz przepływ krytycznej pętli. Następnie sumuje straty rury, odcinków wspólnych i elementów dodatkowych, tworzy krzywą instalacji oraz porównuje wymagany punkt z wprowadzoną charakterystyką pompy.</p>

        <div class="rk-pump-tool" data-rk-pump-tool>
          <div class="rk-pump-tool-head">
            <span class="rk-pump-eyebrow"><b></b> Model edukacyjny dla wody około 30°C</span>
            <h3>Wyznacz punkt Q/H i sprawdź krzywą pompy</h3>
            <p>W trybie szybkim przepływ wynika z mocy i ΔT. W trybie eksperckim możesz wpisać znany przepływ z projektu. Straty rur są liczone równaniem Darcy’ego-Weisbacha.</p>
          </div>

          <div class="rk-pump-tool-body">
            <div class="rk-pump-calc">
              <h3>Dane instalacji</h3>
              <p>Wprowadź całkowite długości rur obejmujące zasilanie i powrót. Opory urządzeń oraz armatury wpisz jako sumę z ich dokumentacji.</p>
              <div class="rk-pump-fields">
                <div class="rk-pump-field is-wide">
                  <label for="rk-pump-input-mode">Sposób określenia przepływu całkowitego</label>
                  <select id="rk-pump-input-mode">
                    <option value="power" selected>Z mocy i różnicy temperatur</option>
                    <option value="flow">Znam przepływ projektowy</option>
                  </select>
                </div>

                <div class="rk-pump-subhead">Przepływ całkowity instalacji</div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-power">Projektowa moc instalacji [kW]</label>
                  <input id="rk-pump-input-power" type="number" min="0.1" max="200" step="0.1" value="10" inputmode="decimal">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-dt">Projektowa różnica temperatur ΔT [K]</label>
                  <input id="rk-pump-input-dt" type="number" min="1" max="40" step="0.5" value="6" inputmode="decimal">
                </div>
                <div class="rk-pump-field is-wide">
                  <label for="rk-pump-input-flow">Znany przepływ projektowy [m³/h]</label>
                  <input id="rk-pump-input-flow" type="number" min="0.01" max="100" step="0.01" value="1.43" inputmode="decimal" disabled>
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-loops">Liczba jednocześnie czynnych pętli</label>
                  <input id="rk-pump-input-loops" type="number" min="1" max="100" step="1" value="10" inputmode="numeric">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-loop-flow">Przepływ krytycznej pętli [l/min]</label>
                  <input id="rk-pump-input-loop-flow" type="number" min="0.05" max="20" step="0.05" value="2.50" inputmode="decimal">
                  <small>Wpisz przepływ tej pętli, której pełną drogę sprawdzasz — nie przepływ całego rozdzielacza.</small>
                </div>

                <div class="rk-pump-subhead">Krytyczna pętla</div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-loop-length">Całkowita długość pętli [m]</label>
                  <input id="rk-pump-input-loop-length" type="number" min="1" max="500" step="1" value="90" inputmode="decimal">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-loop-id">Średnica wewnętrzna rury [mm]</label>
                  <input id="rk-pump-input-loop-id" type="number" min="4" max="100" step="0.1" value="12" inputmode="decimal">
                  <small>Dla rury 16 × 2 mm średnica geometryczna wynosi około 12 mm.</small>
                </div>

                <div class="rk-pump-subhead">Wspólna magistrala zasilająca i powrotna</div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-main-length">Łączna długość zasilania i powrotu [m]</label>
                  <input id="rk-pump-input-main-length" type="number" min="0" max="1000" step="1" value="30" inputmode="decimal">
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-main-id">Średnica wewnętrzna magistrali [mm]</label>
                  <input id="rk-pump-input-main-id" type="number" min="6" max="300" step="0.1" value="26" inputmode="decimal">
                </div>

                <div class="rk-pump-subhead">Elementy dodatkowe i rezerwa</div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-extra-loss">Suma dodatkowych oporów [kPa]</label>
                  <input id="rk-pump-input-extra-loss" type="number" min="0" max="500" step="0.1" value="12" inputmode="decimal">
                  <small>Rozdzielacz, zawory, wymiennik, filtr i pozostałe elementy należące do drogi tej pompy.</small>
                </div>
                <div class="rk-pump-field">
                  <label for="rk-pump-input-margin">Jawna rezerwa obliczeniowa [%]</label>
                  <input id="rk-pump-input-margin" type="number" min="0" max="50" step="1" value="10" inputmode="decimal">
                  <small>Rezerwa nie zastępuje nieznanych oporów ani brakującej charakterystyki urządzenia.</small>
                </div>

                <div class="rk-pump-subhead">Sprawdzenie rozważanej charakterystyki</div>
                <div class="rk-pump-field is-wide">
                  <label for="rk-pump-input-curve-mode">Czy chcesz wprowadzić cztery punkty z wykresu pompy?</label>
                  <select id="rk-pump-input-curve-mode">
                    <option value="yes" selected>Tak — porównaj krzywą</option>
                    <option value="no">Nie — pokaż tylko wymagany punkt</option>
                  </select>
                  <small>Wartości domyślne są wyłącznie przykładem. Zastąp je punktami odczytanymi z dokumentacji rozważanego urządzenia i wybranego trybu.</small>
                </div>
                <div class="rk-pump-curve-fields" id="rk-pump-curve-fields">
                  <div class="rk-pump-curve-point"><strong>PUNKT 1</strong><label for="rk-pump-curve-q0">Q [m³/h]</label><input id="rk-pump-curve-q0" type="number" min="0" max="100" step="0.01" value="0" inputmode="decimal"><label for="rk-pump-curve-h0">H [m]</label><input id="rk-pump-curve-h0" type="number" min="0" max="50" step="0.01" value="6.00" inputmode="decimal"></div>
                  <div class="rk-pump-curve-point"><strong>PUNKT 2</strong><label for="rk-pump-curve-q1">Q [m³/h]</label><input id="rk-pump-curve-q1" type="number" min="0" max="100" step="0.01" value="1.00" inputmode="decimal"><label for="rk-pump-curve-h1">H [m]</label><input id="rk-pump-curve-h1" type="number" min="0" max="50" step="0.01" value="5.40" inputmode="decimal"></div>
                  <div class="rk-pump-curve-point"><strong>PUNKT 3</strong><label for="rk-pump-curve-q2">Q [m³/h]</label><input id="rk-pump-curve-q2" type="number" min="0" max="100" step="0.01" value="2.00" inputmode="decimal"><label for="rk-pump-curve-h2">H [m]</label><input id="rk-pump-curve-h2" type="number" min="0" max="50" step="0.01" value="4.20" inputmode="decimal"></div>
                  <div class="rk-pump-curve-point"><strong>PUNKT 4</strong><label for="rk-pump-curve-q3">Q [m³/h]</label><input id="rk-pump-curve-q3" type="number" min="0" max="100" step="0.01" value="3.00" inputmode="decimal"><label for="rk-pump-curve-h3">H [m]</label><input id="rk-pump-curve-h3" type="number" min="0" max="50" step="0.01" value="2.00" inputmode="decimal"></div>
                </div>
              </div>
              <div class="rk-pump-actions">
                <button class="rk-pump-calculate" id="rk-pump-calculate" type="button">Oblicz punkt pracy</button>
                <button class="rk-pump-reset" id="rk-pump-reset" type="button">Przywróć przykład</button>
              </div>
            </div>

            <div class="rk-pump-right-column">
            <div class="rk-pump-visual">
              <h3>Krzywa instalacji i charakterystyka pompy</h3>
              <p>Niebieska krzywa przechodzi przez obliczony punkt projektowy. Pomarańczowa linia łączy punkty wpisane z dokumentacji urządzenia. Żółty punkt pokazuje ich orientacyjne przecięcie.</p>
              <svg class="rk-pump-chart" viewBox="0 0 720 430" role="img" aria-labelledby="rk-pump-chart-title rk-pump-chart-desc">
                <title id="rk-pump-chart-title">Wykres punktu pracy pompy obiegowej</title>
                <desc id="rk-pump-chart-desc">Porównanie krzywej oporów instalacji z charakterystyką rozważanej pompy.</desc>
                <line class="rk-pump-grid-line" x1="70" y1="360" x2="660" y2="360"></line><line class="rk-pump-grid-line" x1="70" y1="294" x2="660" y2="294"></line><line class="rk-pump-grid-line" x1="70" y1="228" x2="660" y2="228"></line><line class="rk-pump-grid-line" x1="70" y1="162" x2="660" y2="162"></line><line class="rk-pump-grid-line" x1="70" y1="96" x2="660" y2="96"></line><line class="rk-pump-grid-line" x1="70" y1="30" x2="660" y2="30"></line>
                <line class="rk-pump-grid-line" x1="70" y1="30" x2="70" y2="360"></line><line class="rk-pump-grid-line" x1="188" y1="30" x2="188" y2="360"></line><line class="rk-pump-grid-line" x1="306" y1="30" x2="306" y2="360"></line><line class="rk-pump-grid-line" x1="424" y1="30" x2="424" y2="360"></line><line class="rk-pump-grid-line" x1="542" y1="30" x2="542" y2="360"></line><line class="rk-pump-grid-line" x1="660" y1="30" x2="660" y2="360"></line>
                <line class="rk-pump-axis" x1="70" y1="360" x2="660" y2="360"></line><line class="rk-pump-axis" x1="70" y1="30" x2="70" y2="360"></line>
                <text id="rk-pump-x0" x="70" y="382" text-anchor="middle">0</text><text id="rk-pump-x1" x="188" y="382" text-anchor="middle">0,7</text><text id="rk-pump-x2" x="306" y="382" text-anchor="middle">1,4</text><text id="rk-pump-x3" x="424" y="382" text-anchor="middle">2,1</text><text id="rk-pump-x4" x="542" y="382" text-anchor="middle">2,8</text><text id="rk-pump-x5" x="660" y="382" text-anchor="middle">3,5</text>
                <text id="rk-pump-y0" x="58" y="365" text-anchor="end">0</text><text id="rk-pump-y1" x="58" y="299" text-anchor="end">1,4</text><text id="rk-pump-y2" x="58" y="233" text-anchor="end">2,8</text><text id="rk-pump-y3" x="58" y="167" text-anchor="end">4,2</text><text id="rk-pump-y4" x="58" y="101" text-anchor="end">5,6</text><text id="rk-pump-y5" x="58" y="35" text-anchor="end">7,0</text>
                <text class="rk-pump-axis-title" x="365" y="414" text-anchor="middle">Przepływ V̇ [m³/h]</text><text class="rk-pump-axis-title" x="18" y="195" text-anchor="middle" transform="rotate(-90 18 195)">Wysokość H [m]</text>
                <polyline class="rk-pump-system-line" id="rk-pump-system-line" points="70,360 188,345 306,300 424,225 542,120 660,30"></polyline>
                <polyline class="rk-pump-device-line" id="rk-pump-device-line" points="70,77 239,106 407,162 576,266"></polyline>
                <circle class="rk-pump-design-dot" id="rk-pump-design-dot" cx="311" cy="157" r="8"></circle>
                <circle class="rk-pump-intersection-dot" id="rk-pump-intersection-dot" cx="337" cy="175" r="7"></circle>
              </svg>
              <div class="rk-pump-legend"><span><i></i>krzywa instalacji</span><span><i></i>wprowadzona krzywa pompy</span><span><i></i>przecięcie krzywych</span></div>
              <div class="rk-pump-loss-bars" aria-label="Udział strat ciśnienia">
                <div class="rk-pump-bar-row"><span>Krytyczna pętla</span><span class="rk-pump-bar-track"><span class="rk-pump-bar is-loop" id="rk-pump-bar-loop"></span></span><strong id="rk-pump-bar-loop-value">18,7 kPa</strong></div>
                <div class="rk-pump-bar-row"><span>Magistrala</span><span class="rk-pump-bar-track"><span class="rk-pump-bar is-main" id="rk-pump-bar-main"></span></span><strong id="rk-pump-bar-main-value">8,0 kPa</strong></div>
                <div class="rk-pump-bar-row"><span>Dodatkowe</span><span class="rk-pump-bar-track"><span class="rk-pump-bar is-extra" id="rk-pump-bar-extra"></span></span><strong id="rk-pump-bar-extra-value">12,0 kPa</strong></div>
              </div>
            </div>

          <div class="rk-pump-results" aria-live="polite">
            <h3>Wynik dla wprowadzonych danych</h3>
            <div class="rk-pump-result-grid">
              <div class="rk-pump-result-card is-main"><small>Przepływ całkowity instalacji</small><div class="rk-pump-result-number" id="rk-pump-result-flow">1,43 m³/h</div></div>
              <div class="rk-pump-result-card is-main"><small>Wymagana wysokość z rezerwą</small><div class="rk-pump-result-number" id="rk-pump-result-head">4,34 m</div></div>
              <div class="rk-pump-result-card"><small>Przepływ całkowity w l/min</small><div class="rk-pump-result-number" id="rk-pump-result-flow-litres">23,88 l/min</div></div>
              <div class="rk-pump-result-card"><small>Średni przepływ czynnej pętli</small><div class="rk-pump-result-number" id="rk-pump-result-average-loop">2,39 l/min</div></div>
              <div class="rk-pump-result-card"><small>Prędkość w krytycznej pętli</small><div class="rk-pump-result-number" id="rk-pump-result-loop-velocity">0,37 m/s</div></div>
              <div class="rk-pump-result-card"><small>Prędkość w magistrali</small><div class="rk-pump-result-number" id="rk-pump-result-main-velocity">0,75 m/s</div></div>
              <div class="rk-pump-result-card"><small>Strata krytycznej pętli</small><div class="rk-pump-result-number" id="rk-pump-result-loop-loss">18,7 kPa</div></div>
              <div class="rk-pump-result-card"><small>Strata wspólnej magistrali</small><div class="rk-pump-result-number" id="rk-pump-result-main-loss">8,0 kPa</div></div>
              <div class="rk-pump-result-card"><small>Suma przed rezerwą</small><div class="rk-pump-result-number" id="rk-pump-result-total-loss">38,7 kPa</div></div>
              <div class="rk-pump-result-card"><small>Punkt wymagany Q/H</small><div class="rk-pump-result-number" id="rk-pump-result-point">1,43 / 4,34</div></div>
              <div class="rk-pump-result-card"><small>H pompy przy wymaganym Q</small><div class="rk-pump-result-number" id="rk-pump-result-device-head">4,88 m</div></div>
              <div class="rk-pump-result-card"><small>Przecięcie krzywych</small><div class="rk-pump-result-number" id="rk-pump-result-intersection">1,51 / 4,79</div></div>
            </div>
            <div class="rk-pump-status" id="rk-pump-status"><strong>Wstępna zgodność:</strong> przykładowa krzywa osiąga wymagany punkt. Zastąp dane domyślne wartościami z dokumentacji konkretnego urządzenia i sprawdź właściwy tryb lub bieg.</div>
            <p class="rk-pump-tool-note">Model przyjmuje wodę o właściwościach zbliżonych do temperatury 30°C, rurę hydraulicznie gładką oraz zależność strat od przepływu właściwą dla obliczanego punktu. Nie uwzględnia glikolu, rzeczywistych współczynników oporów kształtek ani strat urządzeń, których nie wpisano w polu dodatkowym. Wprowadzona charakterystyka jest interpolowana liniowo pomiędzy czterema punktami.</p>
          </div>
          </div>
          </div>
        </div>

        <aside class="rk-pump-inline-cta rk-pump-sales-cta" aria-label="Projekt z obliczonym punktem pracy pompy">
          <h3>Kalkulator wyznaczył wymagany punkt Q/H. Nie zna jednak rzeczywistego przebiegu instalacji, oporu wymiennika źródła, zaworu mieszającego, rozdzielacza, armatury ani krzywej wybranej pompy, jeżeli dane te nie zostały wprowadzone.</h3>
          <p>W projekcie odcinki wspólne liczymy przy przepływie sumarycznym, a krytyczną pętlę przy jej własnym przepływie. Dopiero suma tych oporów tworzy punkt nanoszony na charakterystykę pompy.</p>
          <a class="rk-pump-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczonym punktem pracy pompy</a>
          <span class="rk-pump-disclosure">Wynik analizatora jest materiałem edukacyjnym i nie zastępuje dokumentacji wykonawczej.</span>
        </aside>
      </section>

      <section class="rk-pump-section" id="rk-pump-markings">
        <span class="rk-pump-kicker">Oznaczenie to filtr, nie wynik obliczeń</span>
        <h2>Pompa 25-40 czy 25-60 — co naprawdę oznaczają symbole?</h2>
        <p class="rk-pump-lead">W typowych oznaczeniach pierwsza liczba odnosi się do wielkości przyłącza, a druga do maksymalnej wysokości podnoszenia danego typoszeregu. Dokładny sposób oznaczania zawsze trzeba potwierdzić w dokumentacji urządzenia.</p>
        <div class="rk-pump-table-wrap">
          <table>
            <thead><tr><th>Oznaczenie</th><th>Co można z niego wstępnie odczytać</th><th>Czego nie można z niego wywnioskować</th></tr></thead>
            <tbody>
              <tr><td data-label="Oznaczenie" class="rk-pump-table-em">25-40</td><td data-label="Wstępny odczyt">Typoszereg z przyłączem około DN25 i maksymalnym H około 4 m</td><td data-label="Czego nie wiadomo">Czy osiąga wymagane H przy projektowym przepływie</td></tr>
              <tr><td data-label="Oznaczenie" class="rk-pump-table-em">25-60</td><td data-label="Wstępny odczyt">Typoszereg z przyłączem około DN25 i maksymalnym H około 6 m</td><td data-label="Czego nie wiadomo">Jaki ma pobór mocy i punkt przy danym trybie</td></tr>
              <tr><td data-label="Oznaczenie" class="rk-pump-table-em">25-80</td><td data-label="Wstępny odczyt">Typoszereg z przyłączem około DN25 i maksymalnym H około 8 m</td><td data-label="Czego nie wiadomo">Czy większy zakres jest w instalacji potrzebny lub korzystny</td></tr>
            </tbody>
          </table>
        </div>
        <h3>Dlaczego 25-60 nie oznacza 6 m przy każdym przepływie?</h3>
        <p>Wraz ze wzrostem przepływu dostępna wysokość na charakterystyce pompy zazwyczaj maleje. Maksymalne H pojawia się przy przepływie bliskim zeru. Z tego powodu pompa z napisem 25-60 może nie osiągnąć punktu 2,5 m³/h i 5,5 m, mimo że obie liczby osobno mieszczą się w jej wartościach maksymalnych.</p>
        <h3>Czy większa pompa zawsze jest bezpieczniejsza?</h3>
        <p>Nie. Zbyt duża różnica ciśnień może zwiększać hałas i konieczność dławienia zaworów. Pompa elektroniczna może ograniczyć obroty, ale jej zakres regulacji również ma granice. Urządzenie dobieramy tak, aby wymagany punkt znajdował się w użytecznym zakresie charakterystyki, z kontrolowaną rezerwą.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-modes">
        <span class="rk-pump-kicker">Regulacja zależy od topologii</span>
        <h2>Stałe czy proporcjonalne ciśnienie — jaki tryb pracy pompy wybrać?</h2>
        <p class="rk-pump-lead">Nie istnieje jeden tryb właściwy dla każdej podłogówki. Decyzja zależy od tego, czy przepływ jest stały, jak zachowują się siłowniki, które zawory zmieniają opór i czego wymaga źródło ciepła.</p>
        <div class="rk-pump-grid-3">
          <article class="rk-pump-card"><span class="rk-pump-card-number">Δp-c</span><h3>Stałe ciśnienie różnicowe</h3><p>Pompa stara się utrzymać podobną różnicę ciśnień przy zmieniającym się przepływie. Bywa użyteczne przy rozdzielaczach i zamykanych pętlach, ale nastawa nadal wymaga kontroli.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">Δp-v</span><h3>Ciśnienie proporcjonalne</h3><p>Wraz ze spadkiem zapotrzebowania pompa obniża różnicę ciśnień. Może pasować do sieci, w których zamykanie zaworów istotnie redukuje wymaganą wysokość.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">n</span><h3>Stała prędkość</h3><p>Może być właściwa w obiegu o stabilnym przepływie lub wtedy, gdy wymaga jej konkretne urządzenie i automatyka. Nie jest automatycznie trybem błędnym.</p></article>
        </div>
        <h3>Co zmieniają siłowniki na rozdzielaczu?</h3>
        <p>Zamykanie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> zmienia krzywą instalacji i liczbę czynnych pętli. Automatyka powinna ograniczać różnicę ciśnień oraz zapewnić minimalny przepływ wymagany przez źródło. Nie wolno zakładać, że dowolny tryb automatyczny sam naprawi błędny schemat.</p>
        <h4>Jak dobrać nastawę po uruchomieniu?</h4>
        <p>Zaczynamy od punktu projektowego, ustawiamy przepływy pętli, a następnie obserwujemy zachowanie przy pełnym i częściowym odbiorze. Zbyt wysoka nastawa może powodować szumy, a zbyt niska brak wymaganych wskazań rotametrów na krytycznej pętli.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-source">
        <span class="rk-pump-kicker">Dostępne ciśnienie zamiast metrażu</span>
        <h2>Czy pompa wbudowana w pompę ciepła lub kocioł wystarczy?</h2>
        <p class="rk-pump-lead">Może wystarczyć dla całej instalacji, ale nie da się tego ocenić na podstawie mocy źródła, powierzchni domu ani informacji „pompa 6 m”. Trzeba znać dostępne ciśnienie dyspozycyjne przy wymaganym przepływie.</p>
        <ul class="rk-pump-checklist">
          <li>Odczytaj przepływ wymagany przez źródło w projektowym punkcie pracy.</li>
          <li>Sprawdź charakterystykę pompy dla wybranego trybu oraz biegu.</li>
          <li>Ustal, czy wykres obejmuje już opór wewnętrznego wymiennika i armatury urządzenia.</li>
          <li>Porównaj dostępne ciśnienie z oporem całej krytycznej drogi instalacji.</li>
          <li>Sprawdź minimalny przepływ przy zamykaniu stref oraz tryb odszraniania pompy ciepła.</li>
          <li>Zweryfikuj minimalną aktywną objętość wody i sposób sterowania pompą.</li>
        </ul>
        <h3>Co oznacza ciśnienie dyspozycyjne?</h3>
        <p>To część wysokości podnoszenia pozostająca do wykorzystania przez instalację po uwzględnieniu oporów znajdujących się wewnątrz urządzenia. Jeżeli dokumentacja pokazuje wyłącznie pełną charakterystykę pompy bez oporów wymiennika, trzeba je uwzględnić osobno.</p>
        <p>Zagadnienia współpracy całej instalacji ze źródłem rozwijamy również w działach <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a> oraz <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a>.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-manifolds">
        <span class="rk-pump-kicker">Kilka szafek nie oznacza kilku pomp</span>
        <h2>Jedna pompa, dwa rozdzielacze i dwie kondygnacje</h2>
        <p class="rk-pump-lead">Jedna pompa może obsługiwać kilka rozdzielaczy, jeżeli zapewnia sumaryczny przepływ oraz pokrywa opór najbardziej niekorzystnej drogi. Liczba kondygnacji nie tworzy automatycznie potrzeby osobnej pompy na każde piętro.</p>
        <div class="rk-pump-grid-2">
          <article class="rk-pump-card"><span class="rk-pump-card-number">ΣV̇</span><h3>Wspólny przepływ</h3><p>Na odcinku od pompy do rozgałęzienia płynie suma przepływów obu rozdzielaczy. Po rozgałęzieniu każdy przewód przenosi przepływ własnej części instalacji.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">max Δp</span><h3>Najtrudniejsza droga</h3><p>Wysokość podnoszenia wyznacza obieg o największej sumie oporów od pompy przez magistralę, rozdzielacz i pętlę aż do powrotu.</p></article>
        </div>
        <h3>Kiedy mogą być potrzebne osobne pompy?</h3>
        <p>Osobne obiegi pompowe mogą być uzasadnione przy różnych temperaturach, niezależnych grupach mieszających, dużych różnicach oporów, szczególnej logice strefowej albo hydraulicznym rozdzieleniu obiegu źródła i instalacji. Decyzja wynika ze schematu, a nie z liczby szafek.</p>
        <p>Budowę i wyposażenie belki opisuje poradnik <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-separation">
        <span class="rk-pump-kicker">Granice obiegu obsługiwanego przez pompę</span>
        <h2>Dobór pompy przy sprzęgle hydraulicznym, buforze i mieszaniu</h2>
        <p class="rk-pump-lead">Sprzęgło lub bufor czterorurowy dzielą instalację na obieg pierwotny i wtórny. Każda pompa ma wtedy własny przepływ oraz własną krytyczną drogę, których nie sumuje się tak, jakby urządzenia pracowały szeregowo.</p>
        <div class="rk-pump-table-wrap">
          <table>
            <thead><tr><th>Układ</th><th>Co obsługuje pompa</th><th>Co należy wliczyć do oporów</th></tr></thead>
            <tbody>
              <tr><td data-label="Układ" class="rk-pump-table-em">Bezpośredni</td><td data-label="Zakres pompy">Źródło i odbiorniki w jednej drodze</td><td data-label="Wliczane opory">Źródło, magistrale, armatura, rozdzielacz i pętla</td></tr>
              <tr><td data-label="Układ" class="rk-pump-table-em">Za sprzęgłem</td><td data-label="Zakres pompy">Wyłącznie wtórna część instalacji</td><td data-label="Wliczane opory">Od sprzęgła przez odbiorniki i z powrotem do sprzęgła</td></tr>
              <tr><td data-label="Układ" class="rk-pump-table-em">Grupa mieszająca</td><td data-label="Zakres pompy">Obieg za zaworem mieszającym</td><td data-label="Wliczane opory">Zawór, rozdzielacz, pętla i przewody tej grupy</td></tr>
              <tr><td data-label="Układ" class="rk-pump-table-em">Bufor szeregowy</td><td data-label="Zakres pompy">Zależy od miejsca wpięcia</td><td data-label="Wliczane opory">Elementy rzeczywiście leżące w zamkniętej drodze pompy</td></tr>
            </tbody>
          </table>
        </div>
        <p>Różnicę pomiędzy tymi rozwiązaniami wyjaśniają osobne opracowania: <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne w ogrzewaniu podłogowym</a> oraz <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor ciepła</a>.</p>
        <div class="rk-pump-callout is-yellow"><p><strong>Sprzęgło nie wymusza osobnej pompy dla każdego rozdzielacza.</strong> Jedna pompa wtórna może obsłużyć kilka szafek, jeżeli wynik Q/H i sposób regulacji to potwierdzają.</p></div>
      </section>

      <section class="rk-pump-section" id="rk-pump-diameter">
        <span class="rk-pump-kicker">Prędkość zmienia opór, ale nie jest kawitacją</span>
        <h2>Średnica rury, prędkość przepływu i ryzyko kawitacji</h2>
        <p class="rk-pump-lead">Zmniejszenie średnicy wewnętrznej zwiększa prędkość oraz straty ciśnienia. Może prowadzić do hałasu i braku wymaganego przepływu, ale sama wysoka prędkość w magistrali nie jest jeszcze dowodem kawitacji pompy.</p>
        <div class="rk-pump-formula-box">
          <div><h3>Prędkość w rzeczywistym przekroju</h3><p>Do wzoru wstawiamy przepływ w m³/s oraz średnicę wewnętrzną, nie handlową średnicę zewnętrzną rury. Dwie rury o tym samym wymiarze zewnętrznym mogą mieć inne światło.</p></div>
          <div class="rk-pump-formula">v = 4V̇ / (πd²)<small>v [m/s], V̇ [m³/s], d [m]</small></div>
        </div>
        <h3>Dlaczego mała średnica szybko zwiększa straty?</h3>
        <p>Prędkość rośnie odwrotnie proporcjonalnie do pola przekroju. Większa prędkość zwiększa składnik dynamiczny równania strat, dlatego niewielka redukcja światła może mocno podnieść wymagane H. Dedykowany kalkulator pozwala osobno sprawdzić <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicę rury zasilającej rozdzielacz</a>.</p>
        <h3>Kiedy powstaje kawitacja?</h3>
        <p>Kawitacja jest związana ze spadkiem lokalnego ciśnienia do poziomu, przy którym ciecz zaczyna tworzyć pęcherze pary. Znaczenie mają ciśnienie na wlocie pompy, temperatura medium, opory przed pompą i dostępny NPSH. Prędkość w odległej magistrali może pośrednio zwiększać straty, ale nie stanowi samodzielnego kryterium kawitacji.</p>
        <h4>Co sprawdzić przed pompą?</h4>
        <p>Ciśnienie napełnienia, drożność filtra, ustawienie zaworów, odpowietrzenie, temperaturę, średnicę króćców i opory odcinka ssawnego. Hałas pompy nie musi oznaczać kawitacji — może wynikać także z powietrza, zanieczyszczeń, pracy poza zakresem albo przenoszenia drgań.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-balance">
        <span class="rk-pump-kicker">Pompa tworzy warunki, zawory rozdzielają przepływ</span>
        <h2>Pompa obiegowa, rotametry i równoważenie pętli</h2>
        <p class="rk-pump-lead">Pompa zapewnia różnicę ciśnień dla całej sieci, ale nie ustawia automatycznie właściwego przepływu w każdej pętli. Rozdział pomiędzy obwody zależy od ich oporów oraz nastaw zaworów na rozdzielaczu.</p>
        <div class="rk-pump-grid-3">
          <article class="rk-pump-card"><span class="rk-pump-card-number">1</span><h3>Ustaw punkt pompy</h3><p>Wybierz tryb i poziom, które pozwalają uzyskać przepływ całkowity bez niepotrzebnego nadmiaru różnicy ciśnień.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">2</span><h3>Wyreguluj pętle</h3><p>Każdy rotametr ustaw na wartość wynikającą z mocy przypisanej do obwodu i projektowego ΔT.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">3</span><h3>Sprawdź stan częściowy</h3><p>Zamknij wybrane strefy i sprawdź, czy pozostałe pętle nie otrzymują nadmiernego przepływu lub różnicy ciśnień.</p></article>
        </div>
        <h3>Dlaczego wszystkie rotametry nie powinny pokazywać tego samego?</h3>
        <p>Pętle obsługują pomieszczenia o różnym obciążeniu i mogą mieć różne projektowe przepływy. Identyczna nastawa wszystkich wskaźników jest uzasadniona tylko wtedy, gdy wynika z obliczeń, a nie dlatego, że wygląda estetycznie.</p>
        <h3>Dlaczego rotametry nie reagują na zmianę pompy?</h3>
        <p>Przyczyn może być wiele: zamknięte zawory, nieprawidłowy kierunek przepływu, zapowietrzenie, zablokowany filtr, zamknięte siłowniki, zbyt mała dostępna różnica ciśnień, błędna regulacja albo zabrudzony wskaźnik. Sama wymiana pompy na większą nie jest prawidłową diagnozą. Zobacz poradnik <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">jak odczytać i ustawić rotametr</a>.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-diagnostics">
        <span class="rk-pump-kicker">Objaw nie wskazuje jednej przyczyny</span>
        <h2>Objawy zbyt małej i zbyt dużej pompy obiegowej</h2>
        <p class="rk-pump-lead">Wiele objawów może wynikać zarówno z doboru pompy, jak i z zapowietrzenia, brudnego filtra, błędnych nastaw, za małych średnic albo zamkniętej armatury. Diagnostyka powinna opierać się na pomiarach przepływu i różnicy ciśnień.</p>
        <div class="rk-pump-table-wrap">
          <table>
            <thead><tr><th>Objaw</th><th>Możliwa przyczyna hydrauliczna</th><th>Co sprawdzić najpierw</th></tr></thead>
            <tbody>
              <tr><td data-label="Objaw" class="rk-pump-table-em">Brak przepływu w skrajnych pętlach</td><td data-label="Możliwa przyczyna">Za małe H, niezrównoważenie, powietrze lub blokada</td><td data-label="Pierwsza kontrola">Zawory, odpowietrzenie, filtr, punkt Q/H i nastawy</td></tr>
              <tr><td data-label="Objaw" class="rk-pump-table-em">Świst na rozdzielaczu</td><td data-label="Możliwa przyczyna">Nadmierna różnica ciśnień albo dławienie</td><td data-label="Pierwsza kontrola">Tryb pompy, otwarcie zaworów i przepływy pętli</td></tr>
              <tr><td data-label="Objaw" class="rk-pump-table-em">Duża różnica zasilanie–powrót</td><td data-label="Możliwa przyczyna">Za mały przepływ lub zbyt duży odbiór względem nastawy</td><td data-label="Pierwsza kontrola">Moc, ΔT, przepływ sumaryczny i temperatury</td></tr>
              <tr><td data-label="Objaw" class="rk-pump-table-em">Buczenie pompy</td><td data-label="Możliwa przyczyna">Powietrze, zanieczyszczenia, niekorzystny punkt lub drgania</td><td data-label="Pierwsza kontrola">Ciśnienie, odpowietrzenie, filtr i montaż</td></tr>
              <tr><td data-label="Objaw" class="rk-pump-table-em">Wysoki pobór mocy</td><td data-label="Możliwa przyczyna">Wysoka nastawa, duży przepływ albo wysokie opory</td><td data-label="Pierwsza kontrola">Rzeczywisty punkt pracy zamiast arbitralnego limitu W</td></tr>
              <tr><td data-label="Objaw" class="rk-pump-table-em">Częste alarmy przepływu źródła</td><td data-label="Możliwa przyczyna">Zamykanie stref, blokada lub niewłaściwa hydraulika</td><td data-label="Pierwsza kontrola">Minimalny przepływ i logika pracy siłowników</td></tr>
            </tbody>
          </table>
        </div>
        <h3>Separator magnetyczny i jakość wody</h3>
        <p>Ochrona pompy przed magnetytem, osadami i powietrzem powinna wynikać ze składu instalacji oraz wymagań urządzeń. Nie każde sprzęgło pełni funkcję separatora, a inhibitor nie jest dodatkiem uniwersalnym dla wszystkich materiałów. Potrzebne są prawidłowe płukanie, przygotowanie wody i urządzenia dobrane do realnego zagrożenia. Więcej informacji zawiera poradnik o <a href="https://projekt-ogrzewania.pl/separator-zanieczyszczen-i-powietrza-w-ogrzewaniu-podlogowym-dobor-schemat-montazu-spadek-cisnienia-i-normy/">separatorze powietrza i zanieczyszczeń</a>.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-example">
        <span class="rk-pump-kicker">Przejrzyste założenia zamiast fikcyjnej awarii</span>
        <h2>Przykład pełnego obliczenia punktu pracy pompy</h2>
        <p class="rk-pump-lead">Rozważmy instalację o mocy 10 kW i projektowym ΔT równym 6 K. Dziesięć pętli pracuje jednocześnie, a analizowana krytyczna pętla ma przepływ 2,5 l/min i długość 90 m przy średnicy wewnętrznej 12 mm.</p>
        <div class="rk-pump-steps">
          <article class="rk-pump-step"><h3>Przepływ całkowity</h3><p>10 / (1,163 × 6) = około 1,43 m³/h, czyli 23,9 l/min w odcinkach wspólnych.</p></article>
          <article class="rk-pump-step"><h3>Przepływ pętli</h3><p>Do obliczenia rury 16 × 2 przyjmujemy jej własne 2,5 l/min, a nie 23,9 l/min całej instalacji.</p></article>
          <article class="rk-pump-step"><h3>Strata pętli</h3><p>Model dla wody około 30°C daje w tym przykładzie około 18,7 kPa na 90 m rury.</p></article>
          <article class="rk-pump-step"><h3>Strata magistrali</h3><p>Przy 1,43 m³/h, 30 m łącznej długości i średnicy wewnętrznej 26 mm otrzymujemy około 8,0 kPa.</p></article>
          <article class="rk-pump-step"><h3>Elementy dodatkowe</h3><p>Do przykładu wpisujemy 12 kPa na rozdzielacz, zawory i elementy należące do sprawdzanej drogi.</p></article>
          <article class="rk-pump-step"><h3>Wymagane H</h3><p>Suma około 38,7 kPa daje 3,94 m. Po jawnej rezerwie 10% punkt wynosi około 1,43 m³/h przy 4,34 m.</p></article>
        </div>
        <div class="rk-pump-callout is-green"><p><strong>To nadal nie jest nazwa pompy.</strong> Wynik 1,43 m³/h i 4,34 m należy nanieść na charakterystykę konkretnego urządzenia. Dopiero krzywa pokaże, czy dany tryb pracy zapewnia wymagany punkt.</p></div>
        <h3>Co zmieni zastosowanie glikolu?</h3>
        <p>Glikol zmienia gęstość, lepkość oraz zdolność przenoszenia ciepła, dlatego zarówno przepływ, jak i straty ciśnienia wymagają korekty dla konkretnego stężenia i temperatury. Kalkulator świadomie nie udaje pełnego modelu mieszaniny — dla glikolu trzeba użyć właściwości deklarowanych dla zastosowanego czynnika.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-mistakes">
        <span class="rk-pump-kicker">Błędy, których nie naprawi większy silnik</span>
        <h2>Najczęstsze błędy przy doborze pompy do podłogówki</h2>
        <div class="rk-pump-grid-4">
          <article class="rk-pump-card"><span class="rk-pump-card-number">01</span><h3>Dobór z metrażu</h3><p>Powierzchnia nie opisuje średnic, długości, armatury ani krytycznego obiegu.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">02</span><h3>Łączenie wartości maksymalnych</h3><p>Maksymalne Q i maksymalne H nie tworzą jednego dostępnego punktu pracy.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">03</span><h3>Liczenie tylko pętli</h3><p>Pomija opory magistrali, źródła, rozdzielacza, filtrów i zaworów.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">04</span><h3>Sumowanie pętli szeregowo</h3><p>Pętle są równoległe; sumujemy ich przepływy, nie wszystkie straty ciśnienia.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">05</span><h3>Dodawanie wysokości piętra</h3><p>W zamkniętym obiegu nie dodajemy kondygnacji wprost do H pompy.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">06</span><h3>Stałe 15–20 kPa armatury</h3><p>Opór elementów zmienia się z przepływem i konstrukcją; potrzebne są dane lub pomiar.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">07</span><h3>Uniwersalny tryb regulacji</h3><p>Stałe ciśnienie nie jest automatycznie właściwe dla każdego schematu i źródła.</p></article>
          <article class="rk-pump-card"><span class="rk-pump-card-number">08</span><h3>Brak uruchomienia</h3><p>Nawet poprawny dobór wymaga płukania, odpowietrzenia, równoważenia i kontroli stanów częściowych.</p></article>
        </div>
        <h3>Dlaczego nie dodajemy „współczynnika starzenia rur”?</h3>
        <p>Rezerwę należy opisać jawnie i uzasadnić. Zamiast nieokreślonego współczynnika uwzględniamy rzeczywiste opory filtrów, zaworów, zabrudzenia przewidywane przez projekt oraz rozsądną rezerwę procentową. Ukryty zapas utrudnia późniejszą weryfikację.</p>
      </section>

      <section class="rk-pump-section" id="rk-pump-checklist">
        <span class="rk-pump-kicker">Procedura przed zakupem i uruchomieniem</span>
        <h2>Checklista doboru pompy obiegowej krok po kroku</h2>
        <p class="rk-pump-lead">Dobór powinien być możliwy do odtworzenia przez inną osobę. Każda przyjęta wartość musi mieć źródło: obliczenie, dokumentację urządzenia albo pomiar.</p>
        <div class="rk-pump-steps">
          <article class="rk-pump-step"><h3>Ustal moc i ΔT</h3><p>Przyjmij projektową moc obsługiwanego obiegu oraz różnicę temperatur właściwą dla tego układu.</p></article>
          <article class="rk-pump-step"><h3>Wyznacz przepływy</h3><p>Oblicz przepływ całkowity i przypisz osobne wartości wszystkim pętlom lub grupom odbiorników.</p></article>
          <article class="rk-pump-step"><h3>Rozrysuj drogę pompy</h3><p>Zaznacz każdy element od tłoczenia przez obieg aż do powrotu na króciec ssawny.</p></article>
          <article class="rk-pump-step"><h3>Policz krytyczny obieg</h3><p>Porównaj wszystkie możliwe drogi przy właściwych przepływach i wybierz największą sumę strat.</p></article>
          <article class="rk-pump-step"><h3>Wyznacz punkt Q/H</h3><p>Przelicz sumę kPa na metry podnoszenia i dodaj tylko jawną, uzasadnioną rezerwę.</p></article>
          <article class="rk-pump-step"><h3>Sprawdź krzywą</h3><p>Zweryfikuj wymagany punkt na charakterystyce rozważanego urządzenia i wybranego trybu.</p></article>
          <article class="rk-pump-step"><h3>Uruchom i wyreguluj</h3><p>Wypłucz oraz odpowietrz instalację, ustaw rotametry i sprawdź pełny oraz częściowy odbiór.</p></article>
          <article class="rk-pump-step"><h3>Zapisz nastawy</h3><p>Udokumentuj przepływy, tryb pompy, ustawienie, temperatury oraz wyniki kontroli odbiorowej.</p></article>
        </div>
        <div class="rk-pump-callout"><p><strong>Przy kilku pompach wykonaj checklistę osobno dla każdej z nich.</strong> Pompa obiegu źródła, pompa za sprzęgłem i pompa grupy mieszającej mają różne drogi, przepływy i wymagane wysokości podnoszenia.</p></div>
      </section>

      <section class="rk-pump-section" id="rk-pump-faq">
        <span class="rk-pump-kicker">Najczęstsze pytania inwestorów i instalatorów</span>
        <h2>FAQ — dobór pompy obiegowej do ogrzewania podłogowego</h2>
        <div class="rk-pump-faq">
          <details><summary>Jaka pompa obiegowa do 100 m² podłogówki?</summary><div class="rk-pump-faq-answer"><p>Nie można dobrać jej wyłącznie z powierzchni. Trzeba znać przepływ wynikający z mocy i ΔT oraz opór krytycznej drogi obejmującej magistralę, rozdzielacz, pętlę, armaturę i ewentualnie źródło.</p></div></details>
          <details><summary>Pompa 25-40 czy 25-60 do ogrzewania podłogowego?</summary><div class="rk-pump-faq-answer"><p>Wybór zależy od wymaganego punktu Q/H i rzeczywistych krzywych obu urządzeń. Jeśli instalacja potrzebuje 1,5 m³/h przy 4,3 m, trzeba sprawdzić, która pompa osiąga jednocześnie te wartości w odpowiednim trybie.</p></div></details>
          <details><summary>Co oznacza symbol 25-60 na pompie?</summary><div class="rk-pump-faq-answer"><p>W typowym oznaczeniu 25 odnosi się do wielkości przyłącza, a 60 do maksymalnej wysokości podnoszenia około 6 m. Nie oznacza to jednak 6 m dostępnych przy każdym przepływie.</p></div></details>
          <details><summary>Jak obliczyć przepływ pompy do podłogówki?</summary><div class="rk-pump-faq-answer"><p>Dla wody można użyć wzoru V̇ = P / (1,163 × ΔT), gdzie P jest mocą w kW, a ΔT różnicą temperatur w K. Jeśli projekt podaje przepływy pętli, należy zsumować wartości obwodów pracujących jednocześnie.</p></div></details>
          <details><summary>Jak obliczyć wysokość podnoszenia pompy?</summary><div class="rk-pump-faq-answer"><p>Sumuje się straty ciśnienia na krytycznej zamkniętej drodze przy przepływie projektowym. Dla wody wynik w kPa można orientacyjnie podzielić przez 9,81, aby otrzymać metry słupa wody.</p></div></details>
          <details><summary>Czy wysokość domu zwiększa wysokość podnoszenia?</summary><div class="rk-pump-faq-answer"><p>Nie dodaje się jej wprost w prawidłowo napełnionej instalacji zamkniętej, ponieważ słupy zasilania i powrotu się równoważą. Wysokość ma znaczenie dla ciśnienia napełnienia i naczynia przeponowego.</p></div></details>
          <details><summary>Czy najdłuższa pętla zawsze jest krytyczna?</summary><div class="rk-pump-faq-answer"><p>Nie. Strata zależy również od przepływu, średnicy, dobiegów, armatury i rozdzielacza. Każdą drogę należy policzyć przy jej projektowym przepływie.</p></div></details>
          <details><summary>Czy pompa wbudowana w pompę ciepła wystarczy?</summary><div class="rk-pump-faq-answer"><p>Może wystarczyć, jeżeli przy wymaganym przepływie pozostawia ciśnienie dyspozycyjne większe od oporu krytycznej drogi instalacji oraz spełnia wymagania minimalnego przepływu źródła.</p></div></details>
          <details><summary>Czy potrzebna jest osobna pompa na każdy rozdzielacz?</summary><div class="rk-pump-faq-answer"><p>Nie automatycznie. Jedna pompa może obsłużyć kilka rozdzielaczy, jeśli zapewnia przepływ sumaryczny oraz pokrywa opór najbardziej niekorzystnego obiegu.</p></div></details>
          <details><summary>Jaki tryb pompy do podłogówki: stały czy proporcjonalny?</summary><div class="rk-pump-faq-answer"><p>Zależy to od topologii, zaworów, automatyki strefowej i wymagań źródła. Stałe ciśnienie bywa użyteczne przy zamykanych pętlach, ale nie jest jedynym poprawnym trybem dla każdej instalacji.</p></div></details>
          <details><summary>Dlaczego rotametry nie pokazują wymaganego przepływu?</summary><div class="rk-pump-faq-answer"><p>Przyczyną może być zbyt mała różnica ciśnień, zapowietrzenie, filtr, zamknięte zawory, siłowniki, błędny kierunek przepływu, zabrudzenie rotametrów albo niewłaściwe równoważenie. Najpierw potrzebna jest diagnostyka, nie większa pompa.</p></div></details>
          <details><summary>Czy większa pompa obiegowa zużywa zawsze więcej prądu?</summary><div class="rk-pump-faq-answer"><p>Pobór zależy od punktu i sposobu regulacji. Pompa elektroniczna może ograniczać obroty, ale przewymiarowanie może przesunąć pracę poza korzystny zakres oraz powodować zbędną różnicę ciśnień.</p></div></details>
          <details><summary>Czy wysoka prędkość w rurze oznacza kawitację?</summary><div class="rk-pump-faq-answer"><p>Nie automatycznie. Wysoka prędkość zwiększa straty i może powodować hałas. Kawitacja zależy od lokalnego ciśnienia, temperatury medium oraz warunków NPSH na wlocie pompy.</p></div></details>
          <details><summary>Czy kalkulator uwzględnia glikol?</summary><div class="rk-pump-faq-answer"><p>Nie. Model przyjmuje właściwości wody około 30°C. Dla glikolu należy zastosować gęstość, lepkość i pojemność cieplną właściwe dla konkretnego rodzaju, stężenia oraz temperatury mieszaniny.</p></div></details>
        </div>
      </section>

      <section class="rk-pump-section" id="rk-pump-sources">
        <span class="rk-pump-kicker">Neutralne źródła techniczne</span>
        <h2>Źródła i podstawa techniczna opracowania</h2>
        <div class="rk-pump-sources">
          <strong>Materiały wykorzystane do weryfikacji metodyki:</strong>
          <ul>
            <li><a href="https://betterbuildingssolutioncenter.energy.gov/better-plants/pumps" target="_blank" rel="noopener nofollow">U.S. Department of Energy — poprawa pracy systemów pompowych i analiza krzywych</a>.</li>
            <li><a href="https://qsel.columbia.edu/assets/uploads/blog/2016/publications/hydronic-system.pdf" target="_blank" rel="noopener nofollow">Columbia University — punkt pracy oraz zachowanie układów hydronicznych</a>.</li>
            <li><a href="https://facilities.upenn.edu/sites/default/files/pdfs/232000_-_hvac_pumps.pdf" target="_blank" rel="noopener nofollow">University of Pennsylvania — krzywe pomp, punkt pracy i warunki NPSH układów otwartych</a>.</li>
            <li><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener nofollow">ISO 11855-3:2021 — projektowanie i wymiarowanie wodnych systemów powierzchniowych</a>.</li>
            <li><a href="https://eur-lex.europa.eu/eli/reg/2009/641/oj/eng" target="_blank" rel="noopener nofollow">EUR-Lex — rozporządzenie dotyczące wymagań ekoprojektu dla bezdławnicowych pomp obiegowych</a>.</li>
            <li><a href="https://www.din.de/de/meta/suche/62730%21search?query=DIN+1988" target="_blank" rel="noopener nofollow">DIN — zakres serii DIN 1988 dotyczący instalacji wody pitnej</a>.</li>
          </ul>
          <p>Charakterystykę, dopuszczalne medium, zakres temperatur, wymagany minimalny przepływ i sposób regulacji trzeba zawsze potwierdzić w dokumentacji konkretnego urządzenia. Artykuł nie rekomenduje producenta ani modelu.</p>
          <div class="rk-pump-update">Weryfikacja i aktualizacja techniczna: 30 sierpnia 2026 r.</div>
        </div>
      </section>

      <section class="rk-pump-author" aria-labelledby="rk-pump-author-title">
        <input type="radio" name="rk-pump-author-tabs" id="rk-pump-author-about" checked>
        <input type="radio" name="rk-pump-author-tabs" id="rk-pump-author-exp">
        <input type="radio" name="rk-pump-author-tabs" id="rk-pump-author-sites">
        <div class="rk-pump-author-head">
          <div><span class="rk-pump-eyebrow"><b></b> Autor opracowania</span><h2 id="rk-pump-author-title">Robert Kucharski</h2><p>Projektant instalacji ogrzewania podłogowego</p></div>
          <span class="rk-pump-author-mark">PROJEKT-OGRZEWANIA.PL</span>
        </div>
        <div class="rk-pump-author-layout">
          <aside class="rk-pump-author-side">
            <div class="rk-pump-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — autor Projekt-Ogrzewania.pl" width="300" height="300" loading="lazy" decoding="async"></div>
            <a class="rk-pump-author-name" href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a>
            <div class="rk-pump-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-pump-author-social-label">Znajdź autora</div>
            <div class="rk-pump-author-social">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4.98 3.5A2.5 2.5 0 1 1 5 8.5a2.5 2.5 0 0 1-.02-5zM3 9h4v12H3zM9 9h3.83v1.64h.06c.53-1.01 1.84-2.08 3.78-2.08C20.71 8.56 21 11.22 21 14.68V21h-4v-5.61c0-1.34-.03-3.06-1.87-3.06-1.87 0-2.16 1.46-2.16 2.96V21H9z"></path></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M13.5 22v-9h3l.45-3.5H13.5V7.26c0-1.01.28-1.7 1.74-1.7H17.1V2.43c-.32-.04-1.43-.13-2.72-.13-2.69 0-4.53 1.64-4.53 4.66V9.5H6.8V13h3.05v9z"></path></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt Ogrzewania w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.77 7.74L23.2 22h-6.24l-4.89-6.39L6.48 22H3.36l7.26-8.3L2.98 2h6.4l4.42 5.84L18.9 2zm-1.09 17.84h1.72L8.44 4.05H6.6z"></path></svg></a>
            </div>
          </aside>
          <div class="rk-pump-author-main">
            <blockquote class="rk-pump-author-quote"><p>Pompa nie ma „przepchnąć wszystkiego”. Ma osiągnąć obliczony przepływ przy obliczonej różnicy ciśnień, pracując w zakresie, w którym instalację da się cicho i stabilnie wyregulować.</p></blockquote>
            <div class="rk-pump-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-pump-author-tab" for="rk-pump-author-about">O autorze</label>
              <label class="rk-pump-author-tab" for="rk-pump-author-exp">Doświadczenie</label>
              <label class="rk-pump-author-tab" for="rk-pump-author-sites">Portale</label>
            </div>
            <div class="rk-pump-author-panel rk-pump-author-panel-about"><p>Robert Kucharski tworzy projekty wodnego ogrzewania podłogowego oraz techniczne opracowania dotyczące strat ciepła, temperatur, przepływów, oporów instalacji i automatyki. W poradnikach wyraźnie oddziela wstępne oszacowanie od parametrów wymagających dokumentacji wykonawczej.</p></div>
            <div class="rk-pump-author-panel rk-pump-author-panel-exp"><p>Zakres pracy obejmuje rozmieszczenie pętli na rzucie, długości obwodów, przepływy, nastawy rozdzielaczy, dobór średnic i pomp oraz analizę współpracy podłogówki ze źródłem ciepła. Punkt pracy każdej pompy jest powiązany z konkretną drogą hydrauliczną.</p></div>
            <div class="rk-pump-author-panel rk-pump-author-panel-sites"><p>Autor rozwija serwisy poświęcone projektowaniu, budowie, remontom i świadomym decyzjom technicznym.</p><div class="rk-pump-site-links"><a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a></div></div>
          </div>
        </div>
      </section>

      <section class="rk-pump-final-cta rk-pump-sales-cta" aria-labelledby="rk-pump-final-cta-title">
        <span class="rk-pump-eyebrow"><b></b> Projekt zamiast doboru z metrażu</span>
        <h2 id="rk-pump-final-cta-title">Otrzymaj projekt z obliczonymi przepływami, oporami i nastawami</h2>
        <p>Każda pętla otrzyma własny przepływ, rozdzielacz nastawy, a pompa wymagany punkt Q/H. Jeżeli układ potrzebuje sprzęgła, bufora, dodatkowej pompy lub grupy mieszającej, rozwiązanie zostanie pokazane w spójnym schemacie.</p>
        <a class="rk-pump-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
      </section>
    </main>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#article",
      "url": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/",
      "headline": "Dobór pompy obiegowej do ogrzewania podłogowego – przepływ, wysokość podnoszenia i kalkulator",
      "description": "Techniczny poradnik i interaktywny analizator przepływu, wysokości podnoszenia oraz punktu pracy pompy obiegowej w instalacji ogrzewania podłogowego.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "author": {"@id": "https://projekt-ogrzewania.pl/author/admin3399/#person"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#webpage"},
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "about": [
        "dobór pompy obiegowej do ogrzewania podłogowego",
        "przepływ pompy obiegowej",
        "wysokość podnoszenia pompy",
        "punkt pracy pompy",
        "krzywa instalacji"
      ],
      "mentions": [
        {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#application"},
        {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#faq"}
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#webpage",
      "url": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/",
      "name": "Dobór pompy obiegowej do ogrzewania podłogowego – kalkulator Q/H",
      "description": "Oblicz przepływ i wysokość podnoszenia pompy do podłogówki oraz porównaj punkt wymagany z charakterystyką urządzenia.",
      "inLanguage": "pl-PL",
      "dateModified": "2026-08-30",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#article"},
        {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#application"},
        {"@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt-Ogrzewania.pl",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Dobór pompy obiegowej do ogrzewania podłogowego",
          "item": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#application",
      "name": "Interaktywny analizator punktu pracy pompy obiegowej",
      "url": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#rk-pump-analyzer",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie oblicza przepływ całkowity, straty krytycznej drogi, wymaganą wysokość podnoszenia i porównuje punkt Q/H z czteropunktową charakterystyką pompy.",
      "featureList": [
        "przepływ z mocy i różnicy temperatur",
        "tryb znanego przepływu projektowego",
        "strata krytycznej pętli i magistrali",
        "wykres krzywej instalacji",
        "porównanie z charakterystyką pompy",
        "orientacyjne przecięcie krzywych"
      ],
      "creator": {"@id": "https://projekt-ogrzewania.pl/author/admin3399/#person"}
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#howto",
      "name": "Jak dobrać pompę obiegową do ogrzewania podłogowego",
      "description": "Procedura od ustalenia mocy i przepływów po sprawdzenie punktu Q/H, uruchomienie oraz zapis nastaw.",
      "inLanguage": "pl-PL",
      "totalTime": "PT45M",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Ustal moc i różnicę temperatur", "text": "Przyjmij projektową moc obsługiwanego obiegu oraz różnicę temperatur właściwą dla instalacji."},
        {"@type": "HowToStep", "position": 2, "name": "Wyznacz przepływy", "text": "Oblicz przepływ całkowity i przypisz osobne wartości pętlom lub grupom odbiorników."},
        {"@type": "HowToStep", "position": 3, "name": "Rozrysuj drogę pompy", "text": "Zaznacz każdy element od tłoczenia przez obieg aż do powrotu na króciec ssawny."},
        {"@type": "HowToStep", "position": 4, "name": "Policz krytyczny obieg", "text": "Porównaj możliwe drogi przy właściwych przepływach i wybierz największą sumę strat."},
        {"@type": "HowToStep", "position": 5, "name": "Wyznacz punkt Q/H", "text": "Przelicz sumę strat w kPa na metry podnoszenia i dodaj tylko jawną, uzasadnioną rezerwę."},
        {"@type": "HowToStep", "position": 6, "name": "Sprawdź krzywą pompy", "text": "Zweryfikuj wymagany punkt na charakterystyce rozważanego urządzenia i wybranego trybu."},
        {"@type": "HowToStep", "position": 7, "name": "Uruchom i wyreguluj", "text": "Wypłucz i odpowietrz instalację, ustaw rotametry oraz sprawdź pełny i częściowy odbiór."},
        {"@type": "HowToStep", "position": 8, "name": "Zapisz nastawy", "text": "Udokumentuj przepływy, tryb pompy, ustawienie, temperatury i wyniki kontroli."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jaka pompa obiegowa do 100 m² podłogówki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie można dobrać jej wyłącznie z powierzchni. Trzeba znać przepływ wynikający z mocy i różnicy temperatur oraz opór krytycznej drogi obejmującej magistralę, rozdzielacz, pętlę, armaturę i ewentualnie źródło."}
        },
        {
          "@type": "Question",
          "name": "Pompa 25-40 czy 25-60 do ogrzewania podłogowego?",
          "acceptedAnswer": {"@type": "Answer", "text": "Wybór zależy od wymaganego punktu Q/H i rzeczywistych krzywych obu urządzeń. Trzeba sprawdzić, która pompa osiąga jednocześnie wymagany przepływ i wysokość w odpowiednim trybie."}
        },
        {
          "@type": "Question",
          "name": "Co oznacza symbol 25-60 na pompie?",
          "acceptedAnswer": {"@type": "Answer", "text": "W typowym oznaczeniu 25 odnosi się do wielkości przyłącza, a 60 do maksymalnej wysokości podnoszenia około 6 m. Nie oznacza to 6 m dostępnych przy każdym przepływie."}
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć przepływ pompy do podłogówki?",
          "acceptedAnswer": {"@type": "Answer", "text": "Dla wody można użyć zależności V̇ = P / (1,163 × ΔT), gdzie P jest mocą w kW, a ΔT różnicą temperatur w K. Jeśli projekt podaje przepływy pętli, należy zsumować wartości obwodów pracujących jednocześnie."}
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć wysokość podnoszenia pompy?",
          "acceptedAnswer": {"@type": "Answer", "text": "Sumuje się straty ciśnienia na krytycznej zamkniętej drodze przy przepływie projektowym. Dla wody wynik w kPa można orientacyjnie podzielić przez 9,81, aby otrzymać metry słupa wody."}
        },
        {
          "@type": "Question",
          "name": "Czy wysokość domu zwiększa wysokość podnoszenia?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie dodaje się jej wprost w prawidłowo napełnionej instalacji zamkniętej, ponieważ słupy zasilania i powrotu się równoważą. Wysokość ma znaczenie dla ciśnienia napełnienia i naczynia przeponowego."}
        },
        {
          "@type": "Question",
          "name": "Czy najdłuższa pętla zawsze jest krytyczna?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Strata zależy również od przepływu, średnicy, dobiegów, armatury i rozdzielacza. Każdą drogę należy policzyć przy jej projektowym przepływie."}
        },
        {
          "@type": "Question",
          "name": "Czy pompa wbudowana w pompę ciepła wystarczy?",
          "acceptedAnswer": {"@type": "Answer", "text": "Może wystarczyć, jeżeli przy wymaganym przepływie pozostawia ciśnienie dyspozycyjne większe od oporu krytycznej drogi instalacji oraz spełnia wymagania minimalnego przepływu źródła."}
        },
        {
          "@type": "Question",
          "name": "Czy potrzebna jest osobna pompa na każdy rozdzielacz?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie automatycznie. Jedna pompa może obsłużyć kilka rozdzielaczy, jeśli zapewnia przepływ sumaryczny oraz pokrywa opór najbardziej niekorzystnego obiegu."}
        },
        {
          "@type": "Question",
          "name": "Jaki tryb pompy do podłogówki: stały czy proporcjonalny?",
          "acceptedAnswer": {"@type": "Answer", "text": "Zależy to od topologii, zaworów, automatyki strefowej i wymagań źródła. Stałe ciśnienie bywa użyteczne przy zamykanych pętlach, ale nie jest jedynym poprawnym trybem dla każdej instalacji."}
        },
        {
          "@type": "Question",
          "name": "Dlaczego rotametry nie pokazują wymaganego przepływu?",
          "acceptedAnswer": {"@type": "Answer", "text": "Przyczyną może być zbyt mała różnica ciśnień, zapowietrzenie, filtr, zamknięte zawory, siłowniki, błędny kierunek przepływu, zabrudzenie rotametrów albo niewłaściwe równoważenie. Najpierw potrzebna jest diagnostyka, nie większa pompa."}
        },
        {
          "@type": "Question",
          "name": "Czy większa pompa obiegowa zużywa zawsze więcej prądu?",
          "acceptedAnswer": {"@type": "Answer", "text": "Pobór zależy od punktu i sposobu regulacji. Pompa elektroniczna może ograniczać obroty, ale przewymiarowanie może przesunąć pracę poza korzystny zakres oraz powodować zbędną różnicę ciśnień."}
        },
        {
          "@type": "Question",
          "name": "Czy wysoka prędkość w rurze oznacza kawitację?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie automatycznie. Wysoka prędkość zwiększa straty i może powodować hałas. Kawitacja zależy od lokalnego ciśnienia, temperatury medium oraz warunków NPSH na wlocie pompy."}
        },
        {
          "@type": "Question",
          "name": "Czy kalkulator uwzględnia glikol?",
          "acceptedAnswer": {"@type": "Answer", "text": "Nie. Model przyjmuje właściwości wody około 30°C. Dla glikolu należy zastosować gęstość, lepkość i pojemność cieplną właściwe dla konkretnego rodzaju, stężenia oraz temperatury mieszaniny."}
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/author/admin3399/#person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/author/admin3399/#person"}
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/author/admin3399/#person"}
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": {"@id": "https://projekt-ogrzewania.pl/author/admin3399/#person"}
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt-Ogrzewania.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>

<script>
(function(){
  "use strict";

  var root=document.getElementById("rk-pump-guide");
  if(!root){return;}

  function byId(id){
    return document.getElementById(id);
  }

  function numberFrom(id){
    var element=byId(id);
    if(!element){return NaN;}
    return Number(String(element.value).replace(",","."));
  }

  function formatNumber(value,digits){
    if(!isFinite(value)){return "—";}
    return value.toLocaleString("pl-PL",{
      minimumFractionDigits:digits,
      maximumFractionDigits:digits
    });
  }

  function setText(id,value){
    var element=byId(id);
    if(element){element.textContent=value;}
  }

  function setStatus(kind,label,message){
    var status=byId("rk-pump-status");
    if(!status){return;}
    status.className="rk-pump-status";
    if(kind==="warning"){status.className+=" is-warning";}
    if(kind==="alert"){status.className+=" is-alert";}
    while(status.firstChild){status.removeChild(status.firstChild);}
    var strong=document.createElement("strong");
    strong.textContent=label;
    status.appendChild(strong);
    status.appendChild(document.createTextNode(" "+message));
  }

  function frictionLoss(lengthMetres,diameterMillimetres,flowCubicMetresSecond){
    var density=995.7;
    var viscosity=0.000798;
    var roughness=0.0000015;
    var diameter=diameterMillimetres/1000;
    var area=Math.PI*diameter*diameter/4;
    var velocity=flowCubicMetresSecond/area;
    var reynolds=density*velocity*diameter/viscosity;
    var frictionFactor=0;

    if(reynolds>0){
      if(reynolds<2300){
        frictionFactor=64/reynolds;
      }else{
        frictionFactor=0.25/Math.pow(Math.log10(roughness/(3.7*diameter)+5.74/Math.pow(reynolds,0.9)),2);
      }
    }

    var pascals=frictionFactor*(lengthMetres/diameter)*(density*velocity*velocity/2);
    return {
      velocity:velocity,
      reynolds:reynolds,
      frictionFactor:frictionFactor,
      kpa:pascals/1000
    };
  }

  function readCurve(){
    var points=[];
    var i;
    for(i=0;i<4;i+=1){
      points.push({
        q:numberFrom("rk-pump-curve-q"+i),
        h:numberFrom("rk-pump-curve-h"+i)
      });
    }
    return points;
  }

  function curveIsValid(points){
    var i;
    for(i=0;i<points.length;i+=1){
      if(!isFinite(points[i].q)){return false;}
      if(!isFinite(points[i].h)){return false;}
      if(points[i].q<0){return false;}
      if(points[i].h<0){return false;}
      if(i>0){
        if(points[i].q<=points[i-1].q){return false;}
        if(points[i].h>points[i-1].h){return false;}
      }
    }
    return true;
  }

  function pumpHeadAt(flow,points){
    if(flow<points[0].q){return null;}
    if(flow>points[points.length-1].q){return null;}
    var i;
    for(i=1;i<points.length;i+=1){
      if(flow<=points[i].q){
        var span=points[i].q-points[i-1].q;
        var share=(flow-points[i-1].q)/span;
        return points[i-1].h+share*(points[i].h-points[i-1].h);
      }
    }
    return points[points.length-1].h;
  }

  function systemHeadAt(flow,designFlow,designHead){
    if(designFlow<=0){return 0;}
    return designHead*Math.pow(flow/designFlow,2);
  }

  function findIntersection(points,designFlow,designHead){
    var lower=points[0].q;
    if(lower<0){lower=0;}
    var upper=points[points.length-1].q;
    if(upper<=lower){return null;}

    var previousQ=lower;
    var previousPump=pumpHeadAt(previousQ,points);
    var previousDifference=previousPump-systemHeadAt(previousQ,designFlow,designHead);
    var steps=800;
    var i;

    if(previousDifference===0){
      return {q:previousQ,h:previousPump};
    }

    for(i=1;i<=steps;i+=1){
      var currentQ=lower+(upper-lower)*i/steps;
      var currentPump=pumpHeadAt(currentQ,points);
      var currentDifference=currentPump-systemHeadAt(currentQ,designFlow,designHead);

      if(currentDifference===0){
        return {q:currentQ,h:currentPump};
      }

      if(previousDifference*currentDifference<0){
        var weight=Math.abs(previousDifference)/(Math.abs(previousDifference)+Math.abs(currentDifference));
        var crossingQ=previousQ+(currentQ-previousQ)*weight;
        return {
          q:crossingQ,
          h:systemHeadAt(crossingQ,designFlow,designHead)
        };
      }

      previousQ=currentQ;
      previousDifference=currentDifference;
    }
    return null;
  }

  function niceMaximum(value){
    if(!isFinite(value)){return 1;}
    if(value<=0){return 1;}
    if(value<=10){return Math.ceil(value*2)/2;}
    return Math.ceil(value/5)*5;
  }

  function renderChart(designFlow,designHead,points,showCurve,intersection){
    var chartLeft=70;
    var chartRight=660;
    var chartTop=30;
    var chartBottom=360;
    var curveMaximumFlow=0;
    var curveMaximumHead=0;
    var i;

    if(showCurve){
      curveMaximumFlow=points[points.length-1].q;
      for(i=0;i<points.length;i+=1){
        if(points[i].h>curveMaximumHead){curveMaximumHead=points[i].h;}
      }
    }

    var xMaximum=niceMaximum(Math.max(designFlow*1.55,curveMaximumFlow*1.12,0.5));
    var yMaximum=niceMaximum(Math.max(designHead*1.35,curveMaximumHead*1.15,1));

    function xPosition(flow){
      return chartLeft+(chartRight-chartLeft)*flow/xMaximum;
    }

    function yPosition(head){
      return chartBottom-(chartBottom-chartTop)*head/yMaximum;
    }

    for(i=0;i<=5;i+=1){
      setText("rk-pump-x"+i,formatNumber(xMaximum*i/5,1));
      setText("rk-pump-y"+i,formatNumber(yMaximum*i/5,1));
    }

    var systemLimit=xMaximum;
    if(designHead>0){
      var limitFromHeight=designFlow*Math.sqrt(yMaximum/designHead);
      if(limitFromHeight<systemLimit){systemLimit=limitFromHeight;}
    }

    var systemPoints=[];
    var samples=60;
    for(i=0;i<=samples;i+=1){
      var systemFlow=systemLimit*i/samples;
      var systemHead=systemHeadAt(systemFlow,designFlow,designHead);
      systemPoints.push(formatNumber(xPosition(systemFlow),2).replace(",",".")+","+formatNumber(yPosition(systemHead),2).replace(",","."));
    }
    byId("rk-pump-system-line").setAttribute("points",systemPoints.join(" "));

    var designDot=byId("rk-pump-design-dot");
    designDot.setAttribute("cx",String(xPosition(designFlow)));
    designDot.setAttribute("cy",String(yPosition(designHead)));

    var deviceLine=byId("rk-pump-device-line");
    var intersectionDot=byId("rk-pump-intersection-dot");

    if(showCurve){
      var devicePoints=[];
      for(i=0;i<points.length;i+=1){
        devicePoints.push(formatNumber(xPosition(points[i].q),2).replace(",",".")+","+formatNumber(yPosition(points[i].h),2).replace(",","."));
      }
      deviceLine.setAttribute("points",devicePoints.join(" "));
      deviceLine.style.opacity="1";

      if(intersection){
        intersectionDot.setAttribute("cx",String(xPosition(intersection.q)));
        intersectionDot.setAttribute("cy",String(yPosition(intersection.h)));
        intersectionDot.style.opacity="1";
      }else{
        intersectionDot.style.opacity="0";
      }
    }else{
      deviceLine.style.opacity="0";
      intersectionDot.style.opacity="0";
    }
  }

  function setLossBar(id,valueId,value,total){
    var percentage=0;
    if(total>0){percentage=value/total*100;}
    if(percentage<0){percentage=0;}
    if(percentage>100){percentage=100;}
    var bar=byId(id);
    if(bar){bar.style.width=percentage+"%";}
    setText(valueId,formatNumber(value,1)+" kPa");
  }

  function syncModes(){
    var calculationMode=byId("rk-pump-input-mode").value;
    var powerDisabled=calculationMode!=="power";
    byId("rk-pump-input-power").disabled=powerDisabled;
    byId("rk-pump-input-dt").disabled=powerDisabled;
    byId("rk-pump-input-flow").disabled=!powerDisabled;

    var curveEnabled=byId("rk-pump-input-curve-mode").value==="yes";
    var curveInputs=byId("rk-pump-curve-fields").querySelectorAll("input");
    var i;
    for(i=0;i<curveInputs.length;i+=1){
      curveInputs[i].disabled=!curveEnabled;
    }
  }

  function calculate(){
    var calculationMode=byId("rk-pump-input-mode").value;
    var curveEnabled=byId("rk-pump-input-curve-mode").value==="yes";
    var power=numberFrom("rk-pump-input-power");
    var temperatureDifference=numberFrom("rk-pump-input-dt");
    var totalFlow=numberFrom("rk-pump-input-flow");
    var loopCount=numberFrom("rk-pump-input-loops");
    var criticalLoopFlowLitres=numberFrom("rk-pump-input-loop-flow");
    var loopLength=numberFrom("rk-pump-input-loop-length");
    var loopDiameter=numberFrom("rk-pump-input-loop-id");
    var mainLength=numberFrom("rk-pump-input-main-length");
    var mainDiameter=numberFrom("rk-pump-input-main-id");
    var extraLoss=numberFrom("rk-pump-input-extra-loss");
    var margin=numberFrom("rk-pump-input-margin");

    if(calculationMode==="power"){
      if(!isFinite(power)){
        setStatus("alert","Brak wyniku:","wprowadź poprawną projektową moc instalacji.");
        return;
      }
      if(!isFinite(temperatureDifference)){
        setStatus("alert","Brak wyniku:","wprowadź poprawną projektową różnicę temperatur.");
        return;
      }
      if(power<=0){
        setStatus("alert","Brak wyniku:","projektowa moc musi być większa od zera.");
        return;
      }
      if(temperatureDifference<=0){
        setStatus("alert","Brak wyniku:","różnica temperatur musi być większa od zera.");
        return;
      }
      totalFlow=power/(1.163*temperatureDifference);
      byId("rk-pump-input-flow").value=totalFlow.toFixed(3);
    }

    var basicValues=[totalFlow,loopCount,criticalLoopFlowLitres,loopLength,loopDiameter,mainLength,mainDiameter,extraLoss,margin];
    var i;
    for(i=0;i<basicValues.length;i+=1){
      if(!isFinite(basicValues[i])){
        setStatus("alert","Brak wyniku:","uzupełnij wszystkie pola liczbowymi wartościami.");
        return;
      }
    }

    if(totalFlow<=0){
      setStatus("alert","Brak wyniku:","przepływ całkowity musi być większy od zera.");
      return;
    }
    if(loopCount<1){
      setStatus("alert","Brak wyniku:","liczba czynnych pętli musi wynosić co najmniej jeden.");
      return;
    }
    if(criticalLoopFlowLitres<=0){
      setStatus("alert","Brak wyniku:","przepływ krytycznej pętli musi być większy od zera.");
      return;
    }
    if(loopLength<=0){
      setStatus("alert","Brak wyniku:","długość krytycznej pętli musi być większa od zera.");
      return;
    }
    if(loopDiameter<=0){
      setStatus("alert","Brak wyniku:","średnica wewnętrzna pętli musi być większa od zera.");
      return;
    }
    if(mainLength<0){
      setStatus("alert","Brak wyniku:","długość magistrali nie może być ujemna.");
      return;
    }
    if(mainDiameter<=0){
      setStatus("alert","Brak wyniku:","średnica wewnętrzna magistrali musi być większa od zera.");
      return;
    }
    if(extraLoss<0){
      setStatus("alert","Brak wyniku:","dodatkowe opory nie mogą być ujemne.");
      return;
    }
    if(margin<0){
      setStatus("alert","Brak wyniku:","rezerwa nie może być ujemna.");
      return;
    }

    var totalFlowLitres=totalFlow*1000/60;
    if(criticalLoopFlowLitres>totalFlowLitres){
      setStatus("alert","Niespójne dane:","przepływ jednej pętli nie może być większy od przepływu całej instalacji.");
      return;
    }

    var loopFlowCubicMetresSecond=criticalLoopFlowLitres/60000;
    var mainFlowCubicMetresSecond=totalFlow/3600;
    var loopResult=frictionLoss(loopLength,loopDiameter,loopFlowCubicMetresSecond);
    var mainResult=frictionLoss(mainLength,mainDiameter,mainFlowCubicMetresSecond);
    var totalLoss=loopResult.kpa+mainResult.kpa+extraLoss;
    var requiredHead=totalLoss/9.81*(1+margin/100);
    var averageLoopFlow=totalFlowLitres/loopCount;

    setText("rk-pump-result-flow",formatNumber(totalFlow,2)+" m³/h");
    setText("rk-pump-result-head",formatNumber(requiredHead,2)+" m");
    setText("rk-pump-result-flow-litres",formatNumber(totalFlowLitres,2)+" l/min");
    setText("rk-pump-result-average-loop",formatNumber(averageLoopFlow,2)+" l/min");
    setText("rk-pump-result-loop-velocity",formatNumber(loopResult.velocity,2)+" m/s");
    setText("rk-pump-result-main-velocity",formatNumber(mainResult.velocity,2)+" m/s");
    setText("rk-pump-result-loop-loss",formatNumber(loopResult.kpa,1)+" kPa");
    setText("rk-pump-result-main-loss",formatNumber(mainResult.kpa,1)+" kPa");
    setText("rk-pump-result-total-loss",formatNumber(totalLoss,1)+" kPa");
    setText("rk-pump-result-point",formatNumber(totalFlow,2)+" / "+formatNumber(requiredHead,2));

    setLossBar("rk-pump-bar-loop","rk-pump-bar-loop-value",loopResult.kpa,totalLoss);
    setLossBar("rk-pump-bar-main","rk-pump-bar-main-value",mainResult.kpa,totalLoss);
    setLossBar("rk-pump-bar-extra","rk-pump-bar-extra-value",extraLoss,totalLoss);

    var points=readCurve();
    var validCurve=true;
    var intersection=null;
    var availableHead=null;

    if(curveEnabled){
      validCurve=curveIsValid(points);
      if(validCurve){
        availableHead=pumpHeadAt(totalFlow,points);
        intersection=findIntersection(points,totalFlow,requiredHead);
      }
    }

    if(curveEnabled){
      if(validCurve){
        if(availableHead===null){
          setText("rk-pump-result-device-head","poza zakresem Q");
        }else{
          setText("rk-pump-result-device-head",formatNumber(availableHead,2)+" m");
        }
        if(intersection){
          setText("rk-pump-result-intersection",formatNumber(intersection.q,2)+" / "+formatNumber(intersection.h,2));
        }else{
          setText("rk-pump-result-intersection","brak w zakresie");
        }
      }else{
        setText("rk-pump-result-device-head","nieprawidłowa krzywa");
        setText("rk-pump-result-intersection","—");
      }
    }else{
      setText("rk-pump-result-device-head","nie sprawdzano");
      setText("rk-pump-result-intersection","nie sprawdzano");
    }

    var showCurve=false;
    if(curveEnabled){showCurve=validCurve;}
    renderChart(totalFlow,requiredHead,points,showCurve,intersection);

    var velocityNote="";
    if(loopResult.velocity>0.6){
      velocityNote+=" Prędkość w krytycznej pętli jest wysoka dla typowej instalacji mieszkaniowej; sprawdź hałas i opory.";
    }
    if(mainResult.velocity>1){
      velocityNote+=" Prędkość w magistrali wymaga sprawdzenia pod kątem hałasu i strat ciśnienia.";
    }

    if(!curveEnabled){
      setStatus("normal","Wymagany punkt:","obliczono Q i H instalacji. Aby ocenić urządzenie, włącz porównanie i wpisz punkty z jego rzeczywistej charakterystyki."+velocityNote);
      return;
    }

    if(!validCurve){
      setStatus("alert","Nieprawidłowa charakterystyka:","wartości Q muszą rosnąć, a H nie może rosnąć pomiędzy kolejnymi punktami. Wpisz cztery punkty z jednego biegu lub trybu pompy.");
      return;
    }

    if(availableHead===null){
      setStatus("alert","Punkt poza zakresem:","wymagany przepływ nie mieści się pomiędzy skrajnymi wartościami Q wprowadzonej charakterystyki. Uzupełnij szerszy zakres danych lub sprawdź inne ustawienie pompy."+velocityNote);
      return;
    }

    if(availableHead<requiredHead*0.95){
      setStatus("alert","Niewystarczająca charakterystyka:","przy wymaganym przepływie wprowadzona krzywa daje za małą wysokość podnoszenia. Rozważ inne ustawienie lub urządzenie dopiero po sprawdzeniu wszystkich oporów."+velocityNote);
      return;
    }

    if(availableHead<requiredHead*1.08){
      setStatus("warning","Wynik graniczny:","krzywa przechodzi bardzo blisko wymaganego punktu. Potwierdź dokładny wykres producenta, tolerancje, opory urządzeń i stan częściowego odbioru."+velocityNote);
      return;
    }

    setStatus("normal","Wstępna zgodność:","wprowadzona charakterystyka osiąga wymagany punkt Q/H. Ostateczny dobór wymaga potwierdzenia właściwego trybu, sprawności, minimalnego przepływu źródła i pracy po regulacji."+velocityNote);
  }

  var inputIds=[
    "rk-pump-input-mode",
    "rk-pump-input-power",
    "rk-pump-input-dt",
    "rk-pump-input-flow",
    "rk-pump-input-loops",
    "rk-pump-input-loop-flow",
    "rk-pump-input-loop-length",
    "rk-pump-input-loop-id",
    "rk-pump-input-main-length",
    "rk-pump-input-main-id",
    "rk-pump-input-extra-loss",
    "rk-pump-input-margin",
    "rk-pump-input-curve-mode",
    "rk-pump-curve-q0",
    "rk-pump-curve-h0",
    "rk-pump-curve-q1",
    "rk-pump-curve-h1",
    "rk-pump-curve-q2",
    "rk-pump-curve-h2",
    "rk-pump-curve-q3",
    "rk-pump-curve-h3"
  ];
  var initialValues={};
  var i;
  for(i=0;i<inputIds.length;i+=1){
    initialValues[inputIds[i]]=byId(inputIds[i]).value;
  }

  function resetCalculator(){
    var index;
    for(index=0;index<inputIds.length;index+=1){
      byId(inputIds[index]).value=initialValues[inputIds[index]];
    }
    syncModes();
    calculate();
  }

  var interactiveFields=root.querySelectorAll("input, select");
  for(i=0;i<interactiveFields.length;i+=1){
    interactiveFields[i].addEventListener("change",function(){
      syncModes();
      calculate();
    });
    interactiveFields[i].addEventListener("input",function(){
      calculate();
    });
  }

  byId("rk-pump-calculate").addEventListener("click",calculate);
  byId("rk-pump-reset").addEventListener("click",resetCalculator);

  function updateProgress(){
    var progress=byId("rk-pump-progress");
    if(!progress){return;}
    var rectangle=root.getBoundingClientRect();
    var start=window.pageYOffset+rectangle.top;
    var length=root.offsetHeight-window.innerHeight;
    var travelled=window.pageYOffset-start;
    var percentage=0;
    if(length>0){percentage=travelled/length*100;}
    if(percentage<0){percentage=0;}
    if(percentage>100){percentage=100;}
    progress.style.width=percentage+"%";
  }

  window.addEventListener("scroll",updateProgress,{passive:true});
  window.addEventListener("resize",updateProgress);

  syncModes();
  calculate();
  updateProgress();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Kalkulator doboru pompy obiegowej w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Kompleksowy kalkulator ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 01 Mar 2026 15:07:17 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[długość rury pex]]></category>
		<category><![CDATA[instalacja podłogowa krok po kroku]]></category>
		<category><![CDATA[kalkulator ogrzewania podłogowego]]></category>
		<category><![CDATA[moc ogrzewania podłogowego]]></category>
		<category><![CDATA[obliczenia ogrzewania podłogowego]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[przepływy w pętlach]]></category>
		<category><![CDATA[rozdzielacz podłogówki]]></category>
		<category><![CDATA[rozstaw rur podłogówka]]></category>
		<category><![CDATA[temperatura zasilania podłogówka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3552</guid>

					<description><![CDATA[<p>Ile metrów rury kupić? Jak dobrać rozstaw pętli? Czy temperatura 35°C wystarczy, aby ogrzać cały dom? Kompleksowy kalkulator ogrzewania podłogowego pozwala przełożyć te pytania na konkretne liczby. W artykule znajdziesz nie tylko wzory i gotowe przeliczniki, ale także realny przykład mieszkania 70 m² rozpisany krok po kroku. To praktyczne narzędzie dla inwestorów, którzy chcą świadomie zaplanować instalację i uniknąć kosztownych błędów wykonawczych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">Kompleksowy kalkulator ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-floor-calc-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-red: #e34837;
    --rk-yellow: #f3bd3f;
    --rk-yellow-soft: #fff8df;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-ink: #1f2937;
    --rk-text: #475968;
    --rk-muted: #6b7d89;
    --rk-line: #d9e7ed;
    --rk-soft: #f4f9fb;
    --rk-warm: #fff3eb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.76;
  }

  #rk-floor-calc-guide,
  #rk-floor-calc-guide * {
    box-sizing: border-box;
  }

  #rk-floor-calc-guide img,
  #rk-floor-calc-guide svg {
    max-width: 100%;
  }

  #rk-floor-calc-guide button,
  #rk-floor-calc-guide input,
  #rk-floor-calc-guide select,
  #rk-floor-calc-guide label,
  #rk-floor-calc-guide summary,
  #rk-floor-calc-guide a {
    font: inherit;
    -webkit-tap-highlight-color: transparent;
  }

  #rk-floor-calc-guide button,
  #rk-floor-calc-guide select,
  #rk-floor-calc-guide input {
    max-width: 100%;
  }

  #rk-floor-calc-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-floor-calc-guide a:hover,
  #rk-floor-calc-guide a:focus-visible {
    color: var(--rk-red);
  }

  #rk-floor-calc-guide h2,
  #rk-floor-calc-guide h3,
  #rk-floor-calc-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -0.035em;
    line-height: 1.16;
  }

  #rk-floor-calc-guide h2 {
    margin-bottom: 18px;
    font-size: clamp(1.65rem, 3.7vw, 2.62rem);
  }

  #rk-floor-calc-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(1.12rem, 2.4vw, 1.48rem);
  }

  #rk-floor-calc-guide h4 {
    margin-bottom: 8px;
    font-size: 1.03rem;
    letter-spacing: -0.018em;
  }

  #rk-floor-calc-guide h2::before,
  #rk-floor-calc-guide h2::after,
  #rk-floor-calc-guide h3::before,
  #rk-floor-calc-guide h3::after,
  #rk-floor-calc-guide h4::before,
  #rk-floor-calc-guide h4::after {
    content: none !important;
    display: none !important;
  }

  #rk-floor-calc-guide p {
    margin: 0 0 1.18em;
    color: var(--rk-text);
  }

  #rk-floor-calc-guide strong {
    color: var(--rk-dark);
  }

  #rk-floor-calc-guide section[id] {
    scroll-margin-top: 28px;
  }

  #rk-floor-calc-guide .rk-calc-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 30px;
    background: var(--rk-white);
    box-shadow: 0 25px 70px rgba(16, 37, 54, 0.12);
  }

  #rk-floor-calc-guide .rk-calc-progress-track {
    position: sticky;
    z-index: 30;
    top: 0;
    width: 100%;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.92);
  }

  #rk-floor-calc-guide .rk-calc-progress {
    width: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-blue), var(--rk-yellow), var(--rk-orange));
  }

  #rk-floor-calc-guide .rk-calc-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(38px, 6.5vw, 78px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 16%, rgba(40, 201, 218, 0.3), transparent 26%),
      radial-gradient(circle at 81% 86%, rgba(255, 116, 56, 0.25), transparent 29%),
      linear-gradient(135deg, #0d2230 0%, #143b50 58%, #09627b 100%);
  }

  #rk-floor-calc-guide .rk-calc-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    right: -145px;
    bottom: -195px;
    width: 520px;
    height: 520px;
    border: 70px solid rgba(255, 255, 255, 0.045);
    border-radius: 50%;
    box-shadow: 0 0 0 54px rgba(255, 255, 255, 0.025);
    pointer-events: none;
  }

  #rk-floor-calc-guide .rk-calc-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.14fr) minmax(285px, 0.86fr);
    gap: clamp(28px, 5vw, 62px);
    align-items: center;
  }

  #rk-floor-calc-guide .rk-calc-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 23px;
    padding: 8px 15px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #a3f4ff;
    background: rgba(255, 255, 255, 0.06);
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    line-height: 1.3;
    text-transform: uppercase;
  }

  #rk-floor-calc-guide .rk-calc-eyebrow b {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 116, 56, 0.17);
  }

  #rk-floor-calc-guide .rk-calc-hero-title {
    max-width: 820px;
    margin: 0 0 24px;
    color: var(--rk-white);
    font-size: clamp(2.03rem, 5vw, 4rem);
    font-weight: 950;
    letter-spacing: -0.055em;
    line-height: 1.02;
  }

  #rk-floor-calc-guide .rk-calc-hero-lead {
    max-width: 810px;
    margin-bottom: 26px;
    color: #dcecf4;
    font-size: clamp(1.02rem, 2.1vw, 1.24rem);
    line-height: 1.62;
  }

  #rk-floor-calc-guide .rk-calc-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 22px;
    color: #c9dce5;
    font-size: 0.81rem;
    font-weight: 780;
  }

  #rk-floor-calc-guide .rk-calc-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  #rk-floor-calc-guide .rk-calc-meta i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rk-orange);
  }

  #rk-floor-calc-guide .rk-calc-hero-panel {
    padding: 25px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(7px);
  }

  #rk-floor-calc-guide .rk-calc-hero-panel small {
    display: block;
    margin-bottom: 14px;
    color: #8df1fc;
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-floor-calc-guide .rk-calc-hero-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
  }

  #rk-floor-calc-guide .rk-calc-hero-stat {
    min-width: 0;
    padding: 16px 9px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.09);
    text-align: center;
  }

  #rk-floor-calc-guide .rk-calc-hero-stat span {
    display: block;
    color: #c7dae4;
    font-size: 0.59rem;
    font-weight: 850;
    line-height: 1.35;
    text-transform: uppercase;
  }

  #rk-floor-calc-guide .rk-calc-hero-stat strong {
    display: block;
    margin-top: 5px;
    color: var(--rk-white);
    font-size: 1.22rem;
    font-weight: 950;
  }

  #rk-floor-calc-guide .rk-calc-hero-result {
    margin-top: 14px;
    padding: 14px;
    border-radius: 15px;
    color: var(--rk-white);
    background: rgba(40, 201, 218, 0.16);
    font-size: 0.79rem;
    font-weight: 850;
    text-align: center;
  }

  #rk-floor-calc-guide .rk-calc-nav {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    padding: 15px clamp(20px, 5vw, 56px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
    scrollbar-width: thin;
  }

  #rk-floor-calc-guide .rk-calc-nav a {
    flex: 0 0 auto;
    padding: 8px 13px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 0.73rem;
    font-weight: 880;
    text-decoration: none;
    white-space: nowrap;
  }

  #rk-floor-calc-guide .rk-calc-nav a:hover,
  #rk-floor-calc-guide .rk-calc-nav a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-floor-calc-guide .rk-calc-body {
    padding: clamp(28px, 6vw, 70px);
  }

  #rk-floor-calc-guide .rk-calc-section {
    margin-bottom: clamp(56px, 8vw, 94px);
  }

  #rk-floor-calc-guide .rk-calc-section:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-kicker {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.11em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  #rk-floor-calc-guide .rk-calc-lead {
    max-width: 960px;
    color: #34495a;
    font-size: clamp(1.02rem, 2vw, 1.2rem);
    line-height: 1.75;
  }

  #rk-floor-calc-guide .rk-calc-dropcap::first-letter {
    float: left;
    margin: 0.1em 0.12em 0 0;
    color: var(--rk-orange);
    font-size: 4.1rem;
    font-weight: 950;
    line-height: 0.78;
  }

  #rk-floor-calc-guide .rk-calc-answer {
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(260px, 0.82fr);
    gap: 20px;
    margin-top: 28px;
  }

  #rk-floor-calc-guide .rk-calc-answer-main,
  #rk-floor-calc-guide .rk-calc-answer-side {
    padding: clamp(24px, 4vw, 38px);
    border: 1px solid var(--rk-line);
    border-radius: 22px;
  }

  #rk-floor-calc-guide .rk-calc-answer-main {
    background: linear-gradient(145deg, var(--rk-white), var(--rk-cyan-soft));
  }

  #rk-floor-calc-guide .rk-calc-answer-side {
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-floor-calc-guide .rk-calc-answer-side h3,
  #rk-floor-calc-guide .rk-calc-answer-side p,
  #rk-floor-calc-guide .rk-calc-answer-side strong {
    color: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-answer-side p:last-child,
  #rk-floor-calc-guide .rk-calc-answer-main p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-grid-2,
  #rk-floor-calc-guide .rk-calc-grid-3,
  #rk-floor-calc-guide .rk-calc-grid-4 {
    display: grid;
    gap: 18px;
  }

  #rk-floor-calc-guide .rk-calc-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-floor-calc-guide .rk-calc-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-floor-calc-guide .rk-calc-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-floor-calc-guide .rk-calc-card {
    min-width: 0;
    padding: 23px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
    box-shadow: 0 10px 26px rgba(16, 37, 54, 0.05);
  }

  #rk-floor-calc-guide .rk-calc-card-number {
    display: inline-flex;
    min-width: 50px;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    padding: 8px;
    border-radius: 15px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.82rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-floor-calc-guide .rk-calc-card p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-scope {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 26px;
  }

  #rk-floor-calc-guide .rk-calc-scope-panel {
    padding: clamp(24px, 4vw, 34px);
    border: 1px solid var(--rk-line);
    border-radius: 23px;
  }

  #rk-floor-calc-guide .rk-calc-scope-panel.is-does {
    background: var(--rk-green-soft);
  }

  #rk-floor-calc-guide .rk-calc-scope-panel.is-does-not {
    background: var(--rk-yellow-soft);
  }

  #rk-floor-calc-guide .rk-calc-checks {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  #rk-floor-calc-guide .rk-calc-checks li {
    position: relative;
    padding-left: 32px;
    color: var(--rk-text);
  }

  #rk-floor-calc-guide .rk-calc-checks li::before {
    content: "✓";
    position: absolute;
    top: 0.03em;
    left: 0;
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    font-size: 0.7rem;
    font-weight: 950;
  }

  #rk-floor-calc-guide .rk-calc-scope-panel.is-does-not .rk-calc-checks li::before {
    content: "!";
    background: var(--rk-orange);
  }

  #rk-floor-calc-guide .rk-calc-tool {
    overflow: hidden;
    border: 1px solid #b9dce7;
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 24px 64px rgba(8, 92, 119, 0.13);
  }

  #rk-floor-calc-guide .rk-calc-tool-head {
    padding: clamp(30px, 5vw, 52px);
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 16%, rgba(40, 201, 218, 0.28), transparent 25%),
      linear-gradient(125deg, var(--rk-dark), #164b63);
  }

  #rk-floor-calc-guide .rk-calc-tool-head h2,
  #rk-floor-calc-guide .rk-calc-tool-head p {
    color: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-tool-head p {
    max-width: 900px;
    margin-bottom: 0;
    color: #d8e9f1;
  }

  #rk-floor-calc-guide .rk-calc-global {
    padding: clamp(24px, 4vw, 38px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-soft);
  }

  #rk-floor-calc-guide .rk-calc-global h3 {
    margin-bottom: 20px;
  }

  #rk-floor-calc-guide .rk-calc-fields {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
  }

  #rk-floor-calc-guide .rk-calc-field {
    min-width: 0;
  }

  #rk-floor-calc-guide .rk-calc-field label {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-floor-calc-guide .rk-calc-field input,
  #rk-floor-calc-guide .rk-calc-field select {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #bdd4de;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.84rem;
    font-weight: 750;
    outline: none;
  }

  #rk-floor-calc-guide .rk-calc-field input:focus,
  #rk-floor-calc-guide .rk-calc-field select:focus {
    border-color: var(--rk-blue);
    box-shadow: 0 0 0 4px rgba(7, 143, 190, 0.12);
  }

  #rk-floor-calc-guide .rk-calc-field small {
    display: block;
    margin-top: 5px;
    color: var(--rk-muted);
    font-size: 0.63rem;
    line-height: 1.45;
  }

  #rk-floor-calc-guide .rk-calc-rooms-wrap {
    padding: clamp(24px, 4vw, 38px);
  }

  #rk-floor-calc-guide .rk-calc-rooms-head {
    display: flex;
    gap: 16px;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
  }

  #rk-floor-calc-guide .rk-calc-rooms-head h3 {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-room-list {
    display: grid;
    gap: 16px;
  }

  #rk-floor-calc-guide .rk-calc-room {
    position: relative;
    display: grid;
    grid-template-columns: 1.25fr repeat(7, minmax(108px, 1fr)) auto;
    gap: 12px;
    align-items: end;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 8px 24px rgba(16, 37, 54, 0.045);
  }

  #rk-floor-calc-guide .rk-calc-room-index {
    position: absolute;
    top: -10px;
    left: 18px;
    display: inline-flex;
    min-width: 32px;
    height: 24px;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 0.64rem;
    font-weight: 950;
  }

  #rk-floor-calc-guide .rk-calc-room-remove,
  #rk-floor-calc-guide .rk-calc-add-room,
  #rk-floor-calc-guide .rk-calc-recalculate,
  #rk-floor-calc-guide .rk-calc-reset {
    min-height: 48px;
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 900;
    line-height: 1.25;
  }

  #rk-floor-calc-guide .rk-calc-room-remove {
    width: 48px;
    padding: 0;
    color: var(--rk-red);
    border: 1px solid #f2c7c1;
    background: #fff7f6;
    font-size: 1.2rem;
  }

  #rk-floor-calc-guide .rk-calc-room-remove:hover,
  #rk-floor-calc-guide .rk-calc-room-remove:focus-visible {
    color: var(--rk-white);
    background: var(--rk-red);
  }

  #rk-floor-calc-guide .rk-calc-tool-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
  }

  #rk-floor-calc-guide .rk-calc-add-room,
  #rk-floor-calc-guide .rk-calc-reset {
    padding: 12px 18px;
    color: var(--rk-dark);
    border: 1px solid #bcd5df;
    background: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-recalculate {
    padding: 12px 22px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-orange), var(--rk-red));
    box-shadow: 0 10px 24px rgba(227, 72, 55, 0.2);
  }

  #rk-floor-calc-guide .rk-calc-add-room:hover,
  #rk-floor-calc-guide .rk-calc-add-room:focus-visible,
  #rk-floor-calc-guide .rk-calc-reset:hover,
  #rk-floor-calc-guide .rk-calc-reset:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-floor-calc-guide .rk-calc-recalculate:hover,
  #rk-floor-calc-guide .rk-calc-recalculate:focus-visible {
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

  #rk-floor-calc-guide .rk-calc-results {
    padding: clamp(24px, 4vw, 38px);
    border-top: 1px solid var(--rk-line);
    background: #fbfdfe;
  }

  #rk-floor-calc-guide .rk-calc-result-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 22px;
  }

  #rk-floor-calc-guide .rk-calc-result-card {
    min-width: 0;
    padding: 19px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-result-card.is-main {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: linear-gradient(135deg, var(--rk-blue), #0ca8c6);
  }

  #rk-floor-calc-guide .rk-calc-result-card small {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-muted);
    font-size: 0.67rem;
    font-weight: 850;
    line-height: 1.4;
  }

  #rk-floor-calc-guide .rk-calc-result-card.is-main small {
    color: #d9f9ff;
  }

  #rk-floor-calc-guide .rk-calc-result-number {
    color: var(--rk-dark);
    font-size: clamp(1.22rem, 2.5vw, 1.76rem);
    font-weight: 950;
    letter-spacing: -0.04em;
    line-height: 1.05;
    overflow-wrap: anywhere;
  }

  #rk-floor-calc-guide .rk-calc-result-card.is-main .rk-calc-result-number {
    color: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-status {
    display: grid;
    gap: 5px;
    margin-bottom: 22px;
    padding: 17px 19px;
    border: 1px solid #b8ddcf;
    border-radius: 16px;
    color: var(--rk-green);
    background: var(--rk-green-soft);
  }

  #rk-floor-calc-guide .rk-calc-status.is-warning {
    color: #8a5d00;
    border-color: #ead18b;
    background: var(--rk-yellow-soft);
  }

  #rk-floor-calc-guide .rk-calc-status.is-danger {
    color: #a43c30;
    border-color: #efc2bc;
    background: #fff2f0;
  }

  #rk-floor-calc-guide .rk-calc-status strong {
    color: currentColor;
    font-size: 0.9rem;
  }

  #rk-floor-calc-guide .rk-calc-status span {
    color: currentColor;
    font-size: 0.75rem;
    line-height: 1.55;
  }

  #rk-floor-calc-guide .rk-calc-tabs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    margin-bottom: 0;
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
  }

  #rk-floor-calc-guide .rk-calc-tab {
    min-height: 52px;
    padding: 12px 8px;
    border: 0;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.7rem;
    font-weight: 900;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-floor-calc-guide .rk-calc-tab + .rk-calc-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-floor-calc-guide .rk-calc-tab.is-active {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-floor-calc-guide .rk-calc-tab-panel {
    display: none;
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
    background: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-tab-panel.is-active {
    display: block;
  }

  #rk-floor-calc-guide .rk-calc-table-wrap {
    width: 100%;
  }

  #rk-floor-calc-guide table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    font-size: 0.74rem;
  }

  #rk-floor-calc-guide th,
  #rk-floor-calc-guide td {
    padding: 12px 11px;
    border-bottom: 1px solid var(--rk-line);
    text-align: left;
    vertical-align: top;
  }

  #rk-floor-calc-guide th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: 0.67rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-floor-calc-guide td {
    color: var(--rk-text);
    background: var(--rk-white);
  }

  #rk-floor-calc-guide tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-floor-calc-guide tr:last-child td {
    border-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-result-note {
    margin: 0;
    padding: 15px 17px;
    border-left: 5px solid var(--rk-blue);
    border-radius: 0 12px 12px 0;
    color: var(--rk-text);
    background: var(--rk-cyan-soft);
    font-size: 0.76rem;
  }

  #rk-floor-calc-guide .rk-calc-bars {
    display: grid;
    gap: 14px;
  }

  #rk-floor-calc-guide .rk-calc-bar-row {
    display: grid;
    grid-template-columns: minmax(100px, 0.72fr) minmax(160px, 2fr) minmax(76px, auto);
    gap: 12px;
    align-items: center;
  }

  #rk-floor-calc-guide .rk-calc-bar-name {
    color: var(--rk-dark);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.35;
  }

  #rk-floor-calc-guide .rk-calc-bar-track {
    height: 14px;
    overflow: hidden;
    border-radius: 999px;
    background: #e5eef2;
  }

  #rk-floor-calc-guide .rk-calc-bar-fill {
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-blue), var(--rk-cyan));
    transition: width 0.25s ease;
  }

  #rk-floor-calc-guide .rk-calc-bar-value {
    color: var(--rk-dark);
    font-size: 0.7rem;
    font-weight: 900;
    text-align: right;
  }

  #rk-floor-calc-guide .rk-calc-inline-cta {
    margin: 24px;
    padding: clamp(25px, 4vw, 38px);
    border: 1px solid rgba(255, 116, 56, 0.35);
    border-radius: 22px;
    background:
      radial-gradient(circle at 90% 10%, rgba(255, 116, 56, 0.13), transparent 26%),
      linear-gradient(145deg, #fffaf6, var(--rk-white));
  }

  #rk-floor-calc-guide .rk-calc-inline-cta h3 {
    max-width: 860px;
  }

  #rk-floor-calc-guide .rk-calc-cta-button {
    display: inline-flex;
    min-height: 54px;
    align-items: center;
    justify-content: center;
    padding: 13px 24px;
    border-radius: 14px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-orange), var(--rk-red));
    box-shadow: 0 12px 28px rgba(227, 72, 55, 0.22);
    font-size: 0.83rem;
    font-weight: 950;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
  }

  #rk-floor-calc-guide .rk-calc-cta-button:hover,
  #rk-floor-calc-guide .rk-calc-cta-button:focus-visible {
    color: var(--rk-white);
    filter: brightness(1.06);
    transform: translateY(-1px);
  }

  #rk-floor-calc-guide .rk-calc-disclosure {
    display: block;
    margin-top: 11px;
    color: var(--rk-muted);
    font-size: 0.64rem;
    line-height: 1.5;
  }

  #rk-floor-calc-guide .rk-calc-formulas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
    margin-top: 25px;
  }

  #rk-floor-calc-guide .rk-calc-formula {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-floor-calc-guide .rk-calc-formula > span {
    display: block;
    margin-bottom: 8px;
    color: var(--rk-blue);
    font-size: 0.67rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-floor-calc-guide .rk-calc-equation {
    display: block;
    margin: 9px 0 12px;
    padding: 14px;
    overflow-wrap: anywhere;
    border-radius: 12px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.88rem;
    font-weight: 850;
    line-height: 1.5;
  }

  #rk-floor-calc-guide .rk-calc-formula p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-diagram {
    margin-top: 26px;
    padding: clamp(20px, 4vw, 32px);
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: linear-gradient(145deg, var(--rk-white), var(--rk-soft));
  }

  #rk-floor-calc-guide .rk-calc-diagram svg {
    display: block;
    width: 100%;
    height: auto;
  }

  #rk-floor-calc-guide .rk-calc-callout {
    margin-top: 24px;
    padding: 22px 24px;
    border-left: 6px solid var(--rk-orange);
    border-radius: 0 18px 18px 0;
    background: var(--rk-warm);
  }

  #rk-floor-calc-guide .rk-calc-callout p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 17px;
    counter-reset: rk-calc-step;
    margin-top: 25px;
  }

  #rk-floor-calc-guide .rk-calc-step {
    position: relative;
    min-width: 0;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    background: var(--rk-white);
    counter-increment: rk-calc-step;
  }

  #rk-floor-calc-guide .rk-calc-step::before {
    content: counter(rk-calc-step, decimal-leading-zero);
    display: inline-flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    margin-bottom: 17px;
    border-radius: 14px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-blue), var(--rk-cyan));
    font-size: 0.75rem;
    font-weight: 950;
  }

  #rk-floor-calc-guide .rk-calc-step p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-warning-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 17px;
    margin-top: 25px;
  }

  #rk-floor-calc-guide .rk-calc-warning {
    padding: 23px;
    border: 1px solid #f0c9c4;
    border-radius: 19px;
    background: #fff7f6;
  }

  #rk-floor-calc-guide .rk-calc-warning b {
    display: inline-flex;
    min-width: 46px;
    height: 32px;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    padding: 0 10px;
    border-radius: 999px;
    color: var(--rk-white);
    background: var(--rk-red);
    font-size: 0.65rem;
    font-weight: 950;
  }

  #rk-floor-calc-guide .rk-calc-warning p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-case {
    overflow: hidden;
    margin-top: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    background: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-case-head {
    padding: 26px;
    color: var(--rk-white);
    background: linear-gradient(125deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-floor-calc-guide .rk-calc-case-head h3,
  #rk-floor-calc-guide .rk-calc-case-head p {
    color: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-case-head p:last-child {
    margin-bottom: 0;
    color: #d6e7ef;
  }

  #rk-floor-calc-guide .rk-calc-case-body {
    padding: clamp(24px, 4vw, 38px);
  }

  #rk-floor-calc-guide .rk-calc-case-compare {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  #rk-floor-calc-guide .rk-calc-case-side {
    padding: 22px;
    border-radius: 18px;
  }

  #rk-floor-calc-guide .rk-calc-case-side.is-wrong {
    border: 1px solid #efc3bd;
    background: #fff3f1;
  }

  #rk-floor-calc-guide .rk-calc-case-side.is-right {
    border: 1px solid #b8ddcf;
    background: var(--rk-green-soft);
  }

  #rk-floor-calc-guide .rk-calc-case-side p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-faq {
    display: grid;
    gap: 12px;
    margin-top: 24px;
  }

  #rk-floor-calc-guide .rk-calc-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    background: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-faq summary {
    position: relative;
    padding: 18px 56px 18px 20px;
    color: var(--rk-dark);
    font-weight: 900;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
  }

  #rk-floor-calc-guide .rk-calc-faq summary::-webkit-details-marker {
    display: none;
  }

  #rk-floor-calc-guide .rk-calc-faq summary::after {
    content: "+";
    position: absolute;
    top: 50%;
    right: 18px;
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 1rem;
    font-weight: 900;
    transform: translateY(-50%);
  }

  #rk-floor-calc-guide .rk-calc-faq details[open] summary::after {
    content: "−";
  }

  #rk-floor-calc-guide .rk-calc-faq-answer {
    padding: 0 20px 18px;
  }

  #rk-floor-calc-guide .rk-calc-faq-answer p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-sources {
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    background: var(--rk-soft);
    font-size: 0.72rem;
    line-height: 1.7;
  }

  #rk-floor-calc-guide .rk-calc-sources strong {
    display: block;
    margin-bottom: 8px;
    font-size: 0.78rem;
  }

  #rk-floor-calc-guide .rk-calc-sources p:last-child {
    margin-bottom: 0;
  }

  #rk-floor-calc-guide .rk-calc-author {
    position: relative;
    overflow: hidden;
    margin-bottom: clamp(56px, 8vw, 94px);
    border: 1px solid var(--rk-line);
    border-radius: 27px;
    background: var(--rk-white);
    box-shadow: 0 20px 50px rgba(16, 37, 54, 0.09);
  }

  #rk-floor-calc-guide .rk-calc-author > input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
  }

  #rk-floor-calc-guide .rk-calc-author-head {
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: space-between;
    padding: clamp(27px, 5vw, 45px);
    border-bottom: 5px solid var(--rk-cyan);
    color: var(--rk-white);
    background: var(--rk-dark);
  }

  #rk-floor-calc-guide .rk-calc-author-head h2,
  #rk-floor-calc-guide .rk-calc-author-head p {
    color: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-author-head h2 {
    margin-bottom: 8px;
  }

  #rk-floor-calc-guide .rk-calc-author-head p {
    margin-bottom: 0;
    color: #d7e8f0;
  }

  #rk-floor-calc-guide .rk-calc-author-mark {
    flex: 0 0 auto;
    padding: 11px 17px;
    border: 1px solid rgba(40, 201, 218, 0.42);
    border-radius: 14px;
    color: #75effc;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.09em;
  }

  #rk-floor-calc-guide .rk-calc-author-layout {
    display: grid;
    grid-template-columns: minmax(270px, 0.64fr) minmax(0, 1.36fr);
  }

  #rk-floor-calc-guide .rk-calc-author-side {
    padding: clamp(30px, 5vw, 50px);
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-floor-calc-guide .rk-calc-author-photo {
    width: min(205px, 74%);
    margin: 0 auto 22px;
    overflow: hidden;
    border: 8px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 16px 36px rgba(16, 37, 54, 0.14);
    aspect-ratio: 1;
  }

  #rk-floor-calc-guide .rk-calc-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  #rk-floor-calc-guide .rk-calc-author-name {
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: 1.5rem;
    font-weight: 950;
    letter-spacing: -0.04em;
    line-height: 1.1;
  }

  #rk-floor-calc-guide .rk-calc-author-role {
    color: var(--rk-blue);
    font-size: 0.7rem;
    font-weight: 950;
    letter-spacing: 0.07em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-floor-calc-guide .rk-calc-author-main {
    padding: clamp(30px, 5vw, 50px);
  }

  #rk-floor-calc-guide .rk-calc-author-quote {
    position: relative;
    margin: 0 0 24px;
    padding: 24px 24px 24px 68px;
    border: 0;
    border-radius: 18px;
    background: var(--rk-cyan-soft);
  }

  #rk-floor-calc-guide .rk-calc-author-quote::before {
    content: "“";
    position: absolute;
    top: 3px;
    left: 20px;
    color: var(--rk-cyan);
    font-size: 4rem;
    font-weight: 950;
    line-height: 1;
  }

  #rk-floor-calc-guide .rk-calc-author-quote p {
    margin-bottom: 0;
    color: var(--rk-dark);
    font-size: 1.02rem;
    font-style: italic;
    font-weight: 800;
    line-height: 1.75;
  }

  #rk-floor-calc-guide .rk-calc-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 15px 15px 0 0;
  }

  #rk-floor-calc-guide .rk-calc-author-tab {
    padding: 14px 10px;
    color: var(--rk-muted);
    background: var(--rk-soft);
    font-size: 0.72rem;
    font-weight: 900;
    line-height: 1.35;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
  }

  #rk-floor-calc-guide .rk-calc-author-tab + .rk-calc-author-tab {
    border-left: 1px solid var(--rk-line);
  }

  #rk-floor-calc-guide .rk-calc-author-panel {
    display: none;
    min-height: 176px;
    padding: 25px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 15px 15px;
  }

  #rk-floor-calc-guide .rk-calc-author-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-calc-author-about:checked ~ .rk-calc-author-layout .rk-calc-author-panel-about,
  #rk-calc-author-exp:checked ~ .rk-calc-author-layout .rk-calc-author-panel-exp,
  #rk-calc-author-sites:checked ~ .rk-calc-author-layout .rk-calc-author-panel-sites {
    display: block;
  }

  #rk-calc-author-about:checked ~ .rk-calc-author-layout label[for="rk-calc-author-about"],
  #rk-calc-author-exp:checked ~ .rk-calc-author-layout label[for="rk-calc-author-exp"],
  #rk-calc-author-sites:checked ~ .rk-calc-author-layout label[for="rk-calc-author-sites"] {
    color: var(--rk-blue);
    background: var(--rk-white);
    box-shadow: inset 0 -5px 0 var(--rk-blue);
  }

  #rk-floor-calc-guide .rk-calc-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }

  #rk-floor-calc-guide .rk-calc-site-links a {
    padding: 8px 13px;
    border: 1px solid #c6dbe4;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: 0.74rem;
    font-weight: 900;
    text-decoration: none;
  }

  #rk-floor-calc-guide .rk-calc-site-links a:hover,
  #rk-floor-calc-guide .rk-calc-site-links a:focus-visible {
    color: var(--rk-white);
    border-color: var(--rk-blue);
    background: var(--rk-blue);
  }

  #rk-floor-calc-guide .rk-calc-final-cta {
    overflow: hidden;
    border-radius: 27px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 16%, rgba(243, 189, 63, 0.38), transparent 27%),
      linear-gradient(125deg, var(--rk-dark), #15465e);
  }

  #rk-floor-calc-guide .rk-calc-final-cta-content {
    padding: clamp(30px, 5vw, 53px);
  }

  #rk-floor-calc-guide .rk-calc-final-cta h2 {
    max-width: 920px;
    margin-bottom: 13px;
    color: var(--rk-white);
  }

  #rk-floor-calc-guide .rk-calc-final-cta p {
    max-width: 940px;
    color: #d8e9f1;
  }

  @media (max-width: 1080px) {
    #rk-floor-calc-guide .rk-calc-fields {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    #rk-floor-calc-guide .rk-calc-room {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      padding-top: 28px;
    }

    #rk-floor-calc-guide .rk-calc-room .rk-calc-field:first-of-type {
      grid-column: span 2;
    }
  }

  @media (min-width: 721px) {
    #rk-floor-calc-guide .rk-calc-room {
      grid-template-columns: repeat(4, minmax(0, 1fr));
      align-items: start;
      padding: 28px 86px 22px 22px;
    }

    #rk-floor-calc-guide .rk-calc-room .rk-calc-field:first-of-type {
      grid-column: auto;
    }

    #rk-floor-calc-guide .rk-calc-room .rk-calc-field label {
      display: flex;
      min-height: 2.7em;
      align-items: flex-end;
      overflow-wrap: normal;
      word-break: normal;
    }

    #rk-floor-calc-guide .rk-calc-room-remove {
      position: absolute;
      top: 28px;
      right: 20px;
    }
  }

  @media (max-width: 980px) {
    #rk-floor-calc-guide .rk-calc-hero-grid,
    #rk-floor-calc-guide .rk-calc-answer,
    #rk-floor-calc-guide .rk-calc-author-layout {
      grid-template-columns: 1fr;
    }

    #rk-floor-calc-guide .rk-calc-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-floor-calc-guide .rk-calc-grid-4,
    #rk-floor-calc-guide .rk-calc-grid-3,
    #rk-floor-calc-guide .rk-calc-warning-grid,
    #rk-floor-calc-guide .rk-calc-steps {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-floor-calc-guide .rk-calc-result-summary {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    #rk-floor-calc-guide {
      margin-top: 20px;
      font-size: 16px;
    }

    #rk-floor-calc-guide .rk-calc-shell {
      border-radius: 20px;
    }

    #rk-floor-calc-guide .rk-calc-hero,
    #rk-floor-calc-guide .rk-calc-body {
      padding-right: 21px;
      padding-left: 21px;
    }

    #rk-floor-calc-guide .rk-calc-nav {
      display: flex;
      width: auto;
      margin: 18px 20px 0;
      padding: 20px;
      flex-wrap: wrap;
      gap: 10px;
      overflow: visible;
      border: 1px solid var(--rk-line);
      border-radius: 20px;
      background: var(--rk-soft);
      scrollbar-width: auto;
    }

    #rk-floor-calc-guide .rk-calc-nav::before {
      content: "NA SKRÓTY";
      flex: 0 0 100%;
      margin-bottom: 4px;
      color: var(--rk-dark);
      font-size: 0.75rem;
      font-weight: 900;
      letter-spacing: 0.08em;
      line-height: 1.3;
    }

    #rk-floor-calc-guide .rk-calc-nav a {
      flex: 0 1 auto;
      white-space: normal;
    }

    #rk-floor-calc-guide .rk-calc-grid-2,
    #rk-floor-calc-guide .rk-calc-grid-3,
    #rk-floor-calc-guide .rk-calc-grid-4,
    #rk-floor-calc-guide .rk-calc-scope,
    #rk-floor-calc-guide .rk-calc-formulas,
    #rk-floor-calc-guide .rk-calc-warning-grid,
    #rk-floor-calc-guide .rk-calc-steps,
    #rk-floor-calc-guide .rk-calc-case-compare,
    #rk-floor-calc-guide .rk-calc-fields,
    #rk-floor-calc-guide .rk-calc-result-summary {
      grid-template-columns: 1fr;
    }

    #rk-floor-calc-guide .rk-calc-room {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-floor-calc-guide .rk-calc-room .rk-calc-field:first-of-type {
      grid-column: 1 / -1;
    }

    #rk-floor-calc-guide .rk-calc-room-remove {
      width: 100%;
    }

    #rk-floor-calc-guide .rk-calc-rooms-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-floor-calc-guide .rk-calc-tabs {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #rk-floor-calc-guide .rk-calc-tab + .rk-calc-tab {
      border-left: 0;
    }

    #rk-floor-calc-guide .rk-calc-tab:nth-child(even) {
      border-left: 1px solid var(--rk-line);
    }

    #rk-floor-calc-guide .rk-calc-tab:nth-child(n+3) {
      border-top: 1px solid var(--rk-line);
    }

    #rk-floor-calc-guide .rk-calc-author-head {
      align-items: flex-start;
      flex-direction: column;
    }

    #rk-floor-calc-guide .rk-calc-author-main {
      padding: 25px 18px 28px;
    }

    #rk-floor-calc-guide .rk-calc-author-quote {
      padding: 22px 20px 22px 57px;
    }

    #rk-floor-calc-guide .rk-calc-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-floor-calc-guide .rk-calc-author-tab + .rk-calc-author-tab {
      border-top: 1px solid var(--rk-line);
      border-left: 0;
    }

    #rk-floor-calc-guide .rk-calc-cta-button {
      display: flex;
      width: 100%;
    }

    #rk-floor-calc-guide .rk-calc-inline-cta {
      margin: 18px;
    }

    #rk-floor-calc-guide .rk-calc-bar-row {
      grid-template-columns: 1fr;
      gap: 6px;
    }

    #rk-floor-calc-guide .rk-calc-bar-value {
      text-align: left;
    }

    #rk-floor-calc-guide table,
    #rk-floor-calc-guide tbody,
    #rk-floor-calc-guide tr,
    #rk-floor-calc-guide th,
    #rk-floor-calc-guide td {
      display: block;
      width: 100%;
    }

    #rk-floor-calc-guide thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-floor-calc-guide tbody tr {
      margin-bottom: 14px;
      overflow: hidden;
      border: 1px solid var(--rk-line);
      border-radius: 15px;
      background: var(--rk-white);
    }

    #rk-floor-calc-guide td,
    #rk-floor-calc-guide tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(118px, 0.78fr) minmax(0, 1.22fr);
      gap: 12px;
      padding: 12px 14px;
      background: var(--rk-white);
    }

    #rk-floor-calc-guide td::before {
      content: attr(data-label);
      color: var(--rk-dark);
      font-size: 0.71rem;
      font-weight: 900;
      line-height: 1.45;
    }
  }

  @media (max-width: 470px) {
    #rk-floor-calc-guide .rk-calc-hero-flow,
    #rk-floor-calc-guide .rk-calc-room {
      grid-template-columns: 1fr;
    }

    #rk-floor-calc-guide .rk-calc-room .rk-calc-field:first-of-type {
      grid-column: auto;
    }

    #rk-floor-calc-guide td,
    #rk-floor-calc-guide tbody tr:nth-child(even) td {
      grid-template-columns: 1fr;
      gap: 4px;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    #rk-floor-calc-guide *,
    #rk-floor-calc-guide *::before,
    #rk-floor-calc-guide *::after {
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
  }
</style>

<article id="rk-floor-calc-guide" data-rk-calc-version="2026-08-26" aria-label="Kompleksowy kalkulator ogrzewania podłogowego">
  <div class="rk-calc-shell">
    <div class="rk-calc-progress-track" aria-hidden="true"><div class="rk-calc-progress"></div></div>

    <header class="rk-calc-hero">
      <div class="rk-calc-hero-grid">
        <div>
          <span class="rk-calc-eyebrow"><b aria-hidden="true"></b> Autorskie narzędzie • hydraulika i termika</span>
          <div class="rk-calc-hero-title" role="heading" aria-level="2">Kompleksowy kalkulator ogrzewania podłogowego</div>
          <p class="rk-calc-hero-lead">Wprowadź pomieszczenia, rzeczywistą powierzchnię grzewczą, obciążenie cieplne i parametry wody. Otrzymasz orientacyjną długość rur, liczbę pętli, przepływy, prędkości, straty ciśnienia oraz zład instalacji.</p>
          <div class="rk-calc-meta">
            <span><i aria-hidden="true"></i> Autor: Robert Kucharski</span>
            <span><i aria-hidden="true"></i> Aktualizacja: 26 sierpnia 2026 r.</span>
            <span><i aria-hidden="true"></i> Obliczenia dla wielu pomieszczeń</span>
          </div>
        </div>

        <aside class="rk-calc-hero-panel" aria-label="Przykładowe wyniki kalkulatora">
          <small>Jedno narzędzie — cztery grupy wyników</small>
          <div class="rk-calc-hero-flow">
            <div class="rk-calc-hero-stat"><span>Rury</span><strong>mb</strong></div>
            <div class="rk-calc-hero-stat"><span>Pętle</span><strong>szt.</strong></div>
            <div class="rk-calc-hero-stat"><span>Przepływ</span><strong>l/min</strong></div>
          </div>
          <div class="rk-calc-hero-result">Termika → geometria → hydraulika → kontrola ograniczeń</div>
        </aside>
      </div>
    </header>

    <nav class="rk-calc-nav" aria-label="Spis treści artykułu">
      <a href="#rk-calc-answer">Szybka odpowiedź</a>
      <a href="#rk-calc-scope">Zakres narzędzia</a>
      <a href="#rk-calc-tool">Kalkulator</a>
      <a href="#rk-calc-method">Wzory</a>
      <a href="#rk-calc-spacing">Rozstaw rur</a>
      <a href="#rk-calc-hydraulics">Hydraulika</a>
      <a href="#rk-calc-example">Przykład</a>
      <a href="#rk-calc-howto">Procedura</a>
      <a href="#rk-calc-faq">FAQ</a>
      <a href="#rk-calc-author">Autor</a>
    </nav>

    <div class="rk-calc-body">
      <section class="rk-calc-section" id="rk-calc-answer">
        <span class="rk-calc-kicker">Najkrótsza poprawna odpowiedź</span>
        <h2>Co rzeczywiście oblicza kompleksowy kalkulator ogrzewania podłogowego?</h2>
        <p class="rk-calc-lead rk-calc-dropcap"><strong>Kompleksowy kalkulator ogrzewania podłogowego</strong> zestawia obciążenie cieplne każdego pomieszczenia z dostępną powierzchnią grzewczą, parametrami wody, oporem okładziny oraz geometrią pętli. Dzięki temu nie ogranicza się do odpowiedzi „ile metrów rury kupić”, lecz pokazuje również liczbę obwodów, przepływ, prędkość w przewodzie, przybliżony opór hydrauliczny i pojemność wodną instalacji.</p>

        <div class="rk-calc-answer">
          <div class="rk-calc-answer-main">
            <h3>Najpierw pomieszczenie, później cały dom</h3>
            <p>Podłogówki nie projektuje się wyłącznie z powierzchni budynku. Salon, łazienka i sypialnia mają inne temperatury, okładziny, wolne pola posadzki oraz straty ciepła. Każde pomieszczenie wymaga osobnego sprawdzenia, a dopiero później sumuje się pętle, przepływy i sekcje rozdzielacza.</p>
            <p>W kalkulatorze możesz podać projektową stratę uzyskaną z obliczeń albo własne założenie W/m². Drugi wariant pozostaje szacunkiem i nie staje się przez samo wpisanie do formularza pełnym OZC.</p>
          </div>
          <div class="rk-calc-answer-side">
            <h3>Ważne rozróżnienie</h3>
            <p><strong>Wynik kalkulatora jest kontrolny i orientacyjny.</strong> Nie zawiera rzutu pętli, dokładnych oporów armatury, rzeczywistych tras, charakterystyki pompy ani danych wszystkich przegród.</p>
            <p>Do wykonania instalacji potrzebna jest dokumentacja dopasowana do konkretnego budynku.</p>
          </div>
        </div>

        <div class="rk-calc-grid-4" style="margin-top:22px">
          <article class="rk-calc-card"><span class="rk-calc-card-number">Φ</span><h3>Obciążenie cieplne</h3><p>Moc w watach potrzebna w projektowych warunkach dla konkretnego pomieszczenia, a nie zużycie energii w kWh.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">q</span><h3>Moc powierzchniowa</h3><p>Wymagane W/m² rzeczywiście czynnej posadzki po odjęciu stałej zabudowy i pól wyłączonych z grzania.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">V̇</span><h3>Przepływ</h3><p>Strumień wody wynikający z mocy pomieszczenia oraz różnicy temperatury między zasilaniem a powrotem.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">Δp</span><h3>Opór pętli</h3><p>Przybliżona strata ciśnienia zależna od średnicy wewnętrznej, długości, przepływu i właściwości wody.</p></article>
        </div>
      </section>

      <section class="rk-calc-section" id="rk-calc-scope">
        <span class="rk-calc-kicker">Granice odpowiedzialnego obliczenia</span>
        <h2>Kalkulator pomaga kontrolować założenia, ale nie rozrysowuje instalacji</h2>
        <p class="rk-calc-lead">Największą wartością narzędzia jest pokazanie zależności. Zmiana temperatury wody, powierzchni czynnej, rozstawu albo długości dobiegu natychmiast wpływa na liczbę obwodów i hydraulikę. Trzeba jednak wiedzieć, których danych formularz nie może samodzielnie odgadnąć.</p>

        <div class="rk-calc-scope">
          <div class="rk-calc-scope-panel is-does">
            <h3>Kalkulator oszacuje</h3>
            <ul class="rk-calc-checks">
              <li>wymaganą moc z 1 m² czynnej podłogi,</li>
              <li>orientacyjny rozstaw 5, 10, 15 albo 20 cm,</li>
              <li>łączną długość rury wraz z dobiegami,</li>
              <li>liczbę i średnią długość pętli,</li>
              <li>przepływ pomieszczenia i pojedynczego obwodu,</li>
              <li>prędkość wody oraz liniową stratę ciśnienia,</li>
              <li>liczbę sekcji rozdzielacza i zład rur.</li>
            </ul>
          </div>
          <div class="rk-calc-scope-panel is-does-not">
            <h3>Kalkulator nie wyznaczy sam</h3>
            <ul class="rk-calc-checks">
              <li>strat przez przegrody bez ich parametrów i geometrii,</li>
              <li>rzeczywistego przebiegu każdej pętli na rzucie,</li>
              <li>wszystkich oporów zaworów, belek i armatury,</li>
              <li>punktu pracy konkretnej pompy obiegowej,</li>
              <li>wpływu mostków cieplnych i stref brzegowych,</li>
              <li>bezpiecznej dylatacji oraz konstrukcji jastrychu,</li>
              <li>nastaw wykonawczych bez weryfikacji projektu.</li>
            </ul>
          </div>
        </div>
      </section>

      <section class="rk-calc-section" id="rk-calc-tool">
        <div class="rk-calc-tool">
          <div class="rk-calc-tool-head">
            <span class="rk-calc-kicker" style="color:#79f1ff">Interaktywny model wielopomieszczeniowy</span>
            <h2>Oblicz rury, pętle, przepływy i orientacyjną hydraulikę</h2>
            <p>Przykładowe pomieszczenia możesz edytować, usuwać i uzupełniać własnymi. Wyniki aktualizują się automatycznie. Wartości hydrauliczne obejmują rurę oraz umowny 20-procentowy dodatek na opory miejscowe — nie zastępują charakterystyki całej instalacji.</p>
          </div>

          <form id="rk-calc-form" aria-label="Kompleksowy kalkulator ogrzewania podłogowego">
            <div class="rk-calc-global">
              <h3>Krok 1. Wspólne parametry instalacji</h3>
              <div class="rk-calc-fields">
                <div class="rk-calc-field">
                  <label for="rk-calc-supply">Temperatura zasilania</label>
                  <input id="rk-calc-supply" type="number" min="25" max="50" step="0.5" value="35" inputmode="decimal">
                  <small>°C</small>
                </div>
                <div class="rk-calc-field">
                  <label for="rk-calc-return">Temperatura powrotu</label>
                  <input id="rk-calc-return" type="number" min="20" max="45" step="0.5" value="28" inputmode="decimal">
                  <small>°C</small>
                </div>
                <div class="rk-calc-field">
                  <label for="rk-calc-pipe">Rura grzewcza</label>
                  <select id="rk-calc-pipe">
                    <option value="0.012" data-outer="16">16×2 mm</option>
                    <option value="0.013" data-outer="17">17×2 mm</option>
                    <option value="0.016" data-outer="20">20×2 mm</option>
                  </select>
                  <small>Wartość obliczeniowa: średnica wewnętrzna</small>
                </div>
                <div class="rk-calc-field">
                  <label for="rk-calc-loop-target">Docelowa długość pętli</label>
                  <select id="rk-calc-loop-target">
                    <option value="80">80 m</option>
                    <option value="90" selected="">90 m</option>
                    <option value="100">100 m</option>
                  </select>
                  <small>Cel projektowy, nie uniwersalna granica normy</small>
                </div>
                <div class="rk-calc-field">
                  <label for="rk-calc-geometry-factor">Dodatek geometryczny</label>
                  <select id="rk-calc-geometry-factor">
                    <option value="1.03">3%</option>
                    <option value="1.05" selected="">5%</option>
                    <option value="1.08">8%</option>
                    <option value="1.10">10%</option>
                  </select>
                  <small>Łuki i niedoskonałość podziału pola</small>
                </div>
              </div>
            </div>

            <div class="rk-calc-rooms-wrap">
              <div class="rk-calc-rooms-head">
                <div>
                  <h3>Krok 2. Pomieszczenia</h3>
                  <p style="margin:6px 0 0">Powierzchnia grzewcza nie może być większa od powierzchni pomieszczenia.</p>
                </div>
                <button class="rk-calc-add-room" id="rk-calc-add-room" type="button">+ Dodaj pomieszczenie</button>
              </div>

              <div class="rk-calc-room-list" id="rk-calc-room-list">
                <div class="rk-calc-room" data-room-id="1">
                  <span class="rk-calc-room-index">01</span>
                  <div class="rk-calc-field"><label>Nazwa</label><input class="rk-room-name" type="text" value="Salon z aneksem" maxlength="50"></div>
                  <div class="rk-calc-field"><label>Typ strefy</label><select class="rk-room-type"><option value="standard" selected="">Pokój 20–21°C</option><option value="bathroom">Łazienka 24°C</option><option value="edge">Strefa brzegowa</option></select></div>
                  <div class="rk-calc-field"><label>Powierzchnia</label><input class="rk-room-area" type="number" min="1" max="200" step="0.1" value="35"><small>m²</small></div>
                  <div class="rk-calc-field"><label>Pow. grzewcza</label><input class="rk-room-active" type="number" min="0.5" max="200" step="0.1" value="30"><small>m²</small></div>
                  <div class="rk-calc-field"><label>Strata cieplna</label><input class="rk-room-load" type="number" min="50" max="15000" step="10" value="1400"><small>W</small></div>
                  <div class="rk-calc-field"><label>Okładzina</label><select class="rk-room-floor"><option value="0.01" selected="">Płytki R=0,01</option><option value="0.03">Winyl R=0,03</option><option value="0.07">Panel R=0,07</option><option value="0.10">Drewno R=0,10</option><option value="0.15">Dywan R=0,15</option></select></div>
                  <div class="rk-calc-field"><label>Odległość</label><input class="rk-room-distance" type="number" min="0" max="50" step="0.5" value="7"><small>m do rozdzielacza</small></div>
                  <div class="rk-calc-field"><label>Rozstaw</label><select class="rk-room-spacing"><option value="auto" selected="">Dobierz orientacyjnie</option><option value="5">5 cm</option><option value="10">10 cm</option><option value="15">15 cm</option><option value="20">20 cm</option></select></div>
                  <button class="rk-calc-room-remove" type="button" aria-label="Usuń pomieszczenie">×</button>
                </div>

                <div class="rk-calc-room" data-room-id="2">
                  <span class="rk-calc-room-index">02</span>
                  <div class="rk-calc-field"><label>Nazwa</label><input class="rk-room-name" type="text" value="Łazienka" maxlength="50"></div>
                  <div class="rk-calc-field"><label>Typ strefy</label><select class="rk-room-type"><option value="standard">Pokój 20–21°C</option><option value="bathroom" selected="">Łazienka 24°C</option><option value="edge">Strefa brzegowa</option></select></div>
                  <div class="rk-calc-field"><label>Powierzchnia</label><input class="rk-room-area" type="number" min="1" max="200" step="0.1" value="8"><small>m²</small></div>
                  <div class="rk-calc-field"><label>Pow. grzewcza</label><input class="rk-room-active" type="number" min="0.5" max="200" step="0.1" value="6"><small>m²</small></div>
                  <div class="rk-calc-field"><label>Strata cieplna</label><input class="rk-room-load" type="number" min="50" max="15000" step="10" value="560"><small>W</small></div>
                  <div class="rk-calc-field"><label>Okładzina</label><select class="rk-room-floor"><option value="0.01" selected="">Płytki R=0,01</option><option value="0.03">Winyl R=0,03</option><option value="0.07">Panel R=0,07</option><option value="0.10">Drewno R=0,10</option><option value="0.15">Dywan R=0,15</option></select></div>
                  <div class="rk-calc-field"><label>Odległość</label><input class="rk-room-distance" type="number" min="0" max="50" step="0.5" value="6"><small>m do rozdzielacza</small></div>
                  <div class="rk-calc-field"><label>Rozstaw</label><select class="rk-room-spacing"><option value="auto" selected="">Dobierz orientacyjnie</option><option value="5">5 cm</option><option value="10">10 cm</option><option value="15">15 cm</option><option value="20">20 cm</option></select></div>
                  <button class="rk-calc-room-remove" type="button" aria-label="Usuń pomieszczenie">×</button>
                </div>

                <div class="rk-calc-room" data-room-id="3">
                  <span class="rk-calc-room-index">03</span>
                  <div class="rk-calc-field"><label>Nazwa</label><input class="rk-room-name" type="text" value="Sypialnia" maxlength="50"></div>
                  <div class="rk-calc-field"><label>Typ strefy</label><select class="rk-room-type"><option value="standard" selected="">Pokój 20–21°C</option><option value="bathroom">Łazienka 24°C</option><option value="edge">Strefa brzegowa</option></select></div>
                  <div class="rk-calc-field"><label>Powierzchnia</label><input class="rk-room-area" type="number" min="1" max="200" step="0.1" value="15"><small>m²</small></div>
                  <div class="rk-calc-field"><label>Pow. grzewcza</label><input class="rk-room-active" type="number" min="0.5" max="200" step="0.1" value="13"><small>m²</small></div>
                  <div class="rk-calc-field"><label>Strata cieplna</label><input class="rk-room-load" type="number" min="50" max="15000" step="10" value="600"><small>W</small></div>
                  <div class="rk-calc-field"><label>Okładzina</label><select class="rk-room-floor"><option value="0.01">Płytki R=0,01</option><option value="0.03">Winyl R=0,03</option><option value="0.07" selected="">Panel R=0,07</option><option value="0.10">Drewno R=0,10</option><option value="0.15">Dywan R=0,15</option></select></div>
                  <div class="rk-calc-field"><label>Odległość</label><input class="rk-room-distance" type="number" min="0" max="50" step="0.5" value="9"><small>m do rozdzielacza</small></div>
                  <div class="rk-calc-field"><label>Rozstaw</label><select class="rk-room-spacing"><option value="auto" selected="">Dobierz orientacyjnie</option><option value="5">5 cm</option><option value="10">10 cm</option><option value="15">15 cm</option><option value="20">20 cm</option></select></div>
                  <button class="rk-calc-room-remove" type="button" aria-label="Usuń pomieszczenie">×</button>
                </div>
              </div>

              <div class="rk-calc-tool-actions">
                <button class="rk-calc-recalculate" type="submit">Przelicz instalację</button>
                <button class="rk-calc-reset" id="rk-calc-reset" type="button">Przywróć przykład</button>
              </div>
            </div>
          </form>

          <div class="rk-calc-results" id="rk-calc-results" aria-live="polite">
            <h3>Wynik dla całej instalacji</h3>
            <div class="rk-calc-result-summary">
              <div class="rk-calc-result-card"><small>Projektowe obciążenie pomieszczeń</small><div class="rk-calc-result-number" id="rk-result-load">2560 W</div></div>
              <div class="rk-calc-result-card is-main"><small>Szacowana długość rur</small><div class="rk-calc-result-number" id="rk-result-pipe">— m</div></div>
              <div class="rk-calc-result-card"><small>Liczba pętli / sekcji</small><div class="rk-calc-result-number" id="rk-result-loops">—</div></div>
              <div class="rk-calc-result-card"><small>Przepływ całkowity</small><div class="rk-calc-result-number" id="rk-result-flow">— m³/h</div></div>
              <div class="rk-calc-result-card"><small>Powierzchnia całkowita</small><div class="rk-calc-result-number" id="rk-result-area">58 m²</div></div>
              <div class="rk-calc-result-card"><small>Powierzchnia grzewcza</small><div class="rk-calc-result-number" id="rk-result-active">49 m²</div></div>
              <div class="rk-calc-result-card"><small>Pojemność rur</small><div class="rk-calc-result-number" id="rk-result-volume">— l</div></div>
              <div class="rk-calc-result-card"><small>Największy opór pętli</small><div class="rk-calc-result-number" id="rk-result-pressure">— kPa</div></div>
            </div>

            <div class="rk-calc-status" id="rk-calc-status">
              <strong id="rk-calc-status-title">Analiza zostanie uzupełniona po uruchomieniu narzędzia</strong>
              <span id="rk-calc-status-copy">Sprawdzamy powierzchnie grzewcze, moc, długości, temperaturę powierzchni, prędkości i orientacyjne straty ciśnienia.</span>
            </div>

            <div class="rk-calc-tabs" role="tablist" aria-label="Grupy wyników kalkulatora">
              <button class="rk-calc-tab is-active" type="button" data-tab="summary" role="tab" aria-selected="true">Podsumowanie</button>
              <button class="rk-calc-tab" type="button" data-tab="thermal" role="tab" aria-selected="false">Termika</button>
              <button class="rk-calc-tab" type="button" data-tab="geometry" role="tab" aria-selected="false">Rury i pętle</button>
              <button class="rk-calc-tab" type="button" data-tab="hydraulic" role="tab" aria-selected="false">Hydraulika</button>
            </div>

            <div class="rk-calc-tab-panel is-active" id="rk-calc-panel-summary" data-panel="summary" role="tabpanel">
              <div class="rk-calc-bars" id="rk-calc-bars"></div>
              <p class="rk-calc-result-note" style="margin-top:20px"><strong>Jak czytać wykres?</strong> Długość paska pokazuje wymaganą moc z 1 m² czynnej podłogi względem najwyższej wartości w zestawieniu. Nie jest to roczne zużycie energii.</p>
            </div>

            <div class="rk-calc-tab-panel" id="rk-calc-panel-thermal" data-panel="thermal" role="tabpanel">
              <div class="rk-calc-table-wrap">
                <table>
                  <thead><tr><th>Pomieszczenie</th><th>Strata</th><th>Pow. czynna</th><th>Wymagane q</th><th>Rozstaw</th><th>Szac. możliwości</th><th>Temp. powierzchni</th><th>Ocena</th></tr></thead>
                  <tbody id="rk-calc-thermal-body"></tbody>
                </table>
              </div>
            </div>

            <div class="rk-calc-tab-panel" id="rk-calc-panel-geometry" data-panel="geometry" role="tabpanel">
              <div class="rk-calc-table-wrap">
                <table>
                  <thead><tr><th>Pomieszczenie</th><th>Rozstaw</th><th>Długość pola</th><th>Dobiegi</th><th>Rura łącznie</th><th>Pętle</th><th>Śr. pętla</th><th>Zład rur</th></tr></thead>
                  <tbody id="rk-calc-geometry-body"></tbody>
                </table>
              </div>
            </div>

            <div class="rk-calc-tab-panel" id="rk-calc-panel-hydraulic" data-panel="hydraulic" role="tabpanel">
              <div class="rk-calc-table-wrap">
                <table>
                  <thead><tr><th>Pomieszczenie</th><th>Przepływ pom.</th><th>Przepływ pętli</th><th>Prędkość</th><th>Re</th><th>Opór pętli</th><th>ΔT</th><th>Ocena</th></tr></thead>
                  <tbody id="rk-calc-hydraulic-body"></tbody>
                </table>
              </div>
              <p class="rk-calc-result-note" style="margin-top:18px">Opór obejmuje szacowaną stratę liniową najdłuższej średniej pętli oraz 20% dodatku na opory miejscowe. Do doboru pompy trzeba jeszcze uwzględnić rozdzielacz, zawory, filtr, źródło ciepła, przewody zasilające i rzeczywisty obieg krytyczny.</p>
            </div>
          </div>

          <div class="rk-calc-inline-cta">
            <span class="rk-calc-kicker">Wynik orientacyjny a dokumentacja wykonawcza</span>
            <h3>Kalkulator policzył zależności, ale nie zna rzutu Twojego domu</h3>
            <p>Narzędzie nie widzi okien, ścian zewnętrznych, mostków cieplnych, stałej zabudowy na rysunku ani rzeczywistych tras do rozdzielacza. Projekt określa przebieg każdej pętli, obciążenie poszczególnych pomieszczeń, rozstaw, przepływy, opory i nastawy potrzebne wykonawcy.</p>
            <a class="rk-calc-cta-button rk-calc-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt z obliczeniami dla każdego pomieszczenia</a>
            <small class="rk-calc-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
          </div>
        </div>
      </section>

      <section class="rk-calc-section" id="rk-calc-method">
        <span class="rk-calc-kicker">Metodologia zamiast pozornej dokładności</span>
        <h2>Jak kalkulator ogrzewania podłogowego przechodzi od watów do rur i przepływów?</h2>
        <p class="rk-calc-lead">Obliczenie jest łańcuchem zależności. Projektowe obciążenie pomieszczenia wyznacza wymaganą moc aktywnej posadzki. Temperatura wody, temperatura wnętrza, rozstaw i opór okładziny określają orientacyjne możliwości podłogi. Dopiero później można szacować długość rur, liczbę pętli i hydraulikę.</p>

        <div class="rk-calc-formulas">
          <article class="rk-calc-formula">
            <span>1. Obciążenie czynnej posadzki</span>
            <strong class="rk-calc-equation">q<sub>req</sub> = Φ<sub>HL</sub> / A<sub>F</sub></strong>
            <p><strong>Φ<sub>HL</sub></strong> to projektowa strata pomieszczenia [W], a <strong>A<sub>F</sub></strong> — rzeczywiście ogrzewana powierzchnia [m²]. Jeżeli salon traci 1400 W, ale grzeje tylko 30 m² podłogi, wymagane obciążenie wynosi około 46,7 W/m².</p>
          </article>
          <article class="rk-calc-formula">
            <span>2. Średnia temperatura czynnika</span>
            <strong class="rk-calc-equation">θ<sub>m</sub> = (θ<sub>V</sub> + θ<sub>R</sub>) / 2</strong>
            <p>Wstępny model używa średniej arytmetycznej zasilania i powrotu. W pełnych obliczeniach charakterystyk systemu stosuje się dokładniejsze zależności i dane konkretnej konstrukcji podłogi.</p>
          </article>
          <article class="rk-calc-formula">
            <span>3. Szacowana długość przewodów</span>
            <strong class="rk-calc-equation">L ≈ (A<sub>F</sub> / s) × k + 2 × L<sub>d</sub> × N</strong>
            <p><strong>s</strong> oznacza rozstaw [m], <strong>k</strong> dodatek geometryczny, <strong>L<sub>d</sub></strong> odległość od rozdzielacza, a <strong>N</strong> liczbę pętli. Każdy obwód potrzebuje własnego zasilania i powrotu.</p>
          </article>
          <article class="rk-calc-formula">
            <span>4. Przepływ wynikający z mocy</span>
            <strong class="rk-calc-equation">V̇ ≈ Φ / (4180 × ΔT) × 60</strong>
            <p>Wynik w l/min zakłada wodę i jej przybliżone ciepło właściwe. Dla 1000 W oraz ΔT = 5 K otrzymujemy około 2,87 l/min dla całego pomieszczenia, dzielone następnie między jego pętle.</p>
          </article>
          <article class="rk-calc-formula">
            <span>5. Prędkość w rurze</span>
            <strong class="rk-calc-equation">v = V̇ / A<sub>rury</sub></strong>
            <p>Pole przepływu wynika ze średnicy wewnętrznej, a nie z oznaczenia zewnętrznego rury. Przewód 16×2 mm ma około 12 mm średnicy wewnętrznej.</p>
          </article>
          <article class="rk-calc-formula">
            <span>6. Strata ciśnienia pętli</span>
            <strong class="rk-calc-equation">Δp = λ × (L / D) × (ρv² / 2) + ΣΔp<sub>m</sub></strong>
            <p>Kalkulator szacuje tarcie metodą Darcy’ego–Weisbacha i dodaje 20% na opory miejscowe. Projekt musi wykorzystać rzeczywiste opory rozdzielacza, zaworów i całej trasy krytycznej.</p>
          </article>
        </div>

        <div class="rk-calc-diagram" aria-label="Schemat zależności w obliczeniach ogrzewania podłogowego">
          <svg viewBox="0 0 1080 360" role="img" aria-labelledby="rk-calc-diagram-title rk-calc-diagram-desc">
            <title id="rk-calc-diagram-title">Od obciążenia cieplnego do nastaw rozdzielacza</title>
            <desc id="rk-calc-diagram-desc">Schemat pokazuje kolejność: obciążenie cieplne, aktywna powierzchnia, moc powierzchniowa, rozstaw, długość rur, pętle, przepływy i opory hydrauliczne.</desc>
            <defs>
              <linearGradient id="rkCalcBox" x1="0" x2="1">
                <stop offset="0%" stop-color="#078fbe"></stop>
                <stop offset="100%" stop-color="#28c9da"></stop>
              </linearGradient>
              <marker id="rkCalcArrow" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto">
                <path d="M0,0 L10,5 L0,10 Z" fill="#ff7438"></path>
              </marker>
            </defs>
            <rect x="26" y="50" width="210" height="96" rx="20" fill="url(#rkCalcBox)"></rect>
            <text x="131" y="87" text-anchor="middle" fill="#ffffff" font-size="17" font-weight="900">STRATY CIEPŁA</text>
            <text x="131" y="116" text-anchor="middle" fill="#dcfaff" font-size="14">pomieszczenia [W]</text>
            <path d="M236 98 H292" fill="none" stroke="#ff7438" stroke-width="7" marker-end="url(#rkCalcArrow)"></path>
            <rect x="312" y="50" width="210" height="96" rx="20" fill="#e9fbff" stroke="#078fbe" stroke-width="3"></rect>
            <text x="417" y="87" text-anchor="middle" fill="#102536" font-size="17" font-weight="900">MOC PODŁOGI</text>
            <text x="417" y="116" text-anchor="middle" fill="#506674" font-size="14">W/m² i rozstaw</text>
            <path d="M522 98 H578" fill="none" stroke="#ff7438" stroke-width="7" marker-end="url(#rkCalcArrow)"></path>
            <rect x="598" y="50" width="210" height="96" rx="20" fill="#eaf8f3" stroke="#16876d" stroke-width="3"></rect>
            <text x="703" y="87" text-anchor="middle" fill="#102536" font-size="17" font-weight="900">RURY I PĘTLE</text>
            <text x="703" y="116" text-anchor="middle" fill="#506674" font-size="14">długość i sekcje</text>
            <path d="M808 98 H864" fill="none" stroke="#ff7438" stroke-width="7" marker-end="url(#rkCalcArrow)"></path>
            <rect x="884" y="50" width="170" height="96" rx="20" fill="#fff3eb" stroke="#ff7438" stroke-width="3"></rect>
            <text x="969" y="87" text-anchor="middle" fill="#102536" font-size="17" font-weight="900">HYDRAULIKA</text>
            <text x="969" y="116" text-anchor="middle" fill="#506674" font-size="14">V̇, v, Δp</text>
            <path d="M969 146 V218 H131 V166" fill="none" stroke="#14384d" stroke-width="4" stroke-dasharray="9 8" marker-end="url(#rkCalcArrow)"></path>
            <rect x="248" y="224" width="584" height="100" rx="23" fill="#102536"></rect>
            <text x="540" y="262" text-anchor="middle" fill="#79f1ff" font-size="16" font-weight="900">ITERACJA PROJEKTOWA</text>
            <text x="540" y="291" text-anchor="middle" fill="#ffffff" font-size="15">jeżeli moc lub hydraulika nie spełnia kryteriów, zmieniamy</text>
            <text x="540" y="313" text-anchor="middle" fill="#d5e7ef" font-size="14">temperaturę, rozstaw, liczbę pętli, średnicę albo układ stref</text>
          </svg>
        </div>

        <div class="rk-calc-callout">
          <p><strong>Dlaczego kalkulator nie „robi OZC” z samego metrażu?</strong> Projektowe obciążenie cieplne zależy od temperatur, wentylacji, geometrii i właściwości przegród. PN-EN 12831-1 opisuje obliczanie mocy potrzebnej do utrzymania wymaganej temperatury w projektowych warunkach zewnętrznych. Wskaźnik W/m² może służyć do szybkiego scenariusza, ale nie zastępuje danych budynku.</p>
        </div>
      </section>

      <section class="rk-calc-section" id="rk-calc-spacing">
        <span class="rk-calc-kicker">Geometria pętli</span>
        <h2>Ile rury potrzeba na 1 m² przy rozstawie 5, 10, 15 i 20 cm?</h2>
        <p class="rk-calc-lead">Najprostsze przybliżenie wynika z odwrotności rozstawu. Przy 10 cm otrzymujemy około 10 m przewodu na 1 m² pola, a przy 15 cm około 6,7 m/m². Do wyniku trzeba dodać łuki, podział pola oraz osobne dobiegi zasilania i powrotu każdej pętli.</p>

        <div class="rk-calc-table-wrap">
          <table>
            <thead><tr><th>Rozstaw</th><th>Teoretyczne zużycie</th><th>Z dodatkiem 5%</th><th>Typowe zastosowanie</th><th>Najważniejsze zastrzeżenie</th></tr></thead>
            <tbody>
              <tr><td data-label="Rozstaw"><strong>5 cm</strong></td><td data-label="Teoretyczne zużycie">20,0 m/m²</td><td data-label="Z dodatkiem 5%">21,0 m/m²</td><td data-label="Typowe zastosowanie">Lokalne strefy o bardzo dużej mocy lub systemy specjalne</td><td data-label="Zastrzeżenie">Duża długość rury i opory; wymaga krótkich pętli oraz weryfikacji konstrukcji</td></tr>
              <tr><td data-label="Rozstaw"><strong>10 cm</strong></td><td data-label="Teoretyczne zużycie">10,0 m/m²</td><td data-label="Z dodatkiem 5%">10,5 m/m²</td><td data-label="Typowe zastosowanie">Łazienki, strefy brzegowe, wyższe obciążenie, niska temperatura wody</td><td data-label="Zastrzeżenie">Nie każda łazienka automatycznie wymaga 10 cm — decydują obliczenia</td></tr>
              <tr><td data-label="Rozstaw"><strong>15 cm</strong></td><td data-label="Teoretyczne zużycie">6,67 m/m²</td><td data-label="Z dodatkiem 5%">7,0 m/m²</td><td data-label="Typowe zastosowanie">Dobrze izolowane pokoje i salony o umiarkowanych stratach</td><td data-label="Zastrzeżenie">Przy drewnie lub dużym obciążeniu może wymagać wyższej temperatury wody</td></tr>
              <tr><td data-label="Rozstaw"><strong>20 cm</strong></td><td data-label="Teoretyczne zużycie">5,0 m/m²</td><td data-label="Z dodatkiem 5%">5,25 m/m²</td><td data-label="Typowe zastosowanie">Niskie obciążenia, pomieszczenia pomocnicze, niektóre systemy suche</td><td data-label="Zastrzeżenie">Większa nierównomierność temperatury i mniejsza moc przy tym samym parametrze</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-calc-grid-3" style="margin-top:22px">
          <article class="rk-calc-card"><span class="rk-calc-card-number">A</span><h3>Odejmij stałą zabudowę</h3><p>Rur nie planuje się pod kominkiem, zabudowaną wanną, częścią szaf bez prześwitu ani elementami wymagającymi wyłączenia powierzchni.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">2L</span><h3>Dodaj każdy dobieg</h3><p>Odległość do rozdzielacza występuje podwójnie: jako zasilanie i powrót. Przy kilku pętlach pomieszczenia mnoży się ją przez liczbę obwodów.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">N</span><h3>Podziel pole na obwody</h3><p>Nie dzielimy tylko łącznej długości przez „maksimum”. Pętle powinny mieć wykonalny przebieg, podobne obciążenie i możliwe do ustawienia przepływy.</p></article>
        </div>

        <p style="margin-top:22px">Jeżeli interesuje Cię wyłącznie ilość przewodu, zobacz również osobny <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">kalkulator długości rury do ogrzewania podłogowego</a>. Szczegółowe porównanie gęstości ułożenia znajduje się w opracowaniu <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstaw rur przy pompie ciepła</a>.</p>
      </section>

      <section class="rk-calc-section" id="rk-calc-hydraulics">
        <span class="rk-calc-kicker">Przepływy zamiast nastaw „na oko”</span>
        <h2>Dlaczego długość pętli nie może być oceniana bez przepływu i oporu?</h2>
        <p class="rk-calc-lead">Ta sama pętla może pracować poprawnie przy małym obciążeniu, a przy dużej mocy wymagać przepływu powodującego wysoką prędkość i stratę ciśnienia. Dlatego 80, 90 albo 100 m jest celem organizującym projekt, a nie samodzielnym dowodem poprawności hydraulicznej.</p>

        <div class="rk-calc-grid-3">
          <article class="rk-calc-card"><span class="rk-calc-card-number">ΔT</span><h3>Różnica zasilanie–powrót</h3><p>Mniejsza różnica temperatury wymaga większego przepływu dla tej samej mocy. Zależność dokładnie wyjaśnia artykuł o <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">spadku temperatury ΔT</a>.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">d<sub>i</sub></span><h3>Średnica wewnętrzna</h3><p>Niewielka zmiana średnicy silnie wpływa na prędkość i opory. Oznaczenie 16×2 mm oznacza około 12 mm światła przewodu.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">H</span><h3>Obieg krytyczny</h3><p>Pompa musi pokonać opór najbardziej niekorzystnej drogi, a nie sumę oporów wszystkich równoległych pętli. Sprawdź zasady <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">doboru pompy obiegowej</a>.</p></article>
        </div>

        <div class="rk-calc-callout">
          <p><strong>Przepływ na rotametrze nie wynika z powierzchni pętli.</strong> Wynika przede wszystkim z mocy, którą obwód ma przenieść, oraz przyjętego ΔT. Dwie pętle po 80 m mogą potrzebować innych nastaw, jeżeli obsługują pomieszczenia o innym obciążeniu. Więcej znajdziesz w poradniku o <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach w rozdzielaczu</a>.</p>
        </div>

        <div class="rk-calc-warning-grid">
          <article class="rk-calc-warning"><b>BŁĄD 01</b><h3>Jedna długość graniczna dla każdej pętli</h3><p>Nie istnieje uniwersalny metraż gwarantujący poprawność. Znaczenie mają średnica, przepływ, temperatura, opory miejscowe i dostępne ciśnienie pompy.</p></article>
          <article class="rk-calc-warning"><b>BŁĄD 02</b><h3>Sumowanie oporów pętli równoległych</h3><p>Przepływy pętli sumują się na magistrali, ale wysokość podnoszenia wyznacza droga krytyczna wraz z armaturą i przewodami wspólnymi.</p></article>
          <article class="rk-calc-warning"><b>BŁĄD 03</b><h3>Dobór pompy tylko z m³/h</h3><p>Wymagany jest jednocześnie przepływ i ciśnienie dyspozycyjne. Sam symbol 25/40 albo 25/60 nie mówi, jaki punkt pracy uzyskamy w instalacji.</p></article>
        </div>

        <p style="margin-top:22px">Rozdział pomieszczeń pomiędzy sekcje opisuje artykuł <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielacz do podłogówki</a>. Jeżeli potrzebujesz szczegółowego sprawdzenia magistrali, skorzystaj również z <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulatora doboru pompy obiegowej</a>.</p>
      </section>

      <section class="rk-calc-section" id="rk-calc-example">
        <span class="rk-calc-kicker">Przykład z ujawnionymi założeniami</span>
        <h2>Salon 35 m²: dlaczego ta sama powierzchnia może wymagać różnej liczby pętli?</h2>
        <p class="rk-calc-lead">Przyjmijmy salon o powierzchni 35 m², z czego 30 m² stanowi czynne pole grzewcze. Projektowa strata wynosi 1400 W, temperatura pomieszczenia 21°C, parametry wody 35/28°C, rura 16×2 mm, a rozdzielacz znajduje się 7 m od granicy pomieszczenia.</p>

        <div class="rk-calc-case">
          <div class="rk-calc-case-head">
            <h3>Porównanie rozstawu 15 i 10 cm</h3>
            <p>Nie jest to gotowy projekt salonu. Przykład pokazuje wyłącznie wpływ rozstawu na długość, podział i hydraulikę przy tych samych danych wejściowych.</p>
          </div>
          <div class="rk-calc-case-body">
            <div class="rk-calc-case-compare">
              <div class="rk-calc-case-side is-wrong">
                <h3>Rozstaw 15 cm</h3>
                <p><strong>Pole rury:</strong> około 210 m z dodatkiem 5%.</p>
                <p><strong>Z dobiegami:</strong> przy trzech obwodach około 252 m.</p>
                <p><strong>Średnia pętla:</strong> około 84 m.</p>
                <p><strong>Wymagana moc:</strong> 46,7 W/m² czynnej podłogi.</p>
                <p>Układ może być poprawny, jeżeli okładzina i temperatura wody zapewnią potrzebną moc oraz pozostanie akceptowalny zapas powierzchniowy.</p>
              </div>
              <div class="rk-calc-case-side is-right">
                <h3>Rozstaw 10 cm</h3>
                <p><strong>Pole rury:</strong> około 315 m z dodatkiem 5%.</p>
                <p><strong>Z dobiegami:</strong> przy pięciu obwodach około 385 m.</p>
                <p><strong>Średnia pętla:</strong> około 77 m.</p>
                <p><strong>Wymagana moc:</strong> nadal 46,7 W/m².</p>
                <p>Gęstszy rozstaw zwiększa potencjał oddawania ciepła i może pozwolić obniżyć temperaturę wody, ale wymaga większej ilości rury i większej liczby sekcji.</p>
              </div>
            </div>
          </div>
        </div>

        <div class="rk-calc-callout">
          <p><strong>Wniosek:</strong> więcej rury nie jest automatycznie lepszym projektem. Celem jest pokrycie projektowej straty możliwie niską temperaturą zasilania, przy wykonalnym rozstawie, rozsądnych długościach, możliwych przepływach oraz właściwej liczbie sekcji rozdzielacza.</p>
        </div>
      </section>

      <section class="rk-calc-section" id="rk-calc-howto">
        <span class="rk-calc-kicker">Procedura projektowa</span>
        <h2>Jak poprawnie korzystać z kalkulatora ogrzewania podłogowego?</h2>
        <div class="rk-calc-steps">
          <article class="rk-calc-step"><h3>Zdobądź obciążenie pomieszczeń</h3><p>Najlepiej użyj wyników obliczeń cieplnych. Jeżeli przyjmujesz W/m², potraktuj rezultat wyłącznie jako wariant orientacyjny.</p></article>
          <article class="rk-calc-step"><h3>Wyznacz czynne pola podłogi</h3><p>Odejmij stałą zabudowę i powierzchnie, pod którymi nie wolno albo nie ma sensu układać przewodów.</p></article>
          <article class="rk-calc-step"><h3>Wpisz temperatury i okładziny</h3><p>Podaj wspólne zasilanie i powrót oraz rzeczywisty opór wykończenia w każdym pomieszczeniu.</p></article>
          <article class="rk-calc-step"><h3>Sprawdź moc powierzchniową</h3><p>Jeżeli wymagana moc przekracza możliwości posadzki, nie naprawiaj wyniku samym zagęszczaniem rur — przeanalizuj cały układ.</p></article>
          <article class="rk-calc-step"><h3>Skontroluj pętle i hydraulikę</h3><p>Porównaj długości, przepływy, prędkości oraz orientacyjne straty ciśnienia. Zwróć uwagę na obieg najbardziej niekorzystny.</p></article>
          <article class="rk-calc-step"><h3>Przenieś wynik na rzut</h3><p>Dopiero rozmieszczenie pętli na planie potwierdzi rzeczywiste dobiegi, podział stref, liczbę sekcji i wykonalność instalacji.</p></article>
        </div>
      </section>

      <section class="rk-calc-section" id="rk-calc-project">
        <span class="rk-calc-kicker">Kalkulator a projekt</span>
        <h2>Czego w wynikach nadal brakuje wykonawcy?</h2>
        <p class="rk-calc-lead">Lista metrów i przepływów nie pokazuje, gdzie ma rozpocząć się ślimak, jak ominąć dylatację, jak przejść przez komunikację ani które pętle tworzą wspólną strefę. Profesjonalna dokumentacja scala termikę, geometrię i hydraulikę na rzucie budynku.</p>

        <div class="rk-calc-grid-3">
          <article class="rk-calc-card"><span class="rk-calc-card-number">01</span><h3>Rzut każdej pętli</h3><p>Przebieg, kierunek, numer obwodu, rozstaw, strefy brzegowe, dylatacje i powierzchnie wyłączone z grzania.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">02</span><h3>Tabela nastaw</h3><p>Długość, moc, projektowy przepływ i identyfikacja każdej pętli, dzięki którym można uruchomić i zrównoważyć instalację.</p></article>
          <article class="rk-calc-card"><span class="rk-calc-card-number">03</span><h3>Schemat hydrauliczny</h3><p>Rozdzielacze, magistrale, pompy, armatura, źródło ciepła i wymagania przepływowe pokazane jako jeden współpracujący system.</p></article>
        </div>

        <p style="margin-top:22px">Przy dużych przeszkleniach osobnego sprawdzenia wymaga <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/">strefa brzegowa ogrzewania podłogowego</a>. Rodzaj przewodu i jego rzeczywista średnica zostały szczegółowo opisane w poradniku <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rura PEX do ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-calc-section" id="rk-calc-faq">
        <span class="rk-calc-kicker">Pytania użytkowników</span>
        <h2>FAQ — kompleksowy kalkulator ogrzewania podłogowego</h2>
        <div class="rk-calc-faq">
          <details>
            <summary>Czy kalkulator ogrzewania podłogowego zastępuje projekt?</summary>
            <div class="rk-calc-faq-answer"><p>Nie. Kalkulator pokazuje zależności i orientacyjne parametry na podstawie wpisanych danych, ale nie wykonuje pełnych obliczeń przegród, nie rozrysowuje pętli, nie zna oporów całej armatury ani charakterystyki konkretnej pompy. Do wykonania instalacji potrzebny jest projekt dopasowany do rzutu budynku.</p></div>
          </details>
          <details>
            <summary>Ile metrów rury potrzeba na 1 m² ogrzewania podłogowego?</summary>
            <div class="rk-calc-faq-answer"><p>Teoretycznie około 20 m/m² przy rozstawie 5 cm, 10 m/m² przy 10 cm, 6,67 m/m² przy 15 cm i 5 m/m² przy 20 cm. Do tego trzeba doliczyć łuki, podział pola oraz osobne odcinki zasilania i powrotu każdej pętli.</p></div>
          </details>
          <details>
            <summary>Jaka jest maksymalna długość pętli podłogówki?</summary>
            <div class="rk-calc-faq-answer"><p>Nie istnieje jedna długość gwarantująca poprawność każdej instalacji. Dla rury 16×2 mm często projektuje się pętle około 80–100 m, ale wynik trzeba sprawdzić na podstawie przepływu, średnicy wewnętrznej, oporów miejscowych i ciśnienia dostępnego z pompy.</p></div>
          </details>
          <details>
            <summary>Jak kalkulator dobiera rozstaw rur?</summary>
            <div class="rk-calc-faq-answer"><p>Porównuje wymaganą moc z 1 m² czynnej posadzki z orientacyjnymi możliwościami rozstawów 20, 15, 10 i 5 cm przy podanych temperaturach oraz oporze okładziny. Wybiera najszerszy rozstaw spełniający uproszczone kryterium, lecz wynik wymaga weryfikacji dla konkretnego systemu podłogi.</p></div>
          </details>
          <details>
            <summary>Jak obliczyć przepływ w pętli ogrzewania podłogowego?</summary>
            <div class="rk-calc-faq-answer"><p>Przepływ wynika z mocy przenoszonej przez pętlę oraz różnicy temperatury między zasilaniem a powrotem. Dla wody można użyć zależności V̇ ≈ Φ/(4180×ΔT)×60, otrzymując l/min, a następnie podzielić przepływ pomieszczenia pomiędzy jego obwody.</p></div>
          </details>
          <details>
            <summary>Czy każda łazienka powinna mieć rury co 10 cm?</summary>
            <div class="rk-calc-faq-answer"><p>Nie automatycznie. Łazienki często wymagają gęstego rozstawu z powodu temperatury projektowej 24°C i małej wolnej powierzchni, ale ostateczna decyzja zależy od strat, temperatury wody, okładziny i dostępnego pola grzewczego.</p></div>
          </details>
          <details>
            <summary>Czy kalkulator dobierze pompę obiegową?</summary>
            <div class="rk-calc-faq-answer"><p>Kalkulator podaje przepływ całkowity i orientacyjny opór najbardziej wymagającej pętli. Pełny dobór pompy wymaga jeszcze oporów magistrali, rozdzielacza, zaworów, filtrów, źródła ciepła i innych elementów wspólnego obiegu.</p></div>
          </details>
          <details>
            <summary>Jak obliczana jest pojemność wodna rur?</summary>
            <div class="rk-calc-faq-answer"><p>Pojemność wynika z pola przekroju wewnętrznego przewodu pomnożonego przez jego długość. Dla rury 16×2 mm o średnicy wewnętrznej około 12 mm jest to około 0,113 litra na metr. Całkowity zład instalacji obejmuje również rozdzielacze, magistrale, źródło i ewentualny bufor.</p></div>
          </details>
        </div>
      </section>

      <section class="rk-calc-section" aria-label="Źródła techniczne">
        <div class="rk-calc-sources">
          <strong>Podstawa techniczna i źródła opracowania</strong>
          <p>Projektowe obciążenie cieplne pomieszczeń i budynku: <a href="https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html" target="_blank" rel="noopener nofollow">PN-EN 12831-1:2017-08 — Polski Komitet Normalizacyjny</a>. Określanie mocy cieplnej ogrzewania podłogowego: <a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="noopener nofollow">PN-EN 1264-2:2021-10 — PKN</a> oraz <a href="https://www.iso.org/standard/74683.html" target="_blank" rel="noopener nofollow">ISO 11855-2:2021</a>. Projektowanie i wymiarowanie systemów płaszczyznowych: <a href="https://www.iso.org/standard/74684.html" target="_blank" rel="noopener nofollow">ISO 11855-3:2021</a>. Kryteria projektowe wodnych instalacji ogrzewczych: <a href="https://sklep.pkn.pl/normy/pn-en-12828-a1-2014-05e.html" target="_blank" rel="noopener nofollow">PN-EN 12828+A1:2014-05 — PKN</a>. Dostęp do źródeł: 26 sierpnia 2026 r.</p>
          <p>Model termiczny kalkulatora jest uproszczeniem edukacyjnym. Nie odtwarza pełnych krzywych charakterystycznych konkretnego systemu, metod numerycznych ani badań systemowych opisanych w normach. Model hydrauliczny używa przybliżonych właściwości wody, równania Darcy’ego–Weisbacha oraz dodatku na opory miejscowe.</p>
        </div>
      </section>

      <section class="rk-calc-author" id="rk-calc-author" aria-label="Autor opracowania">
        <input type="radio" name="rk-calc-author-tabs" id="rk-calc-author-about" checked="">
        <input type="radio" name="rk-calc-author-tabs" id="rk-calc-author-exp">
        <input type="radio" name="rk-calc-author-tabs" id="rk-calc-author-sites">

        <div class="rk-calc-author-head">
          <div><h2>Autor opracowania</h2><p>Obliczenia techniczne przedstawione w sposób użyteczny dla inwestora i wykonawcy.</p></div>
          <span class="rk-calc-author-mark">E‑E‑A‑T • HVAC</span>
        </div>

        <div class="rk-calc-author-layout">
          <aside class="rk-calc-author-side">
            <div class="rk-calc-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji ogrzewania podłogowego" width="360" height="360" loading="lazy" decoding="async"></div>
            <div class="rk-calc-author-name">Robert Kucharski</div>
            <div class="rk-calc-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          </aside>

          <div class="rk-calc-author-main">
            <blockquote class="rk-calc-author-quote"><p>„Dobry kalkulator nie ma zastępować projektu. Ma pokazać inwestorowi, że długość rury, liczba pętli, przepływ i opór hydrauliczny są jednym układem zależności — zmiana jednej wartości zawsze wpływa na pozostałe.”</p></blockquote>

            <div class="rk-calc-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-calc-author-tab" for="rk-calc-author-about" role="tab">O autorze</label>
              <label class="rk-calc-author-tab" for="rk-calc-author-exp" role="tab">Doświadczenie</label>
              <label class="rk-calc-author-tab" for="rk-calc-author-sites" role="tab">Portale</label>
            </div>

            <div class="rk-calc-author-panel rk-calc-author-panel-about">
              <p>Robert Kucharski projektuje wodne instalacje ogrzewania podłogowego i przygotowuje techniczne publikacje dotyczące obliczeń cieplnych, hydrauliki, źródeł ciepła, automatyki oraz świadomego prowadzenia inwestycji. W opracowaniach rozdziela szybkie oszacowanie od parametrów, które muszą wynikać z dokumentacji wykonawczej.</p>
              <p><a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz profil i pozostałe opracowania autora</a>.</p>
            </div>

            <div class="rk-calc-author-panel rk-calc-author-panel-exp">
              <p>Doświadczenie autora obejmuje obliczenia obciążenia cieplnego pomieszczeń, dobór temperatury zasilania, rozstawu i długości pętli, przepływów, oporów hydraulicznych, rozdzielaczy oraz pomp obiegowych. Projekty łączą dane cieplne z możliwym do wykonania przebiegiem rur i tabelą nastaw dla każdej pętli.</p>
            </div>

            <div class="rk-calc-author-panel rk-calc-author-panel-sites">
              <p>Autor jest właścicielem trzech serwisów poświęconych projektowaniu instalacji, budowie i remontom. Powiązanie portali jest podane jawnie, aby czytelnik znał autorstwo oraz kontekst linkowania.</p>
              <div class="rk-calc-site-links">
                <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
              </div>
            </div>
          </div>
        </div>
      </section>

      <section class="rk-calc-final-cta" aria-label="Profesjonalny projekt ogrzewania podłogowego">
        <div class="rk-calc-final-cta-content">
          <span class="rk-calc-kicker" style="color:#79f1ff">Od szacunku do dokumentacji wykonawczej</span>
          <h2>Każde pomieszczenie potrzebuje własnych obliczeń i rzeczywistego przebiegu pętli</h2>
          <p>Projekt ogrzewania podłogowego określa obciążenie cieplne, aktywne powierzchnie, rozstaw i długość każdego obwodu, projektowe przepływy, opory hydrauliczne, nastawy rozdzielacza oraz schemat współpracy ze źródłem ciepła. Otrzymujesz dokumentację, którą można przekazać wykonawcy przed ułożeniem rur i zalaniem posadzki.</p>
          <a class="rk-calc-cta-button rk-calc-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów kompletny projekt ogrzewania podłogowego</a>
          <small class="rk-calc-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
        </div>
      </section>
    </div>
  </div>
</article>

<!-- RK_CALC_SCHEMA -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article",
      "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/",
      "headline": "Kompleksowy kalkulator ogrzewania podłogowego – rury, pętle, przepływy i hydraulika",
      "description": "Kompleksowy kalkulator ogrzewania podłogowego obliczy rury, pętle, przepływy i zład. Sprawdź pomieszczenia, rozstaw oraz hydraulikę instalacji dla Twojego domu.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webpage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "reviewedBy": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "accountablePerson": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "articleSection": [
        "Kalkulatory budowlane",
        "Ogrzewanie podłogowe",
        "Projektowanie instalacji",
        "Hydraulika"
      ],
      "keywords": [
        "kompleksowy kalkulator ogrzewania podłogowego",
        "kalkulator ogrzewania podłogowego online",
        "kalkulator liczby pętli podłogówki",
        "kalkulator długości rury ogrzewania podłogowego",
        "kalkulator przepływu podłogówki",
        "rozstaw rur ogrzewania podłogowego",
        "opory hydrauliczne pętli",
        "pojemność wodna ogrzewania podłogowego"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Obliczenia hydrauliczne pętli grzewczych"
        },
        {
          "@type": "Thing",
          "name": "Rozstaw i długość rur"
        },
        {
          "@type": "Thing",
          "name": "Przepływy na rozdzielaczu"
        }
      ],
      "citation": [
        "https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html",
        "https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html",
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html",
        "https://sklep.pkn.pl/normy/pn-en-12828-a1-2014-05e.html"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/",
      "name": "Kompleksowy kalkulator ogrzewania podłogowego – rury, pętle, przepływy i hydraulika",
      "description": "Kompleksowy kalkulator ogrzewania podłogowego obliczy rury, pętle, przepływy i zład. Sprawdź pomieszczenia, rozstaw oraz hydraulikę instalacji dla Twojego domu.",
      "dateModified": "2026-08-26",
      "inLanguage": "pl-PL",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#breadcrumb"
      },
      "mainEntity": [
        {
          "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#application"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#faq"
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Narzędzia i kalkulatory",
          "item": "https://projekt-ogrzewania.pl/category/narzedzia-i-kalkulatory/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Kompleksowy kalkulator ogrzewania podłogowego",
          "item": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#application",
      "name": "Kompleksowy kalkulator ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#rk-calc-tool",
      "description": "Wielopomieszczeniowy kalkulator orientacyjnej długości rur, liczby pętli, rozstawu, przepływów, prędkości wody, strat ciśnienia i pojemności wodnej ogrzewania podłogowego.",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "HVAC calculation tool",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript oraz obsługa standardów HTML5",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "featureList": [
        "Obsługa wielu pomieszczeń",
        "Obliczanie wymaganej mocy powierzchniowej",
        "Orientacyjny dobór rozstawu rur",
        "Szacowanie długości rur i liczby pętli",
        "Obliczanie przepływu pomieszczeń i pętli",
        "Obliczanie prędkości wody i liczby Reynoldsa",
        "Szacowanie strat ciśnienia",
        "Obliczanie pojemności wodnej rur"
      ],
      "offers": {
        "@type": "Offer",
        "price": "0",
        "priceCurrency": "PLN"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#howto",
      "name": "Jak poprawnie korzystać z kalkulatora ogrzewania podłogowego",
      "description": "Sześć kroków od obciążenia cieplnego pomieszczeń do weryfikacji pętli, przepływów i przeniesienia wyników na rzut budynku.",
      "inLanguage": "pl-PL",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zdobądź obciążenie pomieszczeń",
          "text": "Najlepiej użyj wyników obliczeń cieplnych. Jeżeli przyjmujesz W/m², potraktuj rezultat wyłącznie jako wariant orientacyjny.",
          "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#rk-calc-howto"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Wyznacz czynne pola podłogi",
          "text": "Odejmij stałą zabudowę i powierzchnie, pod którymi nie wolno albo nie ma sensu układać przewodów.",
          "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#rk-calc-howto"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Wpisz temperatury i okładziny",
          "text": "Podaj wspólne zasilanie i powrót oraz rzeczywisty opór wykończenia w każdym pomieszczeniu.",
          "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#rk-calc-howto"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Sprawdź moc powierzchniową",
          "text": "Jeżeli wymagana moc przekracza możliwości posadzki, nie naprawiaj wyniku samym zagęszczaniem rur — przeanalizuj cały układ.",
          "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#rk-calc-howto"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Skontroluj pętle i hydraulikę",
          "text": "Porównaj długości, przepływy, prędkości oraz orientacyjne straty ciśnienia. Zwróć uwagę na obieg najbardziej niekorzystny.",
          "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#rk-calc-howto"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Przenieś wynik na rzut",
          "text": "Dopiero rozmieszczenie pętli na planie potwierdzi rzeczywiste dobiegi, podział stref, liczbę sekcji i wykonalność instalacji.",
          "url": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#rk-calc-howto"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy kalkulator ogrzewania podłogowego zastępuje projekt?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Kalkulator pokazuje zależności i orientacyjne parametry na podstawie wpisanych danych, ale nie wykonuje pełnych obliczeń przegród, nie rozrysowuje pętli, nie zna oporów całej armatury ani charakterystyki konkretnej pompy. Do wykonania instalacji potrzebny jest projekt dopasowany do rzutu budynku."
          }
        },
        {
          "@type": "Question",
          "name": "Ile metrów rury potrzeba na 1 m² ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Teoretycznie około 20 m/m² przy rozstawie 5 cm, 10 m/m² przy 10 cm, 6,67 m/m² przy 15 cm i 5 m/m² przy 20 cm. Do tego trzeba doliczyć łuki, podział pola oraz osobne odcinki zasilania i powrotu każdej pętli."
          }
        },
        {
          "@type": "Question",
          "name": "Jaka jest maksymalna długość pętli podłogówki?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie istnieje jedna długość gwarantująca poprawność każdej instalacji. Dla rury 16×2 mm często projektuje się pętle około 80–100 m, ale wynik trzeba sprawdzić na podstawie przepływu, średnicy wewnętrznej, oporów miejscowych i ciśnienia dostępnego z pompy."
          }
        },
        {
          "@type": "Question",
          "name": "Jak kalkulator dobiera rozstaw rur?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Porównuje wymaganą moc z 1 m² czynnej posadzki z orientacyjnymi możliwościami rozstawów 20, 15, 10 i 5 cm przy podanych temperaturach oraz oporze okładziny. Wybiera najszerszy rozstaw spełniający uproszczone kryterium, lecz wynik wymaga weryfikacji dla konkretnego systemu podłogi."
          }
        },
        {
          "@type": "Question",
          "name": "Jak obliczyć przepływ w pętli ogrzewania podłogowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Przepływ wynika z mocy przenoszonej przez pętlę oraz różnicy temperatury między zasilaniem a powrotem. Dla wody można użyć zależności V̇ ≈ Φ/(4180×ΔT)×60, otrzymując l/min, a następnie podzielić przepływ pomieszczenia pomiędzy jego obwody."
          }
        },
        {
          "@type": "Question",
          "name": "Czy każda łazienka powinna mieć rury co 10 cm?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie automatycznie. Łazienki często wymagają gęstego rozstawu z powodu temperatury projektowej 24°C i małej wolnej powierzchni, ale ostateczna decyzja zależy od strat, temperatury wody, okładziny i dostępnego pola grzewczego."
          }
        },
        {
          "@type": "Question",
          "name": "Czy kalkulator dobierze pompę obiegową?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Kalkulator podaje przepływ całkowity i orientacyjny opór najbardziej wymagającej pętli. Pełny dobór pompy wymaga jeszcze oporów magistrali, rozdzielacza, zaworów, filtrów, źródła ciepła i innych elementów wspólnego obiegu."
          }
        },
        {
          "@type": "Question",
          "name": "Jak obliczana jest pojemność wodna rur?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Pojemność wynika z pola przekroju wewnętrznego przewodu pomnożonego przez jego długość. Dla rury 16×2 mm o średnicy wewnętrznej około 12 mm jest to około 0,113 litra na metr. Całkowity zład instalacji obejmuje również rozdzielacze, magistrale, źródło i ewentualny bufor."
          }
        }
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "width": 360,
        "height": 360
      },
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "description": "Projektant wodnych instalacji ogrzewania podłogowego i autor opracowań technicznych dotyczących obliczeń cieplnych, hydrauliki, źródeł ciepła i automatyki. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "knowsAbout": [
        "projektowanie ogrzewania podłogowego",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "dobór pomp obiegowych",
        "równoważenie hydrauliczne",
        "pompy ciepła"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ],
      "owns": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        },
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "description": "Serwis poświęcony projektowaniu wodnego ogrzewania podłogowego, należący do Roberta Kucharskiego.",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "description": "Serwis budowlano-remontowy należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "description": "Portal o budowie, instalacjach i technologii domu należący do Roberta Kucharskiego.",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      },
      "owner": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "description": "Projektowanie ogrzewania podłogowego i techniczna wiedza o instalacjach grzewczych.",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "copyrightHolder": {
        "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1"
      }
    }
  ]
}
</script>

<!-- RK_CALC_SCRIPT -->
<script>
(function () {
  "use strict";

  function initializeFloorCalculator() {
    var root = document.getElementById("rk-floor-calc-guide");
    if (!root) {
      return false;
    }
    if (root.getAttribute("data-rk-calc-ready") === "1") {
      return true;
    }

    var form = document.getElementById("rk-calc-form");
    var roomList = document.getElementById("rk-calc-room-list");
    if (!form) {
      return false;
    }
    if (!roomList) {
      return false;
    }

    var roomCounter = roomList.querySelectorAll(".rk-calc-room").length;
    var sampleRooms = [
      { name: "Salon z aneksem", type: "standard", area: 35, active: 30, load: 1400, floor: "0.01", distance: 7, spacing: "auto" },
      { name: "Łazienka", type: "bathroom", area: 8, active: 6, load: 560, floor: "0.01", distance: 6, spacing: "auto" },
      { name: "Sypialnia", type: "standard", area: 15, active: 13, load: 600, floor: "0.07", distance: 9, spacing: "auto" }
    ];

    function byId(id) {
      return document.getElementById(id);
    }

    function clamp(value, minimum, maximum) {
      return Math.min(maximum, Math.max(minimum, value));
    }

    function numberFromElement(element, fallback) {
      if (!element) {
        return fallback;
      }
      var raw = String(element.value).replace(",", ".");
      var parsed = Number(raw);
      return Number.isFinite(parsed) ? parsed : fallback;
    }

    function numberFromId(id, fallback) {
      return numberFromElement(byId(id), fallback);
    }

    function formatNumber(value, digits) {
      return new Intl.NumberFormat("pl-PL", {
        minimumFractionDigits: digits,
        maximumFractionDigits: digits
      }).format(value);
    }

    function polishPlural(value, singular, paucal, plural) {
      var integer = Math.abs(Math.round(value));
      var lastTwo = integer % 100;
      var last = integer % 10;
      if (integer === 1) {
        return singular;
      }
      if (last >= 2) {
        if (last <= 4) {
          if (lastTwo < 12) {
            return paucal;
          }
          if (lastTwo > 14) {
            return paucal;
          }
        }
      }
      return plural;
    }

    function setText(id, value) {
      var element = byId(id);
      if (element) {
        element.textContent = value;
      }
    }

    function getRoomType(type) {
      if (type === "bathroom") {
        return { indoor: 24, maxSurface: 33, label: "Łazienka" };
      }
      if (type === "edge") {
        return { indoor: 21, maxSurface: 35, label: "Strefa brzegowa" };
      }
      return { indoor: 21, maxSurface: 29, label: "Pokój" };
    }

    function capacityForSpacing(spacing, meanWater, indoor, floorResistance) {
      var coefficients = {
        5: 6.3,
        10: 5.7,
        15: 5.0,
        20: 4.3
      };
      var coefficient = coefficients[spacing] || coefficients[15];
      var temperatureDifference = Math.max(0, meanWater - indoor);
      var floorFactor = 1 / (1 + 4 * floorResistance);
      return coefficient * temperatureDifference * floorFactor;
    }

    function chooseSpacing(requiredOutput, meanWater, indoor, floorResistance) {
      var options = [20, 15, 10, 5];
      var chosen = 5;
      options.some(function (spacing) {
        var capacity = capacityForSpacing(spacing, meanWater, indoor, floorResistance);
        if (capacity >= requiredOutput) {
          chosen = spacing;
          return true;
        }
        return false;
      });
      return chosen;
    }

    function frictionFactor(reynolds, diameter) {
      if (reynolds <= 0) {
        return 0;
      }
      if (reynolds < 2300) {
        return 64 / Math.max(1, reynolds);
      }
      var roughness = 0.000007;
      var term = Math.pow(roughness / (3.7 * diameter), 1.11) + 6.9 / reynolds;
      var denominator = -1.8 * Math.log10(term);
      return 1 / Math.pow(denominator, 2);
    }

    function calculateRoom(row, index, settings) {
      var nameInput = row.querySelector(".rk-room-name");
      var typeInput = row.querySelector(".rk-room-type");
      var areaInput = row.querySelector(".rk-room-area");
      var activeInput = row.querySelector(".rk-room-active");
      var loadInput = row.querySelector(".rk-room-load");
      var floorInput = row.querySelector(".rk-room-floor");
      var distanceInput = row.querySelector(".rk-room-distance");
      var spacingInput = row.querySelector(".rk-room-spacing");

      var name = nameInput ? nameInput.value.trim() : "";
      if (!name) {
        name = "Pomieszczenie " + (index + 1);
      }

      var typeValue = typeInput ? typeInput.value : "standard";
      var type = getRoomType(typeValue);
      var area = clamp(numberFromElement(areaInput, 1), 0.1, 200);
      var activeRaw = clamp(numberFromElement(activeInput, area), 0.1, 200);
      var active = Math.min(activeRaw, area);
      var load = clamp(numberFromElement(loadInput, 50), 1, 15000);
      var floorResistance = clamp(numberFromElement(floorInput, 0.01), 0, 0.2);
      var distance = clamp(numberFromElement(distanceInput, 0), 0, 50);
      var spacingValue = spacingInput ? spacingInput.value : "auto";

      var requiredOutput = load / active;
      var spacing = spacingValue === "auto"
        ? chooseSpacing(requiredOutput, settings.meanWater, type.indoor, floorResistance)
        : clamp(Number(spacingValue), 5, 20);
      var availableOutput = capacityForSpacing(spacing, settings.meanWater, type.indoor, floorResistance);
      var availablePower = availableOutput * active;

      var fieldLength = active / (spacing / 100) * settings.geometryFactor;
      var availableFieldPerLoop = settings.targetLength - 2 * distance;
      var loops = 1;
      var geometryImpossible = false;
      if (availableFieldPerLoop > 5) {
        loops = Math.max(1, Math.ceil(fieldLength / availableFieldPerLoop));
      } else {
        loops = Math.max(1, Math.ceil(fieldLength / Math.max(5, settings.targetLength * 0.55)));
        geometryImpossible = true;
      }
      if (loops > 24) {
        loops = 24;
        geometryImpossible = true;
      }

      var connectionLength = 2 * distance * loops;
      var totalLength = fieldLength + connectionLength;
      var averageLoopLength = totalLength / loops;
      var roomFlow = load / (4180 * settings.deltaT) * 60;
      var loopFlow = roomFlow / loops;
      var volumetricFlow = loopFlow / 1000 / 60;
      var pipeArea = Math.PI * Math.pow(settings.pipeDiameter, 2) / 4;
      var velocity = pipeArea > 0 ? volumetricFlow / pipeArea : 0;
      var reynolds = settings.density * velocity * settings.pipeDiameter / settings.viscosity;
      var factor = frictionFactor(reynolds, settings.pipeDiameter);
      var pressurePa = factor * averageLoopLength / settings.pipeDiameter * settings.density * Math.pow(velocity, 2) / 2;
      var pressureKpa = pressurePa * 1.2 / 1000;
      var volume = totalLength * pipeArea * 1000;
      var deliveredOutput = Math.min(requiredOutput, availableOutput);
      var surfaceTemperature = type.indoor + deliveredOutput / 10.8;

      var thermalStatus = "Wstępnie OK";
      var hydraulicStatus = "Wstępnie OK";
      var errors = [];
      var warnings = [];

      if (activeRaw > area) {
        errors.push(name + ": powierzchnia grzewcza jest większa od powierzchni pomieszczenia");
      }
      if (availablePower + 1 < load) {
        thermalStatus = "Niedobór mocy";
        errors.push(name + ": wybrany rozstaw i temperatury nie pokrywają wpisanej straty");
      }
      if (surfaceTemperature > type.maxSurface) {
        thermalStatus = "Sprawdź temperaturę";
        errors.push(name + ": szacowana temperatura powierzchni przekracza przyjęty limit strefy");
      }
      if (geometryImpossible) {
        hydraulicStatus = "Do korekty";
        errors.push(name + ": odległość od rozdzielacza lub geometria uniemożliwia docelową długość pętli");
      }
      if (averageLoopLength > settings.targetLength + 0.5) {
        hydraulicStatus = "Do korekty";
        errors.push(name + ": średnia długość pętli przekracza ustawiony cel");
      }
      if (pressureKpa > 20) {
        hydraulicStatus = "Do korekty";
        errors.push(name + ": orientacyjny opór pętli przekracza 20 kPa");
      } else if (pressureKpa > 15) {
        hydraulicStatus = "Sprawdź";
        warnings.push(name + ": orientacyjny opór pętli przekracza 15 kPa");
      }
      if (velocity > 0.6) {
        hydraulicStatus = "Do korekty";
        errors.push(name + ": prędkość w rurze przekracza 0,60 m/s");
      } else if (velocity < 0.1) {
        if (hydraulicStatus === "Wstępnie OK") {
          hydraulicStatus = "Sprawdź";
        }
        warnings.push(name + ": bardzo mała prędkość wymaga sprawdzenia regulacji i odpowietrzania");
      } else if (velocity < 0.15) {
        if (hydraulicStatus === "Wstępnie OK") {
          hydraulicStatus = "Sprawdź";
        }
        warnings.push(name + ": prędkość jest niższa od typowego zakresu kontrolnego");
      }

      return {
        name: name,
        type: type,
        area: area,
        active: active,
        load: load,
        floorResistance: floorResistance,
        distance: distance,
        spacing: spacing,
        requiredOutput: requiredOutput,
        availableOutput: availableOutput,
        availablePower: availablePower,
        fieldLength: fieldLength,
        connectionLength: connectionLength,
        totalLength: totalLength,
        loops: loops,
        averageLoopLength: averageLoopLength,
        roomFlow: roomFlow,
        loopFlow: loopFlow,
        velocity: velocity,
        reynolds: reynolds,
        pressureKpa: pressureKpa,
        volume: volume,
        surfaceTemperature: surfaceTemperature,
        thermalStatus: thermalStatus,
        hydraulicStatus: hydraulicStatus,
        errors: errors,
        warnings: warnings
      };
    }

    function makeCell(label, value, emphasize) {
      var cell = document.createElement("td");
      cell.setAttribute("data-label", label);
      if (emphasize) {
        var strong = document.createElement("strong");
        strong.textContent = value;
        cell.appendChild(strong);
      } else {
        cell.textContent = value;
      }
      return cell;
    }

    function appendRow(body, cells) {
      var row = document.createElement("tr");
      cells.forEach(function (cell) {
        row.appendChild(cell);
      });
      body.appendChild(row);
    }

    function renderTables(results, settings) {
      var thermalBody = byId("rk-calc-thermal-body");
      var geometryBody = byId("rk-calc-geometry-body");
      var hydraulicBody = byId("rk-calc-hydraulic-body");
      if (!thermalBody) {
        return;
      }
      if (!geometryBody) {
        return;
      }
      if (!hydraulicBody) {
        return;
      }

      thermalBody.textContent = "";
      geometryBody.textContent = "";
      hydraulicBody.textContent = "";

      results.forEach(function (result) {
        appendRow(thermalBody, [
          makeCell("Pomieszczenie", result.name, true),
          makeCell("Strata", formatNumber(result.load, 0) + " W"),
          makeCell("Pow. czynna", formatNumber(result.active, 1) + " m²"),
          makeCell("Wymagane q", formatNumber(result.requiredOutput, 1) + " W/m²"),
          makeCell("Rozstaw", formatNumber(result.spacing, 0) + " cm"),
          makeCell("Szac. możliwości", formatNumber(result.availableOutput, 1) + " W/m²"),
          makeCell("Temp. powierzchni", formatNumber(result.surfaceTemperature, 1) + "°C"),
          makeCell("Ocena", result.thermalStatus, true)
        ]);

        appendRow(geometryBody, [
          makeCell("Pomieszczenie", result.name, true),
          makeCell("Rozstaw", formatNumber(result.spacing, 0) + " cm"),
          makeCell("Długość pola", formatNumber(result.fieldLength, 1) + " m"),
          makeCell("Dobiegi", formatNumber(result.connectionLength, 1) + " m"),
          makeCell("Rura łącznie", formatNumber(result.totalLength, 1) + " m"),
          makeCell("Pętle", formatNumber(result.loops, 0)),
          makeCell("Śr. pętla", formatNumber(result.averageLoopLength, 1) + " m"),
          makeCell("Zład rur", formatNumber(result.volume, 1) + " l")
        ]);

        appendRow(hydraulicBody, [
          makeCell("Pomieszczenie", result.name, true),
          makeCell("Przepływ pom.", formatNumber(result.roomFlow, 2) + " l/min"),
          makeCell("Przepływ pętli", formatNumber(result.loopFlow, 2) + " l/min"),
          makeCell("Prędkość", formatNumber(result.velocity, 3) + " m/s"),
          makeCell("Re", formatNumber(result.reynolds, 0)),
          makeCell("Opór pętli", formatNumber(result.pressureKpa, 1) + " kPa"),
          makeCell("ΔT", formatNumber(settings.deltaT, 1) + " K"),
          makeCell("Ocena", result.hydraulicStatus, true)
        ]);
      });
    }

    function renderBars(results) {
      var bars = byId("rk-calc-bars");
      if (!bars) {
        return;
      }
      bars.textContent = "";
      var maximum = 1;
      results.forEach(function (result) {
        maximum = Math.max(maximum, result.requiredOutput);
      });

      results.forEach(function (result) {
        var row = document.createElement("div");
        row.className = "rk-calc-bar-row";

        var name = document.createElement("div");
        name.className = "rk-calc-bar-name";
        name.textContent = result.name;

        var track = document.createElement("div");
        track.className = "rk-calc-bar-track";
        var fill = document.createElement("div");
        fill.className = "rk-calc-bar-fill";
        fill.style.width = clamp(result.requiredOutput / maximum * 100, 0, 100).toFixed(2) + "%";
        if (result.thermalStatus !== "Wstępnie OK") {
          fill.style.background = "linear-gradient(90deg, #ff7438, #e34837)";
        }
        track.appendChild(fill);

        var value = document.createElement("div");
        value.className = "rk-calc-bar-value";
        value.textContent = formatNumber(result.requiredOutput, 1) + " W/m²";

        row.appendChild(name);
        row.appendChild(track);
        row.appendChild(value);
        bars.appendChild(row);
      });
    }

    function updateStatus(errors, warnings, settings) {
      var status = byId("rk-calc-status");
      if (!status) {
        return;
      }

      var title = "Wstępne kryteria kalkulatora są spełnione";
      var copy = "Wynik nadal wymaga przeniesienia na rzut oraz sprawdzenia pełnego obiegu hydraulicznego.";
      var className = "rk-calc-status";

      if (settings.globalError) {
        className += " is-danger";
        title = "Temperatura powrotu musi być niższa od temperatury zasilania";
        copy = "Na potrzeby obliczenia przyjęto zastępcze ΔT = 1 K. Popraw temperatury wspólne, aby uzyskać użyteczny wynik.";
      } else if (errors.length > 0) {
        className += " is-danger";
        title = formatNumber(errors.length, 0) + " " + polishPlural(errors.length, "element wymaga", "elementy wymagają", "elementów wymaga") + " korekty";
        copy = errors.slice(0, 3).join(" • ");
        if (errors.length > 3) {
          copy += " • oraz " + formatNumber(errors.length - 3, 0) + " kolejne";
        }
      } else if (warnings.length > 0) {
        className += " is-warning";
        title = formatNumber(warnings.length, 0) + " " + polishPlural(warnings.length, "parametr wymaga", "parametry wymagają", "parametrów wymaga") + " sprawdzenia";
        copy = warnings.slice(0, 3).join(" • ");
        if (warnings.length > 3) {
          copy += " • oraz " + formatNumber(warnings.length - 3, 0) + " kolejne";
        }
      }

      status.className = className;
      setText("rk-calc-status-title", title);
      setText("rk-calc-status-copy", copy);
    }

    function calculate() {
      var supply = numberFromId("rk-calc-supply", 35);
      var returnTemperature = numberFromId("rk-calc-return", 28);
      var pipeDiameter = numberFromId("rk-calc-pipe", 0.012);
      var targetLength = numberFromId("rk-calc-loop-target", 90);
      var geometryFactor = numberFromId("rk-calc-geometry-factor", 1.05);
      var rawDeltaT = supply - returnTemperature;
      var globalError = rawDeltaT <= 0;
      var deltaT = globalError ? 1 : rawDeltaT;

      var settings = {
        supply: supply,
        returnTemperature: returnTemperature,
        meanWater: (supply + returnTemperature) / 2,
        pipeDiameter: pipeDiameter,
        targetLength: targetLength,
        geometryFactor: geometryFactor,
        deltaT: deltaT,
        density: 995,
        viscosity: 0.0008,
        globalError: globalError
      };

      var rows = Array.prototype.slice.call(roomList.querySelectorAll(".rk-calc-room"));
      var results = rows.map(function (row, index) {
        return calculateRoom(row, index, settings);
      });

      var totals = results.reduce(function (accumulator, result) {
        accumulator.load += result.load;
        accumulator.area += result.area;
        accumulator.active += result.active;
        accumulator.pipe += result.totalLength;
        accumulator.loops += result.loops;
        accumulator.flow += result.roomFlow;
        accumulator.volume += result.volume;
        accumulator.maxPressure = Math.max(accumulator.maxPressure, result.pressureKpa);
        accumulator.errors = accumulator.errors.concat(result.errors);
        accumulator.warnings = accumulator.warnings.concat(result.warnings);
        return accumulator;
      }, {
        load: 0,
        area: 0,
        active: 0,
        pipe: 0,
        loops: 0,
        flow: 0,
        volume: 0,
        maxPressure: 0,
        errors: [],
        warnings: []
      });

      setText("rk-result-load", formatNumber(totals.load, 0) + " W");
      setText("rk-result-pipe", formatNumber(totals.pipe, 0) + " m");
      setText("rk-result-loops", formatNumber(totals.loops, 0));
      setText("rk-result-flow", formatNumber(totals.flow * 0.06, 2) + " m³/h");
      setText("rk-result-area", formatNumber(totals.area, 1) + " m²");
      setText("rk-result-active", formatNumber(totals.active, 1) + " m²");
      setText("rk-result-volume", formatNumber(totals.volume, 1) + " l");
      setText("rk-result-pressure", formatNumber(totals.maxPressure, 1) + " kPa");

      renderTables(results, settings);
      renderBars(results);
      updateStatus(totals.errors, totals.warnings, settings);
      updateRoomIndexes();
    }

    function roomMarkup() {
      return [
        '<span class="rk-calc-room-index">01</span>',
        '<div class="rk-calc-field"><label>Nazwa</label><input class="rk-room-name" type="text" value="" maxlength="50"></div>',
        '<div class="rk-calc-field"><label>Typ strefy</label><select class="rk-room-type"><option value="standard">Pokój 20–21°C</option><option value="bathroom">Łazienka 24°C</option><option value="edge">Strefa brzegowa</option></select></div>',
        '<div class="rk-calc-field"><label>Powierzchnia</label><input class="rk-room-area" type="number" min="1" max="200" step="0.1" value="12"><small>m²</small></div>',
        '<div class="rk-calc-field"><label>Pow. grzewcza</label><input class="rk-room-active" type="number" min="0.5" max="200" step="0.1" value="10"><small>m²</small></div>',
        '<div class="rk-calc-field"><label>Strata cieplna</label><input class="rk-room-load" type="number" min="50" max="15000" step="10" value="500"><small>W</small></div>',
        '<div class="rk-calc-field"><label>Okładzina</label><select class="rk-room-floor"><option value="0.01">Płytki R=0,01</option><option value="0.03">Winyl R=0,03</option><option value="0.07">Panel R=0,07</option><option value="0.10">Drewno R=0,10</option><option value="0.15">Dywan R=0,15</option></select></div>',
        '<div class="rk-calc-field"><label>Odległość</label><input class="rk-room-distance" type="number" min="0" max="50" step="0.5" value="6"><small>m do rozdzielacza</small></div>',
        '<div class="rk-calc-field"><label>Rozstaw</label><select class="rk-room-spacing"><option value="auto">Dobierz orientacyjnie</option><option value="5">5 cm</option><option value="10">10 cm</option><option value="15">15 cm</option><option value="20">20 cm</option></select></div>',
        '<button class="rk-calc-room-remove" type="button" aria-label="Usuń pomieszczenie">×</button>'
      ].join("");
    }

    function setRoomData(row, data) {
      row.querySelector(".rk-room-name").value = data.name;
      row.querySelector(".rk-room-type").value = data.type;
      row.querySelector(".rk-room-area").value = data.area;
      row.querySelector(".rk-room-active").value = data.active;
      row.querySelector(".rk-room-load").value = data.load;
      row.querySelector(".rk-room-floor").value = data.floor;
      row.querySelector(".rk-room-distance").value = data.distance;
      row.querySelector(".rk-room-spacing").value = data.spacing;
    }

    function createRoom(data) {
      roomCounter += 1;
      var row = document.createElement("div");
      row.className = "rk-calc-room";
      row.setAttribute("data-room-id", String(roomCounter));
      row.innerHTML = roomMarkup();
      setRoomData(row, data || {
        name: "Nowe pomieszczenie",
        type: "standard",
        area: 12,
        active: 10,
        load: 500,
        floor: "0.07",
        distance: 6,
        spacing: "auto"
      });
      roomList.appendChild(row);
      updateRoomIndexes();
      return row;
    }

    function updateRoomIndexes() {
      var rooms = roomList.querySelectorAll(".rk-calc-room");
      rooms.forEach(function (room, index) {
        var badge = room.querySelector(".rk-calc-room-index");
        var remove = room.querySelector(".rk-calc-room-remove");
        if (badge) {
          badge.textContent = String(index + 1).padStart(2, "0");
        }
        if (remove) {
          remove.disabled = rooms.length === 1;
          remove.setAttribute("aria-disabled", rooms.length === 1 ? "true" : "false");
        }
      });
    }

    function restoreSample() {
      roomList.textContent = "";
      roomCounter = 0;
      sampleRooms.forEach(function (data) {
        createRoom(data);
      });
      byId("rk-calc-supply").value = "35";
      byId("rk-calc-return").value = "28";
      byId("rk-calc-pipe").value = "0.012";
      byId("rk-calc-loop-target").value = "90";
      byId("rk-calc-geometry-factor").value = "1.05";
      calculate();
    }

    form.addEventListener("submit", function (event) {
      event.preventDefault();
      calculate();
      var results = byId("rk-calc-results");
      if (results) {
        var reducedMotion = false;
        if (window.matchMedia) {
          reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
        }
        results.scrollIntoView({
          behavior: reducedMotion ? "auto" : "smooth",
          block: "start"
        });
      }
    });

    form.addEventListener("input", function () {
      calculate();
    });

    form.addEventListener("change", function () {
      calculate();
    });

    var addRoomButton = byId("rk-calc-add-room");
    if (addRoomButton) {
      addRoomButton.addEventListener("click", function () {
        var count = roomList.querySelectorAll(".rk-calc-room").length;
        if (count >= 20) {
          return;
        }
        var row = createRoom();
        calculate();
        var firstInput = row.querySelector("input");
        if (firstInput) {
          firstInput.focus();
          firstInput.select();
        }
      });
    }

    var resetButton = byId("rk-calc-reset");
    if (resetButton) {
      resetButton.addEventListener("click", restoreSample);
    }

    roomList.addEventListener("click", function (event) {
      var target = event.target;
      if (!target) {
        return;
      }
      var removeButton = target.closest(".rk-calc-room-remove");
      if (!removeButton) {
        return;
      }
      var rooms = roomList.querySelectorAll(".rk-calc-room");
      if (rooms.length <= 1) {
        return;
      }
      var row = removeButton.closest(".rk-calc-room");
      if (row) {
        row.remove();
        calculate();
      }
    });

    var tabs = root.querySelectorAll(".rk-calc-tab[data-tab]");
    tabs.forEach(function (tab) {
      tab.addEventListener("click", function () {
        var tabName = tab.getAttribute("data-tab");
        tabs.forEach(function (item) {
          var active = item === tab;
          item.classList.toggle("is-active", active);
          item.setAttribute("aria-selected", active ? "true" : "false");
        });
        var panels = root.querySelectorAll(".rk-calc-tab-panel[data-panel]");
        panels.forEach(function (panel) {
          panel.classList.toggle("is-active", panel.getAttribute("data-panel") === tabName);
        });
      });
    });

    var navigationLinks = root.querySelectorAll(".rk-calc-nav a[href^='#']");
    navigationLinks.forEach(function (link) {
      link.addEventListener("click", function (event) {
        var targetId = link.getAttribute("href");
        if (!targetId) {
          return;
        }
        var target = root.querySelector(targetId);
        if (!target) {
          return;
        }
        event.preventDefault();
        var reducedMotion = false;
        if (window.matchMedia) {
          reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
        }
        target.scrollIntoView({
          behavior: reducedMotion ? "auto" : "smooth",
          block: "start"
        });
        if (window.history) {
          if (window.history.replaceState) {
            window.history.replaceState(null, "", targetId);
          }
        }
      });
    });

    var progress = root.querySelector(".rk-calc-progress");
    function updateProgress() {
      if (!progress) {
        return;
      }
      var rectangle = root.getBoundingClientRect();
      var available = root.offsetHeight - window.innerHeight;
      var passed = -rectangle.top;
      var ratio = available > 0 ? clamp(passed / available, 0, 1) : 0;
      progress.style.width = ratio * 100 + "%";
    }

    window.addEventListener("scroll", updateProgress, { passive: true });
    window.addEventListener("resize", updateProgress);
    updateRoomIndexes();
    calculate();
    updateProgress();
    root.setAttribute("data-rk-calc-ready", "1");
    return true;
  }

  function attemptFloorCalculatorInitialization() {
    initializeFloorCalculator();
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", attemptFloorCalculatorInitialization);
  } else {
    attemptFloorCalculatorInitialization();
  }

  window.addEventListener("load", attemptFloorCalculatorInitialization);
  window.setTimeout(attemptFloorCalculatorInitialization, 250);
  window.setTimeout(attemptFloorCalculatorInitialization, 1200);
  window.setTimeout(attemptFloorCalculatorInitialization, 3000);

  if (window.MutationObserver) {
    var observer = new MutationObserver(function () {
      var root = document.getElementById("rk-floor-calc-guide");
      if (root) {
        initializeFloorCalculator();
        if (root.getAttribute("data-rk-calc-ready") === "1") {
          observer.disconnect();
        }
      }
    });
    observer.observe(document.documentElement, { childList: true, subtree: true });
  }
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">Kompleksowy kalkulator ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projektowe Obciążenie Cieplne (OZC).</title>
		<link>https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 15 Feb 2026 12:02:50 +0000</pubDate>
				<category><![CDATA[Efektywność cieplna]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Efektywność ogrzewania]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[OZC]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[efektywność pompy ciepła]]></category>
		<category><![CDATA[instalacja co projekt]]></category>
		<category><![CDATA[normy pn en 12831]]></category>
		<category><![CDATA[obliczenia ozc]]></category>
		<category><![CDATA[ogrzewanie podłogowe parametry]]></category>
		<category><![CDATA[ogrzewanie podłogowe projekt]]></category>
		<category><![CDATA[ozc]]></category>
		<category><![CDATA[pompa ciepła projekt]]></category>
		<category><![CDATA[projekt instalacji grzewczej]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[projektowe obciążenie cieplne]]></category>
		<category><![CDATA[rozstaw rur podłogówki]]></category>
		<category><![CDATA[straty ciepła]]></category>
		<category><![CDATA[strumień ciepła podłogówka]]></category>
		<category><![CDATA[zapotrzebowanie na ciepło]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3460</guid>

					<description><![CDATA[<p>Wiele instalacji grzewczych powstaje na podstawie przybliżeń, a nie rzeczywistych danych, co prowadzi do wysokich rachunków i problemów z komfortem cieplnym. Tymczasem Projektowe Obciążenie Cieplne (OZC) to kluczowy element, który pozwala precyzyjnie określić, ile energii potrzebuje Twój dom, aby utrzymać komfort nawet podczas największych mrozów. Od tej wartości zależy dobór rozstawu rur, temperatura zasilania oraz efektywność pompy ciepła. W tym artykule pokazujemy krok po kroku, jak OZC wpływa na projekt ogrzewania podłogowego i dlaczego jego prawidłowe obliczenie decyduje o trwałości, oszczędności i niezawodności całego systemu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Projektowe Obciążenie Cieplne (OZC).</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
#rk-ozc-guide{--rk-navy:#0b2536;--rk-cyan:#29c4d7;--rk-orange:#ff6846;--rk-ink:#10283a;--rk-copy:#3c5668;--rk-line:#d3e2e8;--rk-bg:#f3f8fa;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;color:var(--rk-ink);max-width:1360px;width:100%;margin:0 auto;overflow-wrap:anywhere;color-scheme:light}
#rk-ozc-guide,#rk-ozc-guide *{box-sizing:border-box;min-width:0}
#rk-ozc-guide [hidden]{display:none!important}
#rk-ozc-guide h2,#rk-ozc-guide h3,#rk-ozc-guide h4{font-family:Arial,Helvetica,sans-serif;color:#10283a;font-weight:900;line-height:1.25}
#rk-ozc-guide a{color:#06728d;text-decoration:underline;text-underline-offset:3px}
#rk-ozc-guide a:hover{color:#b43f25}
#rk-ozc-guide :is(a,button,input,select,summary):focus-visible{outline:3px solid #078fb3;outline-offset:4px}
#rk-ozc-guide button,#rk-ozc-guide input,#rk-ozc-guide select{font:inherit}
#rk-ozc-guide button{cursor:pointer}
#rk-ozc-guide img{display:block;max-width:100%;height:auto}
#rk-ozc-guide .rk-ozc-shell{background:#fff;border:1px solid #d3e2e8;box-shadow:0 22px 65px rgb(13 41 57 / 12%);overflow:hidden}
#rk-ozc-guide .rk-ozc-hero{padding:58px 58px 48px;background:radial-gradient(circle at 93% 115%,rgb(41 196 215 / 22%) 0 20%,transparent 20.2%),linear-gradient(120deg,#0b2536 0%,#143e52 65%,#0d6576 100%);color:#fff}
#rk-ozc-guide .rk-ozc-kicker{display:flex;align-items:center;gap:13px;font-size:.76rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#89edf5;margin-bottom:20px}
#rk-ozc-guide .rk-ozc-kicker:before{content:'';width:12px;height:12px;flex:0 0 12px;border-radius:50%;background:#ff6846;box-shadow:0 0 0 7px rgb(255 104 70 / 16%)}
#rk-ozc-guide .rk-ozc-visual-title{font-size:clamp(2.3rem,5.8vw,4.95rem);font-weight:900;line-height:1.07;letter-spacing:-.035em;color:#fff;margin:0}
#rk-ozc-guide .rk-ozc-visual-title span{color:#81ebf3}
#rk-ozc-guide .rk-ozc-hero-lead{font-size:clamp(1.07rem,1.8vw,1.32rem);color:#e4f0f4;line-height:1.65;margin:24px 0 0;max-width:1110px}
#rk-ozc-guide .rk-ozc-tags,#rk-ozc-guide .rk-ozc-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
#rk-ozc-guide .rk-ozc-tags span{border:1px solid #527384;background:rgb(255 255 255 / 7%);border-radius:999px;padding:7px 13px;color:#fff;font-size:.82rem;font-weight:800}
#rk-ozc-guide .rk-ozc-meta{font-size:.83rem;color:#c9dfe6;gap:12px 25px}
#rk-ozc-guide .rk-ozc-meta strong{color:#fff}
#rk-ozc-guide .rk-ozc-hero-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:30px}
#rk-ozc-guide .rk-ozc-hero-point{border:1px solid #527384;border-radius:14px;padding:16px;background:rgb(255 255 255 / 5%);color:#dcecf1;font-size:.88rem}
#rk-ozc-guide .rk-ozc-hero-point strong{display:block;color:#fff;font-size:1rem;margin-bottom:5px}
#rk-ozc-guide .rk-ozc-nav{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:9px;padding:23px 32px;border-bottom:1px solid #d3e2e8;background:#fff}
#rk-ozc-guide .rk-ozc-nav-label{font-size:.73rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#10283a;margin-right:4px}
#rk-ozc-guide .rk-ozc-nav a{background:#f0f6f8;border-radius:999px;padding:7px 12px;font-size:.77rem;font-weight:800;line-height:1.3;text-decoration:none;color:#10283a}
#rk-ozc-guide .rk-ozc-nav a:hover{background:#def7fa;color:#075f78}
#rk-ozc-guide .rk-ozc-section{padding:59px 58px;scroll-margin-top:24px}
#rk-ozc-guide .rk-ozc-section+.rk-ozc-section{border-top:1px solid #d3e2e8}
#rk-ozc-guide .rk-ozc-soft{background:#f3f8fa}
#rk-ozc-guide .rk-ozc-eyebrow{display:block;font-size:.75rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#06728d;margin-bottom:12px}
#rk-ozc-guide .rk-ozc-title{color:#10283a;font-size:clamp(1.9rem,3.8vw,3.4rem);line-height:1.12;letter-spacing:-.03em;margin:0;max-width:1110px}
#rk-ozc-guide .rk-ozc-lead{font-size:1.15rem;color:#3c5668;line-height:1.75;margin:22px 0 0;max-width:1120px}
#rk-ozc-guide .rk-ozc-copy{color:#3c5668;margin:20px 0 0}
#rk-ozc-guide .rk-ozc-answer{border:1px solid #9cdfe8;border-left:7px solid #29c4d7;background:linear-gradient(135deg,#e6fafd,#f8fcfd);border-radius:17px;padding:25px 28px;margin-top:27px;color:#3c5668}
#rk-ozc-guide .rk-ozc-answer strong{display:block;color:#10283a;font-size:1.2rem;line-height:1.5}
#rk-ozc-guide .rk-ozc-answer p{margin:10px 0 0;color:#3c5668}
#rk-ozc-guide .rk-ozc-grid-2,#rk-ozc-guide .rk-ozc-grid-3{display:grid;gap:18px;margin-top:28px}
#rk-ozc-guide .rk-ozc-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
#rk-ozc-guide .rk-ozc-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
#rk-ozc-guide .rk-ozc-card{background:#fff;border:1px solid #d3e2e8;border-radius:16px;padding:23px;color:#3c5668}
#rk-ozc-guide .rk-ozc-card h3{font-size:1.14rem;color:#10283a;margin:0 0 10px}
#rk-ozc-guide .rk-ozc-card p{color:#3c5668;margin:0}
#rk-ozc-guide .rk-ozc-number{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 9px;border-radius:10px;background:#def7fa;color:#07677f;font-weight:900;margin-bottom:14px}
#rk-ozc-guide .rk-ozc-note{background:#fff6e2;border-left:6px solid #f2b526;border-radius:14px;padding:19px 22px;margin-top:25px;color:#5b4a1d}
#rk-ozc-guide .rk-ozc-note p{margin:0;color:inherit}
#rk-ozc-guide .rk-ozc-note strong{color:inherit}
#rk-ozc-guide .rk-ozc-good{background:#e9faf5;border-left-color:#2fcda1;color:#145e4d}
#rk-ozc-guide .rk-ozc-alert{background:#fff0ec;border-left-color:#ff6846;color:#713426}
#rk-ozc-guide .rk-ozc-table-wrap{overflow-x:auto;margin-top:28px}
#rk-ozc-guide table{border-collapse:separate;border-spacing:0;min-width:690px;width:100%;color:#3c5668;font-size:.94rem}
#rk-ozc-guide caption{text-align:left;color:#526c7c;font-size:.88rem;margin-bottom:12px}
#rk-ozc-guide th{background:#0b2536;color:#fff;text-align:left;font-size:.77rem;letter-spacing:.03em;text-transform:uppercase;padding:14px 16px;border-bottom:1px solid #31576a}
#rk-ozc-guide th:first-child{border-radius:13px 0 0 0}
#rk-ozc-guide th:last-child{border-radius:0 13px 0 0}
#rk-ozc-guide td{background:#fff;color:#3c5668;border-bottom:1px solid #d3e2e8;padding:16px;vertical-align:top}
#rk-ozc-guide td:first-child{border-left:1px solid #d3e2e8}
#rk-ozc-guide td:last-child{border-right:1px solid #d3e2e8}
#rk-ozc-guide td strong{color:#10283a}
#rk-ozc-guide .rk-ozc-formula{background:#edf8fa;border:1px solid #b4e1e7;border-radius:13px;color:#08667d;padding:16px 19px;font:700 1rem/1.65 Consolas,Monaco,monospace;margin-top:20px}
#rk-ozc-guide .rk-ozc-subtitle{font-size:1.4rem;line-height:1.35;margin:30px 0 0;color:#10283a}
#rk-ozc-guide .rk-ozc-bullets,#rk-ozc-guide .rk-ozc-steps{padding-left:23px;margin:20px 0 0;color:#3c5668}
#rk-ozc-guide li+li{margin-top:8px}
#rk-ozc-guide .rk-ozc-tool{background:#102f42;border:1px solid #315a70;border-radius:22px;padding:28px;margin-top:30px;color:#fff}
#rk-ozc-guide .rk-ozc-tool-head{padding-bottom:21px;border-bottom:1px solid #315a70}
#rk-ozc-guide .rk-ozc-tool-head h3{color:#fff;margin:0;font-size:clamp(1.45rem,2.8vw,2.1rem)}
#rk-ozc-guide .rk-ozc-tool-head p{color:#d3e5eb;font-size:.95rem;margin:10px 0 0}
#rk-ozc-guide .rk-ozc-badge{display:inline-block;padding:5px 10px;border:1px solid #79ced8;background:#def7fa;color:#075f78;font-size:.74rem;font-weight:900;border-radius:999px;margin-bottom:13px}
#rk-ozc-guide .rk-ozc-stage{background:#17394b;border:1px solid #40697e;border-radius:16px;padding:23px;margin-top:19px}
#rk-ozc-guide .rk-ozc-stage-head{display:flex;align-items:flex-start;gap:13px;margin-bottom:18px}
#rk-ozc-guide .rk-ozc-stage-head .rk-ozc-number{background:#29c4d7;color:#082c3c;flex:0 0 38px;height:38px;margin:0}
#rk-ozc-guide .rk-ozc-stage-head h4{color:#fff;font-size:1.12rem;margin:0}
#rk-ozc-guide .rk-ozc-stage-head p{color:#d0e3ea;font-size:.89rem;margin:5px 0 0}
#rk-ozc-guide .rk-ozc-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#rk-ozc-guide .rk-ozc-wide{grid-column:1/-1}
#rk-ozc-guide .rk-ozc-field{display:block;color:#eaf6f8}
#rk-ozc-guide .rk-ozc-field>span{display:block;color:#eaf6f8;font-size:.84rem;font-weight:800;margin-bottom:7px}
#rk-ozc-guide .rk-ozc-field input,#rk-ozc-guide .rk-ozc-field select{display:block;background:#fff!important;color:#10283a!important;-webkit-text-fill-color:#10283a;opacity:1;box-shadow:none;width:100%;min-height:48px;border:1px solid #b8ccd5;border-radius:9px;padding:10px 12px}
#rk-ozc-guide .rk-ozc-field small{display:block;color:#d0e3ea;font-size:.78rem;line-height:1.5;margin-top:7px}
#rk-ozc-guide .rk-ozc-field input[aria-invalid=true]{border:3px solid #ed765d}
#rk-ozc-guide .rk-ozc-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:21px}
#rk-ozc-guide .rk-ozc-primary,#rk-ozc-guide .rk-ozc-secondary{border:1px solid #6c8b9c;border-radius:10px;padding:11px 17px;min-height:47px;font-weight:900}
#rk-ozc-guide .rk-ozc-primary{background:#ff6846;color:#10283a;border-color:#ff6846}
#rk-ozc-guide .rk-ozc-primary:hover{background:#ff896e}
#rk-ozc-guide .rk-ozc-secondary{background:#17394b;color:#fff}
#rk-ozc-guide .rk-ozc-secondary:hover{background:#25516a}
#rk-ozc-guide .rk-ozc-results{background:#fff;color:#10283a;border:1px solid #cbdfe7;border-radius:17px;padding:25px;margin-top:24px}
#rk-ozc-guide .rk-ozc-results>h3{color:#10283a;font-size:clamp(1.35rem,2.5vw,2rem);margin:0}
#rk-ozc-guide .rk-ozc-scope{background:#edf8fa;color:#154d60;border:1px solid #b4e1e7;border-radius:12px;padding:15px 18px;font-size:.9rem;margin:16px 0 0}
#rk-ozc-guide .rk-ozc-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
#rk-ozc-guide .rk-ozc-metric{padding:14px;border:1px solid #d3e3e9;border-radius:11px;background:#fff;color:#10283a}
#rk-ozc-guide .rk-ozc-metric span{display:block;font-size:.74rem;color:#526c7c;font-weight:800}
#rk-ozc-guide .rk-ozc-metric strong{display:block;font-size:1.2rem;color:#10283a!important;-webkit-text-fill-color:#10283a;line-height:1.4;margin-top:6px}
#rk-ozc-guide .rk-ozc-small{color:#526c7c;font-size:.8rem;line-height:1.6;margin:17px 0 0}
#rk-ozc-guide .rk-ozc-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
#rk-ozc-guide .rk-ozc-cta{background:radial-gradient(circle at 94% 125%,rgb(41 196 215 / 20%) 0 23%,transparent 23.2%),linear-gradient(125deg,#0b2536,#143e52 64%,#0d6272);color:#fff;border-radius:21px;padding:34px;margin-top:32px}
#rk-ozc-guide .rk-ozc-cta h3{color:#fff!important;-webkit-text-fill-color:#fff;font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.15;letter-spacing:-.025em;margin:0}
#rk-ozc-guide .rk-ozc-cta p{color:#d5e7ed;margin:16px 0 0;max-width:990px}
#rk-ozc-guide .rk-ozc-cta-button{display:inline-block;padding:13px 20px;margin-top:21px;background:#ff6846;border:1px solid #ff6846;border-radius:11px;color:#10283a!important;-webkit-text-fill-color:#10283a;font-weight:900;text-decoration:none;box-shadow:0 10px 22px rgb(255 104 70 / 18%)}
#rk-ozc-guide .rk-ozc-cta-button:hover{background:#ff8b71}
#rk-ozc-guide .rk-ozc-disclosure{display:block;color:#c5dce5;font-size:.77rem;margin-top:12px}
#rk-ozc-guide .rk-ozc-faq{display:grid;gap:12px;margin-top:29px}
#rk-ozc-guide .rk-ozc-faq details{background:#fff;border:1px solid #d3e2e8;border-radius:13px;overflow:hidden}
#rk-ozc-guide .rk-ozc-faq summary{list-style:none;position:relative;color:#10283a;padding:18px 52px 18px 20px;font-weight:900;cursor:pointer}
#rk-ozc-guide .rk-ozc-faq summary::-webkit-details-marker{display:none}
#rk-ozc-guide .rk-ozc-faq summary:after{content:'+';position:absolute;right:20px;top:10px;color:#06728d;font-size:1.65rem}
#rk-ozc-guide .rk-ozc-faq details[open] summary:after{content:'−'}
#rk-ozc-guide .rk-ozc-faq-answer{padding:18px 20px;border-top:1px solid #d3e2e8;color:#3c5668}
#rk-ozc-guide .rk-ozc-faq-answer p{margin:0;color:#3c5668}
#rk-ozc-guide .rk-ozc-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-top:28px}
#rk-ozc-guide .rk-ozc-source{background:#f2f7f9;border:1px solid #cfe0e7;border-radius:15px;padding:21px;color:#3c5668}
#rk-ozc-guide .rk-ozc-source a{font-weight:900;color:#06728d}
#rk-ozc-guide .rk-ozc-source p{font-size:.91rem;color:#3c5668;margin:10px 0 0}
#rk-ozc-guide .rk-ozc-author-layout{display:grid;grid-template-columns:290px minmax(0,1fr);border:1px solid #cbdde5;border-radius:21px;overflow:hidden;background:#fff;margin-top:29px}
#rk-ozc-guide .rk-ozc-author-side{display:flex;flex-direction:column;align-items:center;text-align:center;background:#0b2536;color:#fff;padding:34px 25px}
#rk-ozc-guide .rk-ozc-author-photo{width:158px;aspect-ratio:1;border-radius:50%;overflow:hidden;border:5px solid #58788a;background:#fff}
#rk-ozc-guide .rk-ozc-author-photo img{width:100%;height:100%;object-fit:cover}
#rk-ozc-guide .rk-ozc-author-name{color:#fff;font-weight:900;font-size:1.25rem;margin-top:19px}
#rk-ozc-guide .rk-ozc-author-role{color:#c5dce5;font-size:.83rem;margin:8px 0 0}
#rk-ozc-guide .rk-ozc-social{display:flex;gap:10px;margin-top:20px}
#rk-ozc-guide .rk-ozc-social a{display:flex;align-items:center;justify-content:center;width:43px;height:43px;border:1px solid #66889b;border-radius:50%;color:#fff;text-decoration:none;font-weight:800}
#rk-ozc-guide .rk-ozc-social a:hover{background:#29c4d7;color:#082c3c}
#rk-ozc-guide .rk-ozc-author-main{padding:34px;color:#3c5668}
#rk-ozc-guide .rk-ozc-author-main p{color:#3c5668;margin:18px 0 0}
#rk-ozc-guide .rk-ozc-author-quote{background:#f2f9fb;border-left:6px solid #29c4d7;border-radius:13px;padding:21px;font-size:1.08rem;font-weight:800;line-height:1.65;color:#10283a}
#rk-ozc-guide .rk-ozc-author-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:23px}
#rk-ozc-guide .rk-ozc-author-facts>div{background:#eef7f9;border:1px solid #d2e4e9;border-radius:12px;padding:14px;font-size:.83rem;color:#3c5668}
#rk-ozc-guide .rk-ozc-author-facts strong{display:block;color:#06728d;font-size:.73rem;text-transform:uppercase;margin-bottom:5px}
@media(max-width:1050px){#rk-ozc-guide .rk-ozc-scenario-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){#rk-ozc-guide .rk-ozc-hero,#rk-ozc-guide .rk-ozc-section{padding-left:28px;padding-right:28px}#rk-ozc-guide .rk-ozc-hero-points,#rk-ozc-guide .rk-ozc-grid-3{grid-template-columns:1fr}#rk-ozc-guide .rk-ozc-author-layout{grid-template-columns:1fr}#rk-ozc-guide .rk-ozc-nav{padding:21px}#rk-ozc-guide .rk-ozc-metrics{grid-template-columns:1fr}}
@media(max-width:640px){#rk-ozc-guide .rk-ozc-hero{padding-top:43px;padding-bottom:37px}#rk-ozc-guide .rk-ozc-section{padding-top:44px;padding-bottom:44px}#rk-ozc-guide .rk-ozc-grid-2,#rk-ozc-guide .rk-ozc-fields,#rk-ozc-guide .rk-ozc-sources,#rk-ozc-guide .rk-ozc-author-facts,#rk-ozc-guide .rk-ozc-preview{grid-template-columns:1fr}#rk-ozc-guide .rk-ozc-tool,#rk-ozc-guide .rk-ozc-chart,#rk-ozc-guide .rk-ozc-cta{padding:18px;border-radius:16px}#rk-ozc-guide .rk-ozc-stage,#rk-ozc-guide .rk-ozc-results,#rk-ozc-guide .rk-ozc-custom{padding:18px}#rk-ozc-guide .rk-ozc-optional-body{padding-left:15px;padding-right:15px}#rk-ozc-guide .rk-ozc-actions{display:grid;grid-template-columns:1fr}#rk-ozc-guide .rk-ozc-cta-button{width:100%;text-align:center}#rk-ozc-guide .rk-ozc-author-main{padding:25px 20px}#rk-ozc-guide .rk-ozc-table-wrap{overflow:visible}#rk-ozc-guide table,#rk-ozc-guide tbody,#rk-ozc-guide tr,#rk-ozc-guide td{display:block;width:100%;min-width:0}#rk-ozc-guide thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#rk-ozc-guide tbody{display:grid;gap:13px}#rk-ozc-guide tr{border:1px solid #d3e2e8;border-radius:13px;overflow:hidden}#rk-ozc-guide td,#rk-ozc-guide td:first-child,#rk-ozc-guide td:last-child{border:0;border-bottom:1px solid #e1ebef;padding:13px 15px}#rk-ozc-guide td:last-child{border-bottom:0}#rk-ozc-guide td:before{content:attr(data-label);display:block;color:#06728d;font-size:.69rem;font-weight:900;text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px}}
@media(max-width:430px){#rk-ozc-guide .rk-ozc-hero,#rk-ozc-guide .rk-ozc-section{padding-left:18px;padding-right:18px}#rk-ozc-guide .rk-ozc-visual-title{font-size:2.15rem}#rk-ozc-guide .rk-ozc-title{font-size:1.85rem}#rk-ozc-guide .rk-ozc-nav{padding:17px 14px}#rk-ozc-guide .rk-ozc-nav-label{flex:1 0 100%}#rk-ozc-guide .rk-ozc-nav a{flex:1 1 calc(50% - 9px);text-align:center}#rk-ozc-guide .rk-ozc-scenario-grid{grid-template-columns:1fr}#rk-ozc-guide .rk-ozc-tool{padding:12px}#rk-ozc-guide .rk-ozc-stage,#rk-ozc-guide .rk-ozc-results{padding:16px}#rk-ozc-guide .rk-ozc-chart{padding:14px}#rk-ozc-guide .rk-ozc-chart-buttons button{flex:1 1 90px}}
@media(prefers-reduced-motion:reduce){#rk-ozc-guide *,#rk-ozc-guide *:before,#rk-ozc-guide *:after{scroll-behavior:auto;transition:none;animation:none}}
@media print{#rk-ozc-guide{font-size:11pt;max-width:none}#rk-ozc-guide .rk-ozc-shell{box-shadow:none}#rk-ozc-guide .rk-ozc-nav,#rk-ozc-guide .rk-ozc-actions,#rk-ozc-guide .rk-ozc-chart-slider,#rk-ozc-guide .rk-ozc-chart-buttons{display:none}#rk-ozc-guide .rk-ozc-section{padding:25px 15px}#rk-ozc-guide .rk-ozc-card,#rk-ozc-guide .rk-ozc-scenario{break-inside:avoid}}

@media(max-width:640px){#rk-ozc-guide caption{display:block;width:100%;max-width:100%;white-space:normal;word-break:normal;overflow-wrap:break-word}}
#rk-ozc-guide .rk-ozc-module-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:22px}
#rk-ozc-guide .rk-ozc-module-button{appearance:none;min-height:62px;background:#173e51;color:#fff!important;-webkit-text-fill-color:#fff;border:1px solid #5a7e90;border-radius:11px;padding:12px;font-weight:800;line-height:1.35;text-align:center}
#rk-ozc-guide .rk-ozc-module-button[aria-pressed=true]{background:#29c4d7;color:#082c3c!important;-webkit-text-fill-color:#082c3c;border-color:#29c4d7}
#rk-ozc-guide .rk-ozc-report-panel{margin-top:22px;background:#fff;border:1px solid #cbdfe7;border-radius:17px;padding:25px;color:#10283a}
#rk-ozc-guide .rk-ozc-report-panel h3{color:#10283a!important;-webkit-text-fill-color:#10283a;margin:5px 0 0;font-size:clamp(1.4rem,2.8vw,2rem)}
#rk-ozc-guide .rk-ozc-report-panel h4,#rk-ozc-guide .rk-ozc-result-column h4{color:#10283a!important;-webkit-text-fill-color:#10283a;font-size:.9rem;line-height:1.4;margin:0 0 9px}
#rk-ozc-guide .rk-ozc-report-panel p{color:#3c5668;font-size:.94rem;margin:16px 0 0}
#rk-ozc-guide .rk-ozc-report-panel .rk-ozc-card{background:#f4f9fb;padding:18px}
#rk-ozc-guide .rk-ozc-report-panel .rk-ozc-card p{margin:0}
#rk-ozc-guide .rk-ozc-report-panel .rk-ozc-small{font-size:.82rem;color:#526c7c}
#rk-ozc-guide .rk-ozc-report-panel .rk-ozc-badge{margin-bottom:10px}
#rk-ozc-guide .rk-ozc-result-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}
#rk-ozc-guide .rk-ozc-result-column{background:#f3f8fa;border:1px solid #d3e2e8;border-radius:13px;padding:19px;color:#3c5668}
#rk-ozc-guide .rk-ozc-result-column ul{color:#3c5668;font-size:.88rem;line-height:1.65;margin:0;padding-left:19px}
#rk-ozc-guide .rk-ozc-result-column:first-child{border-top:5px solid #168267}
#rk-ozc-guide .rk-ozc-result-column:nth-child(2){border-top:5px solid #d79b14}
#rk-ozc-guide .rk-ozc-result-column:nth-child(3){border-top:5px solid #078fb3}
#rk-ozc-guide .rk-ozc-note-inline{color:#c9e1e8;font-size:.85rem;line-height:1.6;margin:18px 0 0}
#rk-ozc-guide .rk-ozc-room-field{max-width:500px;margin-top:20px}
#rk-ozc-guide .rk-ozc-metric strong,#rk-ozc-guide .rk-ozc-results>h3{color:#10283a!important;-webkit-text-fill-color:#10283a}
#rk-ozc-guide .rk-ozc-results>p{color:#3c5668}
#rk-ozc-guide .rk-ozc-checklist strong{color:#10283a}
@media(max-width:1050px){#rk-ozc-guide .rk-ozc-module-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}#rk-ozc-guide .rk-ozc-result-columns{grid-template-columns:1fr}}
@media(max-width:640px){#rk-ozc-guide .rk-ozc-module-buttons{grid-template-columns:1fr}#rk-ozc-guide .rk-ozc-module-button{min-height:47px;text-align:left;padding:12px 15px}#rk-ozc-guide .rk-ozc-report-panel{padding:18px}#rk-ozc-guide .rk-ozc-tool{padding:18px}#rk-ozc-guide caption{display:block;width:100%;max-width:100%;white-space:normal;word-break:normal;overflow-wrap:break-word}}
@media(max-width:430px){#rk-ozc-guide .rk-ozc-tool{padding:13px}#rk-ozc-guide .rk-ozc-report-panel{padding:16px}}
#rk-ozc-guide .rk-ozc-est-stage{min-width:0;margin:22px 0 0;padding:22px;border:1px solid #527589;border-radius:15px;background:#17394b}
#rk-ozc-guide .rk-ozc-est-stage legend{color:#fff!important;-webkit-text-fill-color:#fff;font-size:1.13rem;font-weight:900;line-height:1.4;max-width:100%;white-space:normal;padding:0 7px;overflow-wrap:break-word}
#rk-ozc-guide .rk-ozc-est-stage legend>span{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;margin-right:6px;background:#29c4d7;color:#082c3c;-webkit-text-fill-color:#082c3c;border-radius:8px}
#rk-ozc-guide .rk-ozc-est-stage>p{color:#d0e3ea;font-size:.89rem;line-height:1.65;margin:0 0 19px}
#rk-ozc-guide .rk-ozc-est-details{margin-top:17px;border:1px solid #527589;border-radius:12px;background:#153649;color:#eaf6f8}
#rk-ozc-guide .rk-ozc-est-details summary{cursor:pointer;padding:16px 19px;color:#fff!important;-webkit-text-fill-color:#fff;font-size:.92rem;font-weight:800}
#rk-ozc-guide .rk-ozc-est-details-body{padding:0 19px 20px}
#rk-ozc-guide .rk-ozc-est-details-body>p{font-size:.86rem;color:#d0e3ea;margin:0 0 18px}
#rk-ozc-guide .rk-ozc-est-errors{margin-top:22px;padding:19px 22px;border-left:6px solid #ff6846;border-radius:13px;background:#fff0ec;color:#713426}
#rk-ozc-guide .rk-ozc-est-errors p,#rk-ozc-guide .rk-ozc-est-errors ul{color:#713426;margin:0}
#rk-ozc-guide .rk-ozc-est-errors ul{padding-left:21px;margin-top:12px}
#rk-ozc-guide .rk-ozc-field input[aria-invalid=true]{border:3px solid #ed765d}
#rk-ozc-guide .rk-ozc-est-result-scope{background:#edf8fa;border:1px solid #b4e1e7;border-radius:11px;padding:15px 18px;color:#154d60;font-size:.88rem;line-height:1.65;margin:18px 0 0}
#rk-ozc-guide .rk-ozc-est-breakdown{display:grid;gap:16px;margin-top:20px}
#rk-ozc-guide .rk-ozc-est-part-line{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 15px;color:#3c5668;font-size:.88rem;line-height:1.5}
#rk-ozc-guide .rk-ozc-est-part-line strong{color:#10283a!important;-webkit-text-fill-color:#10283a}
#rk-ozc-guide .rk-ozc-est-track{height:9px;border-radius:7px;overflow:hidden;background:#e4eff3;margin-top:8px;width:100%}
#rk-ozc-guide .rk-ozc-est-track>span{height:100%;display:block;border-radius:7px;background:#078fb3;max-width:100%}
#rk-ozc-guide .rk-ozc-est-part:last-child .rk-ozc-est-track>span{background:#e76344}
#rk-ozc-guide .rk-ozc-est-comparison{margin-top:27px;border:1px solid #b8dbe2;border-radius:14px;padding:21px;background:#f7fbfc;color:#3c5668}
#rk-ozc-guide .rk-ozc-est-comparison h4{font-size:1.15rem;color:#10283a!important;-webkit-text-fill-color:#10283a;margin:0}
#rk-ozc-guide .rk-ozc-est-comparison .rk-ozc-grid-2{margin-top:18px}
#rk-ozc-guide .rk-ozc-est-comparison p{color:#3c5668;font-size:.87rem;line-height:1.65;margin:15px 0 0}
#rk-ozc-guide .rk-ozc-est-comparison .rk-ozc-small{font-size:.8rem}
#rk-ozc-guide .rk-ozc-est-model{margin-top:22px;border:1px solid #cadfe6;border-radius:12px;background:#fff;color:#3c5668}
#rk-ozc-guide .rk-ozc-est-model summary{color:#10283a!important;-webkit-text-fill-color:#10283a;cursor:pointer;padding:16px 18px;font-size:.9rem;font-weight:800}
#rk-ozc-guide .rk-ozc-est-model-body{padding:0 18px 18px}
#rk-ozc-guide .rk-ozc-est-model-body>p{margin:13px 0 0;color:#3c5668;font-size:.86rem;line-height:1.7}
#rk-ozc-guide .rk-ozc-est-model .rk-ozc-formula{font-size:.84rem}
@media(max-width:640px){#rk-ozc-guide .rk-ozc-est-stage{padding:17px 15px}#rk-ozc-guide .rk-ozc-est-stage legend{font-size:1.03rem}#rk-ozc-guide .rk-ozc-est-comparison{padding:16px}#rk-ozc-guide .rk-ozc-est-details-body{padding:0 15px 17px}#rk-ozc-guide .rk-ozc-est-part-line{display:grid;grid-template-columns:1fr}#rk-ozc-guide .rk-ozc-est-part-line strong{font-size:.88rem}}
</style>
<article id="rk-ozc-guide" lang="pl" aria-labelledby="rk-ozc-visual-title"><div class="rk-ozc-shell">
<header class="rk-ozc-hero"><span class="rk-ozc-kicker">OZC · wynik budynku · obciążenia pomieszczeń</span><div class="rk-ozc-visual-title" id="rk-ozc-visual-title">Projektowe obciążenie cieplne.<br><span>Co naprawdę mówi wynik OZC?</span></div><p class="rk-ozc-hero-lead">Sprawdź, jak odczytać kW i W/m², jakie dane przygotować oraz jak wykorzystać obciążenia pomieszczeń przy projektowaniu podłogówki i doborze źródła ciepła. Z przykładowym raportem i kalkulatorem orientacyjnego obciążenia cieplnego.</p><div class="rk-ozc-tags" aria-label="Zakres poradnika"><span>moc a energia</span><span>wyniki pomieszczeń</span><span>interaktywny raport</span><span>kalkulator mocy domu</span><span>projekt i dobór źródła</span></div><div class="rk-ozc-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Publikacja: <strong><time datetime="2026-02-15">15 lutego 2026 r.</time></strong></span><span>Aktualizacja: <strong><time datetime="2026-10-29">29 października 2026 r.</time></strong></span><span>Czas czytania: <strong>około 25 minut</strong></span></div><div class="rk-ozc-hero-points"><div class="rk-ozc-hero-point"><strong>1. Odczytaj wynik</strong>kW opisują potrzebną moc. Nie określają rocznego zużycia ani rachunku.</div><div class="rk-ozc-hero-point"><strong>2. Sprawdź pomieszczenia</strong>Wynik całego domu nie zastępuje obciążeń poszczególnych pokojów.</div><div class="rk-ozc-hero-point"><strong>3. Przejdź do projektu</strong>Moc musi zostać powiązana z wydajnością odbiorników, hydrauliką i źródłem.</div></div></header>
<nav class="rk-ozc-nav" aria-label="Na skróty — wszystkie sekcje poradnika"><span class="rk-ozc-nav-label">Na skróty</span><a href="#rk-ozc-answer">Szybka odpowiedź</a><a href="#rk-ozc-units">W, kW i W/m²</a><a href="#rk-ozc-documents">OZC a inne dokumenty</a><a href="#rk-ozc-rooms">Obciążenia pomieszczeń</a><a href="#rk-ozc-inputs">Dane do OZC</a><a href="#rk-ozc-temperatures">Temperatury</a><a href="#rk-ozc-losses">Przenikanie i wentylacja</a><a href="#rk-ozc-uncertainty">Niepewne założenia</a><a href="#rk-ozc-report">Raport OZC</a><a href="#rk-ozc-reader">Czytaj raport</a><a href="#rk-ozc-data">Kalkulator mocy</a><a href="#rk-ozc-floor">Projekt podłogówki</a><a href="#rk-ozc-source">Dobór źródła</a><a href="#rk-ozc-bills">OZC a rachunki</a><a href="#rk-ozc-renovation">Stary dom</a><a href="#rk-ozc-update">Aktualizacja obliczeń</a><a href="#rk-ozc-standards">Normy i wymagania</a><a href="#rk-ozc-errors">Błędy</a><a href="#rk-ozc-checklist">Checklista</a><a href="#rk-ozc-faq">FAQ</a><a href="#rk-ozc-sources">Źródła</a><a href="#rk-ozc-author">Autor</a></nav>
<section class="rk-ozc-section" id="rk-ozc-answer" aria-labelledby="rk-ozc-title-answer"><span class="rk-ozc-eyebrow">Odpowiedź w 60 sekund</span><h2 class="rk-ozc-title" id="rk-ozc-title-answer">Czym jest projektowe obciążenie cieplne OZC?</h2><p class="rk-ozc-lead"><strong>Projektowe obciążenie cieplne to moc potrzebna do utrzymania założonej temperatury wewnętrznej w określonych warunkach projektowych.</strong> Wynik podaje się w watach lub kilowatach. Dotyczy on przyjętego stanu budynku, jego wentylacji i temperatur, a nie dowolnej zimy ani każdego sposobu użytkowania.</p><div class="rk-ozc-answer"><strong>OZC odpowiada na pytanie: ile mocy grzewczej potrzeba? Roczne zapotrzebowanie odpowiada na inne pytanie: ile ciepła potrzeba przez cały sezon?</strong><p>Do rozmieszczenia ogrzewania potrzebne są również wyniki pomieszczeń. Sama liczba dla całego domu nie określa rozstawu rur, przepływów ani rachunku za energię.</p></div><p class="rk-ozc-copy">Skrót „OZC” bywa potocznie używany jako nazwa obliczeń zapotrzebowania na ciepło lub całego opracowania cieplnego. Przed zamówieniem ustal więc zakres: czy otrzymasz obciążenie całego budynku, obciążenia pomieszczeń, obliczenia energii rocznej, czy kilka odrębnych wyników. W tym poradniku omawiam przede wszystkim <strong>projektowe obciążenie cieplne na potrzeby ogrzewania pomieszczeń</strong>.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Wynik ma warunki</h3><p>Ta sama bryła może mieć inne obciążenie po zmianie ocieplenia, stolarki, wentylacji albo temperatur pomieszczeń.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Pomieszczenia są różne</h3><p>Pokój wewnętrzny i narożna łazienka mogą potrzebować innej mocy mimo podobnego metrażu.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>OZC rozpoczyna dobór</h3><p>Po obliczeniach trzeba jeszcze sprawdzić wydajność odbiorników, hydraulikę i charakterystykę źródła.</p></article></div></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-units" aria-labelledby="rk-ozc-title-units"><span class="rk-ozc-eyebrow">Najpierw jednostki</span><h2 class="rk-ozc-title" id="rk-ozc-title-units">Co oznacza wynik w W, kW i W/m²?</h2><p class="rk-ozc-lead">Najwięcej pomyłek zaczyna się od jednostki. <strong>kW i kWh nie są zamienne.</strong> Pierwsza jednostka opisuje moc, a druga ilość energii. Wskaźnik W/m² wymaga dodatkowo informacji, do jakiej powierzchni odniesiono wynik.</p><div class="rk-ozc-table-wrap"><table><caption>Przykłady liczbowe są edukacyjne. Nie stanowią obliczeń dla konkretnego domu.</caption><thead><tr><th scope="col">Zapis w raporcie</th><th scope="col">Co oznacza</th><th scope="col">Jak go wykorzystać</th></tr></thead><tbody><tr><td data-label="Zapis w raporcie"><strong>5800 W = 5,8 kW</strong></td><td data-label="Co oznacza">Projektowe obciążenie cieplne budynku w przyjętych warunkach.</td><td data-label="Jak go wykorzystać">Punkt wyjścia do doboru źródła i sprawdzenia mocy całej instalacji.</td></tr><tr><td data-label="Zapis w raporcie"><strong>900 W dla pokoju</strong></td><td data-label="Co oznacza">Obciążenie konkretnego pomieszczenia.</td><td data-label="Jak go wykorzystać">Dane do przydzielenia mocy odbiornikom w tym pokoju.</td></tr><tr><td data-label="Zapis w raporcie"><strong>45 W/m² pokoju</strong></td><td data-label="Co oznacza">900 W podzielone przez 20 m² powierzchni pomieszczenia.</td><td data-label="Jak go wykorzystać">Wskaźnik porównawczy; nie jest jeszcze wydajnością aktywnej podłogi.</td></tr><tr><td data-label="Zapis w raporcie"><strong>75 W/m² aktywnej podłogi</strong></td><td data-label="Co oznacza">900 W podzielone przez 12 m² czynnej powierzchni ogrzewania.</td><td data-label="Jak go wykorzystać">Wymagana średnia moc oddawana do pokoju, jeżeli podłoga ma pokryć całe jego obciążenie.</td></tr><tr><td data-label="Zapis w raporcie"><strong>kWh/rok</strong></td><td data-label="Co oznacza">Energia w skali roku; wymaga odrębnych obliczeń sezonowych.</td><td data-label="Jak go wykorzystać">Dane do analizy zużycia energii i kosztów, z zachowaniem granic obliczeń.</td></tr></tbody></table></div><div class="rk-ozc-formula">1000 W = 1 kW<br>wskaźnik obciążenia = obciążenie [W] / przyjęta powierzchnia [m²]</div><div class="rk-ozc-note"><p>Wynik 5,8 kW <strong>nie oznacza</strong> stałego poboru 5,8 kW przez całą zimę. Mnożenie go przez wszystkie godziny sezonu nie daje wiarygodnego rocznego zapotrzebowania na ciepło.</p></div></section>
<section class="rk-ozc-section" id="rk-ozc-documents" aria-labelledby="rk-ozc-title-documents"><span class="rk-ozc-eyebrow">Podobne dane, różne cele</span><h2 class="rk-ozc-title" id="rk-ozc-title-documents">OZC a roczne zapotrzebowanie, świadectwo i audyt energetyczny</h2><p class="rk-ozc-lead">Te opracowania mogą korzystać z części tych samych danych budynku, ale odpowiadają na różne pytania. Nie wystarczy zmienić nazwy pliku, aby raport obciążenia stał się świadectwem albo audytem.</p><div class="rk-ozc-table-wrap"><table><caption>Porównanie zakresów; wymagany zestaw dokumentów zależy od inwestycji i celu opracowania.</caption><thead><tr><th scope="col">Opracowanie lub wynik</th><th scope="col">Główne pytanie</th><th scope="col">Czego samo nie zastępuje</th></tr></thead><tbody><tr><td data-label="Opracowanie lub wynik"><strong>Projektowe obciążenie cieplne</strong></td><td data-label="Główne pytanie">Jaką moc trzeba dostarczyć w warunkach projektowych?</td><td data-label="Czego samo nie zastępuje">Bilansu energii rocznej, doboru hydrauliki ani kompletnego projektu instalacji.</td></tr><tr><td data-label="Opracowanie lub wynik"><strong>Roczne zapotrzebowanie na ciepło do ogrzewania</strong></td><td data-label="Główne pytanie">Ile energii użytkowej wymaga ogrzewanie w przyjętym modelu roku?</td><td data-label="Czego samo nie zastępuje">Obciążeń pomieszczeń i sprawdzenia wydajności źródła podczas mrozu.</td></tr><tr><td data-label="Opracowanie lub wynik"><strong>Świadectwo charakterystyki energetycznej</strong></td><td data-label="Główne pytanie">Jakie są obliczeniowe wskaźniki energetyczne budynku lub jego części w określonym zakresie?</td><td data-label="Czego samo nie zastępuje">Projektu pętli, przepływów i nastaw. EU, EK i EP mają różne znaczenie.</td></tr><tr><td data-label="Opracowanie lub wynik"><strong>Audyt energetyczny</strong></td><td data-label="Główne pytanie">Jakie usprawnienia i warianty modernizacji warto rozważyć w danym zakresie audytu?</td><td data-label="Czego samo nie zastępuje">Dokumentacji wykonawczej ogrzewania i szczegółowego doboru każdego odbiornika.</td></tr></tbody></table></div><p class="rk-ozc-copy">Przy energii rocznej zapytaj również, czy wynik dotyczy samego ogrzewania, czy obejmuje przygotowanie ciepłej wody i inne potrzeby. Jeśli chcesz uporządkować zależności między stratami a zyskami, zobacz <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">poradnik o bilansie cieplnym budynku</a>.</p></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-rooms" aria-labelledby="rk-ozc-title-rooms"><span class="rk-ozc-eyebrow">Średnia nie rozdziela mocy</span><h2 class="rk-ozc-title" id="rk-ozc-title-rooms">Dlaczego wynik całego domu nie wystarcza do projektu ogrzewania?</h2><p class="rk-ozc-lead"><strong>Jedna liczba dla domu nie mówi, gdzie trzeba dostarczyć ciepło.</strong> Do doboru ogrzewania pomieszczeń potrzebujesz ich osobnych obciążeń, temperatur oraz informacji o dostępnej powierzchni grzewczej.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Geometria i otoczenie</h3><p>Liczba ścian zewnętrznych, przeszklenia, dach, grunt i sąsiednie przestrzenie zmieniają bilans konkretnego pokoju.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Temperatura i wentylacja</h3><p>Łazienka z wyższą temperaturą oraz określonym strumieniem powietrza wymaga odrębnej oceny.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>Miejsce na odbiorniki</h3><p>Stała zabudowa i wyłączenia powierzchni zmieniają miejsce, z którego można oddać potrzebną moc.</p></article></div><p class="rk-ozc-copy">Dzielenie wyniku całego domu przez jego powierzchnię daje średnią. Nie należy rozdzielać tej średniej na wszystkie pokoje jako gotowego projektu. W raporcie powinno być również jasne, jak zbilansowano pomieszczenia i budynek: przepływy powietrza, wymianę między strefami oraz granice obliczeń trzeba traktować zgodnie z metodą. Nie każda suma wszystkich pozycji raportu pokojowego jest automatycznie wynikiem całego budynku.</p></section>
<section class="rk-ozc-section" id="rk-ozc-inputs" aria-labelledby="rk-ozc-title-inputs"><span class="rk-ozc-eyebrow">Pakiet do obliczeń</span><h2 class="rk-ozc-title" id="rk-ozc-title-inputs">Jakie dane są potrzebne do obliczeń OZC?</h2><p class="rk-ozc-lead">Dobre obliczenia zaczynają się od spójnego opisu budynku. Najważniejsza jest zgodność danych z wariantem, który rzeczywiście będzie ogrzewany — także wtedy, gdy różni się on od projektu architektonicznego.</p><div class="rk-ozc-table-wrap"><table><caption>Pakiet wejściowy do rozmowy z projektantem, a nie zamknięty wykaz dla każdej inwestycji.</caption><thead><tr><th scope="col">Grupa danych</th><th scope="col">Co przygotować</th><th scope="col">Na co uważać</th></tr></thead><tbody><tr><td data-label="Grupa danych"><strong>Rzuty, przekroje i wymiary</strong></td><td data-label="Co przygotować">Aktualne rysunki wszystkich kondygnacji, wysokości, opisy pomieszczeń i orientację.</td><td data-label="Na co uważać">Powierzchnia z ogłoszenia lub metraż użytkowy nie opisują samodzielnie geometrii przegród.</td></tr><tr><td data-label="Grupa danych"><strong>Przegrody</strong></td><td data-label="Co przygotować">Warstwy ścian, dachu, podłogi, izolację i dane materiałowe.</td><td data-label="Na co uważać">Nazwa „ciepły dom” albo sam rok budowy nie zastępują konstrukcji i grubości warstw.</td></tr><tr><td data-label="Grupa danych"><strong>Okna i drzwi</strong></td><td data-label="Co przygotować">Wymiary, rozmieszczenie oraz parametry całych wyrobów, np. Uw i Ud.</td><td data-label="Na co uważać">Ug szyby nie jest tym samym co Uw całego okna.</td></tr><tr><td data-label="Grupa danych"><strong>Lokalizacja i temperatury</strong></td><td data-label="Co przygotować">Miejscowość, usytuowanie oraz planowaną temperaturę każdego rodzaju pomieszczenia.</td><td data-label="Na co uważać">Nie przypisuj całej Polsce jednej temperatury zewnętrznej.</td></tr><tr><td data-label="Grupa danych"><strong>Wentylacja i szczelność</strong></td><td data-label="Co przygotować">Typ systemu, projektowe strumienie, parametry odzysku i dostępne dane o szczelności.</td><td data-label="Na co uważać">Nazwa urządzenia nie opisuje całego bilansu powietrza.</td></tr><tr><td data-label="Grupa danych"><strong>Detale i zmiany</strong></td><td data-label="Co przygotować">Mostki cieplne, strefy nieogrzewane, odstępstwa oraz zakres termomodernizacji.</td><td data-label="Na co uważać">Stary rysunek i nowa lista materiałów mogą opisywać dwa różne stany.</td></tr></tbody></table></div><p class="rk-ozc-copy">Brak części dokumentacji nie wyklucza rozpoczęcia rozmowy. Trzeba jednak wskazać, co można zweryfikować, co wymaga inwentaryzacji, a co pozostanie jawnym założeniem. O samych mechanizmach obliczania strat przeczytasz w artykule <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne w budynkach</a>.</p></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-temperatures" aria-labelledby="rk-ozc-title-temperatures"><span class="rk-ozc-eyebrow">Wynik zależy od warunków</span><h2 class="rk-ozc-title" id="rk-ozc-title-temperatures">Temperatury projektowe i lokalizacja budynku</h2><p class="rk-ozc-lead">Temperatury projektowe są elementem założeń obliczeń. <strong>Nie są prognozą pogody ani gwarancją utrzymania komfortu w każdych możliwych warunkach.</strong> Raport powinien pozwalać odczytać przyjętą temperaturę zewnętrzną oraz temperatury pomieszczeń.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Temperatura zewnętrzna</h3><p>Projektant ustala ją dla lokalizacji według właściwych danych i podstaw obliczeń. Nie zastępuje jej średnia temperatura stycznia.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Temperatury pomieszczeń</h3><p>Trzeba uzgodnić wymagania dla pokojów, łazienek i innych stref. Zmiana temperatury po obliczeniach może wymagać ponownego sprawdzenia.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>Strefy sąsiednie</h3><p>Garaż, poddasze, klatka schodowa, sąsiadujący lokal i grunt wymagają właściwych warunków brzegowych.</p></article></div><p class="rk-ozc-copy">W przykładach w tym poradniku przyjęto na zewnątrz <strong>−20°C</strong>, w pokojach <strong>20°C</strong>, a w łazience <strong>24°C</strong>. To jawne dane przykładu, a nie zalecenie dla każdego budynku. Uzasadnienie warunków lokalnych rozwija poradnik o <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">strefach klimatycznych i obliczeniach OZC</a>.</p></section>
<section class="rk-ozc-section" id="rk-ozc-losses" aria-labelledby="rk-ozc-title-losses"><span class="rk-ozc-eyebrow">Z czego składa się obciążenie</span><h2 class="rk-ozc-title" id="rk-ozc-title-losses">Przenikanie, wentylacja i infiltracja — skąd bierze się obciążenie?</h2><p class="rk-ozc-lead">Obciążenie wynika przede wszystkim z wymiany ciepła przez przegrody i z ogrzewania dopływającego powietrza. W określonych przypadkach metoda oraz sposób użytkowania mogą wymagać uwzględnienia dodatkowej mocy na ponowne nagrzanie. Raport powinien wskazywać, czy taki składnik przyjęto.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Przenikanie</h3><p>Liczą się geometria, współczynniki U, mostki cieplne i warunki po drugiej stronie przegrody.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Wentylacja</h3><p>Do pomieszczeń dopływa powietrze o określonym strumieniu i temperaturze. Odzysk ciepła wymaga właściwego ujęcia w bilansie.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>Infiltracja</h3><p>Niekontrolowany przepływ przez nieszczelności zależy m.in. od szczelności, ekspozycji i warunków obliczeń.</p></article></div><div class="rk-ozc-formula">Dla prostej przegrody w ustalonych warunkach: Φ ≈ U × A × ΔT<br>U [W/(m²·K)] × A [m²] × ΔT [K] → moc [W]</div><p class="rk-ozc-copy">Ten zapis wyjaśnia jednostki i zależność dla prostego przypadku. <strong>Nie jest kompletną metodą OZC.</strong> Podłogi na gruncie, strefy nieogrzewane, przepływy między pomieszczeniami i mostki wymagają odpowiedniego ujęcia. Wentylacji oraz infiltracji nie wolno dodawać mechanicznie w sposób, który liczy ten sam strumień powietrza dwa razy.</p><div class="rk-ozc-note"><p>Rozróżnij stratę ciepła z pomieszczenia od całkowitej mocy źródła. Przykładowo wymiana między dwoma ogrzewanymi pomieszczeniami ma inne znaczenie dla ich odbiorników niż dla granicy całego budynku.</p></div></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-uncertainty" aria-labelledby="rk-ozc-title-uncertainty"><span class="rk-ozc-eyebrow">Założenia trzeba umieć obronić</span><h2 class="rk-ozc-title" id="rk-ozc-title-uncertainty">Rekuperacja, mostki cieplne i niepewne dane</h2><p class="rk-ozc-lead">Największa liczba miejsc po przecinku nie naprawi błędnych założeń. W raporcie warto odszukać pochodzenie danych i sprawdzić, które z nich opisują projekt, które stan istniejący, a które oszacowanie.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Rekuperacja</h3><p>Sprawność podana dla wymiennika nie oznacza takiego samego procentowego zmniejszenia wszystkich strat domu. Znaczenie mają strumienie, warunki zimowe, odszranianie, sterowanie i nieszczelności.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Mostki cieplne</h3><p>To odrębne zagadnienie od strat przez powierzchnię okna. Wymagają właściwych detali lub uzasadnionej metody zastępczej, a nie dowolnej procentowej „dopłaty”.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>Niepewne warstwy</h3><p>W starym domu trzeba określić możliwy zakres parametrów i sposób ich potwierdzenia. Czasem lepsze są porównane warianty niż jedna pozornie pewna liczba.</p></article></div><p class="rk-ozc-copy">W bilansie rocznym ważne są również zyski wewnętrzne i słoneczne. Nie należy bezpośrednio przenosić ich sezonowej wartości do pokrycia obciążenia w warunkach projektowych. Sposób uwzględnienia zysków i ich dostępność muszą odpowiadać przyjętej metodzie oraz celowi obliczeń.</p><div class="rk-ozc-note rk-ozc-good"><p><strong>Precyzja zapisu to nie dokładność danych.</strong> Wynik 5817 W może pochodzić z mniej pewnych założeń niż wynik zaokrąglony do 5,8 kW. Sprawdzaj dane wejściowe, zakres i wrażliwość na niepewne parametry.</p></div></section>
<section class="rk-ozc-section" id="rk-ozc-report" aria-labelledby="rk-ozc-title-report"><span class="rk-ozc-eyebrow">Jak ocenić zakres opracowania</span><h2 class="rk-ozc-title" id="rk-ozc-title-report">Co powinien zawierać raport z obliczeń OZC?</h2><p class="rk-ozc-lead">Dobry raport pozwala odtworzyć sens wyniku bez zgadywania. Powinien identyfikować budynek, zakres, wersję danych, metodę i warunki obliczeń oraz przedstawiać wyniki potrzebne do uzgodnionego zadania projektowego.</p><ul class="rk-ozc-bullets"><li>opis wariantu: stan istniejący, nowy budynek albo stan po określonej modernizacji,</li><li>lokalizację, temperatury i granice ogrzewanej części budynku,</li><li>źródła geometrii, parametrów przegród, stolarki i danych wentylacyjnych,</li><li>zestawienie obciążeń pomieszczeń oraz wynik dla budynku z opisem sposobu bilansowania,</li><li>rozdzielenie głównych składników i wskazanie ewentualnych dodatków,</li><li>czytelne jednostki, powierzchnie odniesienia, założenia i ograniczenia wynikające z braków danych.</li></ul><div class="rk-ozc-table-wrap"><table><caption>Fikcyjny fragment raportu — tylko trzy wybrane pomieszczenia. Nie jest to pełne zestawienie domu 150 m²; suma tych wierszy nie stanowi jego obciążenia. W przykładzie bez odrębnej mocy na ponowne nagrzanie.</caption><thead><tr><th scope="col">Pomieszczenie</th><th scope="col">Powierzchnia</th><th scope="col">Temperatura</th><th scope="col">Przenikanie</th><th scope="col">Wentylacja</th><th scope="col">Obciążenie</th></tr></thead><tbody><tr><td data-label="Pomieszczenie"><strong>Salon</strong></td><td data-label="Powierzchnia">20 m²</td><td data-label="Temperatura">20°C</td><td data-label="Przenikanie">700 W</td><td data-label="Wentylacja">200 W</td><td data-label="Obciążenie">900 W</td></tr><tr><td data-label="Pomieszczenie"><strong>Łazienka</strong></td><td data-label="Powierzchnia">8 m²</td><td data-label="Temperatura">24°C</td><td data-label="Przenikanie">350 W</td><td data-label="Wentylacja">150 W</td><td data-label="Obciążenie">500 W</td></tr><tr><td data-label="Pomieszczenie"><strong>Sypialnia</strong></td><td data-label="Powierzchnia">15 m²</td><td data-label="Temperatura">20°C</td><td data-label="Przenikanie">420 W</td><td data-label="Wentylacja">180 W</td><td data-label="Obciążenie">600 W</td></tr></tbody></table></div><div class="rk-ozc-note"><p>Samo zestawienie obciążeń nie jest jeszcze projektem podłogówki. Do projektu dochodzą m.in. konstrukcja podłogi, powierzchnie czynne, okładziny, sprawdzenie mocy, pętle i hydraulika.</p></div></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-reader" aria-labelledby="rk-ozc-title-reader"><span class="rk-ozc-eyebrow">Narzędzie 1 · czytanie raportu</span><h2 class="rk-ozc-title" id="rk-ozc-title-reader">Interaktywny przewodnik: jak czytać raport OZC?</h2><p class="rk-ozc-lead">Wybierz część raportu i zobacz, co z niej wynika. Przewodnik korzysta z tego samego fikcyjnego przykładu co tabela powyżej. <strong>Nie jest kalkulatorem strat Twojego domu.</strong></p><div class="rk-ozc-tool" id="rk-ozc-reader-tool"><div class="rk-ozc-tool-head"><span class="rk-ozc-badge">Przykład edukacyjny · bez danych klienta</span><h3>Jak odczytać raport OZC?</h3><p>Zacznij od założeń. Następnie przejdź do wyniku budynku, pomieszczeń i dwóch różnych wskaźników W/m².</p></div><div id="rk-ozc-report-controls" hidden=""><div class="rk-ozc-module-buttons" role="group" aria-label="Wybierz część raportu"><button type="button" class="rk-ozc-module-button" data-rk-ozc-module="assumptions" aria-pressed="true" aria-controls="rk-ozc-report-panel">Założenia obliczeń</button><button type="button" class="rk-ozc-module-button" data-rk-ozc-module="building" aria-pressed="false" aria-controls="rk-ozc-report-panel">Wynik budynku</button><button type="button" class="rk-ozc-module-button" data-rk-ozc-module="room" aria-pressed="false" aria-controls="rk-ozc-report-panel">Wynik pomieszczenia</button><button type="button" class="rk-ozc-module-button" data-rk-ozc-module="intensity" aria-pressed="false" aria-controls="rk-ozc-report-panel">Wskaźnik W/m²</button><button type="button" class="rk-ozc-module-button" data-rk-ozc-module="use" aria-pressed="false" aria-controls="rk-ozc-report-panel">Wykorzystanie wyniku</button></div><label class="rk-ozc-field rk-ozc-room-field" id="rk-ozc-report-room-field" hidden=""><span>Pomieszczenie w przykładzie</span><select id="rk-ozc-report-room"><option value="salon">Salon · 900 W · 20 m²</option><option value="bathroom">Łazienka · 500 W · 8 m²</option><option value="bedroom">Sypialnia · 600 W · 15 m²</option></select></label></div><div class="rk-ozc-report-panel" id="rk-ozc-report-panel" aria-live="polite" aria-atomic="false"><span class="rk-ozc-badge" id="rk-ozc-report-label">1. Założenia obliczeń</span><h3 id="rk-ozc-report-title">Najpierw sprawdź, jaki budynek opisuje wynik</h3><p id="rk-ozc-report-intro">Fikcyjny przykład edukacyjny: dom o powierzchni odniesienia 150 m², wynik dla budynku 5,8 kW oraz trzy pokazane osobno pomieszczenia. Dane nie pochodzą z projektu klienta.</p><div class="rk-ozc-metrics"><div class="rk-ozc-metric"><span id="rk-ozc-report-metric-label-0">Powierzchnia odniesienia domu</span><strong id="rk-ozc-report-metric-value-0">150 m²</strong></div><div class="rk-ozc-metric"><span id="rk-ozc-report-metric-label-1">Temperatura zewnętrzna</span><strong id="rk-ozc-report-metric-value-1">−20°C</strong></div><div class="rk-ozc-metric"><span id="rk-ozc-report-metric-label-2">Temperatury w przykładzie</span><strong id="rk-ozc-report-metric-value-2">20°C / 24°C</strong></div></div><div class="rk-ozc-grid-2"><div class="rk-ozc-card"><h4>Co to oznacza?</h4><p id="rk-ozc-report-meaning">Wynik dotyczy konkretnego wariantu budynku i warunków projektowych. Nie opisuje samodzielnie każdej temperatury zewnętrznej ani przyszłej zmiany sposobu użytkowania.</p></div><div class="rk-ozc-card"><h4>Jakie są założenia?</h4><p id="rk-ozc-report-assumptions">W przykładzie: uzgodniona geometria, parametry przegród, lokalizacja i wentylacja. Pokój oraz łazienka mają różne temperatury; brak odrębnego dodatku na ponowne nagrzanie.</p></div><div class="rk-ozc-card"><h4>W jakiej decyzji pomaga?</h4><p id="rk-ozc-report-decision">Możesz sprawdzić, czy raport odnosi się do aktualnej wersji Twojego domu i planowanych temperatur pomieszczeń.</p></div><div class="rk-ozc-card"><h4>Czego jeszcze nie wiadomo?</h4><p id="rk-ozc-report-unknown">Nie znasz jeszcze parametrów konkretnego źródła, wydajności podłogi, długości pętli ani kosztu ogrzewania.</p></div></div><p class="rk-ozc-small" id="rk-ozc-report-footnote">Liczby służą do nauki czytania raportu. Nie są przelicznikiem W/m² do doboru ogrzewania dla innych domów.</p></div><noscript><p class="rk-ozc-note-inline">Włącz JavaScript, aby przełączać moduły i pomieszczenia. Definicje, przykład tabeli oraz przeliczenia W/m² są dostępne także w treści poradnika.</p></noscript></div></section>
<section class="rk-ozc-section" id="rk-ozc-data" aria-labelledby="rk-ozc-title-data"><span class="rk-ozc-eyebrow">Narzędzie 2 · wstępny bilans domu</span><h2 class="rk-ozc-title" id="rk-ozc-title-data">Kalkulator orientacyjnego obciążenia cieplnego domu</h2><p class="rk-ozc-lead">Oszacuj potrzebną moc ogrzewania na podstawie uproszczonej geometrii, parametrów przegród i wymiany powietrza. Wartości startowe są przykładem do zmiany. Wynik w kW nie jest rocznym zapotrzebowaniem na energię.</p><div class="rk-ozc-tool" id="rk-ozc-estimator-tool"><div class="rk-ozc-tool-head"><span class="rk-ozc-badge">Narzędzie 2 · wstępna ocena mocy</span><h3>Ile mocy grzewczej może potrzebować dom?</h3><p>Wartości początkowe opisują fikcyjny przykład, niezależny od raportu powyżej. Zmień geometrię, parametry przegród i wentylację, a wynik przeliczy się na żywo. Wynik dotyczy ogrzewania pomieszczeń.</p></div><p class="rk-ozc-note-inline">Model: wolnostojący dom o prostokątnym rzucie, pełnych ogrzewanych kondygnacjach o podobnej powierzchni i jednej temperaturze wewnętrznej. Górna przegroda i podłoga mają pole równe rzutowi jednej kondygnacji. Poddasza, ściany wspólne i rozczłonkowane bryły wymagają dokładniejszego modelu.</p><form id="rk-ozc-est-form" novalidate="" hidden=""><fieldset class="rk-ozc-est-stage"><legend><span>1</span> Geometria domu</legend><p>Na podstawie rzutu obliczamy powierzchnie ścian oraz modelową kubaturę.</p><div class="rk-ozc-fields"><label class="rk-ozc-field" for="rk-ozc-est-area"><span>Powierzchnia ogrzewana [m²]</span><input type="text" inputmode="decimal" id="rk-ozc-est-area" value="150" aria-describedby="rk-ozc-est-help-area" data-min="10" data-max="2000"><small id="rk-ozc-est-help-area">Łączna powierzchnia ogrzewanych kondygnacji o podobnym rzucie.</small></label><label class="rk-ozc-field" for="rk-ozc-est-floors"><span>Liczba pełnych ogrzewanych kondygnacji</span><select id="rk-ozc-est-floors"><option value="1">1 kondygnacja</option><option value="2" selected="">2 kondygnacje</option><option value="3">3 kondygnacje</option></select></label><label class="rk-ozc-field" for="rk-ozc-est-height"><span>Średnia wysokość ogrzewanej kondygnacji [m]</span><input type="text" inputmode="decimal" id="rk-ozc-est-height" value="2,7" aria-describedby="rk-ozc-est-help-height" data-min="1.8" data-max="5"><small id="rk-ozc-est-help-height">Służy do wyznaczenia modelowej kubatury i wysokości ścian.</small></label><label class="rk-ozc-field" for="rk-ozc-est-ratio"><span>Proporcje rzutu</span><select id="rk-ozc-est-ratio"><option value="1">Kwadrat · 1 : 1</option><option value="1.5" selected="">Prostokąt · 1 : 1,5</option><option value="2">Wydłużony prostokąt · 1 : 2</option></select></label></div></fieldset><fieldset class="rk-ozc-est-stage"><legend><span>2</span> Przegrody i stolarka</legend><p>Zestawy są przykładami, a nie klasyfikacją domu według rocznika, przepisów lub grubości ocieplenia.</p><div class="rk-ozc-fields"><label class="rk-ozc-field" for="rk-ozc-est-preset"><span>Przykładowy zestaw parametrów U</span><select id="rk-ozc-est-preset" aria-describedby="rk-ozc-est-help-preset"><option value="a" selected="">Zestaw A · U ścian 0,20 · stropu 0,15</option><option value="b">Zestaw B · U ścian 0,45 · stropu 0,30</option><option value="c">Zestaw C · U ścian 1,10 · stropu 0,70</option><option value="custom">Własne ustawienia U — edytuj poniżej</option></select><small id="rk-ozc-est-help-preset">Wszystkie pięć wartości U zobaczysz i zmienisz w rozwijanej części. Parametry porównaj z dokumentacją budynku.</small></label><label class="rk-ozc-field" for="rk-ozc-est-windows"><span>Łączna powierzchnia okien [m²]</span><input type="text" inputmode="decimal" id="rk-ozc-est-windows" value="30" aria-describedby="rk-ozc-est-help-windows" data-min="0" data-max="1500"><small id="rk-ozc-est-help-windows">Powierzchnia całych okien i przeszkleń w ścianach zewnętrznych.</small></label><label class="rk-ozc-field" for="rk-ozc-est-doors"><span>Powierzchnia drzwi zewnętrznych [m²]</span><input type="text" inputmode="decimal" id="rk-ozc-est-doors" value="4" aria-describedby="rk-ozc-est-help-doors" data-min="0" data-max="100"><small id="rk-ozc-est-help-doors">Otwory odejmujemy od ścian, aby nie liczyć ich podwójnie.</small></label></div></fieldset><details class="rk-ozc-est-details" id="rk-ozc-est-u-details"><summary>Sprawdź lub wpisz własne wartości U</summary><div class="rk-ozc-est-details-body"><p>Współczynniki są jawnymi danymi przykładu. Ich zmiana przełącza zestaw na własne ustawienia.</p><div class="rk-ozc-fields"><label class="rk-ozc-field" for="rk-ozc-est-wallU"><span>U ścian [W/(m²·K)]</span><input type="text" inputmode="decimal" id="rk-ozc-est-wallU" value="0,2" aria-describedby="rk-ozc-est-help-wallU" data-min="0.05" data-max="4"><small id="rk-ozc-est-help-wallU">Parametr całej przegrody. Nie wyznaczamy go z samego wieku domu lub grubości izolacji.</small></label><label class="rk-ozc-field" for="rk-ozc-est-roofU"><span>U stropu lub dachu [W/(m²·K)]</span><input type="text" inputmode="decimal" id="rk-ozc-est-roofU" value="0,15" aria-describedby="rk-ozc-est-help-roofU" data-min="0.04" data-max="4"><small id="rk-ozc-est-help-roofU">Model przyjmuje górną przegrodę o polu równym powierzchni rzutu jednej kondygnacji.</small></label><label class="rk-ozc-field" for="rk-ozc-est-floorU"><span>U podłogi — parametr modelu [W/(m²·K)]</span><input type="text" inputmode="decimal" id="rk-ozc-est-floorU" value="0,25" aria-describedby="rk-ozc-est-help-floorU" data-min="0.05" data-max="4"><small id="rk-ozc-est-help-floorU">Składnik gruntu jest uproszczony współczynnikiem b; nie jest obliczeniem według ISO 13370.</small></label><label class="rk-ozc-field" for="rk-ozc-est-windowU"><span>Uw całych okien [W/(m²·K)]</span><input type="text" inputmode="decimal" id="rk-ozc-est-windowU" value="0,9" aria-describedby="rk-ozc-est-help-windowU" data-min="0.4" data-max="6"><small id="rk-ozc-est-help-windowU">Uw obejmuje cały wyrób. Nie wpisuj tu Ug samej szyby.</small></label><label class="rk-ozc-field" for="rk-ozc-est-doorU"><span>Ud drzwi [W/(m²·K)]</span><input type="text" inputmode="decimal" id="rk-ozc-est-doorU" value="1,3" aria-describedby="rk-ozc-est-help-doorU" data-min="0.4" data-max="6"><small id="rk-ozc-est-help-doorU">Parametr całych drzwi zewnętrznych.</small></label></div></div></details><fieldset class="rk-ozc-est-stage"><legend><span>3</span> Temperatury i wymiana powietrza</legend><p>Nie dodajemy stałej mocy na CWU, zapasu procentowego ani rocznych kosztów.</p><div class="rk-ozc-fields"><label class="rk-ozc-field" for="rk-ozc-est-inside"><span>Temperatura wewnętrzna [°C]</span><input type="text" inputmode="decimal" id="rk-ozc-est-inside" value="20" aria-describedby="rk-ozc-est-help-inside" data-min="10" data-max="28"><small id="rk-ozc-est-help-inside">Jedna temperatura dla całego uproszczonego modelu domu.</small></label><label class="rk-ozc-field" for="rk-ozc-est-outside"><span>Projektowa temperatura zewnętrzna [°C]</span><input type="text" inputmode="text" id="rk-ozc-est-outside" value="-20" aria-describedby="rk-ozc-est-help-outside" data-min="-35" data-max="5"><small id="rk-ozc-est-help-outside">−20°C to przykład. Wpisz wartość właściwą dla lokalizacji i podstaw projektu.</small></label><label class="rk-ozc-field" for="rk-ozc-est-ventilation"><span>Sposób ujęcia wentylacji</span><select id="rk-ozc-est-ventilation" aria-describedby="rk-ozc-est-help-ventilation"><option value="natural" selected="">Bez odzysku · łączny strumień powietrza zewnętrznego</option><option value="mechanical">Mechaniczna zbilansowana · odzysk i infiltracja</option></select><small id="rk-ozc-est-help-ventilation">Dla wentylacji bez odzysku wpisz łączny napływ powietrza. Przy mechanicznej rozdzielamy odzysk i osobną infiltrację.</small></label><label class="rk-ozc-field" for="rk-ozc-est-flow"><span>Strumień powietrza [m³/h]</span><input type="text" inputmode="decimal" id="rk-ozc-est-flow" value="150" aria-describedby="rk-ozc-est-help-flow" data-min="1" data-max="4000"><small id="rk-ozc-est-help-flow">150 m³/h to wartość przykładu. Zastąp ją danymi wentylacji; sam metraż nie wyznacza wymaganego strumienia.</small></label><div class="rk-ozc-wide" id="rk-ozc-est-mechanical" hidden=""><div class="rk-ozc-fields"><label class="rk-ozc-field" for="rk-ozc-est-recovery"><span>Efektywność odzysku przyjęta w modelu [%]</span><input type="text" inputmode="decimal" id="rk-ozc-est-recovery" value="75" aria-describedby="rk-ozc-est-help-recovery" data-min="0" data-max="95"><small id="rk-ozc-est-help-recovery">Dla mechanicznej bez odzysku wpisz 0. To założenie zimowej pracy, nie automatycznie sprawność z reklamy.</small></label><label class="rk-ozc-field" for="rk-ozc-est-infiltration"><span>Dodatkowa infiltracja [1/h]</span><input type="text" inputmode="decimal" id="rk-ozc-est-infiltration" value="0,1" aria-describedby="rk-ozc-est-help-infiltration" data-min="0" data-max="2"><small id="rk-ozc-est-help-infiltration">Dotyczy mechanicznej: osobny strumień przez nieszczelności równy n × kubatura. Wartość 0,10 jest przykładowa.</small></label></div></div></div></fieldset><details class="rk-ozc-est-details"><summary>Założenia podłogi i mostków cieplnych</summary><div class="rk-ozc-est-details-body"><p>Te parametry wpływają na wynik. Zastosowany model gruntu jest uproszczony i nie zastępuje jego pełnego bilansu.</p><div class="rk-ozc-fields"><label class="rk-ozc-field" for="rk-ozc-est-groundB"><span>Współczynnik b dla podłogi — model [–]</span><input type="text" inputmode="decimal" id="rk-ozc-est-groundB" value="0,5" aria-describedby="rk-ozc-est-help-groundB" data-min="0.05" data-max="1"><small id="rk-ozc-est-help-groundB">0,50 jest jawnym uproszczeniem przykładu, nie uniwersalną wartością normową.</small></label><label class="rk-ozc-field" for="rk-ozc-est-bridges"><span>Sumaryczny H mostków [W/K]</span><input type="text" inputmode="decimal" id="rk-ozc-est-bridges" value="12" aria-describedby="rk-ozc-est-help-bridges" data-min="0" data-max="300"><small id="rk-ozc-est-help-bridges">W przykładzie 12 W/K. W projekcie potrzebne są właściwe detale i długości; zero oznacza pominięcie składnika.</small></label></div></div></details><div class="rk-ozc-stage"><label class="rk-ozc-field" for="rk-ozc-est-compare"><span>Porównaj inny zestaw przegród</span><select id="rk-ozc-est-compare" aria-describedby="rk-ozc-est-help-compare"><option value="none">Bez porównania</option><option value="a">Porównaj z zestawem A</option><option value="b" selected="">Porównaj z zestawem B</option><option value="c">Porównaj z zestawem C</option></select><small id="rk-ozc-est-help-compare">Porównanie zmienia tylko pięć wartości U. Geometria, wentylacja, temperatury, mostki i b pozostają takie same. Rozstęp wyników nie jest przedziałem dokładności OZC.</small></label></div><div class="rk-ozc-actions"><button class="rk-ozc-primary" type="submit">Przelicz orientacyjną moc</button><button class="rk-ozc-secondary" id="rk-ozc-est-reset" type="button">Przywróć przykład</button></div></form><div class="rk-ozc-est-errors" id="rk-ozc-est-errors" tabindex="-1" hidden=""><p>Popraw wskazane dane, aby przeliczyć model.</p><ul id="rk-ozc-est-error-list"></ul></div><div class="rk-ozc-results" id="rk-ozc-est-results" hidden=""><h3 id="rk-ozc-est-result-title" tabindex="-1">Orientacyjny wynik według aktualnych danych</h3><p id="rk-ozc-est-announcement" role="status" aria-live="polite" aria-atomic="true">Uzupełnij dane modelu.</p><div class="rk-ozc-metrics"><div class="rk-ozc-metric"><span>Moc ogrzewania w modelu</span><strong id="rk-ozc-est-total">—</strong></div><div class="rk-ozc-metric"><span>Na powierzchnię ogrzewaną</span><strong id="rk-ozc-est-indicator">—</strong></div><div class="rk-ozc-metric"><span>Różnica temperatur</span><strong id="rk-ozc-est-delta">—</strong></div></div><p class="rk-ozc-est-result-scope">To wstępny bilans przy zadanych temperaturach. Nie wyznacza energii w kWh/rok, konkretnej pompy ciepła ani mocy potrzebnej w każdym pokoju. Bez dodatkowej mocy na ponowne nagrzanie i przygotowanie CWU.</p><h4 class="rk-ozc-subtitle">Skąd bierze się wynik?</h4><div class="rk-ozc-est-breakdown" id="rk-ozc-est-breakdown"></div><div class="rk-ozc-est-comparison" id="rk-ozc-est-comparison" hidden=""><h4>Wpływ zmiany założeń przegród</h4><div class="rk-ozc-grid-2"><div class="rk-ozc-metric"><span>Aktualne parametry U</span><strong id="rk-ozc-est-base-total">—</strong><p id="rk-ozc-est-base-values"></p></div><div class="rk-ozc-metric"><span id="rk-ozc-est-compare-label">Zestaw porównawczy</span><strong id="rk-ozc-est-compare-total">—</strong><p id="rk-ozc-est-compare-values"></p></div></div><p id="rk-ozc-est-compare-summary"></p><p class="rk-ozc-small">To dwa konkretne zestawy założeń. Zakres między nimi nie określa błędu kalkulatora ani prawdopodobnego przedziału rzeczywistego OZC domu.</p></div><details class="rk-ozc-est-model"><summary>Pokaż obliczoną geometrię, dane i metodę</summary><div class="rk-ozc-est-model-body"><p id="rk-ozc-est-geometry"></p><p id="rk-ozc-est-air-summary"></p><p id="rk-ozc-est-envelope-summary"></p><div class="rk-ozc-formula">Rzut jednej kondygnacji = A ogrzewana / liczba kondygnacji<br>Ściany netto = obwód rzutu × wysokość × kondygnacje − okna − drzwi<br>Φ przegród = Σ(U × pole × ΔT), dla podłogi: U × pole × b × ΔT<br>Φ mostków = H mostków × ΔT<br>Φ powietrza ≈ 0,34 × strumień efektywny × ΔT<br>Mechaniczna: strumień efektywny = strumień wentylacji × (1 − odzysk) + n infiltracji × kubatura<br>Bez odzysku: strumień efektywny = wpisany łączny napływ</div><p class="rk-ozc-small">0,34 Wh/(m³·K) to przybliżona objętościowa pojemność cieplna powietrza. Model nie rozdziela pomieszczeń, stref sąsiednich i detali gruntu. Parametry startowe oraz zestawy A–C są autorskimi przykładami dydaktycznymi, nie wartościami przypisanymi normowo do typu domu.</p></div></details><ul class="rk-ozc-bullets" id="rk-ozc-est-notes"></ul></div><noscript><p class="rk-ozc-note-inline">Kalkulator wymaga JavaScript. Opis jednostek, przykładowe obciążenia i lista danych pozostają dostępne w artykule.</p></noscript></div><p class="rk-ozc-copy">Potrzebujesz bardziej szczegółowego bilansu? Przejdź do <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulatora strat ciepła budynku z własnymi powierzchniami przegród</a>. Tutaj model geometrii służy do szybkiego rozpoznania skali obciążenia.</p><p class="rk-ozc-copy"><strong>Masz orientacyjną moc dla całego domu.</strong> Do projektu podłogówki potrzebujesz jeszcze obciążeń poszczególnych pomieszczeń, sprawdzenia wydajności podłogi i obliczeń hydraulicznych. To kolejny etap po wstępnym oszacowaniu.</p><aside class="rk-ozc-cta" aria-label="Usługa projektowa autora"><h3>Projekt ogrzewania podłogowego z obliczeniami OZC dla poszczególnych pomieszczeń</h3><p>Przełóż potrzeby domu na policzone ogrzewanie. W projekcie obciążenia pokojów można powiązać z wydajnością podłogi, rozstawami, długościami pętli i przepływami. Zobacz zakres usługi i dokumenty potrzebne do jej opracowania.</p><a class="rk-ozc-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki z obliczeniami cieplnymi</a><small class="rk-ozc-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small></aside></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-floor" aria-labelledby="rk-ozc-title-floor"><span class="rk-ozc-eyebrow">Moc, powierzchnia i hydraulika</span><h2 class="rk-ozc-title" id="rk-ozc-title-floor">Jak wykorzystuje się OZC w projekcie ogrzewania podłogowego?</h2><p class="rk-ozc-lead">Obciążenie pomieszczenia mówi, ile mocy należy do niego dostarczyć. Projekt podłogówki sprawdza, czy czynna powierzchnia podłogi może tę moc oddać przy wybranej konstrukcji, okładzinie i dopuszczalnych warunkach pracy.</p><div class="rk-ozc-formula">Przykład salonu: 900 W / 20 m² = 45 W/m² pokoju<br>Gdy całą moc oddaje 12 m² aktywnej podłogi: 900 W / 12 m² = 75 W/m² podłogi</div><p class="rk-ozc-copy">Dopiero drugi wskaźnik porównuje się z możliwą wydajnością aktywnej powierzchni. Jeżeli jest ona niewystarczająca, rozważa się zmianę rozwiązania: większą powierzchnię czynną, inne parametry w dopuszczonym zakresie, dodatkowy odbiornik albo ograniczenie obciążenia przez poprawę budynku. Samo zagęszczenie rur nie rozwiązuje każdego ograniczenia.</p><ul class="rk-ozc-bullets"><li>ustal powierzchnie czynne i strefy wyłączone zgodnie z projektem oraz systemem podłogi,</li><li>sprawdź opór cieplny okładziny, konstrukcję i dopuszczalne temperatury powierzchni,</li><li>dobierz parametry wody oraz zweryfikuj uzyskiwaną moc,</li><li>wyznacz rozstaw, geometrię i podział pętli, a następnie przepływy i opory,</li><li>sprawdź drogę krytyczną, rozdzielacz, pompę i możliwość regulacji.</li></ul><p class="rk-ozc-copy">Poszczególne etapy rozwijają poradniki o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">doborze rozstawu rur</a>, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">wpływie okładziny na wydajność</a> oraz <a href="https://projekt-ogrzewania.pl/ile-metrow-podlogowki-na-jednej-petli/">długości pojedynczej pętli</a>. Obliczenia i regulację przepływu wyjaśnia artykuł <a href="https://projekt-ogrzewania.pl/jaki-przeplyw-na-podlogowce-ile-l-min-na-jedna-petle/">jaki przepływ ustawić na podłogówce</a>.</p></section>
<section class="rk-ozc-section" id="rk-ozc-source" aria-labelledby="rk-ozc-title-source"><span class="rk-ozc-eyebrow">Dobór wymaga charakterystyki urządzenia</span><h2 class="rk-ozc-title" id="rk-ozc-title-source">OZC a dobór pompy ciepła lub kotła</h2><p class="rk-ozc-lead"><strong>OZC jest podstawą doboru źródła, ale nie stanowi jego gotowej specyfikacji.</strong> Obciążenie 5,8 kW nie wskazuje automatycznie urządzenia z „6 kW” w nazwie. Trzeba porównać potrzebną moc z charakterystyką rzeczywistego źródła w wymaganych warunkach.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Warunki pracy</h3><p>Dla pompy ciepła sprawdza się wydajność przy odpowiedniej temperaturze zewnętrznej i temperaturze wody, a także strategię pracy układu.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Zakres regulacji</h3><p>Znaczenie ma minimalna oraz maksymalna moc i współpraca z instalacją w łagodniejsze dni. Sama moc szczytowa nie opisuje modulacji.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>Cały zakres zadań</h3><p>Przygotowanie CWU, udział drugiego źródła, dostępność mocy i priorytety wymagają odrębnego uzgodnienia.</p></article></div><p class="rk-ozc-copy">Nie dodawaj do każdego domu stałego „1 kW na ciepłą wodę”. Sposób uwzględnienia CWU zależy m.in. od zapotrzebowania, zasobnika, czasu przygotowania i sterowania. Tak samo podział obciążenia pomiędzy źródła w układzie biwalentnym wymaga świadomego założenia, a nie automatycznego dopasowania jednej liczby.</p><p class="rk-ozc-copy">Odbiorniki i źródło warto dobierać wspólnie. Więcej o tej zależności znajdziesz w poradniku <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt ogrzewania podłogowego z pompą ciepła</a>. Znaczenie temperatury wody opisuje tekst o <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niskiej temperaturze zasilania pompy ciepła</a>; konkretne parametry nadal wymagają sprawdzenia dla instalacji i urządzenia.</p></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-bills" aria-labelledby="rk-ozc-title-bills"><span class="rk-ozc-eyebrow">kW nie są rocznym zużyciem</span><h2 class="rk-ozc-title" id="rk-ozc-title-bills">Czy z wyniku OZC można obliczyć rachunki za ogrzewanie?</h2><p class="rk-ozc-lead">Z samego wyniku w kW nie otrzymasz wiarygodnego rachunku rocznego. Do kosztów potrzebne jest zapotrzebowanie na energię w odpowiednim okresie, sprawność lub efektywność sezonowa, ceny i jasno określony zakres.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Obciążenie projektowe</h3><p>Moc potrzebna w określonych warunkach: W albo kW. Służy do sprawdzenia zdolności ogrzewania.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Roczne ciepło</h3><p>Energia użytkowa na ogrzewanie w przyjętym modelu roku: kWh/rok. Zależy również od przebiegu warunków i użytkowania.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>Koszt</h3><p>Zależy od energii końcowej, efektywności układu, taryfy i składników opłat. Nie jest samą ceną ciepła pomnożoną przez moc.</p></article></div><p class="rk-ozc-copy">Obliczenia sezonowe uwzględniają inne zależności niż pojedynczy punkt projektowy, m.in. warunki pogodowe w czasie i sposób traktowania zysków ciepła. Świadectwo również nie jest prognozą faktury konkretnej rodziny. Kiedy masz już roczne zapotrzebowanie w kWh, możesz porównać jawne scenariusze w <a href="https://projekt-ogrzewania.pl/pompa-ciepla-scop-kalkulator-kosztow-ogrzewania/">kalkulatorze kosztów ogrzewania pompą ciepła przy SCOP 3, 4, 5 i 6</a>.</p></section>
<section class="rk-ozc-section" id="rk-ozc-renovation" aria-labelledby="rk-ozc-title-renovation"><span class="rk-ozc-eyebrow">Jeden dom, różne stany obliczeń</span><h2 class="rk-ozc-title" id="rk-ozc-title-renovation">OZC w starym domu i po termomodernizacji</h2><p class="rk-ozc-lead">W istniejącym domu najpierw trzeba ustalić, co rzeczywiście jest zbudowane. Warstwy, stolarka, wentylacja i ogrzewana część budynku mogą różnić się od archiwalnej dokumentacji.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Stan obecny</h3><p>Opisz rzeczywiste przegrody i sposób ogrzewania. Przy brakach ustal zakres oględzin, pomiarów lub rozpoznania warstw.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Stan po modernizacji</h3><p>Wskaż konkretny zestaw zmian: izolację, okna, wentylację i temperatury. Osobny wariant pozwala porównać ich wpływ.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>Dane historyczne</h3><p>Rachunki i zużycie paliwa mogą pomóc sprawdzić spójność modelu, ale wymagają kontekstu pogody, CWU, sprawności i użytkowania.</p></article></div><p class="rk-ozc-copy">Roczne zużycie gazu lub energii elektrycznej nie mówi bezpośrednio, ile watów potrzebuje pojedyncza łazienka. Nie zastępuje też projektu odbiorników po zmianie rozkładu pomieszczeń. Jeżeli planujesz termomodernizację etapami, uzgodnij, który stan jest podstawą doboru źródła oraz jak układ będzie pracował w okresie przejściowym.</p></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-update" aria-labelledby="rk-ozc-title-update"><span class="rk-ozc-eyebrow">Kontrola wersji ma znaczenie</span><h2 class="rk-ozc-title" id="rk-ozc-title-update">Kiedy trzeba zaktualizować obliczenia?</h2><p class="rk-ozc-lead">Raport jest aktualny dla określonych danych. Gdy dane zmieniają się w sposób istotny dla bilansu, trzeba sprawdzić wpływ zmiany i potrzebę aktualizacji obliczeń, a następnie projektu instalacji.</p><ul class="rk-ozc-bullets"><li>zmiana grubości lub rodzaju izolacji ścian, dachu i podłogi,</li><li>inne okna, drzwi, powierzchnie przeszkleń albo zabudowa otworów,</li><li>zmiana wentylacji, strumieni powietrza lub założeń odzysku,</li><li>przebudowa pomieszczeń i granic ogrzewanej części domu,</li><li>inne wymagane temperatury, sposób użytkowania lub przerwy w ogrzewaniu,</li><li>ujawnienie warstw i parametrów odmiennych od wcześniej przyjętych założeń.</li></ul><div class="rk-ozc-note"><p><strong>Zmiana okładziny podłogi może wymagać ponownego sprawdzenia wydajności podłogówki, nawet gdy samo obciążenie pomieszczenia pozostaje zbliżone.</strong> Nie każda zmiana instalacyjna zmienia OZC, ale może zmienić sposób pokrycia obciążenia.</p></div><p class="rk-ozc-copy">Zachowaj wersje raportu i projektu z datą oraz listą zmian. Wykonawca powinien dostać spójny komplet, a nie stary wynik cieplny połączony z nowym rzutem i przypadkowymi nastawami.</p></section>
<section class="rk-ozc-section" id="rk-ozc-standards" aria-labelledby="rk-ozc-title-standards"><span class="rk-ozc-eyebrow">Metoda obliczeń i zakres dokumentacji</span><h2 class="rk-ozc-title" id="rk-ozc-title-standards">Normy i wymagania — jaki zakres trzeba sprawdzić?</h2><p class="rk-ozc-lead">Podstawą metodyczną dla projektowego obciążenia cieplnego pomieszczeń i budynków jest seria EN 12831, w Polsce m.in. <strong>PN-EN 12831-1:2017-08</strong>. Trzeba odróżnić metodę wyznaczenia obciążenia od pełnego zakresu projektu instalacji oraz wymagań formalnych danej inwestycji.</p><p class="rk-ozc-copy">Zakres części 1 obejmuje obciążenie ogrzewania pomieszczeń. Dobór źródeł i odbiorników wymaga również uwzględnienia ich zadań, warunków pracy i podziału mocy. Z kolei sprawdzenie wydajności ogrzewania płaszczyznowego jest odrębnym etapem; jego zakres opisuje m.in. ISO 11855-2:2021 wraz z opublikowaną zmianą z 2023 r. Oficjalne karty dokumentów znajdziesz w <a href="#rk-ozc-sources">źródłach</a>.</p><div class="rk-ozc-note"><p><strong>Kontekst przepisów — aktualizacja 29 października 2026 r.</strong> Komunikat MRiT z 18 września 2026 r. opisuje stosowanie dotychczasowych przepisów technicznych przez 18 miesięcy od 20 września 2026 r., w zakresie określonym ustawą z 31 lipca 2026 r. Podstawę konkretnej inwestycji trzeba ustalić z uwzględnieniem tego zakresu i przepisów przejściowych. Nie należy automatycznie przenosić na każdą modernizację identycznego zestawu obowiązków i dokumentów.</p></div><p class="rk-ozc-copy">Raport OZC, projekt techniczny, świadectwo i audyt pełnią różne funkcje. Uzgodnij z projektantem cel, zakres oraz dokumenty potrzebne dla Twojej inwestycji. Sam napis „zgodnie z normą” nie zastępuje sprawdzenia danych wejściowych i kompletności opracowania. Szerszy opis metody znajdziesz w <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">poradniku o normie PN-EN 12831</a>.</p></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-errors" aria-labelledby="rk-ozc-title-errors"><span class="rk-ozc-eyebrow">Najczęstsze pomyłki</span><h2 class="rk-ozc-title" id="rk-ozc-title-errors">Najczęstsze błędy w interpretacji wyniku OZC</h2><p class="rk-ozc-lead">Weryfikuj przede wszystkim znaczenie liczby i dane, na których ją oparto. Poniższe skróty myślowe mogą prowadzić do innej decyzji niż wynika z rzeczywistych potrzeb budynku.</p><div class="rk-ozc-grid-3"><article class="rk-ozc-card"><span class="rk-ozc-number">01</span><h3>Metraż × stałe W/m²</h3><p>Wskaźnik przyjęty z góry nie zastępuje obliczeń przegród, wentylacji i pomieszczeń.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">02</span><h3>Wynik domu dla każdego pokoju</h3><p>Średnia nie uwzględnia różnic między łazienką, pokojem wewnętrznym i narożnym salonem.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">03</span><h3>kW zamienione na kWh/rok</h3><p>Pomnożenie obciążenia projektowego przez cały sezon nie odtwarza zmiennych warunków pracy.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">04</span><h3>Nazwa pompy jako dobór</h3><p>Moc podana w nazwie nie potwierdza wydajności przy wymaganej temperaturze powietrza i wody.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">05</span><h3>Sprawność odzysku dla całego domu</h3><p>Jednej wartości rekuperacji nie odejmuje się od wszystkich strat, w tym strat przez ściany.</p></article><article class="rk-ozc-card"><span class="rk-ozc-number">06</span><h3>Więcej cyfr = pewniejszy projekt</h3><p>Zaokrąglenie wyniku nie mówi, czy znano konstrukcję przegród, parametry stolarki i stan budynku.</p></article></div><div class="rk-ozc-note rk-ozc-good"><p>Nie ma podstaw do obiecywania jednej kwoty oszczędności tylko dlatego, że wykonano OZC. Korzyść polega na świadomym doborze na podstawie danych. Skutek finansowy zależy od porównywanych rozwiązań i rzeczywistych warunków.</p></div></section>
<section class="rk-ozc-section" id="rk-ozc-checklist" aria-labelledby="rk-ozc-title-checklist"><span class="rk-ozc-eyebrow">Do wykorzystania przed zleceniem</span><h2 class="rk-ozc-title" id="rk-ozc-title-checklist">Checklista przed przekazaniem danych projektantowi</h2><p class="rk-ozc-lead">Zachowaj ten zestaw jako listę przygotowania dokumentacji. W pierwszej rozmowie pokaż również braki — ich ukrycie nie zwiększa dokładności wyniku.</p><ol class="rk-ozc-steps rk-ozc-checklist"><li id="rk-ozc-check-step-1"><strong>Określ cel i wariant.</strong> Zapisz, czy chodzi o nowy dom, stan istniejący czy konkretny zakres modernizacji oraz jaki raport chcesz otrzymać.</li><li id="rk-ozc-check-step-2"><strong>Przygotuj aktualną geometrię.</strong> Zbierz rzuty, przekroje, wymiary, wysokości pomieszczeń i informacje o ogrzewanej części budynku.</li><li id="rk-ozc-check-step-3"><strong>Opisz przegrody i stolarkę.</strong> Dołącz warstwy, grubości, parametry materiałów oraz wymiary i współczynniki całych okien i drzwi.</li><li id="rk-ozc-check-step-4"><strong>Podaj lokalizację i temperatury.</strong> Wskaż miejscowość oraz oczekiwane temperatury poszczególnych pomieszczeń do uzgodnienia.</li><li id="rk-ozc-check-step-5"><strong>Zbierz dane wentylacji.</strong> Przekaż typ systemu, strumienie powietrza, parametry odzysku i dostępne informacje o szczelności.</li><li id="rk-ozc-check-step-6"><strong>Wypisz zmiany i niewiadome.</strong> Oddziel dane potwierdzone od szacowanych. W istniejącym domu uzgodnij zakres inwentaryzacji i ewentualne warianty.</li><li id="rk-ozc-check-step-7"><strong>Uzgodnij wynik i zakres projektu.</strong> Ustal, czy opracowanie zawiera obciążenia pomieszczeń, wynik budynku, jawne założenia oraz dalszy projekt ogrzewania.</li><li id="rk-ozc-check-step-8"><strong>Sprawdź wersję przed realizacją.</strong> Porównaj raport z aktualnym budynkiem i projektem instalacji. Zgłoś zmiany przed zamówieniem źródła i układaniem ogrzewania.</li></ol><p class="rk-ozc-copy"><strong>Najważniejsza kolejność:</strong> aktualne dane budynku, obciążenia pomieszczeń, sprawdzenie wydajności odbiorników, hydraulika i świadomy dobór źródła. Każda późniejsza zmiana powinna zostać odniesiona do tego samego zestawu założeń.</p><aside class="rk-ozc-cta" aria-label="Usługa projektowa autora"><h3>Przełóż obciążenie pomieszczeń na projekt ogrzewania</h3><p>Jeżeli potrzebujesz podłogówki dopasowanej do domu, zamów opracowanie łączące obliczenia cieplne z rozmieszczeniem rur i sprawdzeniem hydrauliki. W zakresie projektu sprawdź obciążenia pokojów, rozstawy, długości pętli, przepływy oraz nastawy.</p><a class="rk-ozc-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a><small class="rk-ozc-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small></aside></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-faq" aria-labelledby="rk-ozc-title-faq"><span class="rk-ozc-eyebrow">Odpowiedzi przed projektem i zakupem źródła</span><h2 class="rk-ozc-title" id="rk-ozc-title-faq">FAQ — projektowe obciążenie cieplne i OZC</h2><div class="rk-ozc-faq"><details><summary>Co oznacza projektowe obciążenie cieplne OZC?</summary><div class="rk-ozc-faq-answer"><p>To moc cieplna potrzebna do utrzymania wymaganej temperatury wewnętrznej w przyjętych warunkach projektowych. Wynik odnosi się do określonego stanu budynku, temperatur i sposobu ujęcia wentylacji.</p></div></details><details><summary>Czy OZC w kW to roczne zapotrzebowanie na ciepło?</summary><div class="rk-ozc-faq-answer"><p>Nie. kW opisują moc, a kWh/rok energię w ciągu roku. Samo obciążenie projektowe nie określa rocznej ilości ciepła ani rachunku.</p></div></details><details><summary>Ile kW potrzeba do domu o powierzchni 120 lub 150 m²?</summary><div class="rk-ozc-faq-answer"><p>Nie można tego wiarygodnie ustalić na podstawie samej powierzchni. Potrzebne są m.in. geometria, parametry przegród, stolarka, wentylacja, lokalizacja i temperatury pomieszczeń.</p></div></details><details><summary>Czy przelicznik 50 W/m² zastępuje OZC?</summary><div class="rk-ozc-faq-answer"><p>Nie. Jest wskaźnikiem przyjętym z góry i może nie odpowiadać danemu budynkowi. Obliczenia powinny wynikać z danych domu, a wskaźnik W/m² służyć do opisania lub kontroli wyniku przy znanej powierzchni odniesienia.</p></div></details><details><summary>Dlaczego potrzebne są obciążenia każdego pomieszczenia?</summary><div class="rk-ozc-faq-answer"><p>Odbiorniki trzeba dobrać tam, gdzie występuje zapotrzebowanie na moc. Średnia dla domu nie opisuje różnic temperatur, przegród, wentylacji i dostępnej powierzchni grzewczej w pokojach.</p></div></details><details><summary>Dlaczego 45 W/m² pokoju może oznaczać 75 W/m² podłogi?</summary><div class="rk-ozc-faq-answer"><p>Dla obciążenia 900 W i pokoju 20 m² wskaźnik wynosi 45 W/m². Jeżeli całą moc ma oddać 12 m² aktywnej podłogi, potrzebna średnia wydajność wynosi 75 W/m². Samo dzielenie nie potwierdza osiągalności tej wydajności.</p></div></details><details><summary>Czy świadectwo energetyczne zastępuje raport OZC?</summary><div class="rk-ozc-faq-answer"><p>Nie zastępuje go jako dokumentu do doboru ogrzewania pomieszczeń. Świadectwo ma inny cel i wskaźniki energetyczne; trzeba sprawdzić, czy masz osobne obciążenia pokoi i założenia potrzebne do projektu.</p></div></details><details><summary>Czy audyt energetyczny i OZC to to samo?</summary><div class="rk-ozc-faq-answer"><p>Nie. Audyt dotyczy oceny usprawnień w określonym zakresie, a projektowe obciążenie cieplne określa potrzebną moc. Zakresy mogą korzystać ze wspólnych danych, lecz nie są zamienne.</p></div></details><details><summary>Czy można wykonać OZC dla starego domu bez pełnego projektu?</summary><div class="rk-ozc-faq-answer"><p>Można rozpocząć od inwentaryzacji i zebrania dostępnych dokumentów. Niepewne warstwy oraz parametry wymagają rozpoznania albo jawnych założeń i, jeśli to potrzebne, porównania wariantów.</p></div></details><details><summary>Czy po ociepleniu domu trzeba sprawdzić obliczenia ponownie?</summary><div class="rk-ozc-faq-answer"><p>Tak, należy ocenić wpływ zmian na obciążenie i dobór instalacji. Raport dla stanu przed ociepleniem nie opisuje automatycznie stanu po modernizacji.</p></div></details><details><summary>Czy rekuperacja usuwa wszystkie straty wentylacyjne?</summary><div class="rk-ozc-faq-answer"><p>Nie. Bilans zależy od strumieni powietrza, warunków odzysku, pracy zimowej i szczelności. Sprawności wymiennika nie można odejmować od całych strat domu.</p></div></details><details><summary>Czy zmiana temperatury pokoju z 20°C na 24°C ma znaczenie?</summary><div class="rk-ozc-faq-answer"><p>Tak, zmienia warunki bilansu i wymaganą moc. Oczekiwaną temperaturę trzeba przekazać do obliczeń, a wpływ późniejszej zmiany sprawdzić również przy doborze odbiorników.</p></div></details><details><summary>Czy z wyniku 5,8 kW można obliczyć rachunek za ogrzewanie?</summary><div class="rk-ozc-faq-answer"><p>Nie bez dodatkowych obliczeń i danych. Do analizy rachunku potrzebujesz energii rocznej w odpowiednim zakresie, sezonowej efektywności lub sprawności, cen i składników opłat.</p></div></details><details><summary>Czy przy obciążeniu 5,8 kW trzeba kupić pompę ciepła 6 kW?</summary><div class="rk-ozc-faq-answer"><p>Nazwa handlowa nie jest wystarczającym doborem. Trzeba sprawdzić moc przy wymaganych temperaturach, zakres modulacji, strategię pracy i pozostałe zadania źródła.</p></div></details><details><summary>Czy do OZC trzeba zawsze dodać stałą moc na CWU?</summary><div class="rk-ozc-faq-answer"><p>Nie ma jednej stałej wartości dla każdego domu. Potrzeby ciepłej wody, zasobnik, czas przygotowania i priorytety pracy źródła wymagają odrębnej oceny.</p></div></details><details><summary>Czy brak części danych uniemożliwia rozmowę z projektantem?</summary><div class="rk-ozc-faq-answer"><p>Nie. Należy wskazać, których danych brakuje, co można uzupełnić i jakie założenia wymagają potwierdzenia. Kalkulator orientacyjnej mocy nie zastępuje weryfikacji danych budynku.</p></div></details><details><summary>Czy z samego OZC można odczytać rozstaw rur i przepływy?</summary><div class="rk-ozc-faq-answer"><p>Nie. Potrzebne są również powierzchnie czynne, konstrukcja podłogi, okładzina, parametry wody i geometria instalacji. Rozstaw oraz przepływy wynikają z dalszych obliczeń cieplnych i hydraulicznych.</p></div></details><details><summary>Kiedy zaktualizować raport OZC?</summary><div class="rk-ozc-faq-answer"><p>Gdy istotnie zmieniają się dane wpływające na bilans: przegrody, stolarka, wentylacja, ogrzewana część budynku lub temperatury. Osobno sprawdź zmiany wpływające na wydajność podłogówki, np. nową okładzinę.</p></div></details></div></section>
<section class="rk-ozc-section" id="rk-ozc-sources" aria-labelledby="rk-ozc-title-sources"><span class="rk-ozc-eyebrow">Podstawa techniczna i zakres opracowania</span><h2 class="rk-ozc-title" id="rk-ozc-title-sources">Źródła oficjalne i materiały edukacyjne</h2><p class="rk-ozc-lead">Wykorzystano oficjalne źródła normalizacyjne i instytucjonalne. Publiczne karty norm służą do identyfikacji dokumentów i ich zakresu; nie udostępniają całej procedury obliczeniowej. Przykłady liczbowe i narzędzia są własnymi materiałami edukacyjnymi.</p><div class="rk-ozc-sources"><article class="rk-ozc-source" id="rk-ozc-source-iso-u"><a href="https://www.iso.org/standard/65708.html" target="_blank" rel="nofollow noopener noreferrer">ISO 6946:2017 — opór i przenikanie ciepła</a><p>Oficjalna karta metody wyznaczania parametrów przegród. Zestawy U w kalkulatorze są przykładami, nie wartościami przepisanymi z normy.</p></article><article class="rk-ozc-source" id="rk-ozc-source-iso-ground"><a href="https://www.iso.org/standard/65716.html" target="_blank" rel="nofollow noopener noreferrer">ISO 13370:2017 — wymiana ciepła z gruntem</a><p>Oficjalna karta odrębnej metody dla gruntu. Współczynnik b użyty w kalkulatorze jest uproszczeniem i nie stanowi tej metody.</p></article><article class="rk-ozc-source" id="rk-ozc-source-pkn"><a href="https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html" target="_blank" rel="nofollow noopener noreferrer">PKN — PN-EN 12831-1:2017-08</a><p>Oficjalna karta polskiego wydania normy dotyczącej obciążenia cieplnego ogrzewania pomieszczeń. Karta identyfikuje dokument; nie zastępuje pełnej treści normy.</p></article><article class="rk-ozc-source" id="rk-ozc-source-bsi"><a href="https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3" target="_blank" rel="nofollow noopener noreferrer">BSI — EN 12831-1:2017, zakres metody</a><p>Oficjalne omówienie zakresu: obciążenie pomieszczeń i budynków oraz powiązanie z doborem elementów systemu.</p></article><article class="rk-ozc-source" id="rk-ozc-source-iso"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — wydajność ogrzewania płaszczyznowego</a><p>Oficjalna karta metody określania wydajności ogrzewania i chłodzenia płaszczyznowego. Wskazuje odrębność oceny systemu od obciążenia pomieszczenia.</p></article><article class="rk-ozc-source" id="rk-ozc-source-iso-amend"><a href="https://www.iso.org/standard/83782.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021/Amd 1:2023</a><p>Oficjalna karta opublikowanej zmiany do części 2. Przy korzystaniu z dokumentu trzeba uwzględnić właściwe wydanie i zmiany.</p></article><article class="rk-ozc-source" id="rk-ozc-source-cibse"><a href="https://www.cibse.org/knowledge-research/knowledge-portal/ventilation-in-buildings-top-tips?id=a0q20000006oamlAAA" target="_blank" rel="nofollow noopener noreferrer">CIBSE — wentylacja i infiltracja</a><p>Materiał edukacyjny instytucji inżynierskiej o wentylacji, szczelności i infiltracji oraz ich znaczeniu w projektowaniu.</p></article><article class="rk-ozc-source" id="rk-ozc-source-register"><a href="https://rejestrcheb.mrit.gov.pl/wykaz-swiadectw-charakterystyki-energetycznej-budynkow" target="_blank" rel="nofollow noopener noreferrer">MRiT — rejestr świadectw i wskaźniki EU, EK, EP</a><p>Oficjalny rejestr rozróżniający roczne wskaźniki energii użytkowej, końcowej i nieodnawialnej energii pierwotnej.</p></article><article class="rk-ozc-source" id="rk-ozc-source-mrit"><a href="https://www.gov.pl/web/rozwoj-technologia/komunikat-ministerstwa-rozwoju-i-technologii-dotyczacy-prac-nad-rozporzadzeniem-w-sprawie-warunkow-technicznych-jakim-powinny-odpowiadac-budynki-i-ich-usytuowanie-oraz-warunkow-technicznych-uzytkowania-budynkow-mieszkalnych" target="_blank" rel="nofollow noopener noreferrer">MRiT — komunikat z 18 września 2026 r.</a><p>Oficjalne wyjaśnienie stosowania dotychczasowych przepisów technicznych w okresie przejściowym, w zakresie wskazanym w ustawie.</p></article><article class="rk-ozc-source" id="rk-ozc-source-law"><a href="https://eli.gov.pl/eli/DU/2026/1161/ogl" target="_blank" rel="nofollow noopener noreferrer">ELI — ustawa z 31 lipca 2026 r., Dz.U. poz. 1161</a><p>Oficjalna publikacja aktu przywołanego w komunikacie MRiT. Zakres i przepisy przejściowe wymagają odniesienia do konkretnej inwestycji.</p></article></div><div class="rk-ozc-note"><p><strong>Zakres poradnika:</strong> objaśnia wynik, dane i wykorzystanie obciążenia cieplnego. Nie zastępuje obliczeń konkretnego budynku, pełnej treści norm, projektu, świadectwa ani audytu. Przewodnik przedstawia fikcyjne wartości, a kalkulator szacuje moc na podstawie jawnie uproszczonego modelu budynku. Nie oblicza energii rocznej ani pełnego OZC pomieszczeń. Aktualizacja materiału: <time datetime="2026-10-29">29 października 2026 r.</time>.</p></div></section>
<section class="rk-ozc-section rk-ozc-soft" id="rk-ozc-author" aria-labelledby="rk-ozc-title-author"><span class="rk-ozc-eyebrow">Opracowanie eksperckie</span><h2 class="rk-ozc-title" id="rk-ozc-title-author">Autor i zakres opracowania</h2><div class="rk-ozc-author-layout"><aside class="rk-ozc-author-side"><div class="rk-ozc-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i specjalista HVAC" width="400" height="400" loading="lazy" decoding="async"></div><div class="rk-ozc-author-name">Robert Kucharski</div><p class="rk-ozc-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p><div class="rk-ozc-social" aria-label="Profile autora"><a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer me" aria-label="LinkedIn Roberta Kucharskiego">in</a><a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Facebook Projekt Ogrzewania">f</a><a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Projekt HVAC w serwisie X">X</a></div></aside><div class="rk-ozc-author-main"><div class="rk-ozc-author-quote">Wynik dla całego domu rozpoczyna rozmowę o ogrzewaniu. Dopiero obciążenia pomieszczeń, dostępna powierzchnia grzewcza i policzona hydraulika pokazują, jak dostarczyć tę moc tam, gdzie jest potrzebna.</div><p>Robert Kucharski opracowuje projekty ogrzewania podłogowego oraz obliczenia cieplne i hydrauliczne. W materiałach edukacyjnych wyjaśnia zależności między danymi budynku, obciążeniem pomieszczeń, wydajnością odbiorników i pracą źródła ciepła.</p><p>Poradnik rozdziela projektowe obciążenie cieplne od energii rocznej, świadectwa i audytu. Interaktywne moduły służą do czytania przykładowego raportu i orientacyjnego szacowania mocy ogrzewania. Kalkulator ma jawne założenia i nie zastępuje pełnych obliczeń konkretnego domu.</p><p>Publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego</a>.</p><div class="rk-ozc-author-facts"><div><strong>Zakres</strong>obliczenia cieplne, podłogówka i hydraulika instalacji</div><div><strong>Metoda</strong>aktualne dane budynku i jawne założenia projektowe</div><div><strong>Aktualizacja</strong><time datetime="2026-10-29">29 października 2026 r.</time></div></div></div></div></section>
</div></article>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/"
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/"
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-photo"
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": [
        {
          "@id": "https://projekt-ogrzewania.pl/#organization"
        }
      ],
      "knowsAbout": [
        "projektowe obciążenie cieplne",
        "OZC",
        "ogrzewanie podłogowe",
        "obliczenia cieplne",
        "hydraulika instalacji grzewczych"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski-photo",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "width": 400,
      "height": 400,
      "caption": "Robert Kucharski — projektant instalacji sanitarnych i specjalista HVAC"
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Projektowe-Obciazenie-Cieplne-OZC.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/02/Projektowe-Obciazenie-Cieplne-OZC.webp",
      "width": 945,
      "height": 945,
      "caption": "Projektowe obciążenie cieplne OZC"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Poradniki",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Projektowe obciążenie cieplne (OZC) — co oznacza wynik i jak go wykorzystać?",
          "item": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#webpage",
      "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/",
      "name": "Projektowe obciążenie cieplne (OZC) — co oznacza wynik i jak go wykorzystać?",
      "description": "Projektowe obciążenie cieplne OZC — co oznacza wynik w kW i W/m², jakie dane przygotować i jak wykorzystać raport do projektu podłogówki i doboru źródła ciepła.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-breadcrumb"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#primaryimage"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#article"
      },
      "datePublished": "2026-02-15T12:02:50+00:00",
      "dateModified": "2026-10-29",
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#webpage"
      },
      "headline": "Projektowe obciążenie cieplne (OZC) — co oznacza wynik i jak go wykorzystać?",
      "description": "Projektowe obciążenie cieplne OZC — co oznacza wynik w kW i W/m², jakie dane przygotować i jak wykorzystać raport do projektu podłogówki i doboru źródła ciepła.",
      "image": {
        "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#primaryimage"
      },
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2026-02-15T12:02:50+00:00",
      "dateModified": "2026-10-29",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": [
        "projektowe obciążenie cieplne",
        "OZC",
        "obciążenie cieplne pomieszczeń",
        "raport z obliczeń OZC",
        "dobór ogrzewania podłogowego"
      ],
      "keywords": "projektowe obciążenie cieplne, OZC, wynik OZC, obciążenie cieplne pomieszczeń, dane do OZC, raport OZC",
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#report-reader"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#heat-load-estimator"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#faq-schema"
        }
      ],
      "citation": [
        "https://www.iso.org/standard/65708.html",
        "https://www.iso.org/standard/65716.html",
        "https://sklep.pkn.pl/pn-en-12831-1-2017-08e.html",
        "https://knowledge.bsigroup.com/products/energy-performance-of-buildings-method-for-calculation-of-the-design-heat-load-space-heating-load-module-m3-3",
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/83782.html",
        "https://www.cibse.org/knowledge-research/knowledge-portal/ventilation-in-buildings-top-tips?id=a0q20000006oamlAAA",
        "https://rejestrcheb.mrit.gov.pl/wykaz-swiadectw-charakterystyki-energetycznej-budynkow",
        "https://www.gov.pl/web/rozwoj-technologia/komunikat-ministerstwa-rozwoju-i-technologii-dotyczacy-prac-nad-rozporzadzeniem-w-sprawie-warunkow-technicznych-jakim-powinny-odpowiadac-budynki-i-ich-usytuowanie-oraz-warunkow-technicznych-uzytkowania-budynkow-mieszkalnych",
        "https://eli.gov.pl/eli/DU/2026/1161/ogl"
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#report-reader",
      "name": "Interaktywny przewodnik po raporcie OZC",
      "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-reader",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Przeglądarka internetowa",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Objaśnia założenia, wyniki budynku i pomieszczeń oraz wskaźniki W/m² na fikcyjnym przykładzie edukacyjnym. Nie oblicza obciążenia budynku użytkownika."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#heat-load-estimator",
      "name": "Kalkulator orientacyjnego obciążenia cieplnego domu",
      "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-data",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa",
      "browserRequirements": "JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Szacuje moc ogrzewania i wskaźnik W/m² na podstawie uproszczonej geometrii, parametrów U, temperatur, wentylacji i mostków. Porównuje jawne zestawy przegród; nie oblicza energii rocznej ani pełnego OZC."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#howto",
      "name": "Jak przygotować dane do obliczeń projektowego obciążenia cieplnego",
      "description": "Osiem kroków od określenia wariantu budynku do sprawdzenia aktualności raportu i projektu.",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Określ cel i wariant",
          "text": "Zapisz, czy chodzi o nowy dom, stan istniejący czy konkretny zakres modernizacji oraz jaki raport chcesz otrzymać.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-1"
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Przygotuj aktualną geometrię",
          "text": "Zbierz rzuty, przekroje, wymiary, wysokości pomieszczeń i informacje o ogrzewanej części budynku.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-2"
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Opisz przegrody i stolarkę",
          "text": "Dołącz warstwy, grubości, parametry materiałów oraz wymiary i współczynniki całych okien i drzwi.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-3"
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Podaj lokalizację i temperatury",
          "text": "Wskaż miejscowość oraz oczekiwane temperatury poszczególnych pomieszczeń do uzgodnienia.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-4"
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zbierz dane wentylacji",
          "text": "Przekaż typ systemu, strumienie powietrza, parametry odzysku i dostępne informacje o szczelności.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-5"
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Wypisz zmiany i niewiadome",
          "text": "Oddziel dane potwierdzone od szacowanych. W istniejącym domu uzgodnij zakres inwentaryzacji i ewentualne warianty.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-6"
        },
        {
          "@type": "HowToStep",
          "position": 7,
          "name": "Uzgodnij wynik i zakres projektu",
          "text": "Ustal, czy opracowanie zawiera obciążenia pomieszczeń, wynik budynku, jawne założenia oraz dalszy projekt ogrzewania.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-7"
        },
        {
          "@type": "HowToStep",
          "position": 8,
          "name": "Sprawdź wersję przed realizacją",
          "text": "Porównaj raport z aktualnym budynkiem i projektem instalacji. Zgłoś zmiany przed zamówieniem źródła i układaniem ogrzewania.",
          "url": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#rk-ozc-check-step-8"
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/#faq-schema",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Co oznacza projektowe obciążenie cieplne OZC?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "To moc cieplna potrzebna do utrzymania wymaganej temperatury wewnętrznej w przyjętych warunkach projektowych. Wynik odnosi się do określonego stanu budynku, temperatur i sposobu ujęcia wentylacji."
          }
        },
        {
          "@type": "Question",
          "name": "Czy OZC w kW to roczne zapotrzebowanie na ciepło?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. kW opisują moc, a kWh/rok energię w ciągu roku. Samo obciążenie projektowe nie określa rocznej ilości ciepła ani rachunku."
          }
        },
        {
          "@type": "Question",
          "name": "Ile kW potrzeba do domu o powierzchni 120 lub 150 m²?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie można tego wiarygodnie ustalić na podstawie samej powierzchni. Potrzebne są m.in. geometria, parametry przegród, stolarka, wentylacja, lokalizacja i temperatury pomieszczeń."
          }
        },
        {
          "@type": "Question",
          "name": "Czy przelicznik 50 W/m² zastępuje OZC?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Jest wskaźnikiem przyjętym z góry i może nie odpowiadać danemu budynkowi. Obliczenia powinny wynikać z danych domu, a wskaźnik W/m² służyć do opisania lub kontroli wyniku przy znanej powierzchni odniesienia."
          }
        },
        {
          "@type": "Question",
          "name": "Dlaczego potrzebne są obciążenia każdego pomieszczenia?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Odbiorniki trzeba dobrać tam, gdzie występuje zapotrzebowanie na moc. Średnia dla domu nie opisuje różnic temperatur, przegród, wentylacji i dostępnej powierzchni grzewczej w pokojach."
          }
        },
        {
          "@type": "Question",
          "name": "Dlaczego 45 W/m² pokoju może oznaczać 75 W/m² podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Dla obciążenia 900 W i pokoju 20 m² wskaźnik wynosi 45 W/m². Jeżeli całą moc ma oddać 12 m² aktywnej podłogi, potrzebna średnia wydajność wynosi 75 W/m². Samo dzielenie nie potwierdza osiągalności tej wydajności."
          }
        },
        {
          "@type": "Question",
          "name": "Czy świadectwo energetyczne zastępuje raport OZC?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zastępuje go jako dokumentu do doboru ogrzewania pomieszczeń. Świadectwo ma inny cel i wskaźniki energetyczne; trzeba sprawdzić, czy masz osobne obciążenia pokoi i założenia potrzebne do projektu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy audyt energetyczny i OZC to to samo?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Audyt dotyczy oceny usprawnień w określonym zakresie, a projektowe obciążenie cieplne określa potrzebną moc. Zakresy mogą korzystać ze wspólnych danych, lecz nie są zamienne."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można wykonać OZC dla starego domu bez pełnego projektu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Można rozpocząć od inwentaryzacji i zebrania dostępnych dokumentów. Niepewne warstwy oraz parametry wymagają rozpoznania albo jawnych założeń i, jeśli to potrzebne, porównania wariantów."
          }
        },
        {
          "@type": "Question",
          "name": "Czy po ociepleniu domu trzeba sprawdzić obliczenia ponownie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, należy ocenić wpływ zmian na obciążenie i dobór instalacji. Raport dla stanu przed ociepleniem nie opisuje automatycznie stanu po modernizacji."
          }
        },
        {
          "@type": "Question",
          "name": "Czy rekuperacja usuwa wszystkie straty wentylacyjne?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Bilans zależy od strumieni powietrza, warunków odzysku, pracy zimowej i szczelności. Sprawności wymiennika nie można odejmować od całych strat domu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy zmiana temperatury pokoju z 20°C na 24°C ma znaczenie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Tak, zmienia warunki bilansu i wymaganą moc. Oczekiwaną temperaturę trzeba przekazać do obliczeń, a wpływ późniejszej zmiany sprawdzić również przy doborze odbiorników."
          }
        },
        {
          "@type": "Question",
          "name": "Czy z wyniku 5,8 kW można obliczyć rachunek za ogrzewanie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie bez dodatkowych obliczeń i danych. Do analizy rachunku potrzebujesz energii rocznej w odpowiednim zakresie, sezonowej efektywności lub sprawności, cen i składników opłat."
          }
        },
        {
          "@type": "Question",
          "name": "Czy przy obciążeniu 5,8 kW trzeba kupić pompę ciepła 6 kW?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nazwa handlowa nie jest wystarczającym doborem. Trzeba sprawdzić moc przy wymaganych temperaturach, zakres modulacji, strategię pracy i pozostałe zadania źródła."
          }
        },
        {
          "@type": "Question",
          "name": "Czy do OZC trzeba zawsze dodać stałą moc na CWU?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednej stałej wartości dla każdego domu. Potrzeby ciepłej wody, zasobnik, czas przygotowania i priorytety pracy źródła wymagają odrębnej oceny."
          }
        },
        {
          "@type": "Question",
          "name": "Czy brak części danych uniemożliwia rozmowę z projektantem?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Należy wskazać, których danych brakuje, co można uzupełnić i jakie założenia wymagają potwierdzenia. Kalkulator orientacyjnej mocy nie zastępuje weryfikacji danych budynku."
          }
        },
        {
          "@type": "Question",
          "name": "Czy z samego OZC można odczytać rozstaw rur i przepływy?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Potrzebne są również powierzchnie czynne, konstrukcja podłogi, okładzina, parametry wody i geometria instalacji. Rozstaw oraz przepływy wynikają z dalszych obliczeń cieplnych i hydraulicznych."
          }
        },
        {
          "@type": "Question",
          "name": "Kiedy zaktualizować raport OZC?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Gdy istotnie zmieniają się dane wpływające na bilans: przegrody, stolarka, wentylacja, ogrzewana część budynku lub temperatury. Osobno sprawdź zmiany wpływające na wydajność podłogówki, np. nową okładzinę."
          }
        }
      ]
    }
  ]
}
</script>
<script>
(function () {
  "use strict";
  var reportData = {"rooms": {"salon": {"name": "Salon", "area": 20, "active": 12, "temperature": 20, "transmission": 700, "ventilation": 200, "load": 900}, "bathroom": {"name": "Łazienka", "area": 8, "active": 5, "temperature": 24, "transmission": 350, "ventilation": 150, "load": 500}, "bedroom": {"name": "Sypialnia", "area": 15, "active": 11, "temperature": 20, "transmission": 420, "ventilation": 180, "load": 600}}, "modules": {"assumptions": {"label": "1. Założenia obliczeń", "button": "Założenia obliczeń", "title": "Najpierw sprawdź, jaki budynek opisuje wynik", "intro": "Fikcyjny przykład edukacyjny: dom o powierzchni odniesienia 150 m², wynik dla budynku 5,8 kW oraz trzy pokazane osobno pomieszczenia. Dane nie pochodzą z projektu klienta.", "metrics": [["Powierzchnia odniesienia domu", "150 m²"], ["Temperatura zewnętrzna", "−20°C"], ["Temperatury w przykładzie", "20°C / 24°C"]], "meaning": "Wynik dotyczy konkretnego wariantu budynku i warunków projektowych. Nie opisuje samodzielnie każdej temperatury zewnętrznej ani przyszłej zmiany sposobu użytkowania.", "assumptions": "W przykładzie: uzgodniona geometria, parametry przegród, lokalizacja i wentylacja. Pokój oraz łazienka mają różne temperatury; brak odrębnego dodatku na ponowne nagrzanie.", "decision": "Możesz sprawdzić, czy raport odnosi się do aktualnej wersji Twojego domu i planowanych temperatur pomieszczeń.", "unknown": "Nie znasz jeszcze parametrów konkretnego źródła, wydajności podłogi, długości pętli ani kosztu ogrzewania.", "footnote": "Liczby służą do nauki czytania raportu. Nie są przelicznikiem W/m² do doboru ogrzewania dla innych domów."}, "building": {"label": "2. Wynik całego budynku", "button": "Wynik budynku", "title": "5,8 kW to obciążenie budynku przy opisanych założeniach", "intro": "Wartość dla całego przykładowego domu wynosi 5800 W. Wskaźnik 38,7 W/m² obliczono względem 150 m² powierzchni odniesienia.", "metrics": [["Obciążenie budynku", "5,8 kW"], ["Powierzchnia odniesienia", "150 m²"], ["Średni wskaźnik dla domu", "38,7 W/m²"]], "meaning": "To moc cieplna potrzebna do ogrzewania w przyjętych warunkach projektowych. Nie jest to pobór prądu ani suma zużycia energii przez sezon.", "assumptions": "Wynik budynku otrzymuje się z bilansu zgodnego z metodą i przyjętymi granicami. Trzy pokazane pokoje są wyłącznie fragmentem danych.", "decision": "Możesz rozpocząć sprawdzanie zdolności instalacji i źródła do pokrycia obciążenia oraz porównać jawnie opisane warianty budynku.", "unknown": "Nie wynika z niego, że trzeba kupić urządzenie o nazwie handlowej „6 kW”, ani że każdy pokój potrzebuje 38,7 W/m².", "footnote": "5800 W / 150 m² = 38,666… W/m², po zaokrągleniu 38,7 W/m². Nie rozdzielaj tej średniej na wszystkie pomieszczenia."}, "room": {"label": "3. Wynik pomieszczenia", "button": "Wynik pomieszczenia", "title": "Odczytaj moc potrzebną w konkretnym pokoju", "intro": "Wybierz pomieszczenie z fikcyjnego fragmentu raportu.", "metrics": [["Przenikanie", "700 W"], ["Wentylacja", "200 W"], ["Obciążenie pomieszczenia", "900 W"]], "meaning": "Odbiorniki w pomieszczeniu mają łącznie pokryć przypisane im obciążenie przy projektowej temperaturze tego pomieszczenia.", "assumptions": "W tych prostych danych edukacyjnych obciążenie pokoju jest sumą dwóch podanych składników. Rzeczywisty raport może mieć bardziej szczegółowe pozycje i dodatki.", "decision": "Możesz przekazać obciążenie konkretnego pokoju do sprawdzenia podłogi, grzejnika lub udziału kilku odbiorników.", "unknown": "Nie wynika z niego jeszcze rozstaw rur, temperatura wody, przepływ ani liczba pętli. Potrzebna jest geometria i charakterystyka systemu.", "footnote": "Nie porównuj pokojów wyłącznie po metrażu; temperatura, przegrody i strumienie powietrza mogą się różnić."}, "intensity": {"label": "4. Dwie powierzchnie, dwie wartości", "button": "Wskaźnik W/m²", "title": "W/m² pokoju i W/m² aktywnej podłogi opisują coś innego", "intro": "Dla salonu w przykładzie: 900 W, 20 m² pokoju i 12 m² aktywnej podłogi.", "metrics": [["Na powierzchnię pomieszczenia", "45,0 W/m²"], ["Na aktywną powierzchnię podłogi", "75,0 W/m²"], ["Aktywna powierzchnia w przykładzie", "12 m²"]], "meaning": "Pierwszy wskaźnik opisuje obciążenie względem powierzchni pokoju. Drugi wskazuje średnią wydajność wymaganą od czynnej podłogi, jeżeli ma ona sama ogrzewać pokój.", "assumptions": "Aktywna powierzchnia jest tutaj założoną daną projektu. Nie otrzymuje się jej przez odjęcie wszystkich mebli według jednej uniwersalnej reguły.", "decision": "Możesz sprawdzić, czy projektant porównuje wymaganą moc z wydajnością rzeczywiście dostępnej powierzchni grzewczej.", "unknown": "Samo dzielenie nie potwierdza osiągalności mocy ani dopuszczalnej temperatury powierzchni. Potrzebne są okładzina, konstrukcja i parametry pracy.", "footnote": "Dla salonu: 900 / 20 = 45 W/m²; 900 / 12 = 75 W/m². Różnica nie oznacza zmiany strat ciepła pokoju."}, "use": {"label": "5. Od raportu do instalacji", "button": "Wykorzystanie wyniku", "title": "Po obciążeniach przychodzi sprawdzenie odbiorników i hydrauliki", "intro": "Wynik cieplny jest wejściem do kolejnych obliczeń. Każdy etap potrzebuje własnych danych i sprawdzenia.", "metrics": [["Etap 1", "Moc pomieszczeń"], ["Etap 2", "Wydajność odbiorników"], ["Etap 3", "Hydraulika i źródło"]], "meaning": "Raport określa potrzebną moc. Projekt instalacji ustala, jak ją dostarczyć do pomieszczeń w przyjętych warunkach.", "assumptions": "Dochodzą powierzchnie czynne, opór okładziny, budowa podłogi, parametry wody, trasy i wymiary rur oraz dokumentacja urządzeń.", "decision": "Możesz porównać zakres oferty projektowej z potrzebami: obliczenia pokojów, sprawdzenie mocy, podział pętli, przepływy i nastawy.", "unknown": "Nie można wyprowadzić pełnego projektu, kosztów rocznych ani numeru katalogowego pompy wyłącznie z wyniku 5,8 kW.", "footnote": "Ten przewodnik pomaga interpretować dane. Nie oblicza OZC Twojego budynku i nie zatwierdza parametrów instalacji."}}};
  var calculatorConfig = {"presets": {"a": {"label": "Zestaw A", "wallU": 0.2, "roofU": 0.15, "floorU": 0.25, "windowU": 0.9, "doorU": 1.3}, "b": {"label": "Zestaw B", "wallU": 0.45, "roofU": 0.3, "floorU": 0.5, "windowU": 1.3, "doorU": 1.7}, "c": {"label": "Zestaw C", "wallU": 1.1, "roofU": 0.7, "floorU": 0.9, "windowU": 2.4, "doorU": 2.6}}, "defaults": {"area": 150, "height": 2.7, "windows": 30, "doors": 4, "inside": 20, "outside": -20, "flow": 150, "recovery": 75, "infiltration": 0.1, "wallU": 0.2, "roofU": 0.15, "floorU": 0.25, "windowU": 0.9, "doorU": 1.3, "groundB": 0.5, "bridges": 12, "floors": "2", "ratio": "1.5", "preset": "a", "ventilation": "natural", "compare": "b"}, "labels": {"area": "Powierzchnia ogrzewana [m²]", "height": "Średnia wysokość ogrzewanej kondygnacji [m]", "windows": "Łączna powierzchnia okien [m²]", "doors": "Powierzchnia drzwi zewnętrznych [m²]", "inside": "Temperatura wewnętrzna [°C]", "outside": "Projektowa temperatura zewnętrzna [°C]", "flow": "Strumień powietrza [m³/h]", "recovery": "Efektywność odzysku przyjęta w modelu [%]", "infiltration": "Dodatkowa infiltracja [1/h]", "wallU": "U ścian [W/(m²·K)]", "roofU": "U stropu lub dachu [W/(m²·K)]", "floorU": "U podłogi — parametr modelu [W/(m²·K)]", "windowU": "Uw całych okien [W/(m²·K)]", "doorU": "Ud drzwi [W/(m²·K)]", "groundB": "Współczynnik b dla podłogi — model [–]", "bridges": "Sumaryczny H mostków [W/K]", "floors": "Liczba kondygnacji", "ratio": "Proporcje rzutu", "ventilation": "Sposób wentylacji"}};
  function computeHeatLoad(input) {
    var errors = [];
    var warnings = [];
    var limits = {
      area: [10, 2000], floors: [1, 3], height: [1.8, 5], ratio: [1, 3],
      windows: [0, 1500], doors: [0, 100], inside: [10, 28], outside: [-35, 5],
      wallU: [0.05, 4], roofU: [0.04, 4], floorU: [0.05, 4],
      windowU: [0.4, 6], doorU: [0.4, 6], flow: [1, 4000],
      groundB: [0.05, 1], bridges: [0, 300], recovery: [0, 95], infiltration: [0, 2]
    };
    Object.keys(limits).forEach(function (key) {
      var value = input[key];
      if (typeof value !== "number") { errors.push(key); return; }
      if (!Number.isFinite(value)) { errors.push(key); return; }
      if (value < limits[key][0]) { errors.push(key); return; }
      if (value > limits[key][1]) { errors.push(key); }
    });
    if (errors.length > 0) { return { ok: false, errors: errors }; }
    if (Math.floor(input.floors) !== input.floors) { errors.push("floors"); }
    if (input.ventilation !== "natural") {
      if (input.ventilation !== "mechanical") { errors.push("ventilation"); }
    }
    if (input.outside >= input.inside) { errors.push("outside"); }
    if (errors.length > 0) { return { ok: false, errors: errors }; }

    var footprint = input.area / input.floors;
    var length = Math.sqrt(footprint * input.ratio);
    var width = Math.sqrt(footprint / input.ratio);
    var perimeter = 2 * (length + width);
    var wallGross = perimeter * input.height * input.floors;
    var wallNet = wallGross - input.windows - input.doors;
    if (wallNet <= 0) { return { ok: false, errors: ["openings"] }; }
    var volume = input.area * input.height;
    var delta = input.inside - input.outside;
    var effectiveFlow = input.flow;
    if (input.ventilation === "mechanical") {
      effectiveFlow = input.flow * (1 - input.recovery / 100) + input.infiltration * volume;
    }
    function parts(u) {
      return {
        wall: wallNet * u.wallU * delta,
        roof: footprint * u.roofU * delta,
        floor: footprint * u.floorU * input.groundB * delta,
        window: input.windows * u.windowU * delta,
        door: input.doors * u.doorU * delta,
        bridges: input.bridges * delta,
        air: 0.34 * effectiveFlow * delta
      };
    }
    var components = parts(input);
    function sum(values) {
      return Object.keys(values).reduce(function (acc, key) { return acc + values[key]; }, 0);
    }
    var total = sum(components);
    var comparison = null;
    if (input.compare) {
      var compareParts = parts(input.compare.values);
      comparison = {
        label: input.compare.label, values: input.compare.values,
        components: compareParts, total: sum(compareParts)
      };
    }
    if (input.bridges === 0) {
      warnings.push("Mostki cieplne pominięto (H = 0 W/K). To pominięcie składnika modelu, nie potwierdzenie braku mostków w budynku.");
    }
    if (input.windows + input.doors > wallGross * 0.6) {
      warnings.push("Otwory zajmują ponad 60% powierzchni ścian tej bryły. Sprawdź ich pole i przyjętą geometrię.");
    }
    if (input.ventilation === "natural") {
      warnings.push("Przy wentylacji bez odzysku wpisany strumień jest łącznym napływem powietrza zewnętrznego do ogrzania. Model nie dolicza drugi raz osobnej infiltracji.");
    } else {
      if (input.recovery >= 80) {
        warnings.push("Wysoki odzysk wymaga potwierdzenia dla warunków zimowych. Katalogowy procent nie opisuje automatycznie odszraniania, niezbilansowania i pracy całej instalacji.");
      }
      if (input.infiltration === 0) {
        warnings.push("Osobny napływ przez nieszczelności przyjęto jako zero. Jest to założenie modelu, które wymaga uzasadnienia.");
      }
    }
    if (comparison) {
      if (Math.abs(total - comparison.total) < 1) {
        warnings.push("Porównywane warianty mają ten sam lub bardzo zbliżony wynik. Wybierz inny zestaw U, aby zobaczyć wpływ przegród.");
      }
    }
    return {
      ok: true, total: total, indicator: total / input.area, components: components,
      comparison: comparison, warnings: warnings, effectiveFlow: effectiveFlow,
      geometry: { footprint: footprint, length: length, width: width, perimeter: perimeter,
        wallGross: wallGross, wallNet: wallNet, volume: volume }, delta: delta
    };
  }


  function init() {
    var guide = document.getElementById("rk-ozc-guide");
    if (!guide) { return; }
    function byId(name) { return guide.querySelector("#rk-ozc-" + name); }
    function number(value, digits) {
      return new Intl.NumberFormat("pl-PL", {
        minimumFractionDigits: digits, maximumFractionDigits: digits
      }).format(value);
    }
    function setText(name, text) {
      var node = byId(name);
      if (node) { node.textContent = text; }
    }

    function initReader() {
      var reader = byId("reader-tool");
      if (!reader) { return; }
      if (reader.getAttribute("data-rk-ready") === "true") { return; }
      var roomSelect = byId("report-room");
      var roomField = byId("report-room-field");
      var controls = byId("report-controls");
      var buttons = reader.querySelectorAll("[data-rk-ozc-module]");
      var panel = byId("report-panel");
      if (!roomSelect) { return; }
      if (!roomField) { return; }
      if (!controls) { return; }
      if (!panel) { return; }
      if (buttons.length !== 5) { return; }
      var required = ["report-title", "report-intro", "report-meaning", "report-assumptions", "report-decision", "report-unknown", "report-footnote"];
      for (var index = 0; index < required.length; index += 1) {
        if (!byId(required[index])) { return; }
      }
      var current = "assumptions";

      function showModule(key) {
        var module = reportData.modules[key];
        if (!module) { return; }
        current = key;
        var room = reportData.rooms[roomSelect.value];
        if (!room) { room = reportData.rooms.salon; }
        var metrics = module.metrics;
        var intro = module.intro;
        var footnote = module.footnote;
        roomField.hidden = true;
        if (key === "room") {
          roomField.hidden = false;
          intro = room.name + ": przykład odczytu wyniku dla jednego pomieszczenia. Podane obciążenie obejmuje w tym przykładzie przenikanie i wentylację; nie dodano odrębnej mocy na ponowne nagrzanie.";
          metrics = [
            ["Przenikanie", number(room.transmission, 0) + " W"],
            ["Wentylacja", number(room.ventilation, 0) + " W"],
            ["Obciążenie pomieszczenia", number(room.load, 0) + " W"]
          ];
          footnote = number(room.transmission, 0) + " W + " + number(room.ventilation, 0) + " W = " + number(room.load, 0) + " W. Temperatura w pokoju: " + number(room.temperature, 0) + "°C; powierzchnia: " + number(room.area, 0) + " m². To dane fikcyjnego przykładu, a nie wynik obliczeń Twojego domu.";
        }
        if (key === "intensity") {
          roomField.hidden = false;
          intro = room.name + ": obciążenie jest takie samo. Zmienia się powierzchnia w mianowniku, więc zmienia się znaczenie wskaźnika.";
          metrics = [
            ["Na powierzchnię pomieszczenia", number(room.load / room.area, 1) + " W/m²"],
            ["Na aktywną powierzchnię podłogi", number(room.load / room.active, 1) + " W/m²"],
            ["Aktywna powierzchnia w przykładzie", number(room.active, 0) + " m²"]
          ];
          footnote = number(room.load, 0) + " W / " + number(room.area, 0) + " m² = " + number(room.load / room.area, 1) + " W/m² pokoju. " + number(room.load, 0) + " W / " + number(room.active, 0) + " m² = " + number(room.load / room.active, 1) + " W/m² aktywnej podłogi. Drugie dzielenie zakłada, że całą tę moc ma pokryć podłoga. Nie potwierdza, że dany system osiągnie wymaganą wydajność.";
        }
        buttons.forEach(function (button) {
          button.setAttribute("aria-pressed", button.getAttribute("data-rk-ozc-module") === key ? "true" : "false");
        });
        setText("report-label", module.label);
        setText("report-title", module.title);
        setText("report-intro", intro);
        ["meaning", "assumptions", "decision", "unknown"].forEach(function (name) {
          setText("report-" + name, module[name]);
        });
        metrics.forEach(function (metric, i) {
          setText("report-metric-label-" + i, metric[0]);
          setText("report-metric-value-" + i, metric[1]);
        });
        setText("report-footnote", footnote);
      }
      buttons.forEach(function (button) {
        button.addEventListener("click", function () {
          showModule(button.getAttribute("data-rk-ozc-module"));
        });
      });
      roomSelect.addEventListener("change", function () { showModule(current); });
      reader.setAttribute("data-rk-ready", "true");
      controls.hidden = false;
      showModule("assumptions");
    }

    function initCalculator() {
      var tool = byId("estimator-tool");
      var form = byId("est-form");
      if (!tool) { return; }
      if (!form) { return; }
      if (form.getAttribute("data-rk-ready") === "true") { return; }
      var defaults = calculatorConfig.defaults;
      var keys = Object.keys(defaults);
      var needed = ["est-results", "est-errors", "est-error-list", "est-result-title", "est-reset", "est-mechanical", "est-u-details", "est-breakdown", "est-notes", "est-comparison"];
      var missing = false;
      keys.forEach(function (key) { if (!byId("est-" + key)) { missing = true; } });
      needed.forEach(function (key) { if (!byId(key)) { missing = true; } });
      if (missing) { return; }
      var uKeys = ["wallU", "roofU", "floorU", "windowU", "doorU"];
      var labels = calculatorConfig.labels;
      var results = byId("est-results");
      var errorsBox = byId("est-errors");

      function readNumber(key) {
        var raw = byId("est-" + key).value.trim().replace(/\u2212/g, "-");
        if (!/^-?\d+(?:[.,]\d+)?$/.test(raw)) { return NaN; }
        return Number(raw.replace(",", "."));
      }
      function putValue(key, value) {
        var node = byId("est-" + key);
        if (node.tagName === "SELECT") { node.value = String(value); }
        else { node.value = String(value).replace(".", ","); }
      }
      function setPreset(key) {
        var preset = calculatorConfig.presets[key];
        if (!preset) { return; }
        uKeys.forEach(function (name) { putValue(name, preset[name]); });
      }
      function clearNumbers() {
        ["est-total", "est-indicator", "est-delta", "est-base-total", "est-compare-total"].forEach(function (key) { setText(key, "—"); });
        setText("est-breakdown", "");
        setText("est-notes", "");
        setText("est-compare-summary", "");
        setText("est-announcement", "Popraw dane, aby uzyskać aktualny wynik.");
      }
      function valuesText(values) {
        return "U ścian " + number(values.wallU, 2) + "; stropu " + number(values.roofU, 2) + "; podłogi " + number(values.floorU, 2) + "; Uw okien " + number(values.windowU, 2) + "; Ud drzwi " + number(values.doorU, 2) + " W/(m²·K).";
      }
      function renderParts(model) {
        var holder = byId("est-breakdown");
        holder.textContent = "";
        var partLabels = {
          wall: "Ściany netto", roof: "Strop lub dach — model", floor: "Podłoga — model uproszczony",
          window: "Okna", door: "Drzwi zewnętrzne", bridges: "Mostki — wpisane H", air: "Wymiana powietrza"
        };
        Object.keys(model.components).forEach(function (key) {
          var value = model.components[key];
          var percent = value / model.total * 100;
          var row = document.createElement("div");
          row.className = "rk-ozc-est-part";
          var line = document.createElement("div");
          line.className = "rk-ozc-est-part-line";
          var label = document.createElement("span");
          label.textContent = partLabels[key];
          var result = document.createElement("strong");
          result.textContent = number(value, 0) + " W · " + number(percent, 1) + "%";
          line.appendChild(label); line.appendChild(result);
          var track = document.createElement("div");
          track.className = "rk-ozc-est-track";
          track.setAttribute("aria-hidden", "true");
          var bar = document.createElement("span");
          bar.setAttribute("style", "width:" + percent.toFixed(3) + "%");
          track.appendChild(bar); row.appendChild(line); row.appendChild(track);
          holder.appendChild(row);
        });
      }
      function showErrors(errorKeys) {
        var ul = byId("est-error-list");
        ul.textContent = "";
        var seen = {};
        errorKeys.forEach(function (key) {
          if (seen[key]) { return; }
          seen[key] = true;
          var item = document.createElement("li");
          if (key === "openings") {
            item.textContent = "Suma okien i drzwi musi być mniejsza od obliczonej powierzchni ścian bryły. Sprawdź powierzchnie i liczbę kondygnacji.";
            byId("est-windows").setAttribute("aria-invalid", "true");
            byId("est-doors").setAttribute("aria-invalid", "true");
          } else {
            var label = labels[key] || key;
            var field = byId("est-" + key);
            var range = "";
            if (field) {
              field.setAttribute("aria-invalid", "true");
              if (field.getAttribute("data-min") !== null) {
                range = " Dopuszczony zakres modelu: " + field.getAttribute("data-min").replace(".", ",") + " do " + field.getAttribute("data-max").replace(".", ",") + ".";
              }
            }
            item.textContent = label + ": wpisz poprawną wartość." + range;
          }
          ul.appendChild(item);
        });
        errorsBox.hidden = false;
        results.hidden = true;
        clearNumbers();
      }
      function calculate() {
        keys.forEach(function (key) { byId("est-" + key).removeAttribute("aria-invalid"); });
        var mechanical = byId("est-ventilation").value === "mechanical";
        byId("est-mechanical").hidden = !mechanical;
        byId("est-recovery").disabled = !mechanical;
        byId("est-infiltration").disabled = !mechanical;
        var input = {};
        keys.forEach(function (key) {
          if (key === "preset") { return; }
          if (key === "compare") { return; }
          if (key === "ventilation") { input.ventilation = byId("est-ventilation").value; return; }
          if (!mechanical) {
            if (key === "recovery") { input.recovery = 0; return; }
            if (key === "infiltration") { input.infiltration = 0; return; }
          }
          input[key] = readNumber(key);
        });
        var compareKey = byId("est-compare").value;
        var compare = calculatorConfig.presets[compareKey];
        if (compare) { input.compare = { label: compare.label, values: compare }; }
        var model = computeHeatLoad(input);
        if (!model.ok) { showErrors(model.errors); return false; }
        errorsBox.hidden = true;
        setText("est-total", number(model.total / 1000, 1) + " kW");
        setText("est-indicator", number(model.indicator, 1) + " W/m²");
        setText("est-delta", number(model.delta, 1) + " K");
        setText("est-announcement", "Wynik uproszczonego modelu: " + number(model.total / 1000, 1) + " kW dla " + number(input.area, 0) + " m². Obliczenia wykorzystują aktualnie wpisane parametry, a nie uniwersalny przelicznik mocy na metraż.");
        renderParts(model);
        var geometry = model.geometry;
        setText("est-geometry", "Rzut jednej kondygnacji: " + number(geometry.footprint, 1) + " m² (" + number(geometry.length, 1) + " × " + number(geometry.width, 1) + " m). Obwód: " + number(geometry.perimeter, 1) + " m. Ściany brutto: " + number(geometry.wallGross, 1) + " m², netto po odjęciu okien i drzwi: " + number(geometry.wallNet, 1) + " m². Kubatura: " + number(geometry.volume, 1) + " m³. Górna przegroda i podłoga: po " + number(geometry.footprint, 1) + " m².");
        setText("est-air-summary", "Efektywny napływ powietrza w modelu: " + number(model.effectiveFlow, 1) + " m³/h. " + (mechanical ? "Mechaniczna: " + number(input.flow, 1) + " × (1 − " + number(input.recovery / 100, 2) + ") + " + number(input.infiltration, 2) + " × " + number(geometry.volume, 1) + "." : "To wpisany łączny strumień; osobna infiltracja nie została doliczona."));
        setText("est-envelope-summary", valuesText(input) + " Dla podłogi przyjęto b = " + number(input.groundB, 2) + "; H mostków = " + number(input.bridges, 1) + " W/K.");
        var compBox = byId("est-comparison");
        if (model.comparison) {
          compBox.hidden = false;
          var c = model.comparison;
          setText("est-base-total", number(model.total / 1000, 1) + " kW");
          setText("est-base-values", valuesText(input));
          setText("est-compare-label", c.label + " — tylko zmiana U");
          setText("est-compare-total", number(c.total / 1000, 1) + " kW");
          setText("est-compare-values", valuesText(c.values));
          var low = Math.min(model.total, c.total) / 1000;
          var high = Math.max(model.total, c.total) / 1000;
          setText("est-compare-summary", "Dla tych dwóch wariantów przegród wyniki wynoszą od " + number(low, 1) + " do " + number(high, 1) + " kW. Różnica to " + number(Math.abs(model.total - c.total) / 1000, 1) + " kW. Pozostałe dane są identyczne.");
        } else {
          compBox.hidden = true;
          setText("est-compare-summary", "");
          setText("est-compare-total", "—");
        }
        var notes = byId("est-notes");
        notes.textContent = "";
        model.warnings.forEach(function (text) {
          var item = document.createElement("li"); item.textContent = text; notes.appendChild(item);
        });
        results.hidden = false;
        return true;
      }
      function handleChange(event) {
        var id = event.target.getAttribute("id") || "";
        var key = id.replace("rk-ozc-est-", "");
        if (key === "preset") {
          if (byId("est-preset").value === "custom") { byId("est-u-details").open = true; }
          else { setPreset(byId("est-preset").value); }
        }
        if (uKeys.indexOf(key) !== -1) { byId("est-preset").value = "custom"; }
        calculate();
      }
      form.addEventListener("input", handleChange);
      form.addEventListener("change", handleChange);
      form.addEventListener("submit", function (event) {
        event.preventDefault();
        if (calculate()) { byId("est-result-title").focus(); }
        else { errorsBox.focus(); }
      });
      byId("est-reset").addEventListener("click", function () {
        keys.forEach(function (key) { putValue(key, defaults[key]); });
        byId("est-u-details").open = false;
        calculate();
        byId("est-area").focus();
      });
      form.setAttribute("data-rk-ready", "true");
      form.hidden = false;
      calculate();
    }


    initReader();
    initCalculator();
  }
  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", init, { once: true });
  } else {
    init();
  }
}());

</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">Projektowe Obciążenie Cieplne (OZC).</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego z pompą ciepła – obliczenia, rozstaw rur i hydraulika</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 08 Feb 2026 09:42:12 +0000</pubDate>
				<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie niskotemperaturowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[budownictwo nowoczesne]]></category>
		<category><![CDATA[chłodzenie płaszczyznowe]]></category>
		<category><![CDATA[cop]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[hydraulika]]></category>
		<category><![CDATA[instalacje hvac]]></category>
		<category><![CDATA[jastrych anhydrytowy]]></category>
		<category><![CDATA[koszty ogrzewania]]></category>
		<category><![CDATA[niskie parametry zasilania]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3414</guid>

					<description><![CDATA[<p>Wybór systemu grzewczego to jedna z najważniejszych decyzji podczas budowy nowoczesnego domu. Samo urządzenie to jednak tylko połowa sukcesu. Aby instalacja była naprawdę energooszczędna, niezbędny jest rzetelny i precyzyjnie wykonany projekt ogrzewania podłogowego z pompą ciepła, który połączy fizykę budowli z charakterystyką pracy inwertera. W tym artykule wchodzimy głęboko w techniczne aspekty synergii systemów niskotemperaturowych. Analizujemy wpływ temperatury zasilania na współczynnik COP, wyjaśniamy znaczenie bezwładności jastrychu dla żywotności sprężarki oraz podpowiadamy, jak uniknąć błędów hydraulicznych, które mogą drastycznie podnieść Twoje rachunki za prąd. To obowiązkowa lektura dla każdego świadomego inwestora.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła – obliczenia, rozstaw rur i hydraulika</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-heat-guide {
    --rk-dark: #102536;
    --rk-navy: #15384d;
    --rk-blue: #078fbe;
    --rk-cyan: #25c7d8;
    --rk-cyan-soft: #e9fbfe;
    --rk-orange: #ff6a3d;
    --rk-orange-soft: #fff1eb;
    --rk-green: #16836b;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #d69a16;
    --rk-yellow-soft: #fff8df;
    --rk-red: #d94b3d;
    --rk-red-soft: #fff0ee;
    --rk-purple: #695ac9;
    --rk-purple-soft: #f1efff;
    --rk-ink: #1f2c37;
    --rk-text: #475967;
    --rk-muted: #6b7e8a;
    --rk-line: #d5e4eb;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    width: 100%;
    max-width: 1180px;
    margin: 34px auto 72px;
    color: var(--rk-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.75;
  }
  #rk-heat-guide,
  #rk-heat-guide * { box-sizing: border-box; }
  #rk-heat-guide img,
  #rk-heat-guide svg { max-width: 100%; }
  #rk-heat-guide button,
  #rk-heat-guide input,
  #rk-heat-guide select,
  #rk-heat-guide label,
  #rk-heat-guide summary,
  #rk-heat-guide a { font: inherit; -webkit-tap-highlight-color: transparent; }
  #rk-heat-guide a {
    color: var(--rk-blue);
    font-weight: 780;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  #rk-heat-guide a:hover,
  #rk-heat-guide a:focus-visible { color: var(--rk-red); }
  #rk-heat-guide p,
  #rk-heat-guide ul,
  #rk-heat-guide ol { margin-top: 0; margin-bottom: 1.08em; }
  #rk-heat-guide h2,
  #rk-heat-guide h3,
  #rk-heat-guide h4 {
    margin-top: 0;
    color: var(--rk-dark);
    font-weight: 920;
    letter-spacing: -.035em;
    line-height: 1.15;
  }
  #rk-heat-guide h2 { margin-bottom: 18px; font-size: clamp(1.72rem, 4vw, 2.68rem); }
  #rk-heat-guide h3 { margin-bottom: 11px; font-size: clamp(1.12rem, 2.35vw, 1.46rem); }
  #rk-heat-guide h4 { margin-bottom: 8px; font-size: 1.02rem; }
  #rk-heat-guide strong { color: var(--rk-dark); }
  #rk-heat-guide [hidden] { display: none !important; }

  #rk-heat-guide .rk-heat-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    background: var(--rk-white);
    box-shadow: 0 24px 70px rgba(16, 37, 54, .11);
  }
  #rk-heat-guide .rk-heat-hero {
    position: relative;
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 91% 4%, rgba(37, 199, 216, .31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(255, 106, 61, .24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }
  #rk-heat-guide .rk-heat-hero::after {
    position: absolute;
    right: -55px;
    bottom: -120px;
    width: 350px;
    height: 350px;
    border: 46px solid rgba(255, 255, 255, .05);
    border-radius: 50%;
    content: "";
  }
  #rk-heat-guide .rk-heat-kicker {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 15px;
    color: #78efff;
    font-size: .69rem;
    font-weight: 950;
    letter-spacing: .09em;
    line-height: 1.2;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-kicker::before {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 6px rgba(255, 106, 61, .14);
    content: "";
  }
  #rk-heat-guide .rk-heat-hero-title {
    position: relative;
    z-index: 1;
    max-width: 980px;
    margin: 0 0 19px;
    color: var(--rk-white);
    font-size: clamp(2.05rem, 5.4vw, 4.35rem);
    font-weight: 950;
    letter-spacing: -.055em;
    line-height: 1.01;
  }
  #rk-heat-guide .rk-heat-hero-title span { color: #78efff; }
  #rk-heat-guide .rk-heat-lead {
    position: relative;
    z-index: 1;
    max-width: 920px;
    margin-bottom: 25px;
    color: #d5e9f1;
    font-size: clamp(1rem, 2.15vw, 1.24rem);
    line-height: 1.65;
  }
  #rk-heat-guide .rk-heat-hero-tags,
  #rk-heat-guide .rk-heat-byline {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }
  #rk-heat-guide .rk-heat-hero-tags { margin-bottom: 22px; }
  #rk-heat-guide .rk-heat-hero-tag {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    color: #e8f7fb;
    background: rgba(255, 255, 255, .07);
    font-size: .68rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-byline {
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    color: #bdd6df;
    font-size: .68rem;
  }
  #rk-heat-guide .rk-heat-byline strong { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-hero-metrics {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 27px;
  }
  #rk-heat-guide .rk-heat-hero-metric {
    padding: 16px 17px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 15px;
    background: rgba(7, 27, 40, .34);
  }
  #rk-heat-guide .rk-heat-hero-metric b {
    display: block;
    margin-bottom: 4px;
    color: #78efff;
    font-size: .78rem;
  }
  #rk-heat-guide .rk-heat-hero-metric span {
    display: block;
    color: #d5e9f1;
    font-size: .68rem;
    line-height: 1.5;
  }

  #rk-heat-guide .rk-heat-nav {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 18px clamp(20px, 4vw, 46px);
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-nav-label {
    padding-top: 8px;
    color: var(--rk-dark);
    font-size: .62rem;
    font-weight: 950;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  #rk-heat-guide .rk-heat-nav-track {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
  }
  #rk-heat-guide .rk-heat-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 12px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: #f0f6f8;
    font-size: .64rem;
    font-weight: 900;
    line-height: 1.2;
    text-decoration: none;
  }
  #rk-heat-guide .rk-heat-nav a:hover,
  #rk-heat-guide .rk-heat-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
  }

  #rk-heat-guide .rk-heat-content { padding: 0 clamp(20px, 5.4vw, 64px) 64px; }
  #rk-heat-guide .rk-heat-section {
    padding: clamp(42px, 7vw, 76px) 0;
    border-bottom: 1px solid var(--rk-line);
    scroll-margin-top: 18px;
  }
  #rk-heat-guide .rk-heat-section:last-of-type { border-bottom: 0; }
  #rk-heat-guide .rk-heat-eyebrow {
    display: block;
    margin-bottom: 10px;
    color: var(--rk-blue);
    font-size: .68rem;
    font-weight: 950;
    letter-spacing: .075em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-intro {
    max-width: 940px;
    color: var(--rk-text);
    font-size: 1.08rem;
  }
  #rk-heat-guide .rk-heat-answer,
  #rk-heat-guide .rk-heat-note,
  #rk-heat-guide .rk-heat-warning,
  #rk-heat-guide .rk-heat-success {
    margin: 25px 0;
    padding: 22px 23px;
    border-radius: 16px;
  }
  #rk-heat-guide .rk-heat-answer {
    border-left: 5px solid var(--rk-cyan);
    background: var(--rk-cyan-soft);
  }
  #rk-heat-guide .rk-heat-note {
    border-left: 5px solid var(--rk-blue);
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-warning {
    border-left: 5px solid var(--rk-orange);
    background: var(--rk-orange-soft);
  }
  #rk-heat-guide .rk-heat-success {
    border-left: 5px solid var(--rk-green);
    background: var(--rk-green-soft);
  }
  #rk-heat-guide .rk-heat-answer p:last-child,
  #rk-heat-guide .rk-heat-note p:last-child,
  #rk-heat-guide .rk-heat-warning p:last-child,
  #rk-heat-guide .rk-heat-success p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-grid-2,
  #rk-heat-guide .rk-heat-grid-3,
  #rk-heat-guide .rk-heat-grid-4 {
    display: grid;
    gap: 15px;
    margin: 25px 0;
  }
  #rk-heat-guide .rk-heat-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  #rk-heat-guide .rk-heat-card {
    padding: 22px;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    background: var(--rk-white);
    box-shadow: 0 10px 30px rgba(16, 37, 54, .055);
  }
  #rk-heat-guide .rk-heat-card p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-card-icon,
  #rk-heat-guide .rk-heat-number {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin-bottom: 14px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: .82rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-card.is-orange .rk-heat-card-icon { background: var(--rk-orange); }
  #rk-heat-guide .rk-heat-card.is-green .rk-heat-card-icon { background: var(--rk-green); }
  #rk-heat-guide .rk-heat-card.is-purple .rk-heat-card-icon { background: var(--rk-purple); }
  #rk-heat-guide .rk-heat-formula {
    margin: 25px 0;
    padding: 24px;
    border: 1px solid #b9e4ec;
    border-radius: 17px;
    text-align: center;
    background: linear-gradient(135deg, #f7fdff, #ecfafc);
  }
  #rk-heat-guide .rk-heat-formula strong {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.25rem, 3vw, 1.8rem);
  }
  #rk-heat-guide .rk-heat-formula span { color: var(--rk-muted); font-size: .78rem; }
  #rk-heat-guide .rk-heat-list {
    display: grid;
    gap: 10px;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-list li {
    position: relative;
    margin: 0;
    padding: 12px 14px 12px 43px;
    border: 1px solid var(--rk-line);
    border-radius: 12px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-list li::before {
    position: absolute;
    top: 13px;
    left: 14px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-green);
    content: "✓";
    font-size: .62rem;
    font-weight: 950;
  }

  #rk-heat-guide .rk-heat-table-wrap {
    overflow: hidden;
    margin: 24px 0;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
  }
  #rk-heat-guide table {
    width: 100%;
    border-collapse: collapse;
    color: var(--rk-text);
    font-size: .82rem;
  }
  #rk-heat-guide th,
  #rk-heat-guide td {
    padding: 15px 16px;
    border-right: 1px solid var(--rk-line);
    border-bottom: 1px solid var(--rk-line);
    vertical-align: top;
    text-align: left;
  }
  #rk-heat-guide th:last-child,
  #rk-heat-guide td:last-child { border-right: 0; }
  #rk-heat-guide tr:last-child td { border-bottom: 0; }
  #rk-heat-guide th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .025em;
  }

  #rk-heat-guide .rk-heat-tool {
    overflow: hidden;
    margin: 29px 0;
    border-radius: 22px;
    color: #e7f4f8;
    background: var(--rk-dark);
    box-shadow: 0 20px 55px rgba(16, 37, 54, .2);
  }
  #rk-heat-guide .rk-heat-tool-head {
    padding: clamp(25px, 5vw, 42px);
    background:
      radial-gradient(circle at 90% 0, rgba(37, 199, 216, .2), transparent 32%),
      linear-gradient(135deg, #15384d, #173344);
  }
  #rk-heat-guide .rk-heat-tool-head h3 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: clamp(1.45rem, 3.8vw, 2.45rem);
  }
  #rk-heat-guide .rk-heat-tool-head p { margin-bottom: 0; color: #c9e0e8; }
  #rk-heat-guide .rk-heat-tool-body { padding: clamp(20px, 4vw, 34px); }
  #rk-heat-guide .rk-heat-step {
    margin-bottom: 23px;
    padding: 22px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 17px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-step:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-step-title {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-step-title b {
    display: grid;
    flex: 0 0 36px;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-step-title h4 { margin: 0; color: var(--rk-white); font-size: 1.16rem; }
  #rk-heat-guide .rk-heat-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
  }
  #rk-heat-guide .rk-heat-candidates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  #rk-heat-guide .rk-heat-candidate {
    min-width: 0;
    padding: 20px;
    border: 1px solid rgba(37, 199, 216, .32);
    border-radius: 16px;
    background: rgba(10, 34, 48, .56);
  }
  #rk-heat-guide .rk-heat-candidate.is-b { border-color: rgba(255, 106, 61, .38); }
  #rk-heat-guide .rk-heat-candidate h4 {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-candidate-legend {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 0 7px;
    color: var(--rk-white);
    font-size: 1.02rem;
    font-weight: 920;
  }
  #rk-heat-guide .rk-heat-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--rk-cyan);
    box-shadow: 0 0 0 5px rgba(37, 199, 216, .12);
  }
  #rk-heat-guide .rk-heat-candidate.is-b .rk-heat-dot {
    background: var(--rk-orange);
    box-shadow: 0 0 0 5px rgba(255, 106, 61, .12);
  }
  #rk-heat-guide .rk-heat-candidate-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-field { min-width: 0; }
  #rk-heat-guide .rk-heat-field.is-wide { grid-column: 1 / -1; }
  #rk-heat-guide .rk-heat-field label {
    display: block;
    margin-bottom: 5px;
    color: #dff3f8;
    font-size: .67rem;
    font-weight: 850;
    line-height: 1.35;
  }
  #rk-heat-guide .rk-heat-field input,
  #rk-heat-guide .rk-heat-field select {
    width: 100%;
    min-height: 45px;
    padding: 10px 12px;
    border: 1px solid #b8cbd3;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .77rem;
    font-weight: 700;
  }
  #rk-heat-guide .rk-heat-field small {
    display: block;
    margin-top: 5px;
    color: #8fb6c5;
    font-size: .59rem;
    line-height: 1.42;
  }
  #rk-heat-guide .rk-heat-field input:focus,
  #rk-heat-guide .rk-heat-field select:focus {
    outline: 3px solid rgba(37, 199, 216, .25);
    border-color: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-tool-button {
    width: 100%;
    margin-top: 18px;
    padding: 14px 18px;
    border: 0;
    border-radius: 12px;
    color: var(--rk-dark);
    background: linear-gradient(135deg, #61e7f3, #25c7d8);
    cursor: pointer;
    font-size: .84rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-tool-button:hover,
  #rk-heat-guide .rk-heat-tool-button:focus-visible { filter: brightness(1.06); }
  #rk-heat-guide .rk-heat-result-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-result-head h4 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-result-head p { margin-bottom: 0; color: #bcd7e1; font-size: .74rem; }
  #rk-heat-guide .rk-heat-result-badge {
    display: inline-flex;
    padding: 8px 11px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .62rem;
    font-weight: 950;
    white-space: nowrap;
  }
  #rk-heat-guide .rk-heat-result-badge.is-warning { color: #4f3300; background: #ffd568; }
  #rk-heat-guide .rk-heat-result-badge.is-bad { color: #59150f; background: #ff9f91; }
  #rk-heat-guide .rk-heat-result-badge.is-neutral { color: #29205d; background: #c8c1ff; }
  #rk-heat-guide .rk-heat-result-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
  }
  #rk-heat-guide .rk-heat-result-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 15px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-result-card h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin: 15px 0;
  }
  #rk-heat-guide .rk-heat-metric {
    padding: 12px;
    border-radius: 11px;
    background: rgba(255, 255, 255, .06);
  }
  #rk-heat-guide .rk-heat-metric span {
    display: block;
    color: #93bac7;
    font-size: .56rem;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-metric strong {
    display: block;
    margin-top: 3px;
    color: var(--rk-white);
    font-size: .96rem;
  }
  #rk-heat-guide .rk-heat-bar {
    position: relative;
    overflow: hidden;
    height: 15px;
    margin: 10px 0 7px;
    border-radius: 999px;
    background: #264b5e;
  }
  #rk-heat-guide .rk-heat-bar span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), #66e5ef);
    transition: width .3s ease;
  }
  #rk-heat-guide .rk-heat-result-card.is-b .rk-heat-bar span {
    background: linear-gradient(90deg, var(--rk-orange), #ff9b78);
  }
  #rk-heat-guide .rk-heat-layer-stack {
    display: grid;
    gap: 6px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-layer {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: #dff8fb;
    font-size: .65rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-layer.is-install { background: #ffe0d4; }
  #rk-heat-guide .rk-heat-layer.is-screed { color: #eef8fb; background: #466575; }
  #rk-heat-guide .rk-heat-diagnostics {
    display: grid;
    gap: 8px;
    margin-top: 14px;
  }
  #rk-heat-guide .rk-heat-diagnostic {
    padding: 10px 12px;
    border-left: 4px solid var(--rk-yellow);
    border-radius: 8px;
    color: #f5e9c5;
    background: rgba(214, 154, 22, .12);
    font-size: .67rem;
    line-height: 1.48;
  }
  #rk-heat-guide .rk-heat-diagnostic.is-good {
    border-color: #4cd7ac;
    color: #d8fff1;
    background: rgba(22, 131, 107, .16);
  }
  #rk-heat-guide .rk-heat-diagnostic.is-bad {
    border-color: #ff786b;
    color: #ffe1dc;
    background: rgba(217, 75, 61, .15);
  }
  #rk-heat-guide .rk-heat-questions {
    margin: 14px 0 0;
    padding-left: 19px;
    color: #d9eaf0;
    font-size: .68rem;
  }
  #rk-heat-guide .rk-heat-questions li { margin-bottom: 6px; }

  #rk-heat-guide .rk-heat-chart-card {
    margin-top: 16px;
    padding: 20px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 16px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-chart-head {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: start;
    margin-bottom: 13px;
  }
  #rk-heat-guide .rk-heat-chart-head h4 { margin-bottom: 5px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-chart-head p { margin: 0; color: #bcd7e1; font-size: .68rem; }
  #rk-heat-guide .rk-heat-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    justify-content: flex-end;
    color: #d9eaf0;
    font-size: .62rem;
    font-weight: 800;
  }
  #rk-heat-guide .rk-heat-chart-key {
    display: inline-flex;
    align-items: center;
    gap: 6px;
  }
  #rk-heat-guide .rk-heat-chart-key::before {
    width: 18px;
    height: 4px;
    border-radius: 999px;
    background: var(--rk-cyan);
    content: "";
  }
  #rk-heat-guide .rk-heat-chart-key.is-b::before { background: var(--rk-orange); }
  #rk-heat-guide .rk-heat-chart-key.is-demand::before {
    height: 2px;
    background: #ffd568;
  }
  #rk-heat-guide .rk-heat-chart-wrap {
    overflow: hidden;
    width: 100%;
    min-height: 350px;
    border-radius: 13px;
    background: #f8fcfd;
  }
  #rk-heat-guide .rk-heat-chart-wrap canvas {
    display: block;
    width: 100%;
    height: 350px;
  }
  #rk-heat-guide .rk-heat-chart-summary {
    margin: 11px 0 0;
    color: #a9c8d3;
    font-size: .63rem;
    line-height: 1.55;
  }
  #rk-heat-guide .rk-heat-result-status {
    display: inline-flex;
    margin-top: 8px;
    padding: 7px 10px;
    border-radius: 999px;
    color: #d8fff1;
    background: rgba(22, 131, 107, .22);
    font-size: .61rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-result-status.is-warning {
    color: #fff2c9;
    background: rgba(214, 154, 22, .22);
  }
  #rk-heat-guide .rk-heat-result-status.is-bad {
    color: #ffe1dc;
    background: rgba(217, 75, 61, .22);
  }
  #rk-heat-guide .rk-heat-stack-scale {
    display: grid;
    gap: 6px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-stack-segment {
    position: relative;
    overflow: hidden;
    min-height: 34px;
    padding: 8px 11px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: #dff8fb;
    font-size: .63rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-heat-stack-segment.is-install { background: #ffe0d4; }
  #rk-heat-guide .rk-heat-stack-segment.is-extra { background: #e9e5ff; }
  #rk-heat-guide .rk-heat-stack-segment span { float: right; }
  #rk-heat-guide .rk-heat-data-note {
    margin-top: 12px;
    padding: 11px 13px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 9px;
    color: #d8eef4;
    background: rgba(37, 199, 216, .08);
    font-size: .64rem;
  }

  #rk-heat-guide .rk-heat-question-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-question {
    min-width: 0;
    padding: 16px;
    border: 1px solid rgba(136, 202, 220, .24);
    border-radius: 13px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-question.is-critical {
    border-left: 4px solid var(--rk-orange);
  }
  #rk-heat-guide .rk-heat-question label {
    display: block;
    min-height: 45px;
    margin-bottom: 8px;
    color: #dff3f8;
    font-size: .68rem;
    font-weight: 850;
    line-height: 1.45;
  }
  #rk-heat-guide .rk-heat-question select {
    width: 100%;
    min-height: 45px;
    padding: 10px 12px;
    border: 1px solid #b8cbd3;
    border-radius: 10px;
    color: var(--rk-dark);
    background: var(--rk-white);
    font-size: .76rem;
    font-weight: 700;
  }
  #rk-heat-guide .rk-heat-question select:focus {
    outline: 3px solid rgba(37, 199, 216, .25);
    border-color: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-critical-note {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-left: 4px solid var(--rk-orange);
    border-radius: 10px;
    color: var(--rk-text);
    background: rgba(255, 106, 61, .1);
    font-size: .65rem;
  }
  #rk-heat-guide .rk-heat-stage-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
    margin-top: 15px;
  }
  #rk-heat-guide .rk-heat-stage-card {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 13px;
    background: rgba(255, 255, 255, .04);
  }
  #rk-heat-guide .rk-heat-stage-card.is-ready { border-color: rgba(76, 215, 172, .46); }
  #rk-heat-guide .rk-heat-stage-card.is-warning { border-color: rgba(255, 213, 104, .55); }
  #rk-heat-guide .rk-heat-stage-card.is-blocked { border-color: rgba(255, 120, 107, .58); }
  #rk-heat-guide .rk-heat-stage-number {
    display: inline-grid;
    place-items: center;
    width: 31px;
    height: 31px;
    margin-bottom: 10px;
    border-radius: 9px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .67rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-stage-card.is-warning .rk-heat-stage-number { background: #ffd568; }
  #rk-heat-guide .rk-heat-stage-card.is-blocked .rk-heat-stage-number { background: #ff9f91; }
  #rk-heat-guide .rk-heat-stage-card h4 { margin-bottom: 6px; color: var(--rk-white); font-size: .84rem; }
  #rk-heat-guide .rk-heat-stage-card p { margin-bottom: 10px; color: #bcd7e1; font-size: .64rem; line-height: 1.5; }
  #rk-heat-guide .rk-heat-stage-status {
    display: inline-flex;
    padding: 6px 9px;
    border-radius: 999px;
    color: #d8fff1;
    background: rgba(22, 131, 107, .24);
    font-size: .57rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-stage-card.is-warning .rk-heat-stage-status {
    color: #fff2c9;
    background: rgba(214, 154, 22, .22);
  }
  #rk-heat-guide .rk-heat-stage-card.is-blocked .rk-heat-stage-status {
    color: #ffe1dc;
    background: rgba(217, 75, 61, .24);
  }
  #rk-heat-guide .rk-heat-output-stack {
    display: grid;
    gap: 12px;
    margin-top: 16px;
  }
  #rk-heat-guide .rk-heat-output-card {
    padding: 17px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 14px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-output-card h4 { margin-bottom: 10px; color: var(--rk-white); }
  #rk-heat-guide .rk-heat-output-card.is-warning { border-left: 4px solid #ffd568; }
  #rk-heat-guide .rk-heat-output-card.is-blocked { border-left: 4px solid #ff786b; }
  #rk-heat-guide .rk-heat-output-card.is-ready { border-left: 4px solid #4cd7ac; }
  #rk-heat-guide .rk-heat-output-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-output-list li {
    position: relative;
    margin: 0;
    padding: 10px 11px 10px 34px;
    border-radius: 9px;
    color: #d9eaf0;
    background: rgba(255, 255, 255, .045);
    font-size: .65rem;
    line-height: 1.45;
  }
  #rk-heat-guide .rk-heat-output-list li::before {
    position: absolute;
    top: 10px;
    left: 11px;
    color: var(--rk-cyan);
    content: "✓";
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-output-card.is-warning .rk-heat-output-list li::before { color: #ffd568; content: "!"; }
  #rk-heat-guide .rk-heat-output-card.is-blocked .rk-heat-output-list li::before { color: #ff8b7f; content: "×"; }
  #rk-heat-guide .rk-heat-empty-result {
    margin: 0;
    color: #a9c8d3;
    font-size: .66rem;
  }

  #rk-heat-guide .rk-heat-sales-cta {
    margin: 36px 0;
    padding: clamp(25px, 5vw, 42px);
    border-radius: 20px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 90% 0, rgba(37, 199, 216, .22), transparent 30%),
      linear-gradient(135deg, #102536, #17445a);
  }
  #rk-heat-guide .rk-heat-sales-cta h3 { color: var(--rk-white); font-size: clamp(1.35rem, 3vw, 2rem); }
  #rk-heat-guide .rk-heat-sales-cta p { max-width: 920px; color: #d0e4eb; }
  #rk-heat-guide .rk-heat-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 13px 20px;
    border-radius: 12px;
    color: var(--rk-dark) !important;
    background: linear-gradient(135deg, #63e6f1, #28c9d9);
    font-size: .79rem;
    font-weight: 950 !important;
    text-decoration: none !important;
  }
  #rk-heat-guide .rk-heat-cta-button:hover,
  #rk-heat-guide .rk-heat-cta-button:focus-visible { filter: brightness(1.07); }

  #rk-heat-guide .rk-heat-checklist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-checklist li {
    position: relative;
    margin: 0;
    padding: 14px 14px 14px 45px;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-checklist li::before {
    position: absolute;
    top: 14px;
    left: 14px;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border: 2px solid var(--rk-cyan);
    border-radius: 7px;
    color: var(--rk-blue);
    content: "✓";
    font-size: .65rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-heat-faq {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }
  #rk-heat-guide .rk-heat-faq details {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-faq summary {
    position: relative;
    padding: 17px 48px 17px 18px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 880;
    list-style: none;
  }
  #rk-heat-guide .rk-heat-faq summary::-webkit-details-marker { display: none; }
  #rk-heat-guide .rk-heat-faq summary::after {
    position: absolute;
    top: 15px;
    right: 16px;
    display: grid;
    place-items: center;
    width: 27px;
    height: 27px;
    border-radius: 8px;
    color: var(--rk-white);
    background: var(--rk-blue);
    content: "+";
  }
  #rk-heat-guide .rk-heat-faq details[open] summary::after { content: "−"; }
  #rk-heat-guide .rk-heat-faq-answer {
    padding: 0 18px 17px;
    color: var(--rk-text);
  }
  #rk-heat-guide .rk-heat-faq-answer p:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-sources {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }
  #rk-heat-guide .rk-heat-source {
    padding: 18px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-source p { margin: 6px 0 0; color: var(--rk-muted); font-size: .77rem; }

  #rk-heat-guide .rk-heat-author {
    overflow: hidden;
    margin-top: 48px;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
    background: var(--rk-soft);
    scroll-margin-top: 18px;
  }
  #rk-heat-guide .rk-heat-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }
  #rk-heat-guide .rk-heat-author-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: end;
    padding: 28px 32px 22px;
    border-bottom: 1px solid var(--rk-line);
  }
  #rk-heat-guide .rk-heat-author-head h2 { margin-bottom: 6px; font-size: clamp(1.55rem, 3vw, 2.2rem); }
  #rk-heat-guide .rk-heat-author-head p { margin: 0; color: var(--rk-muted); }
  #rk-heat-guide .rk-heat-author-mark {
    max-width: 380px;
    color: var(--rk-blue);
    font-size: .61rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-align: right;
  }
  #rk-heat-guide .rk-heat-author-layout {
    display: grid;
    grid-template-columns: 255px minmax(0, 1fr);
  }
  #rk-heat-guide .rk-heat-author-side {
    padding: 30px 24px;
    color: var(--rk-white);
    text-align: center;
    background: var(--rk-dark);
  }
  #rk-heat-guide .rk-heat-author-photo {
    overflow: hidden;
    width: 145px;
    height: 145px;
    margin: 0 auto 18px;
    border: 6px solid rgba(255, 255, 255, .16);
    border-radius: 50%;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  #rk-heat-guide .rk-heat-author-name { margin-bottom: 5px; font-size: 1.08rem; font-weight: 950; }
  #rk-heat-guide .rk-heat-author-role { color: #bdd4de; font-size: .68rem; line-height: 1.55; }
  #rk-heat-guide .rk-heat-author-social-label {
    margin-top: 24px;
    color: #8ca8b5;
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }
  #rk-heat-guide .rk-heat-author-social a {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #507080;
    border-radius: 50%;
    color: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-social a:hover { border-color: var(--rk-cyan); color: var(--rk-cyan); }
  #rk-heat-guide .rk-heat-author-social svg { width: 18px; height: 18px; fill: currentColor; }
  #rk-heat-guide .rk-heat-author-main { padding: 30px 34px; }
  #rk-heat-guide .rk-heat-author-quote {
    position: relative;
    margin: 0 0 23px;
    padding: 22px 22px 22px 64px;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-heat-author-quote::before {
    position: absolute;
    top: 12px;
    left: 23px;
    color: var(--rk-cyan);
    content: "“";
    font-family: Georgia, serif;
    font-size: 3.7rem;
    font-weight: 900;
    line-height: 1;
  }
  #rk-heat-guide .rk-heat-author-quote p { margin: 0; color: var(--rk-dark); font-weight: 780; }
  #rk-heat-guide .rk-heat-author-tabs { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 20px; }
  #rk-heat-guide .rk-heat-author-tab {
    padding: 8px 13px;
    border-radius: 999px;
    color: var(--rk-muted);
    background: #e2edf1;
    cursor: pointer;
    font-size: .67rem;
    font-weight: 900;
  }
  #rk-heat-guide .rk-heat-author-panel { display: none; color: var(--rk-text); }
  #rk-heat-guide #rk-heat-author-about:checked ~ .rk-heat-author-layout .rk-heat-author-panel-about,
  #rk-heat-guide #rk-heat-author-exp:checked ~ .rk-heat-author-layout .rk-heat-author-panel-exp,
  #rk-heat-guide #rk-heat-author-method:checked ~ .rk-heat-author-layout .rk-heat-author-panel-method { display: block; }
  #rk-heat-guide #rk-heat-author-about:checked ~ .rk-heat-author-layout label[for="rk-heat-author-about"],
  #rk-heat-guide #rk-heat-author-exp:checked ~ .rk-heat-author-layout label[for="rk-heat-author-exp"],
  #rk-heat-guide #rk-heat-author-method:checked ~ .rk-heat-author-layout label[for="rk-heat-author-method"] {
    color: var(--rk-white);
    background: var(--rk-blue);
  }
  #rk-heat-guide .rk-heat-mini-label {
    margin: 21px 0 8px;
    color: var(--rk-muted);
    font-size: .58rem;
    font-weight: 950;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-portals { display: flex; flex-wrap: wrap; gap: 8px; }
  #rk-heat-guide .rk-heat-portals a {
    padding: 7px 11px;
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    background: var(--rk-white);
    font-size: .65rem;
    text-decoration: none;
  }

  @media (max-width: 900px) {
    #rk-heat-guide .rk-heat-hero-metrics,
    #rk-heat-guide .rk-heat-grid-3,
    #rk-heat-guide .rk-heat-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-author-layout { grid-template-columns: 225px minmax(0, 1fr); }
    #rk-heat-guide .rk-heat-stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 720px) {
    #rk-heat-guide { margin-top: 18px; font-size: 16px; }
    #rk-heat-guide .rk-heat-shell { border-radius: 18px; }
    #rk-heat-guide .rk-heat-nav { grid-template-columns: 1fr; gap: 5px; }
    #rk-heat-guide .rk-heat-nav-label { padding: 0 0 4px 2px; }
    #rk-heat-guide .rk-heat-nav-track { width: 100%; }
    #rk-heat-guide .rk-heat-candidates,
    #rk-heat-guide .rk-heat-result-grid,
    #rk-heat-guide .rk-heat-grid-2,
    #rk-heat-guide .rk-heat-checklist { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-result-head { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-chart-head { display: block; }
    #rk-heat-guide .rk-heat-chart-legend { justify-content: flex-start; margin-top: 10px; }
    #rk-heat-guide .rk-heat-author-head { display: block; }
    #rk-heat-guide .rk-heat-author-mark { margin-top: 12px; text-align: left; }
    #rk-heat-guide .rk-heat-author-layout { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-question-grid,
    #rk-heat-guide .rk-heat-stage-grid,
    #rk-heat-guide .rk-heat-output-list { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-table-wrap { overflow: visible; border: 0; }
    #rk-heat-guide table,
    #rk-heat-guide thead,
    #rk-heat-guide tbody,
    #rk-heat-guide tr,
    #rk-heat-guide th,
    #rk-heat-guide td { display: block; width: 100%; }
    #rk-heat-guide thead {
      position: absolute;
      overflow: hidden;
      width: 1px;
      height: 1px;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }
    #rk-heat-guide tr {
      overflow: hidden;
      margin-bottom: 13px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
    }
    #rk-heat-guide td {
      position: relative;
      padding: 39px 15px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }
    #rk-heat-guide td::before {
      position: absolute;
      top: 11px;
      left: 15px;
      color: var(--rk-blue);
      content: attr(data-label);
      font-size: .58rem;
      font-weight: 950;
      letter-spacing: .045em;
      text-transform: uppercase;
    }
  }
  @media (max-width: 500px) {
    #rk-heat-guide .rk-heat-hero { padding-left: 21px; padding-right: 21px; }
    #rk-heat-guide .rk-heat-hero-metrics,
    #rk-heat-guide .rk-heat-grid-3,
    #rk-heat-guide .rk-heat-grid-4,
    #rk-heat-guide .rk-heat-fields,
    #rk-heat-guide .rk-heat-candidate-fields,
    #rk-heat-guide .rk-heat-metrics { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-content { padding-left: 16px; padding-right: 16px; }
    #rk-heat-guide .rk-heat-nav { padding-left: 15px; padding-right: 15px; }
    #rk-heat-guide .rk-heat-nav a { font-size: .61rem; }
    #rk-heat-guide .rk-heat-author-main { padding: 24px 18px; }
    #rk-heat-guide .rk-heat-author-quote { padding-left: 58px; }
    #rk-heat-guide .rk-heat-chart-wrap,
    #rk-heat-guide .rk-heat-chart-wrap canvas { min-height: 300px; height: 300px; }
  }
  @media (prefers-reduced-motion: reduce) {
    #rk-heat-guide *,
    #rk-heat-guide *::before,
    #rk-heat-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }

  /* Laboratorium jednego pomieszczenia: pełna szerokość i układ sekwencyjny. */
  #rk-heat-guide .rk-heat-lab-group {
    margin-bottom: 17px;
    padding: 19px;
    border: 1px solid rgba(136, 202, 220, .24);
    border-radius: 15px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-heat-lab-group:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-heat-lab-group h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-heat-lab-group > p { color: #bcd7e1; font-size: .7rem; }
  #rk-heat-guide .rk-heat-lab-fields {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }
  #rk-heat-guide .rk-heat-result-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-heat-result-tile {
    min-width: 0;
    padding: 14px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 12px;
    background: rgba(255, 255, 255, .055);
  }
  #rk-heat-guide .rk-heat-result-tile span {
    display: block;
    color: #96bdca;
    font-size: .56rem;
    font-weight: 900;
    letter-spacing: .035em;
    text-transform: uppercase;
  }
  #rk-heat-guide .rk-heat-result-tile strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-white);
    font-size: 1.12rem;
    line-height: 1.22;
  }
  #rk-heat-guide .rk-heat-chart-list {
    display: grid;
    gap: 11px;
    margin: 18px 0 0;
  }
  #rk-heat-guide .rk-heat-chart-row {
    display: grid;
    grid-template-columns: minmax(110px, 1.05fr) minmax(170px, 3fr) minmax(92px, .85fr);
    gap: 11px;
    align-items: center;
  }
  #rk-heat-guide .rk-heat-chart-label { color: #d8edf3; font-size: .66rem; font-weight: 850; }
  #rk-heat-guide .rk-heat-chart-track {
    overflow: hidden;
    height: 16px;
    border-radius: 999px;
    background: #27495a;
  }
  #rk-heat-guide .rk-heat-chart-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), #64e4ef);
    transition: width .28s ease;
  }
  #rk-heat-guide .rk-heat-chart-row:nth-child(2) .rk-heat-chart-fill { background: linear-gradient(90deg, #ff6a3d, #ff9b76); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(3) .rk-heat-chart-fill { background: linear-gradient(90deg, #16836b, #43c69f); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(4) .rk-heat-chart-fill { background: linear-gradient(90deg, #695ac9, #9c8ff3); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(5) .rk-heat-chart-fill { background: linear-gradient(90deg, #d69a16, #ffd062); }
  #rk-heat-guide .rk-heat-chart-row:nth-child(6) .rk-heat-chart-fill { background: linear-gradient(90deg, #078fbe, #43caef); }
  #rk-heat-guide .rk-heat-chart-value { color: var(--rk-white); font-size: .66rem; font-weight: 900; text-align: right; }
  #rk-heat-guide .rk-heat-formula-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 19px 0 13px;
  }
  #rk-heat-guide .rk-heat-formula-tab {
    padding: 8px 11px;
    border: 1px solid rgba(136, 202, 220, .31);
    border-radius: 999px;
    color: #d9edf3;
    background: rgba(255, 255, 255, .045);
    cursor: pointer;
    font-size: .63rem;
    font-weight: 900;
  }
  #rk-heat-guide .rk-heat-formula-tab[aria-pressed="true"] {
    border-color: var(--rk-cyan);
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-heat-guide .rk-heat-live-formula {
    padding: 18px;
    border: 1px solid rgba(37, 199, 216, .28);
    border-radius: 13px;
    background: rgba(7, 143, 190, .1);
  }
  #rk-heat-guide .rk-heat-live-formula strong { display: block; color: var(--rk-white); font-size: 1rem; }
  #rk-heat-guide .rk-heat-live-formula code {
    display: block;
    overflow-wrap: anywhere;
    margin: 8px 0;
    padding: 11px 13px;
    border: 1px solid rgba(126, 239, 255, .38);
    border-left: 4px solid var(--rk-cyan);
    border-radius: 9px;
    color: #f2fdff !important;
    background: #0b2d3f !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .73rem;
    font-weight: 800;
    line-height: 1.55;
    white-space: normal;
  }
  #rk-heat-guide .rk-heat-live-formula span { color: #bcd7e1; font-size: .68rem; }
  #rk-heat-guide .rk-heat-example-flow {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
  }
  #rk-heat-guide .rk-heat-example-step {
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-heat-example-step b { display: block; margin-bottom: 5px; color: var(--rk-blue); }
  #rk-heat-guide .rk-heat-example-step p { margin: 0; font-size: .78rem; }
  #rk-heat-guide .rk-heat-inline-code {
    padding: .12em .35em;
    border-radius: 5px;
    color: var(--rk-dark);
    background: #e9f1f4;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .88em;
  }
  #rk-heat-guide .rk-heat-source a { overflow-wrap: anywhere; }

  @media (max-width: 900px) {
    #rk-heat-guide .rk-heat-lab-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #rk-heat-guide .rk-heat-result-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }
  @media (max-width: 620px) {
    #rk-heat-guide .rk-heat-lab-fields,
    #rk-heat-guide .rk-heat-result-strip,
    #rk-heat-guide .rk-heat-example-flow { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-heat-chart-row { grid-template-columns: 1fr; gap: 5px; }
    #rk-heat-guide .rk-heat-chart-value { text-align: left; }
  }

  /* Analizator źródło–odbiornik: sekwencyjnie, bez wysokich niezależnych kolumn. */
  #rk-heat-guide .rk-hp-equation {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 22px 0;
  }
  #rk-heat-guide .rk-hp-equation > div {
    padding: 17px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-hp-equation code {
    display: block;
    margin-bottom: 7px;
    color: var(--rk-dark);
    font-size: .88rem;
    font-weight: 900;
    white-space: normal;
  }
  #rk-heat-guide .rk-hp-equation span { color: var(--rk-muted); font-size: .72rem; }
  #rk-heat-guide .rk-hp-status-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-bottom: 18px;
  }
  #rk-heat-guide .rk-hp-status-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 15px;
    background: rgba(255, 255, 255, .04);
  }
  #rk-heat-guide .rk-hp-status-card h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-hp-status-card p { margin: 7px 0 0; color: #bcd7e1; font-size: .69rem; }
  #rk-heat-guide .rk-hp-meter {
    overflow: hidden;
    height: 14px;
    margin: 12px 0 7px;
    border-radius: 999px;
    background: #27495a;
  }
  #rk-heat-guide .rk-hp-meter span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--rk-cyan), #64e4ef);
    transition: width .28s ease;
  }
  #rk-heat-guide .rk-hp-meter.is-floor span { background: linear-gradient(90deg, var(--rk-orange), #ff9b76); }
  #rk-heat-guide .rk-hp-coverage {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: #d8edf3;
    font-size: .66rem;
    font-weight: 850;
  }
  #rk-heat-guide .rk-hp-chart-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
  }
  #rk-heat-guide .rk-hp-chart-tab {
    padding: 8px 12px;
    border: 1px solid rgba(136, 202, 220, .35);
    border-radius: 999px;
    color: #d9edf3;
    background: rgba(255, 255, 255, .045);
    cursor: pointer;
    font-size: .65rem;
    font-weight: 900;
  }
  #rk-heat-guide .rk-hp-chart-tab[aria-pressed="true"] {
    border-color: var(--rk-cyan);
    color: var(--rk-dark);
    background: var(--rk-cyan);
  }
  #rk-heat-guide .rk-hp-method-note {
    margin-top: 15px;
    padding: 13px 15px;
    border-left: 4px solid var(--rk-yellow);
    border-radius: 10px;
    color: #fff0c4;
    background: rgba(214, 154, 22, .13);
    font-size: .67rem;
    line-height: 1.5;
  }
  #rk-heat-guide .rk-hp-result-message {
    margin: 16px 0 0;
    padding: 15px 17px;
    border-left: 5px solid #4cd7ac;
    border-radius: 11px;
    color: #dcfff3;
    background: rgba(22, 131, 107, .17);
    font-size: .75rem;
    font-weight: 780;
  }
  #rk-heat-guide .rk-hp-result-message.is-warning {
    border-color: #ffd568;
    color: #fff1c3;
    background: rgba(214, 154, 22, .14);
  }
  #rk-heat-guide .rk-hp-result-message.is-bad {
    border-color: #ff8b7f;
    color: #ffe1dc;
    background: rgba(217, 75, 61, .15);
  }
  #rk-heat-guide .rk-hp-small { color: var(--rk-muted); font-size: .72rem; }
  #rk-heat-guide .rk-hp-cta-limits {
    margin-bottom: 20px;
    padding: 15px 17px;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 13px;
    color: #e8f6fa;
    background: rgba(255, 255, 255, .055);
  }
  #rk-heat-guide .rk-hp-cta-limits strong { color: var(--rk-white); }

  @media (max-width: 720px) {
    #rk-heat-guide .rk-hp-equation,
    #rk-heat-guide .rk-hp-status-grid { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-hp-coverage { display: block; }
    #rk-heat-guide .rk-hp-coverage span { display: block; margin-top: 3px; }
  }
</style>


<style>
  /* Audyt kompletności projektu — cztery kolejne warstwy, bez pustych kolumn. */
  #rk-heat-guide .rk-pc-audit-group {
    margin-bottom: 16px;
    padding: 21px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 16px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-pc-audit-group:last-child { margin-bottom: 0; }
  #rk-heat-guide .rk-pc-audit-head {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 17px;
  }
  #rk-heat-guide .rk-pc-audit-number {
    display: grid;
    flex: 0 0 38px;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    color: var(--rk-dark);
    background: var(--rk-cyan);
    font-size: .78rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-pc-audit-head h4 { margin: 0 0 4px; color: var(--rk-white); }
  #rk-heat-guide .rk-pc-audit-head p { margin: 0; color: #bcd7e1; font-size: .68rem; }
  #rk-heat-guide .rk-pc-stage-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 11px;
    margin: 18px 0;
  }
  #rk-heat-guide .rk-pc-stage {
    min-width: 0;
    padding: 16px;
    border: 1px solid rgba(136, 202, 220, .28);
    border-radius: 14px;
    background: rgba(255, 255, 255, .045);
  }
  #rk-heat-guide .rk-pc-stage::before {
    display: block;
    width: 100%;
    height: 7px;
    margin-bottom: 13px;
    border-radius: 999px;
    background: #ff8b7f;
    content: "";
  }
  #rk-heat-guide .rk-pc-stage.is-partial::before { background: #ffd568; }
  #rk-heat-guide .rk-pc-stage.is-ready::before { background: #4cd7ac; }
  #rk-heat-guide .rk-pc-stage b { display: block; color: var(--rk-white); font-size: .73rem; }
  #rk-heat-guide .rk-pc-stage span { display: block; margin-top: 5px; color: #bcd7e1; font-size: .61rem; line-height: 1.45; }
  #rk-heat-guide .rk-pc-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 18px;
    border: 1px solid rgba(136, 202, 220, .28);
    border-radius: 15px;
    background: rgba(255, 255, 255, .045);
  }
  #rk-heat-guide .rk-pc-score {
    display: grid;
    place-items: center;
    width: 92px;
    height: 92px;
    border: 8px solid var(--rk-cyan);
    border-radius: 50%;
    color: var(--rk-white);
    font-size: 1.12rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-pc-summary h4 { margin-bottom: 4px; color: var(--rk-white); }
  #rk-heat-guide .rk-pc-summary p { margin: 0; color: #c6dfe7; font-size: .7rem; }
  #rk-heat-guide .rk-pc-result-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-top: 16px;
  }
  #rk-heat-guide .rk-pc-result-box {
    min-width: 0;
    padding: 18px;
    border: 1px solid rgba(136, 202, 220, .25);
    border-radius: 14px;
    background: rgba(255, 255, 255, .035);
  }
  #rk-heat-guide .rk-pc-result-box h4 { color: var(--rk-white); }
  #rk-heat-guide .rk-pc-result-box ul {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-pc-result-box li {
    position: relative;
    margin: 0;
    padding: 9px 10px 9px 32px;
    border-radius: 9px;
    color: #d9eaf0;
    background: rgba(255, 255, 255, .045);
    font-size: .64rem;
    line-height: 1.46;
  }
  #rk-heat-guide .rk-pc-result-box li::before {
    position: absolute;
    top: 9px;
    left: 11px;
    color: #4cd7ac;
    content: "✓";
    font-weight: 950;
  }
  #rk-heat-guide .rk-pc-result-box.is-missing li::before { color: #ffd568; content: "!"; }
  #rk-heat-guide .rk-pc-empty { color: #a9c8d3; font-size: .66rem; }
  #rk-heat-guide .rk-pc-tool-foot {
    margin: 16px 0 0;
    padding: 13px 15px;
    border-left: 4px solid #ffd568;
    border-radius: 10px;
    color: #fff0c4;
    background: rgba(214, 154, 22, .13);
    font-size: .66rem;
    line-height: 1.5;
  }
  #rk-heat-guide .rk-pc-tool-foot strong { color: #fff7dd; }
  #rk-heat-guide .rk-pc-doc-list {
    counter-reset: rk-doc;
    display: grid;
    gap: 12px;
    margin: 25px 0;
    padding: 0;
    list-style: none;
  }
  #rk-heat-guide .rk-pc-doc-list li {
    position: relative;
    min-height: 70px;
    margin: 0;
    padding: 17px 17px 17px 70px;
    border: 1px solid var(--rk-line);
    border-radius: 14px;
    background: var(--rk-soft);
  }
  #rk-heat-guide .rk-pc-doc-list li::before {
    position: absolute;
    top: 16px;
    left: 17px;
    display: grid;
    place-items: center;
    width: 39px;
    height: 39px;
    border-radius: 11px;
    color: var(--rk-white);
    background: var(--rk-blue);
    counter-increment: rk-doc;
    content: counter(rk-doc);
    font-size: .76rem;
    font-weight: 950;
  }
  #rk-heat-guide .rk-pc-doc-list b { display: block; margin-bottom: 3px; }
  #rk-heat-guide .rk-pc-doc-list span { color: var(--rk-text); font-size: .8rem; }
  #rk-heat-guide .rk-pc-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 25px 0;
  }
  #rk-heat-guide .rk-pc-flow > div {
    position: relative;
    padding: 18px;
    border: 1px solid var(--rk-line);
    border-top: 6px solid var(--rk-cyan);
    border-radius: 14px;
    background: var(--rk-white);
  }
  #rk-heat-guide .rk-pc-flow > div:nth-child(2) { border-top-color: var(--rk-orange); }
  #rk-heat-guide .rk-pc-flow > div:nth-child(3) { border-top-color: var(--rk-green); }
  #rk-heat-guide .rk-pc-flow > div:nth-child(4) { border-top-color: var(--rk-purple); }
  #rk-heat-guide .rk-pc-flow b { display: block; margin-bottom: 5px; }
  #rk-heat-guide .rk-pc-flow span { color: var(--rk-muted); font-size: .7rem; line-height: 1.45; }
  @media (max-width: 900px) {
    #rk-heat-guide .rk-pc-stage-grid,
    #rk-heat-guide .rk-pc-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }
  @media (max-width: 720px) {
    #rk-heat-guide .rk-pc-stage-grid,
    #rk-heat-guide .rk-pc-result-columns,
    #rk-heat-guide .rk-pc-flow { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-pc-summary { grid-template-columns: 1fr; }
    #rk-heat-guide .rk-pc-score { width: 80px; height: 80px; }
    #rk-heat-guide .rk-pc-audit-group { padding: 17px; }
  }
  @media (max-width: 420px) {
    #rk-heat-guide .rk-pc-audit-head { display: block; }
    #rk-heat-guide .rk-pc-audit-number { margin-bottom: 10px; }
    #rk-heat-guide .rk-pc-doc-list li { padding-left: 62px; }
  }
</style>

<div id="rk-heat-guide">
  <article class="rk-heat-shell">
    <header class="rk-heat-hero">
      <span class="rk-heat-kicker">Projekt wykonawczy • podłogówka i pompa ciepła • aktualizacja 2026</span>
      <p class="rk-heat-hero-title">Projekt ogrzewania podłogowego z pompą ciepła <span>łączy budynek, podłogę, hydraulikę i źródło</span></p>
      <p class="rk-heat-lead">Dobry projekt nie kończy się na narysowaniu rur. Musi przeprowadzić obliczenia od strat ciepła każdego pomieszczenia, przez aktywną powierzchnię podłogi i długości pętli, aż do przepływów, nastaw rozdzielacza oraz parametrów pracy pompy ciepła.</p>
      <div class="rk-heat-hero-tags" aria-label="Zakres artykułu">
        <span class="rk-heat-hero-tag">OZC pomieszczeń</span>
        <span class="rk-heat-hero-tag">rozstaw i pętle</span>
        <span class="rk-heat-hero-tag">przepływy i nastawy</span>
        <span class="rk-heat-hero-tag">temperatura zasilania</span>
        <span class="rk-heat-hero-tag">dokumentacja wykonawcza</span>
      </div>
      <div class="rk-heat-byline">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: około 28 minut</span>
        <span>Aktualizacja techniczna: 7 września 2026 r.</span>
      </div>
      <div class="rk-heat-hero-metrics" aria-label="Trzy zasady kompletnego projektu">
        <div class="rk-heat-hero-metric"><b>Najpierw obciążenia pomieszczeń</b><span>Jedna moc całego domu nie wystarcza do rozplanowania podłogi w salonie, łazience i sypialniach.</span></div>
        <div class="rk-heat-hero-metric"><b>Później geometria i hydraulika</b><span>Rozstaw, długość obwodu, przepływ oraz strata ciśnienia muszą dotyczyć tej samej pętli.</span></div>
        <div class="rk-heat-hero-metric"><b>Na końcu zgodność ze źródłem</b><span>Temperatury, minimalny przepływ, sterowanie i praca stref muszą pasować do pompy ciepła.</span></div>
      </div>
    </header>

    <nav class="rk-heat-nav" aria-label="Nawigacja po wszystkich rozdziałach artykułu">
      <span class="rk-heat-nav-label">Na skróty</span>
      <div class="rk-heat-nav-track">
        <a href="#rk-pc-szybka">Szybka odpowiedź</a>
        <a href="#rk-pc-zakres">Zakres projektu</a>
        <a href="#rk-pc-warstwy">Cztery warstwy</a>
        <a href="#rk-pc-dane">Dane wejściowe</a>
        <a href="#rk-pc-ozc">OZC pomieszczeń</a>
        <a href="#rk-pc-powierzchnia">Powierzchnia czynna</a>
        <a href="#rk-pc-temperatury">Temperatury wody</a>
        <a href="#rk-pc-rozstaw">Rozstaw rur</a>
        <a href="#rk-pc-okladziny">Okładziny</a>
        <a href="#rk-pc-petle">Pętle i dobiegi</a>
        <a href="#rk-pc-hydraulika">Przepływy i opory</a>
        <a href="#rk-pc-pompa-obiegowa">Pompa obiegowa</a>
        <a href="#rk-pc-zrodlo">Dobór pompy ciepła</a>
        <a href="#rk-pc-bufor">Bufor i minimalny przepływ</a>
        <a href="#rk-pc-sterowanie">Sterowanie</a>
        <a href="#rk-pc-audyt">Audyt danych</a>
        <a href="#rk-pc-dokumentacja">Dokumentacja</a>
        <a href="#rk-pc-czytanie">Jak czytać projekt</a>
        <a href="#rk-pc-scenariusze">Nowy dom i modernizacja</a>
        <a href="#rk-pc-bledy">Błędy ofert</a>
        <a href="#rk-pc-checklista">Checklista</a>
        <a href="#rk-pc-faq">FAQ</a>
        <a href="#rk-pc-zrodla">Źródła</a>
        <a href="#rk-heat-autor">Autor</a>
      </div>
    </nav>

    <div class="rk-heat-content">
      <section class="rk-heat-section" id="rk-pc-szybka">
        <span class="rk-heat-eyebrow">Odpowiedź w 30 sekund</span>
        <h2>Co powinien zawierać projekt podłogówki z pompą ciepła?</h2>
        <div class="rk-heat-answer">
          <p><strong>Kompletny projekt powinien połączyć obciążenie cieplne każdego pomieszczenia z rzeczywistą powierzchnią grzewczą, parametrami podłogi, geometrią pętli, przepływami oraz warunkami pracy pompy ciepła.</strong> Efektem nie jest sam rysunek rur, lecz zestaw informacji, według których instalację można wykonać, uruchomić i wyregulować.</p>
        </div>
        <p>Na rzucie powinny być widoczne pola z rurami, strefy wyłączone, podział na pętle, ich rozstawy, długości oraz przypisanie do rozdzielaczy. W tabeli obliczeniowej potrzebne są co najmniej: moc pomieszczenia, powierzchnia czynna, temperatura zasilania i powrotu, przepływ, strata ciśnienia oraz nastawa obwodu.</p>
        <p>Tak rozumiany <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalny projekt ogrzewania podłogowego</a> pozwala sprawdzić zależności przed zalaniem rur. To zasadnicza różnica między dokumentacją wykonawczą a szkicem instalacji.</p>
        <div class="rk-heat-note"><p><strong>Projekt nie może zaczynać się od rozstawu 10 lub 15 cm.</strong> Rozstaw jest wynikiem obciążenia, powierzchni czynnej, temperatury wody, konstrukcji podłogi i oporu okładziny — nie samym założeniem wejściowym.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-zakres">
        <span class="rk-heat-eyebrow">Od obliczenia do nastawy</span>
        <h2>Rysunek rur to tylko jedna część projektu</h2>
        <p class="rk-heat-intro">Dokumentacja musi odpowiedzieć wykonawcy, gdzie ułożyć rury, ale także wyjaśnić, dlaczego dana pętla ma taki rozstaw, długość i przepływ.</p>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Element</th><th>Co powinno się znaleźć w projekcie</th><th>Do czego służy</th></tr></thead>
            <tbody>
              <tr><td data-label="Element">Założenia</td><td data-label="Zawartość">Temperatury pomieszczeń, warunki zewnętrzne, wentylacja, konstrukcje przegród i podłóg.</td><td data-label="Cel">Umożliwiają odtworzenie obliczeń i późniejszą aktualizację.</td></tr>
              <tr><td data-label="Element">Bilans cieplny</td><td data-label="Zawartość">Obciążenie budynku oraz każdego ogrzewanego pomieszczenia.</td><td data-label="Cel">Określa wymaganą moc źródła i powierzchni grzewczych.</td></tr>
              <tr><td data-label="Element">Rzut instalacji</td><td data-label="Zawartość">Pętle, rozstawy, strefy brzegowe, dobiegi, dylatacje i miejsca bez rur.</td><td data-label="Cel">Daje wykonawcy jednoznaczną geometrię ułożenia.</td></tr>
              <tr><td data-label="Element">Hydraulika</td><td data-label="Zawartość">Długości, przepływy, opory, obwód krytyczny, średnice i nastawy.</td><td data-label="Cel">Pozwala zrównoważyć rozdzielacze i sprawdzić pompę obiegową.</td></tr>
              <tr><td data-label="Element">Źródło i regulacja</td><td data-label="Zawartość">Parametry wody, charakterystyka pompy ciepła, minimalny przepływ i logika sterowania.</td><td data-label="Cel">Łączy odbiorniki z warunkami stabilnej pracy źródła.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Porównanie <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projektu „z głowy” z projektem opartym na obliczeniach</a> najlepiej pokazuje, czego nie da się dopisać już po wykonaniu wylewki. Rury można wyregulować tylko w zakresie, jaki pozostawiła ich geometria.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-warstwy">
        <span class="rk-heat-eyebrow">Jedna instalacja, cztery zależne modele</span>
        <h2>Projekt tworzą cztery warstwy: budynek, podłoga, hydraulika i źródło</h2>
        <div class="rk-pc-flow">
          <div><b>1. Bilans budynku</b><span>Ile watów traci każde pomieszczenie w punkcie projektowym?</span></div>
          <div><b>2. Powierzchnia grzewcza</b><span>Czy aktywna podłoga odda tę moc przy przyjętych temperaturach?</span></div>
          <div><b>3. Hydraulika</b><span>Jak podzielić rury na obwody i uzyskać potrzebne przepływy?</span></div>
          <div><b>4. Pompa ciepła</b><span>Czy źródło pokryje moc i zachowa wymagany przepływ?</span></div>
        </div>
        <p>Każda warstwa przekazuje dane kolejnej. Jeżeli obciążenie łazienki jest nieznane, nie da się odpowiedzialnie wybrać mocy podłogi. Jeżeli nie znamy długości i przepływu krytycznej pętli, nie sprawdzimy wymaganego podnoszenia pompy. Jeżeli źródło i odbiornik analizuje się osobno, łatwo przeoczyć przypadek, w którym <a href="https://projekt-ogrzewania.pl/czy-pompa-ciepla-ogrzeje-dom-z-podlogowka/">pompa ma moc, ale podłoga nie pokrywa obciążenia konkretnego pokoju</a>.</p>
        <div class="rk-heat-warning"><p><strong>Jedna wartość dla całego domu nie zastępuje obliczeń pomieszczeń.</strong> Suma mocy jest potrzebna do analizy źródła, lecz rozstaw rur i przepływ wyznacza się dla lokalnych warunków.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-dane">
        <span class="rk-heat-eyebrow">Jakość wyniku zaczyna się przed obliczeniami</span>
        <h2>Jakie dane trzeba przygotować do projektu?</h2>
        <p class="rk-heat-intro">Im wcześniej zbierzemy komplet informacji, tym mniej założeń trzeba przyjmować i tym mniejsze ryzyko zmian podczas montażu.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">A</span><h3>Architektura i przegrody</h3><p>Rzuty z wymiarami, przekroje, lokalizacja budynku, konstrukcje ścian, dachu, podłogi, okien oraz drzwi.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">I</span><h3>Instalacja i wnętrza</h3><p>Źródło ciepła, lokalizacje rozdzielaczy, pionów i urządzeń, stała zabudowa, dylatacje oraz planowane okładziny.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">T</span><h3>Temperatury i wentylacja</h3><p>Temperatury wewnętrzne, dane wentylacji lub rekuperacji, temperatura projektowa i oczekiwany sposób sterowania.</p></div>
        </div>
        <h3>Dane, których nie warto zgadywać</h3>
        <ul class="rk-heat-list">
          <li>Grubości i materiały przegród zamiast ogólnego określenia „dom dobrze ocieplony”.</li>
          <li>Opór cieplny całej okładziny z podkładem, a nie tylko rodzaj „panel” lub „płytka”.</li>
          <li>Rzeczywiste miejsca szaf, wysp kuchennych, wanien i innych trwałych elementów.</li>
          <li>Model pompy ciepła lub przynajmniej dane do późniejszego sprawdzenia jej charakterystyki.</li>
          <li>Planowane strefy zamykane siłownikami i wymagania dotyczące chłodzenia, jeżeli ma wystąpić.</li>
        </ul>
        <p>Jeżeli inwestor ma już wiarygodne <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a>, można wykorzystać wyniki pomieszczeń. Jeżeli nie — bilans trzeba opracować na podstawie aktualnej dokumentacji budynku.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-ozc">
        <span class="rk-heat-eyebrow">Moc wymagana w warunkach obliczeniowych</span>
        <h2>OZC każdego pomieszczenia jest punktem wyjścia do rozstawu rur</h2>
        <p>Obciążenie cieplne opisuje moc potrzebną do utrzymania założonej temperatury wewnętrznej przy warunkach projektowych. Obejmuje straty przez przegrody oraz wymianę powietrza. Nie jest rachunkiem rocznym ani prognozą miesięcznego zużycia energii.</p>
        <div class="rk-heat-formula"><strong>Φ<sub>HL</sub> = Φ<sub>T</sub> + Φ<sub>V</sub></strong><span>projektowe straty przez przenikanie oraz wentylację i infiltrację, obliczane dla właściwych warunków</span></div>
        <p>W osobnym poradniku pokazujemy krok po kroku, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty cieplne budynku</a>. Dla projektu wykonawczego istotne jest jednak nie tylko łącznych 6 czy 9 kW, ale przykładowo 540 W w sypialni, 1250 W w salonie i 780 W w łazience.</p>
        <h3>Założenia muszą być jawne</h3>
        <p>Metodyka oparta na <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">zasadach obliczeń według PN-EN 12831</a> wymaga spójnych temperatur i danych przegród. Znaczenie ma też lokalizacja, ponieważ <a href="https://projekt-ogrzewania.pl/strefy-klimatyczne-w-polsce-a-ogrzewanie-podlogowe-i-ozc-dlaczego-blad-o-jedna-strefe-klimatyczna-kosztuje-cie-6000-zl-rocznie/">warunki projektowe różnią się między strefami klimatycznymi</a>.</p>
        <div class="rk-heat-note"><p><strong>Kontrola projektu:</strong> suma mocy pomieszczeń, wynik całego budynku i założenia wentylacyjne powinny być ze sobą zgodne. Rozbieżności trzeba wyjaśnić przed doborem pompy.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-powierzchnia">
        <span class="rk-heat-eyebrow">Metry kwadratowe, które naprawdę grzeją</span>
        <h2>Powierzchnia czynna decyduje o wymaganej mocy podłogi</h2>
        <p class="rk-heat-intro">Moc pomieszczenia trzeba odnieść do fragmentu posadzki, na którym rzeczywiście można ułożyć działające rury.</p>
        <div class="rk-heat-formula"><strong>q<sub>wym</sub> = Q<sub>pomieszczenia</sub> / A<sub>czynna</sub></strong><span>wymagana moc jednostkowa [W/m²] = obciążenie pomieszczenia [W] / aktywna powierzchnia [m²]</span></div>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">20</span><h3>20 m² powierzchni czynnej</h3><p>Przy obciążeniu 1000 W wymaganie wynosi średnio 50 W/m².</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">12</span><h3>12 m² powierzchni czynnej</h3><p>Przy tym samym obciążeniu wymaganie rośnie do około 83 W/m².</p></div>
        </div>
        <p>Z tego powodu rzut musi wskazywać <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">miejsca, w których rur podłogówki nie należy układać</a>. Nie każdą szafkę trzeba wyłączać automatycznie, ale trwałą zabudowę, kominek, brodzik czy mocowania do podłoża należy uzgodnić przed wyznaczeniem pętli.</p>
        <h3>Mała łazienka może być trudniejsza od dużego salonu</h3>
        <p>Łazienka ma często wyższą temperaturę obliczeniową i jednocześnie mało wolnej podłogi. Jeżeli wymagana moc jednostkowa przekracza możliwości przyjętej konstrukcji i dopuszczalnej temperatury powierzchni, projekt powinien wskazać dodatkowy odbiornik albo zmianę założeń — nie tylko zagęścić rury.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-temperatury">
        <span class="rk-heat-eyebrow">Wspólny parametr źródła i odbiornika</span>
        <h2>Temperaturę zasilania i powrotu wyznacza wymagana wydajność</h2>
        <p>Podłogówka współpracuje z pompą ciepła korzystnie, gdy może pokryć obciążenia przy niskiej temperaturze wody. Nie oznacza to jednak, że każdemu budynkowi wolno z góry przypisać 35°C. Parametry wynikają z obciążeń, powierzchni czynnej, rozstawu, oporu podłogi i temperatur wewnętrznych.</p>
        <div class="rk-hp-equation">
          <div><code>θ<sub>m</sub> = (θ<sub>z</sub> + θ<sub>p</sub>) / 2</code><span>Średnia temperatura wody zależy od zasilania i powrotu.</span></div>
          <div><code>Δθ<sub>H</sub> = θ<sub>m</sub> − θ<sub>i</sub></code><span>Różnica względem wnętrza napędza wymianę ciepła przez podłogę.</span></div>
        </div>
        <p>Projekt określa wspólny punkt obliczeniowy, a następnie sprawdza, czy wszystkie pomieszczenia osiągną wymaganą moc. Szczegółowy wpływ <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatury między zasilaniem a powrotem</a> trzeba rozpatrywać razem z przepływem i długością pętli.</p>
        <div class="rk-heat-warning"><p><strong>Niższa temperatura nie jest celem samym w sobie.</strong> Najpierw musi zapewnić komfort przy mrozie, a dopiero później można optymalizować krzywą grzewczą i efektywność.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-rozstaw">
        <span class="rk-heat-eyebrow">Wynik obliczeń, nie etykieta źródła</span>
        <h2>Jak projekt dobiera rozstaw rur do pompy ciepła?</h2>
        <p class="rk-heat-intro">Źródło ciepła wpływa na pożądaną temperaturę wody, ale samo nie wyznacza rozstawu. Ta sama podłoga przy tych samych parametrach emituje podobną moc niezależnie od tego, co ogrzało wodę.</p>
        <p>Procedura dla każdego pomieszczenia wygląda następująco. Punktem odniesienia dla oceny systemu jest <a href="https://projekt-ogrzewania.pl/norma-obliczen-ogrzewania-podlogowego-en-1264/">metodyka obliczeń ogrzewania podłogowego EN 1264</a>, a nie katalogowa wartość mocy przypisana do samego rozstawu.</p>
        <ol>
          <li>odczytujemy projektowe obciążenie cieplne,</li>
          <li>wyznaczamy rzeczywistą powierzchnię czynną,</li>
          <li>ustalamy konstrukcję podłogi i opór okładziny,</li>
          <li>przyjmujemy temperaturę zasilania i powrotu wspólną dla systemu,</li>
          <li>sprawdzamy wydajność dostępnych rozstawów oraz temperaturę powierzchni,</li>
          <li>wybrany układ przenosimy na geometrię pętli i weryfikujemy hydraulicznie.</li>
        </ol>
        <p>Osobno opisujemy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">dobór rozstawu rur przy pompie ciepła</a> oraz praktyczne porównanie <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawu 10 i 15 cm przy jednakowych warunkach</a>. W projekcie można zastosować różne rozstawy w jednym budynku, jeżeli wynika to z obciążeń i konstrukcji.</p>
        <h3>Strefy brzegowe i duże przeszklenia</h3>
        <p>Przy fasadach o większych stratach można lokalnie zmienić układ, ale strefa brzegowa nie może być automatycznym paskiem nanoszonym bez obliczeń. Zależności dla <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">podłogówki przy dużych przeszkleniach</a> obejmują także temperaturę powierzchni, głębokość strefy i rzeczywiste obciążenie przy elewacji.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-okladziny">
        <span class="rk-heat-eyebrow">Warstwa nad rurą ma znaczenie</span>
        <h2>Płytki, panele i drewno wchodzą do obliczeń przez opór cieplny</h2>
        <p>Projekt nie powinien przypisywać jednej wydajności wszystkim panelom ani każdej podłodze drewnianej. Potrzebny jest deklarowany opór kompletu: okładziny, podkładu, kleju lub innych warstw przewidzianych przez dostawcę systemu.</p>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Dana</th><th>Dlaczego jest potrzebna</th><th>Co dzieje się po zmianie</th></tr></thead>
            <tbody>
              <tr><td data-label="Dane">Materiał wykończenia</td><td data-label="Znaczenie">Pomaga dobrać sposób montażu i ograniczenia eksploatacyjne.</td><td data-label="Skutek zmiany">Może zmienić bezwładność, sposób mocowania i dopuszczalną temperaturę.</td></tr>
              <tr><td data-label="Dane">Opór R [m²K/W]</td><td data-label="Znaczenie">Jest parametrem używanym do oceny przenikania ciepła przez wykończenie.</td><td data-label="Skutek zmiany">Wyższy opór zwykle wymaga większej różnicy temperatur dla tej samej mocy.</td></tr>
              <tr><td data-label="Dane">Limit temperatury</td><td data-label="Znaczenie">Chroni okładzinę i określa dopuszczalny sposób użytkowania.</td><td data-label="Skutek zmiany">Może ograniczyć dostępną moc powierzchni wcześniej niż sam system grzewczy.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Warto wcześniej sprawdzić, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak okładzina wpływa na wydajność ogrzewania podłogowego</a> i jak interpretować <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R w m²K/W</a>. Jeżeli materiał zostanie zmieniony po obliczeniach, należy sprawdzić pomieszczenie ponownie.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-petle">
        <span class="rk-heat-eyebrow">Geometria zamieniona na obwody</span>
        <h2>Podział na pętle uwzględnia pole grzewcze, dobiegi i dylatacje</h2>
        <p>Najpierw wyznacza się pola możliwe do ogrzewania, a później prowadzi obwody tak, aby obsłużyć wymagany rozstaw, nie przekroczyć przyjętych ograniczeń hydraulicznych i przejść przez dylatacje w uzgodniony sposób. Długość pętli obejmuje zarówno rurę w polu, jak i zasilający oraz powrotny dobieg do rozdzielacza.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">P</span><h3>Pole</h3><p>Powierzchnia oraz rozstaw wyznaczają orientacyjne zużycie rury w strefie grzewczej.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">D</span><h3>Dobieg</h3><p>Odległość od rozdzielacza może istotnie zmienić długość i opór konkretnego obwodu.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">R</span><h3>Różnica długości</h3><p>Pętle nie muszą być identyczne, ale ich przepływy i dostępne nastawy muszą być policzone.</p></div>
        </div>
        <p>Praktyczne zasady pokazuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak planować rozmieszczenie pętli grzewczych</a>. Z kolei <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">maksymalna długość pętli</a> nie jest jedną liczbą wynikającą wyłącznie ze średnicy rury — zależy również od przepływu, oporów dodatkowych i budżetu ciśnienia.</p>
        <div class="rk-heat-note"><p><strong>Kontrola na budowie:</strong> wykonawca powinien zapisać rzeczywiste długości. Jeśli wyraźnie różnią się od projektu, przepływy i nastawy mogą wymagać ponownego przeliczenia.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-hydraulika">
        <span class="rk-heat-eyebrow">Każdy obwód ma własny bilans</span>
        <h2>Przepływy, spadki ciśnienia i nastawy rozdzielacza</h2>
        <p class="rk-heat-intro">Moc pętli i przyjęta różnica temperatur pozwalają wyznaczyć przepływ. Długość, średnica, właściwości medium i armatura decydują o stracie ciśnienia.</p>
        <div class="rk-hp-equation">
          <div><code>V̇ ≈ Q / (1,163 × ΔT)</code><span>Dla wody: orientacyjny przepływ [l/h] z mocy [W] i różnicy temperatur [K].</span></div>
          <div><code>Δp<sub>obwodu</sub> = Δp<sub>rury</sub> + Δp<sub>armatury</sub></code><span>Opór pełnej drogi od belki zasilającej do powrotnej.</span></div>
        </div>
        <p>W tabeli projektu każda pętla powinna mieć własną moc i przepływ. Nastawa nie jest dzieleniem przepływu całego rozdzielacza po równo. Odczyt i regulację opisuje poradnik o <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrach na rozdzielaczu</a>.</p>
        <h3>Obwód krytyczny wyznacza wymagania pompy</h3>
        <p>Pompa nie sumuje spadków wszystkich równoległych pętli. Musi pokonać opór najbardziej wymagającej czynnej drogi przy przepływie całej obsługiwanej instalacji. Projekt powinien więc wskazać obwód krytyczny, opory wspólnej magistrali i elementów dodatkowych.</p>
        <div class="rk-heat-warning"><p><strong>Nie wolno wyznaczać nastaw z samej długości.</strong> Dwie pętle po 80 m mogą przenosić inną moc, wymagać innego przepływu i mieć różne opory zaworów lub dobiegów.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-pompa-obiegowa">
        <span class="rk-heat-eyebrow">Wspólna część układu</span>
        <h2>Magistrala i pompa obiegowa muszą obsłużyć projektowy punkt pracy</h2>
        <p>Po zsumowaniu jednocześnie czynnych przepływów sprawdza się prędkość i spadek ciśnienia w przewodach zasilających rozdzielacze. Pomocniczo można porównać wynik z poradnikiem o <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">średnicy rury zasilającej rozdzielacz</a>.</p>
        <p>Punkt pracy pompy obiegowej tworzy przecięcie charakterystyki urządzenia z krzywą instalacji. Nie wybiera się jej tylko na podstawie liczby pętli ani powierzchni budynku. <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">Analizator doboru pompy obiegowej</a> pomaga zrozumieć relację przepływu i podnoszenia, natomiast projekt korzysta z rzeczywistych oporów wszystkich elementów.</p>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">Q</span><h3>Przepływ całkowity</h3><p>Wynika z sumy obwodów pracujących w rozpatrywanym stanie, nie z maksimum pojedynczego rotametru.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">H</span><h3>Wymagane podnoszenie</h3><p>Wynika z krytycznej drogi wraz z magistralą, rozdzielaczem, zaworami i urządzeniami wspólnymi.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-pc-zrodlo">
        <span class="rk-heat-eyebrow">Dopasowanie charakterystyki źródła</span>
        <h2>Dobór pompy ciepła wymaga mocy przy właściwym punkcie A/W</h2>
        <p class="rk-heat-intro">Moc w nazwie modelu lub wartość przy A7/W35 nie mówi jeszcze, ile urządzenie dostarczy podczas temperatury projektowej budynku i przy wodzie wymaganej przez instalację.</p>
        <p>Projekt porównuje OZC z charakterystyką urządzenia przy odpowiedniej temperaturze zewnętrznej i zasilaniu. Ustala także rolę grzałki lub drugiego źródła oraz sposób przygotowania ciepłej wody. Dążenie do <a href="https://projekt-ogrzewania.pl/niska-temperatura-zasilania-pompy-ciepla-dlaczego-35-stopni-to-ideal-dla-podlogowki/">niskiej temperatury zasilania pompy ciepła</a> jest zasadne, ale jej wartość trzeba potwierdzić obliczeniami podłogi.</p>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Pytanie</th><th>Wartość potrzebna do oceny</th><th>Czego nie używać zamiennie</th></tr></thead>
            <tbody>
              <tr><td data-label="Pytanie">Czy pompa pokryje moc?</td><td data-label="Potrzebna wartość">Moc grzewcza przy A<sub>proj</sub>/W<sub>proj</sub>.</td><td data-label="Nie zamieniaj">Moc nominalna z nazwy modelu.</td></tr>
              <tr><td data-label="Pytanie">Jaka będzie efektywność?</td><td data-label="Potrzebna wartość">COP lub dane sezonowe dla porównywalnych warunków.</td><td data-label="Nie zamieniaj">Pojedynczy COP z łagodnego punktu badania.</td></tr>
              <tr><td data-label="Pytanie">Czy instalacja odda moc?</td><td data-label="Potrzebna wartość">Wydajność podłogi przy rzeczywistym rozstawie i oporze.</td><td data-label="Nie zamieniaj">Ogólny limit mocy przypisany wszystkim podłogom.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Jeżeli obliczenia pokazują potrzebę wyższych parametrów, trzeba sprawdzić <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">ograniczenia temperatury zasilania podłogówki</a>, temperaturę powierzchni, okładzinę oraz wpływ punktu pracy na źródło.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-bufor">
        <span class="rk-heat-eyebrow">Stabilność przepływu i objętości</span>
        <h2>Bufor, minimalny przepływ i odszranianie sprawdza się funkcjonalnie</h2>
        <p>Nie każda instalacja z pompą ciepła wymaga bufora i nie ma jednej uniwersalnej pojemności na kilowat. Projekt powinien najpierw ustalić problem, który dodatkowy zbiornik ma rozwiązać: rozdzielenie hydrauliczne, zapewnienie minimalnej objętości, energię do odszraniania, stabilizację pracy czy współpracę z wieloma strefami.</p>
        <p>Analiza <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">funkcji bufora w ogrzewaniu podłogowym</a> powinna uwzględniać wymagania konkretnej pompy, pojemność rur, wielkość zładu, minimalny przepływ oraz to, ile obwodów może zostać zamkniętych.</p>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">V</span><h3>Objętość czynna</h3><p>Liczy się część instalacji rzeczywiście dostępna dla źródła w danym stanie pracy.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">F</span><h3>Przepływ minimalny</h3><p>Zamykanie stref nie może odebrać pompie drogi przepływu wymaganej przez jej automatykę.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">D</span><h3>Defrost</h3><p>W pompach powietrznych trzeba przewidzieć zachowanie układu podczas odszraniania.</p></div>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-pc-sterowanie">
        <span class="rk-heat-eyebrow">Regulacja zgodna z bezwładnością podłogi</span>
        <h2>Krzywa grzewcza, strefy i siłowniki muszą tworzyć jedną logikę</h2>
        <p>Podstawą regulacji niskotemperaturowej instalacji jest zwykle dopasowanie temperatury wody do warunków zewnętrznych. <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza podłogówki</a> powinna zapewniać najniższą temperaturę, która utrzymuje komfort bez częstego przerywania pracy.</p>
        <p>Regulacja pomieszczeniowa może korygować zyski wewnętrzne i różne harmonogramy, ale masowe zamknięcie siłowników zmienia hydraulikę widzianą przez pompę. Dlatego decyzja, <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">czy montować sterowniki do ogrzewania podłogowego</a>, powinna wynikać z przeznaczenia pomieszczeń, bezwładności oraz wymagań źródła.</p>
        <div class="rk-heat-note"><p><strong>Projekt powinien opisać stan krytyczny.</strong> Trzeba wiedzieć, co dzieje się z minimalnym przepływem, gdy część stref jest zamknięta, i które obwody pozostają zawsze dostępne.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-audyt">
        <span class="rk-heat-eyebrow">Narzędzie przed zamówieniem obliczeń</span>
        <h2>Interaktywny audyt kompletności danych do projektu</h2>
        <p class="rk-heat-intro">Zaznacz, które materiały masz już przygotowane. Audyt nie projektuje instalacji — pokazuje, co można policzyć od razu, a co wymaga uzupełnienia lub potwierdzenia.</p>

        <div class="rk-heat-tool" id="rk-pc-tool">
          <div class="rk-heat-tool-head">
            <h3>Sprawdź gotowość danych w czterech warstwach</h3>
            <p>Dla każdego punktu wybierz „mam”, „częściowo” albo „brak”. Wynik aktualizuje się automatycznie i nie ocenia jakości technicznej samych dokumentów.</p>
          </div>
          <div class="rk-heat-tool-body">
            <div class="rk-pc-audit-group">
              <div class="rk-pc-audit-head"><span class="rk-pc-audit-number">1</span><div><h4>Bilans cieplny budynku</h4><p>Dane potrzebne do wyznaczenia mocy całego domu i każdego pomieszczenia.</p></div></div>
              <div class="rk-heat-question-grid">
                <div class="rk-heat-question is-critical"><label for="rk-pc-plan">Aktualne rzuty i przekroje z wymiarami</label><select id="rk-pc-plan" data-group="balance" data-label="aktualnych rzutów i przekrojów"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
                <div class="rk-heat-question is-critical"><label for="rk-pc-envelope">Konstrukcje przegród, okna i współczynniki U albo pełne OZC</label><select id="rk-pc-envelope" data-group="balance" data-label="danych przegród lub pełnego OZC"><option value="2">Mam komplet</option><option value="1">Mam częściowo</option><option value="0" selected="">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-temperatures">Temperatury projektowe pomieszczeń i lokalizacja budynku</label><select id="rk-pc-temperatures" data-group="balance" data-label="temperatur pomieszczeń i lokalizacji"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-ventilation">Projekt wentylacji, rekuperacji lub założenia wymiany powietrza</label><select id="rk-pc-ventilation" data-group="balance" data-label="danych wentylacji i odzysku ciepła"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
              </div>
            </div>

            <div class="rk-pc-audit-group">
              <div class="rk-pc-audit-head"><span class="rk-pc-audit-number">2</span><div><h4>Podłoga i aktywna powierzchnia</h4><p>Dane potrzebne do oceny wydajności każdego pomieszczenia.</p></div></div>
              <div class="rk-heat-question-grid">
                <div class="rk-heat-question is-critical"><label for="rk-pc-coverings">Okładziny i opór cieplny kompletu warstw</label><select id="rk-pc-coverings" data-group="floor" data-label="okładzin oraz ich oporu cieplnego"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
                <div class="rk-heat-question is-critical"><label for="rk-pc-fixed">Stała zabudowa i wszystkie strefy bez rur</label><select id="rk-pc-fixed" data-group="floor" data-label="stałej zabudowy i stref bez rur"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-layers">Przekrój podłogi: izolacja, system rur i rodzaj jastrychu</label><select id="rk-pc-layers" data-group="floor" data-label="pełnego przekroju podłogi"><option value="2">Mam komplet</option><option value="1">Mam częściowo</option><option value="0" selected="">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-dilatations">Dylatacje, progi, schody i elementy mocowane do podłoża</label><select id="rk-pc-dilatations" data-group="floor" data-label="dylatacji i kolizji budowlanych"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
              </div>
            </div>

            <div class="rk-pc-audit-group">
              <div class="rk-pc-audit-head"><span class="rk-pc-audit-number">3</span><div><h4>Geometria i hydraulika</h4><p>Dane potrzebne do rozplanowania obwodów, magistrali i nastaw.</p></div></div>
              <div class="rk-heat-question-grid">
                <div class="rk-heat-question is-critical"><label for="rk-pc-manifolds">Uzgodnione lokalizacje rozdzielaczy</label><select id="rk-pc-manifolds" data-group="hydraulics" data-label="lokalizacji rozdzielaczy"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-routes">Trasy zasilania rozdzielaczy i możliwe przejścia dobiegów</label><select id="rk-pc-routes" data-group="hydraulics" data-label="tras magistrali i dobiegów"><option value="2">Mam komplet</option><option value="1">Mam częściowo</option><option value="0" selected="">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-source-place">Lokalizacja pompy ciepła, hydroboxu i pozostałej armatury</label><select id="rk-pc-source-place" data-group="hydraulics" data-label="lokalizacji źródła i armatury"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-special">Dodatkowe odbiorniki, obiegi mieszane lub chłodzenie</label><select id="rk-pc-special" data-group="hydraulics" data-label="informacji o dodatkowych obiegach"><option value="2">Mam komplet</option><option value="1">Mam częściowo</option><option value="0" selected="">Brak</option></select></div>
              </div>
            </div>

            <div class="rk-pc-audit-group">
              <div class="rk-pc-audit-head"><span class="rk-pc-audit-number">4</span><div><h4>Pompa ciepła i sterowanie</h4><p>Dane potrzebne do sprawdzenia zgodności instalacji odbiorczej ze źródłem.</p></div></div>
              <div class="rk-heat-question-grid">
                <div class="rk-heat-question"><label for="rk-pc-model">Wybrany model pompy albo wymagania do jej późniejszego doboru</label><select id="rk-pc-model" data-group="source" data-label="modelu pompy lub kryteriów doboru"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
                <div class="rk-heat-question is-critical"><label for="rk-pc-performance">Moc i COP przy projektowym punkcie A/W</label><select id="rk-pc-performance" data-group="source" data-label="charakterystyki mocy i COP dla punktu A/W"><option value="2">Mam komplet</option><option value="1">Mam częściowo</option><option value="0" selected="">Brak</option></select></div>
                <div class="rk-heat-question is-critical"><label for="rk-pc-minimums">Wymagany minimalny przepływ, objętość i zasady odszraniania</label><select id="rk-pc-minimums" data-group="source" data-label="minimalnego przepływu, objętości i wymagań defrostu"><option value="2">Mam komplet</option><option value="1">Mam częściowo</option><option value="0" selected="">Brak</option></select></div>
                <div class="rk-heat-question"><label for="rk-pc-controls">Plan stref, termostatów, siłowników i regulacji pogodowej</label><select id="rk-pc-controls" data-group="source" data-label="koncepcji sterowania i stref"><option value="2">Mam komplet</option><option value="1" selected="">Mam częściowo</option><option value="0">Brak</option></select></div>
              </div>
            </div>

            <button class="rk-heat-tool-button" type="button" id="rk-pc-run">Aktualizuj audyt danych</button>

            <div class="rk-pc-summary" aria-live="polite">
              <div class="rk-pc-score" id="rk-pc-score">0/16</div>
              <div><h4 id="rk-pc-summary-title">Sprawdzamy kompletność danych</h4><p id="rk-pc-summary-text">Wynik pokaże gotowość czterech warstw projektu i listę informacji do uzupełnienia.</p></div>
            </div>

            <div class="rk-pc-stage-grid" aria-label="Dynamiczna mapa etapów projektu">
              <div class="rk-pc-stage" id="rk-pc-stage-balance"><b>1. Bilans cieplny</b><span id="rk-pc-status-balance">Blokuje część obliczeń</span></div>
              <div class="rk-pc-stage" id="rk-pc-stage-floor"><b>2. Powierzchnia grzewcza</b><span id="rk-pc-status-floor">Blokuje część obliczeń</span></div>
              <div class="rk-pc-stage" id="rk-pc-stage-hydraulics"><b>3. Hydraulika</b><span id="rk-pc-status-hydraulics">Blokuje część obliczeń</span></div>
              <div class="rk-pc-stage" id="rk-pc-stage-source"><b>4. Źródło i sterowanie</b><span id="rk-pc-status-source">Blokuje część obliczeń</span></div>
            </div>

            <div class="rk-pc-result-columns">
              <div class="rk-pc-result-box"><h4>Co można już rozpocząć</h4><ul id="rk-pc-ready-list"><li class="rk-pc-empty">Najpierw uzupełnij odpowiedzi audytu.</li></ul></div>
              <div class="rk-pc-result-box is-missing"><h4>Co trzeba uzupełnić lub potwierdzić</h4><ul id="rk-pc-missing-list"><li class="rk-pc-empty">Lista braków pojawi się po analizie.</li></ul></div>
            </div>
            <p class="rk-pc-tool-foot"><strong>Ważne:</strong> wynik opisuje kompletność zadeklarowanych materiałów. Nie sprawdza poprawności współczynników U, jakości OZC, nośności stropu, zgodności wybranej pompy ani faktycznych możliwości hydraulicznych pętli. Nie jest projektem ani odbiorem technicznym.</p>
          </div>
        </div>
      </section>

      <aside class="rk-heat-sales-cta" aria-label="Zaproszenie do zamówienia projektu po audycie">
        <div class="rk-hp-cta-limits"><strong>Audyt pokazał, które dane są już gotowe, ale nie wyznacza rozstawów, długości pętli ani nastaw rozdzielacza.</strong> Do tego trzeba przypisać obciążenia do konkretnych pomieszczeń, nanieść czynne pola grzewcze na rzut i sprawdzić hydraulikę każdego obwodu.</div>
        <h3>Zamień komplet danych w dokumentację wykonawczą</h3>
        <p>Projekt łączy obciążenia cieplne, układ rur, długości, przepływy, nastawy i parametry wody w jednym spójnym opracowaniu dla wykonawcy.</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego</a>
      </aside>

      <section class="rk-heat-section" id="rk-pc-dokumentacja">
        <span class="rk-heat-eyebrow">Efekt pracy projektowej</span>
        <h2>Co klient powinien otrzymać w dokumentacji?</h2>
        <p class="rk-heat-intro">Zakres musi być opisany przed zamówieniem. Sam plik z liniami rur nie daje wszystkich danych potrzebnych do regulacji i weryfikacji instalacji.</p>
        <ol class="rk-pc-doc-list">
          <li><b>Założenia i bilans cieplny</b><span>Temperatury, warunki zewnętrzne, dane przegród, wentylacja oraz obciążenia pomieszczeń.</span></li>
          <li><b>Rzuty z geometrią pętli</b><span>Rozstawy, kierunki prowadzenia, strefy brzegowe, obszary bez rur, dylatacje, dobiegi i oznaczenia obwodów.</span></li>
          <li><b>Tabela obliczeniowa obwodów</b><span>Powierzchnie, moce, długości, przepływy, straty ciśnienia i parametry pracy.</span></li>
          <li><b>Dobór rozdzielaczy i magistrali</b><span>Liczba sekcji, przypisanie pętli, wymagane przepływy, średnice i obwód krytyczny.</span></li>
          <li><b>Nastawy uruchomieniowe</b><span>Wartości dla rotametrów lub zaworów oraz założona różnica temperatur.</span></li>
          <li><b>Opis współpracy z pompą ciepła</b><span>Projektowy punkt wody, wymagania przepływowe, założenia sterowania i elementy do potwierdzenia dla urządzenia.</span></li>
        </ol>
        <p>Warto przed zamówieniem sprawdzić także <a href="https://projekt-ogrzewania.pl/ile-kosztuje-projekt-ogrzewania-podlogowego/">co wpływa na cenę projektu ogrzewania podłogowego</a>. Liczy się zakres obliczeń, stopień skomplikowania budynku i jakość danych, a nie tylko liczba metrów kwadratowych.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-czytanie">
        <span class="rk-heat-eyebrow">Rzut i tabela muszą mówić tym samym językiem</span>
        <h2>Jak czytać oznaczenia pętli i tabelę nastaw?</h2>
        <p>Każdy obwód powinien mieć jednoznaczny symbol widoczny zarówno na rzucie, jak i w zestawieniu. Przykładowe oznaczenie R1/P3 może oznaczać trzecią pętlę pierwszego rozdzielacza, ale legenda projektu powinna wyjaśniać przyjęty system.</p>
        <div class="rk-heat-table-wrap">
          <table>
            <thead><tr><th>Pole tabeli</th><th>Jak je rozumieć</th><th>Co sprawdzić na budowie</th></tr></thead>
            <tbody>
              <tr><td data-label="Pole">Pomieszczenie / strefa</td><td data-label="Znaczenie">Obszar obsługiwany przez pętlę.</td><td data-label="Kontrola">Czy przebieg na rzucie odpowiada opisowi.</td></tr>
              <tr><td data-label="Pole">Rozstaw [cm]</td><td data-label="Znaczenie">Odległość między sąsiednimi osiami rur w danej strefie.</td><td data-label="Kontrola">Czy nie został samowolnie zmieniony.</td></tr>
              <tr><td data-label="Pole">Długość [m]</td><td data-label="Znaczenie">Rura pola grzewczego wraz z dobiegami.</td><td data-label="Kontrola">Rzeczywistą długość zapisaną po montażu.</td></tr>
              <tr><td data-label="Pole">Przepływ [l/min]</td><td data-label="Znaczenie">Wartość obliczona dla mocy pętli i przyjętej ΔT.</td><td data-label="Kontrola">Odczyt po odpowietrzeniu i ustabilizowaniu pracy.</td></tr>
              <tr><td data-label="Pole">Δp [kPa]</td><td data-label="Znaczenie">Spadek ciśnienia pełnej drogi obwodu.</td><td data-label="Kontrola">Czy pompa zapewnia punkt pracy dla krytycznej drogi.</td></tr>
            </tbody>
          </table>
        </div>
        <p>Wylewkę, izolację i warunki montażu trzeba czytać razem z rzutem instalacji. Zmiana rodzaju <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">wylewki na ogrzewanie podłogowe</a> albo grubości <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">izolacji pod podłogówką</a> może wymagać sprawdzenia przekroju, wysokości i parametrów cieplnych.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-scenariusze">
        <span class="rk-heat-eyebrow">Inne dane, ta sama kolejność obliczeń</span>
        <h2>Nowy dom, modernizacja i instalacja mieszana</h2>
        <div class="rk-heat-grid-3">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">N</span><h3>Nowy budynek</h3><p>Najłatwiej skoordynować grubości podłogi, dylatacje, zabudowę i lokalizacje rozdzielaczy przed rozpoczęciem robót.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">M</span><h3>Modernizacja</h3><p>Trzeba sprawdzić rzeczywiste przegrody, dostępną wysokość, nośność, stan źródła i ograniczenia istniejących tras.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">2</span><h3>Podłoga i grzejniki</h3><p>Dwa typy odbiorników wymagają spójnych parametrów, prawidłowej hydrauliki i świadomej regulacji.</p></div>
        </div>
        <h3>Projekt przed wyborem modelu pompy</h3>
        <p>Można rozpocząć od bilansu i instalacji odbiorczej, a następnie wyznaczyć warunki, które musi spełnić źródło. Ostateczne sprawdzenie wymaga jednak charakterystyki konkretnego urządzenia: mocy w punkcie projektowym, zakresu modulacji, minimalnego przepływu oraz zaleceń hydraulicznych.</p>
        <h3>Projekt po wyborze pompy</h3>
        <p>Jeżeli model jest już kupiony, instalację należy policzyć bez naginania wyników do urządzenia. Gdy charakterystyka nie pasuje do obciążenia lub wymaganej temperatury, projekt powinien to jasno wskazać wraz z możliwymi zmianami.</p>
      </section>

      <section class="rk-heat-section" id="rk-pc-bledy">
        <span class="rk-heat-eyebrow">Jak rozpoznać niepełną usługę</span>
        <h2>Najczęstsze błędy w ofertach na „projekt podłogówki”</h2>
        <div class="rk-heat-grid-2">
          <div class="rk-heat-card"><span class="rk-heat-card-icon">1</span><h3>Rozstaw wszędzie taki sam</h3><p>Brak obciążeń pomieszczeń i oceny aktywnej powierzchni jest zastąpiony jedną regułą wykonawczą.</p></div>
          <div class="rk-heat-card is-orange"><span class="rk-heat-card-icon">2</span><h3>Brak dobiegów w długościach</h3><p>Pętle wyglądają poprawnie w tabeli, ale rzeczywista rura i opór rosną po doliczeniu drogi do rozdzielacza.</p></div>
          <div class="rk-heat-card is-green"><span class="rk-heat-card-icon">3</span><h3>Równe przepływy dla wszystkich</h3><p>Nastawy nie wynikają z mocy poszczególnych obwodów ani przyjętej różnicy temperatur.</p></div>
          <div class="rk-heat-card is-purple"><span class="rk-heat-card-icon">4</span><h3>Brak punktu pracy pompy ciepła</h3><p>W dokumentacji widnieje 35°C, lecz nie sprawdzono mocy podłogi i źródła przy warunkach projektowych.</p></div>
        </div>
        <ul class="rk-heat-list">
          <li>Projekt powstał wyłącznie z powierzchni domu i informacji „pompa 8 kW”.</li>
          <li>Nie rozróżnia powierzchni całkowitej od czynnej.</li>
          <li>Nie podaje oporu okładzin ani ograniczeń ich temperatury.</li>
          <li>Nie pokazuje przepływów, strat ciśnienia i obwodu krytycznego.</li>
          <li>Nie koordynuje rur z dylatacjami i stałą zabudową.</li>
          <li>Nie opisuje minimalnego przepływu po zamknięciu stref.</li>
        </ul>
        <div class="rk-heat-warning"><p><strong>Ładny rzut nie dowodzi kompletności.</strong> Najważniejsza jest możliwość prześledzenia drogi od obciążenia pomieszczenia do ułożenia rur, przepływu i nastawy.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-checklista">
        <span class="rk-heat-eyebrow">Przed zleceniem i przed zalaniem rur</span>
        <h2>Checklista inwestora do projektu z pompą ciepła</h2>
        <ul class="rk-heat-checklist">
          <li>Rzuty i przekroje są aktualne, zwymiarowane i zgodne z budową.</li>
          <li>Konstrukcje przegród oraz dane wentylacji odpowiadają docelowemu stanowi.</li>
          <li>Podano temperaturę obliczeniową każdego pomieszczenia.</li>
          <li>OZC zawiera wyniki pomieszczeń, nie tylko sumę całego domu.</li>
          <li>Stała zabudowa i wszystkie strefy bez rur są uzgodnione.</li>
          <li>Znane są planowane okładziny i opory całego wykończenia.</li>
          <li>Rozdzielacze mają zaakceptowane, dostępne serwisowo lokalizacje.</li>
          <li>Rzut pokazuje rozstaw, przebieg i oznaczenie każdej pętli.</li>
          <li>Długości obejmują zasilający oraz powrotny dobieg.</li>
          <li>Tabela podaje moce, przepływy, opory i nastawy obwodów.</li>
          <li>Magistrala oraz pompa obiegowa są sprawdzone dla punktu pracy.</li>
          <li>Moc pompy ciepła jest oceniona dla właściwego punktu A/W.</li>
          <li>Zweryfikowano minimalny przepływ, objętość i zachowanie przy defroście.</li>
          <li>Logika stref nie odcina źródłu wymaganej drogi przepływu.</li>
          <li>Zmiany wykonawcze są nanoszone przed zakryciem instalacji.</li>
          <li>Po montażu zapisano długości, próbę, płukanie i nastawy uruchomieniowe.</li>
        </ul>
        <div class="rk-heat-success"><p><strong>Najlepszy moment na korektę to etap projektu.</strong> Po wykonaniu jastrychu pozostaje regulacja istniejącego układu, a nie swobodna zmiana jego geometrii i dostępnej powierzchni.</p></div>
      </section>

      <section class="rk-heat-section" id="rk-pc-faq">
        <span class="rk-heat-eyebrow">Najczęstsze pytania inwestorów</span>
        <h2>FAQ: projekt ogrzewania podłogowego z pompą ciepła</h2>
        <div class="rk-heat-faq">
          <details><summary>Czy do projektu podłogówki potrzebne jest OZC?</summary><div class="rk-heat-faq-answer"><p>Potrzebne są wiarygodne obciążenia cieplne poszczególnych pomieszczeń. Pełne OZC dostarcza te wyniki i założenia budynku. Sama suma mocy całego domu nie pozwala dobrać rozstawów i przepływów lokalnie.</p></div></details>
          <details><summary>Czy przy pompie ciepła wszędzie stosuje się rozstaw 10 cm?</summary><div class="rk-heat-faq-answer"><p>Nie. Rozstaw wynika z obciążenia pomieszczenia, aktywnej powierzchni, temperatur wody, konstrukcji podłogi i oporu okładziny. Źródło wpływa na preferowany zakres temperatur, ale nie wyznacza rozstawu samodzielnie.</p></div></details>
          <details><summary>Czy projekt zawsze przyjmuje zasilanie 35°C?</summary><div class="rk-heat-faq-answer"><p>Nie. To częsty punkt odniesienia dla niskotemperaturowej instalacji, lecz właściwe zasilanie i powrót wynikają z wymaganej wydajności. Projekt powinien sprawdzić wszystkie pomieszczenia przy wspólnych parametrach.</p></div></details>
          <details><summary>Czy jest jedna maksymalna długość pętli?</summary><div class="rk-heat-faq-answer"><p>Nie ma uniwersalnej wartości właściwej dla każdej instalacji. Dopuszczalna długość zależy od średnicy, przepływu, oporów rury i armatury, dostępnego budżetu ciśnienia, dobiegu oraz założeń regulacji.</p></div></details>
          <details><summary>Czy każda pompa ciepła potrzebuje bufora?</summary><div class="rk-heat-faq-answer"><p>Nie. Potrzeba i sposób włączenia bufora wynikają z funkcji, jaką ma pełnić, oraz z wymagań źródła: minimalnego przepływu, objętości, defrostu, modulacji i zachowania stref.</p></div></details>
          <details><summary>Czy można wykonać projekt przed wyborem pompy ciepła?</summary><div class="rk-heat-faq-answer"><p>Można policzyć obciążenia i zaprojektować instalację odbiorczą, a z wyników wyprowadzić wymagania dla źródła. Ostateczne sprawdzenie całego układu wymaga jednak danych konkretnego urządzenia.</p></div></details>
          <details><summary>Jakie pliki są potrzebne do projektu online?</summary><div class="rk-heat-faq-answer"><p>Najlepiej przygotować aktualne rzuty i przekroje, konstrukcje przegród, dane wentylacji, lokalizację, plan okładzin i stałej zabudowy, miejsca rozdzielaczy oraz dane wybranej pompy, jeżeli jest już określona.</p></div></details>
          <details><summary>Czy projekt można przygotować do modernizowanego domu?</summary><div class="rk-heat-faq-answer"><p>Tak, ale dane wejściowe muszą odzwierciedlać stan po modernizacji. Trzeba zweryfikować istniejące przegrody, dostępną wysokość podłogi, nośność, trasy oraz warunki pracy pozostawionych elementów instalacji.</p></div></details>
          <details><summary>Czy nastawy rotametrów wystarczy podać jednakowe?</summary><div class="rk-heat-faq-answer"><p>Nie. Przepływ powinien odpowiadać mocy przypisanej do danej pętli oraz przyjętej różnicy temperatur. Równe wartości mogą być przypadkiem, ale nie powinny wynikać z automatycznego podziału przepływu.</p></div></details>
          <details><summary>Czy wynik interaktywnego audytu jest projektem?</summary><div class="rk-heat-faq-answer"><p>Nie. Audyt porządkuje deklarowaną kompletność materiałów. Nie liczy obciążeń, temperatur powierzchni, rozstawów, długości, strat ciśnienia ani nastaw i nie weryfikuje dokumentacji konkretnej pompy.</p></div></details>
        </div>
      </section>

      <section class="rk-heat-section" id="rk-pc-zrodla">
        <span class="rk-heat-eyebrow">Dokumenty instytucjonalne</span>
        <h2>Źródła wykorzystane do aktualizacji technicznej</h2>
        <p>Źródła zewnętrzne ograniczono do instytucji publicznych i organizacji normalizacyjnej. Dane konkretnego urządzenia trzeba dodatkowo potwierdzić w jego aktualnej dokumentacji technicznej.</p>
        <div class="rk-heat-sources">
          <div class="rk-heat-source"><strong><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — projektowa wydajność systemów powierzchniowych</a></strong><p>Norma opisuje metody wyznaczania mocy powierzchni grzewczych i chłodzących na podstawie parametrów systemu, temperatur i konstrukcji.</p></div>
          <div class="rk-heat-source"><strong><a href="https://www.gov.uk/government/news/heat-pumps-explained-experts-answer-your-questions" target="_blank" rel="nofollow noopener noreferrer">GOV.UK — Heat pumps explained</a></strong><p>Materiał rządowy omawia znaczenie strat ciepła, właściwego wymiarowania odbiorników i pracy pomp w chłodnych warunkach.</p></div>
          <div class="rk-heat-source"><strong><a href="https://assets.publishing.service.gov.uk/media/606c39c38fa8f515b4067b08/beis-dhds-final-report__1_.pdf" target="_blank" rel="nofollow noopener noreferrer">BEIS — Heat distribution systems evidence gathering</a></strong><p>Raport analizuje systemy dystrybucji ciepła, temperatury pracy oraz możliwość pokrycia obciążenia przez odbiorniki.</p></div>
          <div class="rk-heat-source"><strong><a href="https://single-market-economy.ec.europa.eu/single-market/goods/european-standards/harmonised-standards/ecodesign-and-energy-labelling-space-heaters_en" target="_blank" rel="nofollow noopener noreferrer">Komisja Europejska — ekoprojekt i etykietowanie ogrzewaczy pomieszczeń</a></strong><p>Oficjalna strona gromadzi ramy i odniesienia dotyczące ekoprojektu oraz informacji energetycznych dla urządzeń grzewczych.</p></div>
        </div>
      </section>

      <section class="rk-heat-author" id="rk-heat-autor" aria-label="Autor opracowania">
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-about" checked="">
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-exp">
        <input type="radio" name="rk-heat-author-tabs" id="rk-heat-author-method">
        <header class="rk-heat-author-head">
          <div><span class="rk-heat-eyebrow">Autor i odpowiedzialność merytoryczna</span><h2>Robert Kucharski</h2><p>Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego.</p></div>
          <span class="rk-heat-author-mark">OZC • OGRZEWANIE PŁASZCZYZNOWE • HYDRAULIKA • POMPY CIEPŁA</span>
        </header>
        <div class="rk-heat-author-layout">
          <aside class="rk-heat-author-side">
            <div class="rk-heat-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant instalacji sanitarnych i ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
            <div class="rk-heat-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/" style="color:#fff;text-decoration:none">Robert Kucharski</a></div>
            <div class="rk-heat-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
            <div class="rk-heat-author-social-label">Profile autora</div>
            <div class="rk-heat-author-social" aria-label="Profile Roberta Kucharskiego w mediach społecznościowych">
              <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="nofollow noopener noreferrer" aria-label="LinkedIn Roberta Kucharskiego"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4.98 3.5C4.98 4.88 3.87 6 2.5 6S.02 4.88.02 3.5 1.13 1 2.5 1s2.48 1.12 2.48 2.5zM.34 8h4.32v14H.34V8zm7.02 0h4.14v1.91h.06c.58-1.1 1.99-2.26 4.1-2.26 4.38 0 5.19 2.9 5.19 6.66V22h-4.31v-6.82c0-1.63-.03-3.72-2.26-3.72-2.27 0-2.62 1.78-2.62 3.6V22H7.36V8z"></path></svg></a>
              <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer" aria-label="Facebook Projekt Ogrzewania"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M24 12.07C24 5.4 18.63 0 12 0S0 5.4 0 12.07C0 18.1 4.39 23.1 10.13 24v-8.44H7.08v-3.49h3.05V9.41c0-3.03 1.79-4.7 4.53-4.7 1.31 0 2.68.24 2.68.24v2.96h-1.51c-1.49 0-1.96.93-1.96 1.89v2.27h3.33l-.53 3.49h-2.8V24C19.61 23.1 24 18.1 24 12.07z"></path></svg></a>
              <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer" aria-label="Profil Projekt HVAC w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.24 2H21.9l-8 9.14L23.31 22h-7.37l-5.77-7.55L3.56 22H-.11l8.39-9.59L-.75 2h7.56l5.22 6.9L18.24 2zm-1.28 18.09h2.03L5.7 3.81H3.52l13.44 16.28z"></path></svg></a>
            </div>
          </aside>
          <div class="rk-heat-author-main">
            <blockquote class="rk-heat-author-quote"><p>„Projekt z pompą ciepła jest spójny dopiero wtedy, gdy obciążenie każdego pokoju prowadzi do konkretnej geometrii pętli, przepływu, nastawy i wspólnego punktu pracy źródła.”</p></blockquote>
            <div class="rk-heat-author-tabs" role="tablist" aria-label="Informacje o autorze">
              <label class="rk-heat-author-tab" for="rk-heat-author-about">O autorze</label>
              <label class="rk-heat-author-tab" for="rk-heat-author-exp">Doświadczenie</label>
              <label class="rk-heat-author-tab" for="rk-heat-author-method">Metodyka pracy</label>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-about">
              <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia strat ciepła i analizy hydrauliczne dla budynków nowych oraz modernizowanych. W dokumentacji łączy parametry przegród i wentylacji z rzeczywistą geometrią pomieszczeń, powierzchnią czynną, konstrukcją podłogi i wymaganiami źródła.</p>
              <p>Specjalizuje się w niskotemperaturowych instalacjach wodnych współpracujących z pompami ciepła. Przygotowuje rozstawy i przebiegi rur, podział na pętle, zestawienia długości, przepływów i strat ciśnienia oraz nastawy rozdzielaczy, które wykonawca może zweryfikować podczas uruchomienia.</p>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-exp">
              <p>Praktyka projektowa pokazuje, że problemy najczęściej powstają na styku branż: zmienia się okładzina, zabudowa zmniejsza aktywną powierzchnię, rozdzielacz trafia w inne miejsce albo strefy odcinają przepływ wymagany przez pompę. Dlatego dokumentacja powinna ujawniać zależności, a nie tylko przedstawiać estetyczny rysunek.</p>
              <p>Doświadczenie obejmuje ocenę obciążeń pomieszczeń, systemów mokrych i suchych, instalacji mieszanych, dużych przeszkleń, ograniczeń modernizacyjnych oraz hydrauliki rozdzielaczy i wspólnych magistrali.</p>
            </div>
            <div class="rk-heat-author-panel rk-heat-author-panel-method">
              <p>Metodyka zaczyna się od jawnych danych wejściowych. Kolejne wyniki — moc pomieszczenia, wymagana wydajność, rozstaw, długość, przepływ i opór — muszą tworzyć możliwy do prześledzenia łańcuch. Założenia odróżnia się od wartości obliczonych oraz danych konkretnego urządzenia.</p>
              <p>Interaktywne narzędzia na portalu mają funkcję edukacyjną: pomagają uporządkować dane i zrozumieć zależności. Nie zastępują dokumentacji wykonawczej, koordynacji budowlanej ani sprawdzenia aktualnych wymagań wybranego źródła.</p>
            </div>
            <div class="rk-heat-mini-label">Portale autora</div>
            <div class="rk-heat-portals">
              <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
              <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a>
              <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>
            </div>
          </div>
        </div>
      </section>

      <aside class="rk-heat-sales-cta" aria-label="Końcowe zaproszenie do zamówienia projektu">
        <h3>Otrzymaj projekt, według którego można ułożyć i wyregulować podłogówkę</h3>
        <p>Przygotujemy dokumentację z obliczeniami pomieszczeń, układem pętli, rozstawami, długościami, przepływami, stratami ciśnienia i nastawami rozdzielacza — z uwzględnieniem współpracy z pompą ciepła.</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
      </aside>
    </div>
  </article>
</div>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "inLanguage": "pl-PL",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://remont.biz.pl/#organization",
      "name": "Remont.biz.pl",
      "url": "https://remont.biz.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Organization",
      "@id": "https://sobir.pl/#organization",
      "name": "Sobir.pl",
      "url": "https://sobir.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "pompy ciepła",
        "projektowe obciążenie cieplne",
        "hydraulika instalacji grzewczych",
        "dobór przepływów",
        "równoważenie hydrauliczne"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Strona główna",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://projekt-ogrzewania.pl/blog/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Projekt ogrzewania podłogowego z pompą ciepła",
          "item": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webpage",
      "url": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/",
      "name": "Projekt ogrzewania podłogowego z pompą ciepła – obliczenia, rozstaw rur i hydraulika",
      "description": "Kompletny przewodnik po projekcie ogrzewania podłogowego z pompą ciepła: OZC, powierzchnia czynna, rozstawy, pętle, przepływy, temperatury i nastawy.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#breadcrumb" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article" },
      "inLanguage": "pl-PL",
      "dateModified": "2026-09-07"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#article",
      "url": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/",
      "headline": "Projekt ogrzewania podłogowego z pompą ciepła – obliczenia, rozstaw rur i hydraulika",
      "description": "Jak połączyć OZC pomieszczeń, wydajność podłogi, geometrię pętli, hydraulikę oraz wymagania pompy ciepła w dokumentacji wykonawczej.",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#webpage" },
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "dateModified": "2026-09-07",
      "inLanguage": "pl-PL",
      "proficiencyLevel": "Beginner to Expert",
      "about": [
        { "@type": "Thing", "name": "Projekt ogrzewania podłogowego" },
        { "@type": "Thing", "name": "Pompa ciepła" },
        { "@type": "Thing", "name": "Projektowe obciążenie cieplne" },
        { "@type": "Thing", "name": "Hydraulika instalacji grzewczej" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#audyt",
      "name": "Interaktywny audyt kompletności danych do projektu podłogówki z pompą ciepła",
      "url": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#rk-pc-audyt",
      "applicationCategory": "EducationalApplication",
      "applicationSubCategory": "Narzędzie do weryfikacji kompletności danych projektowych",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "Włączona obsługa JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "featureList": [
        "Ocena kompletności danych do bilansu cieplnego",
        "Ocena danych podłogi i powierzchni czynnej",
        "Ocena danych geometrii i hydrauliki",
        "Ocena danych pompy ciepła i sterowania",
        "Dynamiczna lista braków do uzupełnienia"
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#howto",
      "name": "Jak przygotować projekt ogrzewania podłogowego z pompą ciepła",
      "description": "Kolejność prac od danych budynku do dokumentacji wykonawczej i nastaw.",
      "inLanguage": "pl-PL",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zbierz dokumentację budynku",
          "text": "Przygotuj rzuty, przekroje, konstrukcje przegród, dane wentylacji, temperatury i lokalizację."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Oblicz obciążenia cieplne",
          "text": "Wyznacz projektową moc całego budynku oraz każdego ogrzewanego pomieszczenia."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Wyznacz aktywne powierzchnie",
          "text": "Uwzględnij stałą zabudowę, strefy bez rur, okładziny i kompletną konstrukcję podłogi."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Dobierz układ rur",
          "text": "Sprawdź wydajność rozstawów przy wspólnych parametrach wody i rozplanuj pętle z dobiegami."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Policz hydraulikę",
          "text": "Wyznacz przepływy, spadki ciśnienia, obwód krytyczny, magistrale i nastawy rozdzielaczy."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Sprawdź współpracę ze źródłem",
          "text": "Porównaj moc pompy ciepła w projektowym punkcie A/W oraz wymagania przepływu, objętości i sterowania."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy do projektu podłogówki potrzebne jest OZC?",
          "acceptedAnswer": { "@type": "Answer", "text": "Potrzebne są wiarygodne obciążenia cieplne poszczególnych pomieszczeń. Pełne OZC dostarcza te wyniki i założenia budynku. Sama suma mocy całego domu nie pozwala dobrać rozstawów i przepływów lokalnie." }
        },
        {
          "@type": "Question",
          "name": "Czy przy pompie ciepła wszędzie stosuje się rozstaw 10 cm?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rozstaw wynika z obciążenia pomieszczenia, aktywnej powierzchni, temperatur wody, konstrukcji podłogi i oporu okładziny. Źródło wpływa na preferowany zakres temperatur, ale nie wyznacza rozstawu samodzielnie." }
        },
        {
          "@type": "Question",
          "name": "Czy projekt zawsze przyjmuje zasilanie 35°C?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. To częsty punkt odniesienia dla niskotemperaturowej instalacji, lecz właściwe zasilanie i powrót wynikają z wymaganej wydajności. Projekt powinien sprawdzić wszystkie pomieszczenia przy wspólnych parametrach." }
        },
        {
          "@type": "Question",
          "name": "Czy jest jedna maksymalna długość pętli?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie ma uniwersalnej wartości właściwej dla każdej instalacji. Dopuszczalna długość zależy od średnicy, przepływu, oporów rury i armatury, dostępnego budżetu ciśnienia, dobiegu oraz założeń regulacji." }
        },
        {
          "@type": "Question",
          "name": "Czy każda pompa ciepła potrzebuje bufora?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Potrzeba i sposób włączenia bufora wynikają z funkcji, jaką ma pełnić, oraz z wymagań źródła: minimalnego przepływu, objętości, defrostu, modulacji i zachowania stref." }
        },
        {
          "@type": "Question",
          "name": "Czy można wykonać projekt przed wyborem pompy ciepła?",
          "acceptedAnswer": { "@type": "Answer", "text": "Można policzyć obciążenia i zaprojektować instalację odbiorczą, a z wyników wyprowadzić wymagania dla źródła. Ostateczne sprawdzenie całego układu wymaga jednak danych konkretnego urządzenia." }
        },
        {
          "@type": "Question",
          "name": "Jakie pliki są potrzebne do projektu online?",
          "acceptedAnswer": { "@type": "Answer", "text": "Najlepiej przygotować aktualne rzuty i przekroje, konstrukcje przegród, dane wentylacji, lokalizację, plan okładzin i stałej zabudowy, miejsca rozdzielaczy oraz dane wybranej pompy, jeżeli jest już określona." }
        },
        {
          "@type": "Question",
          "name": "Czy projekt można przygotować do modernizowanego domu?",
          "acceptedAnswer": { "@type": "Answer", "text": "Tak, ale dane wejściowe muszą odzwierciedlać stan po modernizacji. Trzeba zweryfikować istniejące przegrody, dostępną wysokość podłogi, nośność, trasy oraz warunki pracy pozostawionych elementów instalacji." }
        },
        {
          "@type": "Question",
          "name": "Czy nastawy rotametrów wystarczy podać jednakowe?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Przepływ powinien odpowiadać mocy przypisanej do danej pętli oraz przyjętej różnicy temperatur. Równe wartości mogą być przypadkiem, ale nie powinny wynikać z automatycznego podziału przepływu." }
        },
        {
          "@type": "Question",
          "name": "Czy wynik interaktywnego audytu jest projektem?",
          "acceptedAnswer": { "@type": "Answer", "text": "Nie. Audyt porządkuje deklarowaną kompletność materiałów. Nie liczy obciążeń, temperatur powierzchni, rozstawów, długości, strat ciśnienia ani nastaw i nie weryfikuje dokumentacji konkretnej pompy." }
        }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";

  var root = document.getElementById("rk-pc-tool");
  if (!root) {
    return;
  }

  var fields = root.querySelectorAll("select[data-group]");
  var button = document.getElementById("rk-pc-run");
  var scoreNode = document.getElementById("rk-pc-score");
  var titleNode = document.getElementById("rk-pc-summary-title");
  var textNode = document.getElementById("rk-pc-summary-text");
  var readyList = document.getElementById("rk-pc-ready-list");
  var missingList = document.getElementById("rk-pc-missing-list");

  var groupOrder = ["balance", "floor", "hydraulics", "source"];
  var groupNames = {
    balance: "Bilans cieplny",
    floor: "Powierzchnia grzewcza",
    hydraulics: "Hydraulika",
    source: "Źródło i sterowanie"
  };
  var groupCapabilities = {
    balance: "Można oprzeć bilans na zadeklarowanych materiałach i zweryfikować obciążenia pomieszczeń.",
    floor: "Można rozpocząć wyznaczanie powierzchni czynnych i wariantów wydajności podłogi.",
    hydraulics: "Można rozpocząć geometrię pętli, dobiegów, magistrali oraz obwodów krytycznych.",
    source: "Można rozpocząć sprawdzanie punktu A/W, minimalnego przepływu i logiki sterowania."
  };

  function clearNode(node) {
    while (node.firstChild) {
      node.removeChild(node.firstChild);
    }
  }

  function addListItem(list, textValue) {
    var item = document.createElement("li");
    item.textContent = textValue;
    list.appendChild(item);
  }

  function evaluateGroup(groupName) {
    var groupFields = root.querySelectorAll('select[data-group="' + groupName + '"]');
    var points = 0;
    var complete = 0;
    var criticalMissing = false;

    Array.prototype.forEach.call(groupFields, function (field) {
      var value = Number(field.value);
      points += value;
      if (value === 2) {
        complete += 1;
      }
      if (value === 0) {
        var question = field.closest(".rk-heat-question");
        if (question) {
          if (question.classList.contains("is-critical")) {
            criticalMissing = true;
          }
        }
      }
    });

    var maxPoints = groupFields.length * 2;
    var state = "blocked";
    var label = "Blokuje część obliczeń";

    if (points >= maxPoints - 1) {
      if (!criticalMissing) {
        state = "ready";
        label = "Gotowe do rozpoczęcia";
      }
    }
    if (state === "blocked") {
      if (!criticalMissing) {
        if (points >= Math.ceil(maxPoints / 2)) {
          state = "partial";
          label = "Wymaga uzupełnienia";
        }
      }
    }

    return {
      state: state,
      label: label,
      points: points,
      maxPoints: maxPoints,
      complete: complete
    };
  }

  function paintStage(groupName, result) {
    var card = document.getElementById("rk-pc-stage-" + groupName);
    var status = document.getElementById("rk-pc-status-" + groupName);
    if (!card) {
      return;
    }
    card.classList.remove("is-ready", "is-partial");
    if (result.state === "ready") {
      card.classList.add("is-ready");
    } else if (result.state === "partial") {
      card.classList.add("is-partial");
    }
    if (status) {
      status.textContent = result.label + " • " + result.points + "/" + result.maxPoints + " pkt";
    }
  }

  function runAudit() {
    var totalPoints = 0;
    var totalMax = fields.length * 2;
    var completeCount = 0;
    var readyGroups = 0;
    var blockedGroups = 0;
    var results = {};

    groupOrder.forEach(function (groupName) {
      var result = evaluateGroup(groupName);
      results[groupName] = result;
      totalPoints += result.points;
      completeCount += result.complete;
      if (result.state === "ready") {
        readyGroups += 1;
      }
      if (result.state === "blocked") {
        blockedGroups += 1;
      }
      paintStage(groupName, result);
    });

    var percent = Math.round((totalPoints / totalMax) * 100);
    scoreNode.textContent = percent + "%";
    scoreNode.setAttribute("aria-label", percent + " procent punktów kompletności; " + completeCount + " z " + fields.length + " pozycji ma status komplet");
    scoreNode.style.borderColor = "#ff8b7f";

    if (percent >= 75) {
      scoreNode.style.borderColor = "#ffd568";
    }
    if (percent >= 90) {
      scoreNode.style.borderColor = "#4cd7ac";
    }

    if (readyGroups === groupOrder.length) {
      titleNode.textContent = "Wszystkie cztery warstwy mają komplet deklarowanych danych";
      textNode.textContent = "Można przejść do szczegółowej weryfikacji jakości materiałów i właściwych obliczeń projektowych.";
    } else if (blockedGroups > 0) {
      titleNode.textContent = "Braki blokują część obliczeń projektowych";
      textNode.textContent = "Kompletne odpowiedzi: " + completeCount + " z " + fields.length + ". Najpierw uzupełnij pozycje oznaczone jako brak, zwłaszcza dane krytyczne.";
    } else {
      titleNode.textContent = "Materiały pozwalają zacząć, ale wymagają potwierdzenia";
      textNode.textContent = "Kompletne odpowiedzi: " + completeCount + " z " + fields.length + ". Pozycje częściowe mogą wymagać pytań i jawnych założeń.";
    }

    clearNode(readyList);
    clearNode(missingList);

    groupOrder.forEach(function (groupName) {
      var result = results[groupName];
      if (result.state === "ready") {
        addListItem(readyList, groupCapabilities[groupName]);
      } else if (result.state === "partial") {
        addListItem(readyList, groupNames[groupName] + ": można rozpocząć pracę wstępną, ale wynik pozostanie warunkowy.");
      }
    });

    if (!readyList.firstChild) {
      addListItem(readyList, "Na tym etapie warto zacząć od uporządkowania dokumentacji bazowej.");
    }

    Array.prototype.forEach.call(fields, function (field) {
      var value = Number(field.value);
      var itemLabel = field.getAttribute("data-label");
      if (value === 0) {
        addListItem(missingList, "Brak: " + itemLabel + ".");
      } else if (value === 1) {
        addListItem(missingList, "Do potwierdzenia: " + itemLabel + ".");
      }
    });

    if (!missingList.firstChild) {
      addListItem(missingList, "Brak zadeklarowanych luk. Kolejny krok to kontrola jakości i aktualności danych.");
    }
  }

  Array.prototype.forEach.call(fields, function (field) {
    field.addEventListener("change", runAudit);
  });

  if (button) {
    button.addEventListener("click", runAudit);
  }

  runAudit();
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">Projekt ogrzewania podłogowego z pompą ciepła – obliczenia, rozstaw rur i hydraulika</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
