<?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 Ogrzewanie podłogowe - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sun, 04 Oct 2026 08:37:05 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Ogrzewanie podłogowe - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kalkulator glikolu do instalacji CO – stężenie, litry i temperatura zamarzania.</title>
		<link>https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/</link>
					<comments>https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 04 Oct 2026 08:37:02 +0000</pubDate>
				<category><![CDATA[Centralne ogrzewanie]]></category>
		<category><![CDATA[Eksploatacja instalacji]]></category>
		<category><![CDATA[Glikol]]></category>
		<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 instalacji]]></category>
		<category><![CDATA[glikol do instalacji co]]></category>
		<category><![CDATA[glikol do ogrzewania]]></category>
		<category><![CDATA[glikol etylenowy]]></category>
		<category><![CDATA[glikol propylenowy]]></category>
		<category><![CDATA[glikol w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[hydraulika instalacji co]]></category>
		<category><![CDATA[ile glikolu do instalacji]]></category>
		<category><![CDATA[kalkulator glikolu do instalacji co]]></category>
		<category><![CDATA[kalkulator instalacji grzewczej]]></category>
		<category><![CDATA[koncentrat glikolu]]></category>
		<category><![CDATA[mieszanina glikolu z wodą]]></category>
		<category><![CDATA[napełnianie instalacji co]]></category>
		<category><![CDATA[płyn do instalacji co]]></category>
		<category><![CDATA[stężenie glikolu]]></category>
		<category><![CDATA[temperatura zamarzania glikolu]]></category>
		<category><![CDATA[zład instalacji co]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7807</guid>

					<description><![CDATA[<p>Dobór właściwej ilości glikolu do instalacji grzewczej nie powinien opierać się na zgadywaniu ani prostym założeniu, że określony procent mieszaniny sprawdzi się w każdym układzie. Kalkulator glikolu do instalacji CO pozwala obliczyć potrzebną ilość koncentratu, docelowe stężenie mieszaniny oraz orientacyjną temperaturę początku zamarzania. Narzędzie przyda się zarówno przy pierwszym napełnianiu instalacji, jak i podczas korekty istniejącego stężenia czy uzupełniania ubytku płynu. W poradniku wyjaśniamy również różnice między glikolem propylenowym i etylenowym, wpływ mieszaniny na hydraulikę instalacji oraz najczęstsze błędy podczas przygotowania płynu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/">Kalkulator glikolu do instalacji CO – stężenie, litry i temperatura zamarzania.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
#rk-glycol-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-glycol-guide,#rk-glycol-guide *{box-sizing:border-box;min-width:0}
  #rk-glycol-guide a{color:var(--cyan-dark);text-underline-offset:3px}
  #rk-glycol-guide a:hover{color:#b84831}
  #rk-glycol-guide :is(a,button,input,select,summary):focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
  #rk-glycol-guide button,#rk-glycol-guide input,#rk-glycol-guide select{font:inherit}
  #rk-glycol-guide img{display:block;max-width:100%;height:auto}
  #rk-glycol-guide [hidden]{display:none!important}
  #rk-glycol-guide .rk-shell{background:#fff;border:1px solid var(--line);box-shadow:0 20px 58px rgba(11,37,54,.11);overflow:hidden}
  #rk-glycol-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-glycol-guide .rk-kicker,#rk-glycol-guide .rk-eyebrow{display:block;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900}
  #rk-glycol-guide .rk-kicker{color:#7ee9ef;margin-bottom:15px}
  #rk-glycol-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-glycol-guide .rk-hero-title span{color:#76e9f0}
  #rk-glycol-guide .rk-hero-lead{font-size:clamp(1.08rem,1.9vw,1.4rem);color:#e2f0f3;max-width:1050px;margin:22px 0 0}
  #rk-glycol-guide .rk-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:27px}
  #rk-glycol-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-glycol-guide .rk-meta{display:flex;flex-wrap:wrap;gap:9px 25px;color:#c8dde3;font-size:.84rem;margin-top:29px}
  #rk-glycol-guide .rk-meta strong{color:#fff}
  #rk-glycol-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-glycol-guide .rk-nav strong{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-right:5px}
  #rk-glycol-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-glycol-guide .rk-nav a:hover{background:#d9f8fa;color:#065d72}
  #rk-glycol-guide .rk-section{padding:62px 58px}
  #rk-glycol-guide .rk-section+.rk-section{border-top:1px solid var(--line)}
  #rk-glycol-guide .rk-section.rk-soft{background:var(--soft)}
  #rk-glycol-guide .rk-section.rk-dark{background:var(--navy);color:#fff}
  #rk-glycol-guide .rk-eyebrow{color:var(--cyan-dark);margin-bottom:10px}
  #rk-glycol-guide .rk-dark .rk-eyebrow{color:#83ebef}
  #rk-glycol-guide h2,#rk-glycol-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-glycol-guide h3{font-size:1.18rem;line-height:1.32;color:var(--ink);margin:0 0 8px}
  #rk-glycol-guide h4{font-size:1rem;line-height:1.35;color:var(--ink);margin:0 0 7px}
  #rk-glycol-guide .rk-dark h2,#rk-glycol-guide .rk-dark h3{color:#fff}
  #rk-glycol-guide p{color:var(--copy);margin:16px 0 0}
  #rk-glycol-guide .rk-dark p{color:#d0e0e7}
  #rk-glycol-guide p strong,#rk-glycol-guide li strong{color:var(--ink)}
  #rk-glycol-guide .rk-dark p strong{color:#fff}
  #rk-glycol-guide .rk-lead{font-size:clamp(1.03rem,1.6vw,1.23rem);line-height:1.7;max-width:1100px;margin-top:18px}
  #rk-glycol-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-glycol-guide .rk-answer strong{display:block;font-size:1.17rem;color:var(--ink);line-height:1.48}
  #rk-glycol-guide .rk-answer p{margin-top:8px}
  #rk-glycol-guide .rk-grid2,#rk-glycol-guide .rk-grid3{display:grid;gap:17px;margin-top:27px}
  #rk-glycol-guide .rk-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rk-glycol-guide .rk-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #rk-glycol-guide .rk-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
  #rk-glycol-guide .rk-card p{margin:0}
  #rk-glycol-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-glycol-guide .rk-note{background:#fff5e3;border-left:6px solid #e9af32;border-radius:13px;padding:17px 20px;margin-top:24px;color:#54421d}
  #rk-glycol-guide .rk-note p{color:inherit;margin:0}
  #rk-glycol-guide .rk-note-alert{background:#fff0eb;border-color:var(--orange);color:#733d2d}
  #rk-glycol-guide .rk-dark .rk-note-alert p strong{color:#733d2d}
  #rk-glycol-guide .rk-note-good{background:#e9f9f4;border-color:#32cda3;color:#165946}
  #rk-glycol-guide ul,#rk-glycol-guide ol{color:var(--copy);padding-left:24px}
  #rk-glycol-guide li+li{margin-top:8px}
  #rk-glycol-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-glycol-guide .rk-table-wrap{overflow-x:auto;margin-top:27px}
  #rk-glycol-guide table{border-collapse:separate;border-spacing:0;min-width:660px;width:100%}
  #rk-glycol-guide th{background:var(--navy);color:#fff;text-align:left;text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;padding:14px 15px}
  #rk-glycol-guide th:first-child{border-radius:12px 0 0 0}
  #rk-glycol-guide th:last-child{border-radius:0 12px 0 0}
  #rk-glycol-guide td{background:#fff;color:var(--copy);padding:13px 15px;border-bottom:1px solid var(--line);vertical-align:top}
  #rk-glycol-guide td:first-child{border-left:1px solid var(--line)}
  #rk-glycol-guide td:last-child{border-right:1px solid var(--line)}
  #rk-glycol-guide td strong{color:var(--ink)}
  #rk-glycol-guide .rk-table-caption{font-size:.83rem;color:var(--muted)}
  #rk-glycol-guide .rk-calculator{background:#173d50;border:1px solid #4d7284;border-radius:21px;padding:26px;margin-top:28px}
  #rk-glycol-guide .rk-calculator h3{color:#fff;font-size:1.53rem;margin:0}
  #rk-glycol-guide .rk-calculator p{color:#d7e9ee}
  #rk-glycol-guide .rk-calc-step{background:#204b60;border:1px solid #5b8193;border-radius:15px;padding:19px;margin-top:17px}
  #rk-glycol-guide .rk-calc-step h4{color:#fff;margin:0 0 12px;font-size:1.1rem}
  #rk-glycol-guide .rk-radio-row{display:flex;flex-wrap:wrap;gap:9px}
  #rk-glycol-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-glycol-guide .rk-radio-row input{accent-color:var(--cyan);width:18px;height:18px}
  #rk-glycol-guide .rk-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:15px}
  #rk-glycol-guide .rk-field{display:block;color:#eaf6f9;font-size:.85rem;line-height:1.42;font-weight:800}
  #rk-glycol-guide .rk-field small{display:block;font-size:.76rem;line-height:1.4;color:#bfd9e0;font-weight:400;margin-top:4px}
  #rk-glycol-guide .rk-field input,#rk-glycol-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-glycol-guide .rk-room-list{display:grid;gap:12px;margin-top:17px}
  #rk-glycol-guide .rk-room{background:#123548;border:1px solid #678a9a;border-radius:13px;padding:17px}
  #rk-glycol-guide .rk-room-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
  #rk-glycol-guide .rk-room-head strong{color:#fff}
  #rk-glycol-guide .rk-room-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
  #rk-glycol-guide .rk-manual{background:#1c485b;border-radius:11px;padding:13px;margin-top:14px}
  #rk-glycol-guide .rk-manual .rk-fields{margin:0}
  #rk-glycol-guide .rk-ghost{background:transparent;color:#fff;border:1px solid #9cbac7;border-radius:9px;padding:9px 12px;cursor:pointer;font-weight:800}
  #rk-glycol-guide .rk-ghost:hover{background:#315f72}
  #rk-glycol-guide .rk-ghost:disabled{opacity:.55;cursor:not-allowed}
  #rk-glycol-guide .rk-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:19px}
  #rk-glycol-guide .rk-action{border:1px solid transparent;border-radius:10px;padding:11px 18px;cursor:pointer;font-weight:900;min-height:47px}
  #rk-glycol-guide .rk-primary{background:var(--orange);color:#fff}
  #rk-glycol-guide .rk-primary:hover{background:#d95031}
  #rk-glycol-guide .rk-secondary{background:transparent;color:#fff;border-color:#92adba}
  #rk-glycol-guide .rk-secondary:hover{background:#245269}
  #rk-glycol-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-glycol-guide .rk-result{background:#fff;border-left:7px solid var(--cyan);border-radius:17px;padding:23px;margin-top:21px;color:var(--ink)}
  #rk-glycol-guide .rk-result p{color:var(--copy)}
  #rk-glycol-guide .rk-result-kicker{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:#087a95;font-weight:900}
  #rk-glycol-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-glycol-guide .rk-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:17px}
  #rk-glycol-guide .rk-stat{background:#eef6f8;border:1px solid #d0e1e7;border-radius:11px;padding:12px}
  #rk-glycol-guide .rk-stat span{display:block;font-size:.71rem;line-height:1.4;color:#587286;font-weight:900;text-transform:uppercase}
  #rk-glycol-guide .rk-stat strong{display:block;color:var(--ink);font-size:1.17rem;line-height:1.35;margin-top:4px}
  #rk-glycol-guide .rk-result-table{margin-top:20px}
  #rk-glycol-guide .rk-result-table th{background:#20495d}
  #rk-glycol-guide .rk-chartbox{margin-top:19px;border:1px solid #cfdee5;border-radius:14px;background:#f7fbfc;padding:19px}
  #rk-glycol-guide .rk-chartbox h4{font-size:1.09rem}
  #rk-glycol-guide .rk-chartbox .rk-field{color:var(--ink);max-width:340px;margin-top:13px}
  #rk-glycol-guide .rk-chartbox .rk-field select{border-color:#b8cdd5}
  #rk-glycol-guide .rk-chartbox svg{display:block;width:100%;height:auto;max-height:305px;margin-top:13px}
  #rk-glycol-guide .rk-chartbox svg text{fill:#395669;font:14px Arial,Helvetica,sans-serif}
  #rk-glycol-guide .rk-chartbox svg .rk-plotline{fill:none;stroke:#0789a9;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
  #rk-glycol-guide .rk-chartbox svg .rk-axis{stroke:#8ba5b3;stroke-width:1.5}
  #rk-glycol-guide .rk-chartbox svg .rk-point{fill:#f76b47;stroke:#fff;stroke-width:2}
  #rk-glycol-guide .rk-chart-table{margin-top:12px}
  #rk-glycol-guide .rk-chart-table table{min-width:0}
  #rk-glycol-guide .rk-chart-table th{font-size:.72rem;padding:9px 10px}
  #rk-glycol-guide .rk-chart-table td{padding:9px 10px}
  #rk-glycol-guide .rk-result-note{font-size:.83rem;color:#536d7a!important}
  #rk-glycol-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-glycol-guide .rk-cta .rk-cta-title{color:#fff;font-size:clamp(1.55rem,3vw,2.45rem)}
  #rk-glycol-guide .rk-cta p{color:#d6e8ed;max-width:1000px}
  #rk-glycol-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-glycol-guide .rk-cta a.rk-cta-link:hover{background:#fff;color:#ac3e28}
  #rk-glycol-guide .rk-cta small{display:block;color:#bfd6df;margin-top:11px}
  #rk-glycol-guide .rk-steps{display:grid;gap:12px;margin-top:27px}
  #rk-glycol-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-glycol-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-glycol-guide .rk-step p{margin:4px 0 0}
  #rk-glycol-guide .rk-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:25px}
  #rk-glycol-guide .rk-source{background:#f0f7f9;border:1px solid #d0e1e6;border-radius:13px;padding:18px}
  #rk-glycol-guide .rk-source a{font-weight:900}
  #rk-glycol-guide .rk-source p{font-size:.88rem;margin-top:7px}
  #rk-glycol-guide .rk-faq{display:grid;gap:10px;margin-top:26px}
  #rk-glycol-guide .rk-faq details{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}
  #rk-glycol-guide .rk-faq summary{cursor:pointer;list-style:none;color:var(--ink);font-weight:900;padding:17px 49px 17px 18px;position:relative}
  #rk-glycol-guide .rk-faq summary::-webkit-details-marker{display:none}
  #rk-glycol-guide .rk-faq summary:after{content:'+';position:absolute;right:18px;top:9px;font-size:1.55rem;color:var(--cyan-dark)}
  #rk-glycol-guide .rk-faq details[open] summary:after{content:'−'}
  #rk-glycol-guide .rk-faq-answer{border-top:1px solid var(--line);padding:0 18px 17px}
  #rk-glycol-guide .rk-faq-answer p{margin-top:12px}
  #rk-glycol-guide .rk-author{background:#eef6f8;border-top:1px solid var(--line);padding:62px 58px}
  #rk-glycol-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-glycol-guide .rk-author-side{background:var(--navy);padding:33px 23px;color:#fff;text-align:center;display:flex;align-items:center;flex-direction:column}
  #rk-glycol-guide .rk-author-side img{width:153px;height:153px;object-fit:cover;border:5px solid rgba(255,255,255,.24);border-radius:50%}
  #rk-glycol-guide .rk-author-side strong{font-size:1.23rem;margin-top:17px}
  #rk-glycol-guide .rk-author-side p{color:#c2d8e0;font-size:.83rem;margin-top:8px}
  #rk-glycol-guide .rk-social{display:flex;gap:9px;margin-top:19px}
  #rk-glycol-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-glycol-guide .rk-social a:hover{background:var(--cyan);color:var(--navy)}
  #rk-glycol-guide .rk-author-body{padding:34px}
  #rk-glycol-guide .rk-author-body h3{font-size:1.7rem}
  #rk-glycol-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-glycol-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-glycol-guide .rk-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:820px){#rk-glycol-guide .rk-hero,#rk-glycol-guide .rk-section,#rk-glycol-guide .rk-author{padding-left:28px;padding-right:28px}#rk-glycol-guide .rk-author-grid{grid-template-columns:minmax(0,1fr)}}
  @media(max-width:650px){
    #rk-glycol-guide .rk-hero{padding-top:42px;padding-bottom:39px}
    #rk-glycol-guide .rk-section,#rk-glycol-guide .rk-author{padding-top:44px;padding-bottom:44px}
    #rk-glycol-guide .rk-grid2,#rk-glycol-guide .rk-grid3,#rk-glycol-guide .rk-fields,#rk-glycol-guide .rk-room-fields,#rk-glycol-guide .rk-stats,#rk-glycol-guide .rk-sources{grid-template-columns:minmax(0,1fr)}
    #rk-glycol-guide .rk-calculator,#rk-glycol-guide .rk-cta{padding:18px}
    #rk-glycol-guide .rk-actions{display:grid;grid-template-columns:minmax(0,1fr)}
    #rk-glycol-guide .rk-action{width:100%}
    #rk-glycol-guide .rk-table-wrap{overflow:visible}
    #rk-glycol-guide .rk-table-wrap table,#rk-glycol-guide .rk-table-wrap tbody,#rk-glycol-guide .rk-table-wrap tr,#rk-glycol-guide .rk-table-wrap td{display:block;min-width:0;width:100%}
    #rk-glycol-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-glycol-guide .rk-table-wrap tbody{display:grid;gap:12px}
    #rk-glycol-guide .rk-table-wrap tr{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
    #rk-glycol-guide .rk-table-wrap td,#rk-glycol-guide .rk-table-wrap td:first-child,#rk-glycol-guide .rk-table-wrap td:last-child{border:0;border-bottom:1px solid #e3edf0;padding:11px 13px}
    #rk-glycol-guide .rk-table-wrap td:last-child{border-bottom:0}
    #rk-glycol-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-glycol-guide .rk-chart-table{overflow-x:auto}
    #rk-glycol-guide .rk-chart-table table{min-width:400px}
    #rk-glycol-guide .rk-author-body{padding:25px 20px}
  }
  @media(max-width:430px){#rk-glycol-guide .rk-hero,#rk-glycol-guide .rk-section,#rk-glycol-guide .rk-author{padding-left:18px;padding-right:18px}#rk-glycol-guide .rk-nav{padding:16px 13px}#rk-glycol-guide .rk-hero-title{font-size:2.25rem}#rk-glycol-guide h2{font-size:1.9rem}#rk-glycol-guide .rk-calc-step,#rk-glycol-guide .rk-result,#rk-glycol-guide .rk-chartbox{padding:15px}}
  @media(prefers-reduced-motion:reduce){#rk-glycol-guide *,#rk-glycol-guide *:before,#rk-glycol-guide *:after{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms}}
  #rk-glycol-guide .rk-dark .rk-note p{color:#683b28}
  #rk-glycol-guide .rk-dark .rk-note p strong{color:#683b28}
  #rk-glycol-guide .rk-dark .rk-result p{color:var(--copy)}
  #rk-glycol-guide .rk-dark .rk-result p strong{color:var(--ink)}
  #rk-glycol-guide .rk-mode-row{margin-top:15px}
  #rk-glycol-guide .rk-mode-row label{flex:1 1 180px;justify-content:center;text-align:center}
  #rk-glycol-guide .rk-field em{font-style:normal}
  #rk-glycol-guide .rk-confirm{display:flex;align-items:flex-start;gap:10px;margin-top:16px;color:#edf9fb;font-size:.88rem;line-height:1.5;font-weight:700;cursor:pointer}
  #rk-glycol-guide .rk-confirm input{width:19px;height:19px;flex:0 0 19px;margin:2px 0 0;accent-color:var(--cyan)}
  #rk-glycol-guide .rk-custom-panel{margin-top:14px;padding:15px;border:1px solid #7093a2;background:#17384a;border-radius:12px}
  #rk-glycol-guide .rk-field textarea{display:block;background:#fff;border:1px solid #b8d1d9;border-radius:10px;color:var(--ink);padding:10px 11px;margin-top:7px;width:100%;min-height:115px;resize:vertical;font:inherit}
  #rk-glycol-guide .rk-preset-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:#d7e8ec;font-size:.78rem;font-weight:800;margin-top:16px}
  #rk-glycol-guide .rk-preset-row button{background:#e4f6f8;color:#115c70;border:1px solid #a6dce4;border-radius:8px;padding:7px 10px;cursor:pointer;font-weight:800}
  #rk-glycol-guide .rk-preset-row button:hover{background:#fff}
  #rk-glycol-guide .rk-chart-lead,#rk-glycol-guide .rk-chart-hover{font-size:.84rem;margin-top:7px;color:#435e6d}
  #rk-glycol-guide .rk-chartbox svg circle[role="button"]{cursor:pointer;outline:none}
  #rk-glycol-guide .rk-chartbox svg circle[role="button"]:focus{stroke:#ff724b;stroke-width:4;r:8}
  #rk-glycol-guide .rk-chart-table{overflow-x:auto;max-height:220px;overflow-y:auto}
  #rk-glycol-guide .rk-chart-table table{width:100%;min-width:0}
  #rk-glycol-guide .rk-chart-table th{background:#17435a}
  #rk-glycol-guide .rk-grid3 .rk-card ul{margin:9px 0 0}
  #rk-glycol-guide .rk-grid3 .rk-card ul li{color:var(--copy)}
  @media(max-width:650px){#rk-glycol-guide .rk-mode-row{display:grid;grid-template-columns:minmax(0,1fr)}#rk-glycol-guide .rk-mode-row label{justify-content:flex-start}#rk-glycol-guide .rk-chartbox{padding:12px;overflow-x:auto}#rk-glycol-guide .rk-chartbox svg{min-width:520px}#rk-glycol-guide .rk-result{padding:17px}}
  @media(prefers-reduced-motion:reduce){#rk-glycol-guide *,#rk-glycol-guide *:before,#rk-glycol-guide *:after{transition-duration:.01ms;scroll-behavior:auto}}

</style>
<article id="rk-glycol-guide" aria-labelledby="rk-glycol-visual-title">
  <div class="rk-shell">
    <header class="rk-hero">
      <span class="rk-kicker">Chemia instalacyjna · praktyczny kalkulator 2026</span>
      <div class="rk-hero-title" id="rk-glycol-visual-title">Glikol w instalacji CO: <span>policz skład, zanim napełnisz układ.</span></div>
      <p class="rk-hero-lead">Ile koncentratu potrzeba do całej instalacji? Co stanie się po dolaniu wody? Jak skorygować stężenie już napełnionego obiegu? Oblicz ilości, sprawdź orientacyjną temperaturę początku zamarzania i poznaj ograniczenia wyniku.</p>
      <div class="rk-tags" aria-label="Zakres poradnika"><span>glikol propylenowy i etylenowy</span><span>nowe napełnienie</span><span>korekta stężenia</span><span>dolewka</span><span>wykres temperatury</span></div>
      <div class="rk-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Czas czytania: <strong>około 18 minut</strong></span><span>Opracowano: <strong>4 października 2026 r.</strong></span></div>
    </header>
    <nav class="rk-nav" aria-label="Na skróty — sekcje artykułu"><strong>Na skróty</strong><a href="#rk-glycol-answer">Odpowiedź</a><a href="#rk-glycol-need">Czy potrzebny?</a><a href="#rk-glycol-types">Rodzaj płynu</a><a href="#rk-glycol-percent">Procenty</a><a href="#rk-glycol-freeze">Zamarzanie</a><a href="#rk-glycol-calc">Kalkulator</a><a href="#rk-glycol-examples">Przykłady</a><a href="#rk-glycol-volume">Zład</a><a href="#rk-glycol-hydraulics">Hydraulika</a><a href="#rk-glycol-fill">Pomiar i napełnianie</a><a href="#rk-glycol-errors">Błędy</a><a href="#rk-glycol-checklist">Checklista</a><a href="#rk-glycol-summary">Podsumowanie</a><a href="#rk-glycol-sources">Źródła</a><a href="#rk-glycol-faq">FAQ</a><a href="#rk-glycol-author">Autor</a></nav>

    <section class="rk-section" id="rk-glycol-answer">
      <span class="rk-eyebrow">Odpowiedź w minutę</span><h2>Kalkulator glikolu do instalacji CO — co trzeba wiedzieć przed wpisaniem danych?</h2>
      <p class="rk-lead">Potrzebujesz <strong>pojemności całego napełnianego obiegu</strong>, danych o płynie oraz informacji, czy pracujesz na pustym układzie, wymieniasz część istniejącej mieszaniny czy uzupełniasz ubytek. Sama powierzchnia domu nie wystarcza do policzenia litrów glikolu.</p>
      <div class="rk-answer"><strong>Najpierw ustal zład i wymaganą ochronę, potem skład oraz liczbę litrów albo kilogramów preparatu.</strong><p>Wynik obliczeń jest bilansem przygotowawczym. Przed napełnieniem potwierdź zgodność medium z urządzeniami i materiałami, a po wymieszaniu zmierz rzeczywiste stężenie odpowiednią metodą.</p></div>
      <div class="rk-grid3"><div class="rk-card"><span class="rk-badge">01</span><h3>Nie zawsze trzeba stosować glikol</h3><p>Zidentyfikuj fragmenty mogące rzeczywiście wychłodzić się poniżej bezpiecznej temperatury.</p></div><div class="rk-card"><span class="rk-badge">02</span><h3>Nie każdy procent oznacza to samo</h3><p>Procent masowy i objętościowy trzeba odczytać dokładnie z karty płynu i oznaczeń pomiaru.</p></div><div class="rk-card"><span class="rk-badge">03</span><h3>Wynik potwierdza się w instalacji</h3><p>Resztki wody po płukaniu, tolerancje zładu i rzeczywista mieszanka mogą zmienić końcowe stężenie.</p></div></div>
      <p>Jeżeli nie znasz pojemności obiegu podłogowego, zacznij od poradnika <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/">ile wody potrzeba do napełnienia podłogówki</a>. Objętość pętli to jedynie część całego zładu CO.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-glycol-need"><span class="rk-eyebrow">Najpierw ocena ryzyka</span><h2>Czy glikol jest potrzebny w Twojej instalacji CO?</h2><p class="rk-lead">O zastosowaniu płynu niezamarzającego nie decyduje sama temperatura za oknem. Znaczenie ma możliwość wychłodzenia <strong>konkretnego przewodu, wymiennika lub obiegu</strong> po zaniku zasilania albo podczas dłuższego postoju.</p>
      <div class="rk-grid2"><div class="rk-card"><span class="rk-badge">Ryzyko realne</span><h3>Fragment wystawiony na wychłodzenie</h3><p>Przykładem jest zewnętrzny obieg wodny, okresowo nieogrzewany budynek lub instalacja prowadzona przez strefę, w której medium może zamarznąć.</p></div><div class="rk-card"><span class="rk-badge">Sprawdź przed decyzją</span><h3>Cały układ w ogrzewanym domu</h3><p>Jeżeli wszystkie elementy pozostają w ogrzewanej kubaturze, glikol może wprowadzić koszt i wymagania hydrauliczne bez uzasadnionej korzyści. Oceń scenariusz awaryjny.</p></div></div>
      <p>Szerzej opisuję to w artykule <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/">czym napełnić instalację ogrzewania podłogowego</a>. Osobny poradnik o <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/">glikolu w podłogówce</a> omawia zasadność jego zastosowania i wpływ na pracę ogrzewania płaszczyznowego. Tutaj skupiamy się na <strong>przygotowaniu i korekcie mieszaniny w instalacji CO</strong>.</p>
    </section>

    <section class="rk-section" id="rk-glycol-types"><span class="rk-eyebrow">Dwie różne substancje</span><h2>Glikol propylenowy czy etylenowy do instalacji grzewczej?</h2><p class="rk-lead">Te substancje mają inne krzywe zamarzania i lepkość. Nie wolno wybrać krzywej propylenowej dla płynu etylenowego tylko dlatego, że obie butelki opisano jako „płyn do CO”.</p>
      <div class="rk-table-wrap"><table><thead><tr><th>Cecha</th><th>Glikol propylenowy (PG)</th><th>Glikol etylenowy (EG)</th></tr></thead><tbody><tr><td data-label="Cecha"><strong>Krzywa zamarzania</strong></td><td data-label="PG">Odczytuj z tabeli właściwej dla PG i danego sposobu podania stężenia.</td><td data-label="EG">Odczytuj z tabeli EG. Te same procenty nie oznaczają identycznej temperatury.</td></tr><tr><td data-label="Cecha"><strong>Hydraulika</strong></td><td data-label="PG">Przy tym samym stężeniu zwykle większa lepkość niż mieszaniny EG, zwłaszcza na zimno.</td><td data-label="EG">Również wymaga sprawdzenia przepływu, oporów i kompatybilności.</td></tr><tr><td data-label="Cecha"><strong>Bezpieczeństwo</strong></td><td data-label="PG">Mniejsze zagrożenie toksykologiczne nie oznacza, że dowolny preparat jest obojętny; liczy się cały skład.</td><td data-label="EG">Wymaga szczególnej ostrożności w doborze, obsłudze i izolacji od wody użytkowej.</td></tr><tr><td data-label="Cecha"><strong>Dopuszczenie</strong></td><td data-label="PG">Sprawdź źródło, pompy, uszczelki, naczynie, materiały i zakres stężeń.</td><td data-label="EG">Wykonaj tę samą weryfikację; nie stosuj płynu samochodowego bez potwierdzenia przeznaczenia.</td></tr></tbody></table></div>
      <div class="rk-note rk-note-alert"><p><strong>Nie łącz nieznanych produktów.</strong> Nawet płyny o tej samej bazie mogą mieć odmienne pakiety inhibitorów. Kalkulator może policzyć skład matematyczny, ale nie oceni zgodności chemicznej dwóch preparatów.</p></div>
    </section>

    <section class="rk-section rk-soft" id="rk-glycol-percent"><span class="rk-eyebrow">Bez tej informacji łatwo o błąd</span><h2>Stężenie objętościowe i masowe: dlaczego 30% to nie zawsze 30%?</h2><p class="rk-lead"><strong>30% obj.</strong> dotyczy udziału objętościowego według sposobu definiowania mieszanki, a <strong>30% mas.</strong> udziału masowego. Nie przepisuj liczby z jednej skali do drugiej. Opis „koncentrat” też nie mówi automatycznie, że preparat zawiera 100% glikolu bazowego.</p>
      <div class="rk-grid2"><div class="rk-card"><span class="rk-badge">Tryb objętościowy</span><h3>Wynik w litrach</h3><p>Wpisz objętość obiegu i udziały podane w procentach objętościowych. Obliczenie jest nominalnym bilansem składników; po zmieszaniu sprawdź wynik.</p></div><div class="rk-card"><span class="rk-badge">Tryb masowy</span><h3>Wynik w kilogramach</h3><p>Wpisz masę całej mieszaniny i udziały w procentach masowych. Kalkulator nie zamieni kilogramów na litry bez danych o gęstości preparatu i wody.</p></div></div>
      <p>Jeżeli karta podaje wyłącznie proporcję rozcieńczania konkretnego płynu, ale nie określa zawartości glikolu bazowego, nie wpisuj tej proporcji jako „% glikolu” do tabeli referencyjnej. Postępuj według <strong>tabeli tego preparatu</strong>.</p>
    </section>

    <section class="rk-section" id="rk-glycol-freeze"><span class="rk-eyebrow">Dwie różne obietnice ochrony</span><h2>Temperatura początku zamarzania to nie to samo co ochrona przed rozsadzeniem</h2><p class="rk-lead">Jeżeli czynnik ma krążyć podczas mrozu, znaczenie ma utrzymanie płynności. Jeśli układ pozostaje wyłączony, pytanie może dotyczyć ochrony elementów przed uszkodzeniem przy częściowym krystalizowaniu mieszaniny. Te cele nie wymagają automatycznie takiego samego stężenia.</p>
      <div class="rk-grid3"><div class="rk-card"><span class="rk-badge">01</span><h3>Najniższa temperatura medium</h3><p>Wpisz temperaturę, do której może wychłodzić się zagrożony fragment instalacji, a nie po prostu najniższą temperaturę powietrza dla miejscowości.</p></div><div class="rk-card"><span class="rk-badge">02</span><h3>Margines projektu</h3><p>Ustal go świadomie dla scenariusza pracy. Kalkulator pozwala go zmienić; nie przedstawia jednej wartości jako uniwersalnego przepisu.</p></div><div class="rk-card"><span class="rk-badge">03</span><h3>Tabela płynu</h3><p>Odczytaj początek zamarzania dla deklarowanego rodzaju i stężenia. Inhibitory oraz definicje producenta mogą zmienić wynik konkretnego produktu.</p></div></div>
      <div class="rk-note"><p><strong>Zakres wykresu:</strong> pokazuje temperaturę <em>początku zamarzania</em> i jej orientacyjną zależność od stężenia. Nie oblicza temperatury ochrony przed rozsadzeniem, czasu bezpiecznego postoju ani wydajności pompy w warunkach rozruchu.</p></div>
    </section>

    <section class="rk-section rk-dark" id="rk-glycol-calc"><span class="rk-eyebrow">Narzędzie do planowania ilości płynu</span><h2>Kalkulator glikolu do instalacji CO: litry, stężenie i zamarzanie</h2><p class="rk-lead">Wybierz rodzaj obliczenia. Jeśli znasz dane konkretnego płynu, możesz podać własne punkty temperatury z jego karty. Wartości referencyjne z ASHRAE służą do pokazania orientacyjnego przebiegu zależności.</p>
      <div class="rk-calculator" id="rk-glycol-calculator">
        <h3>1. Wybierz sytuację w instalacji</h3><p>Do napełniania pustego obiegu, wymiany części płynu i uzupełnienia ubytku potrzebne są różne dane.</p>
        <div class="rk-radio-row rk-mode-row" role="group" aria-label="Tryb obliczenia"><label><input type="radio" name="rk-glycol-mode" value="fresh" checked="">Nowe napełnienie</label><label><input type="radio" name="rk-glycol-mode" value="replace">Korekta stężenia</label><label><input type="radio" name="rk-glycol-mode" value="topup">Dolewka po ubytku</label></div>
        <div class="rk-calc-step"><h4>2. Zidentyfikuj płyn i podstawę procentu</h4><div class="rk-fields"><label class="rk-field">Rodzaj glikolu<select id="rk-glycol-family"><option value="pg">Propylenowy (PG)</option><option value="eg">Etylenowy (EG)</option></select><small>Odczytaj z karty lub oznaczenia płynu, nie z jego koloru.</small></label><label class="rk-field">Jak podano stężenia?<select id="rk-glycol-basis"><option value="vol">% obj. — ilości w litrach</option><option value="mass">% mas. — ilości w kilogramach</option></select><small>Wszystkie wpisywane stężenia muszą używać jednej podstawy.</small></label><label class="rk-field"><span id="rk-glycol-total-label">Całkowita pojemność obiegu [l]</span><input id="rk-glycol-total" type="number" inputmode="decimal" min="0.1" step="0.1" value="200"><small>Uwzględnij całą napełnianą część instalacji CO.</small></label><label class="rk-field">Stężenie dodawanego produktu [%]<input id="rk-glycol-stock" type="number" inputmode="decimal" min="0" max="100" step="0.1" value="100"><small>Podaj udział glikolu bazowego, a nie samą nazwę „koncentrat”.</small></label></div></div>
        <div class="rk-calc-step" id="rk-glycol-target-panel"><h4 id="rk-glycol-target-heading">3. Ustal wymagane stężenie</h4><div class="rk-fields"><label class="rk-field">Sposób określenia celu<select id="rk-glycol-target-kind"><option value="concentration">Wpisuję docelowe stężenie</option><option value="temperature">Wyznacz orientacyjnie z temperatury</option></select></label><label class="rk-field" id="rk-glycol-target-c-wrap">Docelowe stężenie [%]<input id="rk-glycol-target-c" type="number" inputmode="decimal" min="0" max="100" step="0.1" value="30"></label><label class="rk-field" id="rk-glycol-target-t-wrap" hidden="">Wymagana temperatura początku zamarzania [°C]<input id="rk-glycol-target-t" type="number" inputmode="decimal" min="-55" max="0" step="0.1" value="-15"><small>Narzędzie odczyta odpowiadające stężenie z wybranej tabeli.</small></label><label class="rk-field" id="rk-glycol-existing-wrap" hidden="">Zmierzona zawartość glikolu w obecnym płynie [%]<input id="rk-glycol-existing" type="number" inputmode="decimal" min="0" max="100" step="0.1" value="20"><small>Jeżeli nieznana — najpierw zbadaj próbkę.</small></label><label class="rk-field" id="rk-glycol-loss-wrap" hidden=""><span id="rk-glycol-loss-label">Ile płynu ubyło [l]?</span><input id="rk-glycol-loss" type="number" inputmode="decimal" min="0.1" step="0.1" value="15"><small>Całkowity docelowy zład pozostaje jak wyżej.</small></label></div><label class="rk-confirm" id="rk-glycol-compat-wrap" hidden=""><input id="rk-glycol-compat" type="checkbox">Mam potwierdzoną zgodność dodawanego preparatu z płynem w instalacji i jej elementami.</label></div>
        <div class="rk-calc-step"><h4>4. Sprawdź warunki ochrony i źródło danych</h4><div class="rk-fields"><label class="rk-field">Najniższa możliwa temperatura <em>płynu</em> [°C]<input id="rk-glycol-low" type="number" inputmode="decimal" min="-55" max="20" step="0.5" value="-12"></label><label class="rk-field">Przyjęty margines temperaturowy [K]<input id="rk-glycol-margin" type="number" inputmode="decimal" min="0" max="15" step="0.5" value="3"><small>Możesz go zmienić zgodnie z sytuacją i dokumentacją.</small></label></div><label class="rk-confirm"><input type="checkbox" id="rk-glycol-custom">Użyję punktów ze znanej karty płynu zamiast tabeli referencyjnej.</label><div id="rk-glycol-custom-panel" class="rk-custom-panel" hidden=""><label class="rk-field">Stężenie [%]; temperatura początku zamarzania [°C] — po jednym punkcie w wierszu<textarea id="rk-glycol-custom-data" rows="5" placeholder="20;-7
30;-13
40;-21"></textarea><small>Wpisz od 2 do 8 punktów w rosnącej kolejności stężenia; wszystkie z tej samej karty, dla wybranej podstawy procentu. Bez ekstrapolacji.</small></label></div><div class="rk-fields" id="rk-glycol-mass-density" hidden=""><label class="rk-field">Gęstość dodawanego płynu [kg/l] — opcjonalnie<input id="rk-glycol-density-stock" type="number" inputmode="decimal" min="0.5" max="2" step="0.001" placeholder="Z karty produktu"></label><label class="rk-field">Gęstość wody [kg/l] — opcjonalnie<input id="rk-glycol-density-water" type="number" inputmode="decimal" min="0.5" max="1.5" step="0.001" placeholder="Przy temperaturze odmierzania"></label></div></div>
        <div class="rk-actions"><button class="rk-action rk-primary" id="rk-glycol-run" type="button">Przelicz mieszaninę</button><button class="rk-action rk-secondary" id="rk-glycol-reset" type="button">Przywróć przykład</button></div>
        <div class="rk-preset-row"><span>Sprawdź przykład:</span><button type="button" data-rk-preset="fresh">Nowy obieg</button><button type="button" data-rk-preset="replace">Korekta z 20%</button><button type="button" data-rk-preset="topup">Dolewka 15 l</button></div>
        <div class="rk-error" id="rk-glycol-error" role="alert" hidden=""></div>
        <div class="rk-result" id="rk-glycol-result" aria-live="polite"><span class="rk-result-kicker">Wynik kalkulatora</span><div class="rk-result-big" id="rk-glycol-big">Uzupełnij dane i przelicz</div><p id="rk-glycol-summary-text">Wynik rozdzieli ilość płynu, zmianę stężenia i orientacyjną temperaturę początku zamarzania.</p><div class="rk-stats" id="rk-glycol-stats"></div><div class="rk-note rk-note-alert" id="rk-glycol-warning" hidden=""><p id="rk-glycol-warning-text"></p></div><div class="rk-chartbox"><h4>Interaktywny wykres stężenie–temperatura</h4><p class="rk-chart-lead" id="rk-glycol-chart-lead">Krzywa pojawi się po przeliczeniu. Dotyczy początku zamarzania, nie ochrony przed rozsadzeniem.</p><svg id="rk-glycol-svg" viewBox="0 0 680 306" role="img" aria-label="Zależność temperatury początku zamarzania od stężenia glikolu"></svg><p class="rk-chart-hover" id="rk-glycol-chart-hover" aria-live="polite">Wybierz punkt na krzywej, aby odczytać jego wartość.</p><div class="rk-chart-table" id="rk-glycol-chart-table"></div></div><p class="rk-result-note" id="rk-glycol-method">Wynik jest bilansem obliczeniowym. Sprawdź rzeczywisty skład po wymieszaniu i zastosuj dokumentację wybranego płynu.</p></div>
      </div>
      <div class="rk-note rk-note-alert"><p><strong>Granica zastosowania:</strong> ten kalkulator nie bada stanu inhibitorów, zgodności chemicznej, pojemności naczynia, strat ciśnienia ani punktu pracy pompy. Gdy skład obecnej mieszaniny jest nieznany, nie traktuj wyniku korekty jako instrukcji dolewania.</p></div>
    </section>

    <section class="rk-section rk-soft" id="rk-glycol-examples"><span class="rk-eyebrow">Trzy sytuacje z budowy i serwisu</span><h2>Jak czytać wynik kalkulatora glikolu? Przykłady bez skrótów</h2><div class="rk-grid3"><div class="rk-card"><span class="rk-badge">Nowe napełnienie</span><h3>200 l i cel 30% obj.</h3><p>Jeżeli dodawany preparat ma rzeczywiście 100% udziału glikolu w przyjętej skali, bilans nominalny wynosi 60 l preparatu oraz 140 l wody. Przy preparacie 95% ilość preparatu będzie większa. Po zmieszaniu zmierz stężenie.</p></div><div class="rk-card"><span class="rk-badge">Korekta</span><h3>200 l: z 20% na 30%</h3><p>Przy pełnym układzie i dodawanym płynie 100% obliczenie objętościowe daje 25 l jednorodnej mieszaniny do spuszczenia i 25 l do zastąpienia. To działa tylko dla znanego, zgodnego płynu.</p></div><div class="rk-card"><span class="rk-badge">Dolewka</span><h3>200 l: ubytek 15 l</h3><p>Jeśli przed ubytkiem mieszanina miała 30% obj., po uzupełnieniu 15 l samą wodą nominalne stężenie spadnie do 27,75%. Dolewka płynem 30% utrzymałaby nominalnie 30%.</p></div></div><div class="rk-formula">Nowe napełnienie: ilość preparatu = zład × cel / stężenie preparatu<br>Korekta pełnego układu: wymiana = zład × (cel − stężenie obecne) / (stężenie dodawanego płynu − stężenie obecne)</div><p>Wzory stosuj tylko w <strong>jednej, wspólnej podstawie stężenia</strong>. W trybie masowym odpowiadają im kilogramy. Liniowy bilans objętościowy jest przybliżeniem użytecznym do przygotowania, a nie pomiarem właściwości konkretnego gotowego płynu.</p></section>

    <section class="rk-section" id="rk-glycol-volume"><span class="rk-eyebrow">Dane wejściowe ważniejsze od samego wzoru</span><h2>Jak ustalić liczbę litrów płynu w całej instalacji CO?</h2><p class="rk-lead">Zład oznacza objętość <strong>wszystkich elementów napełnianego obiegu</strong>. Jeśli glikol ma być tylko w części oddzielonej wymiennikiem, liczysz tę część. Jeśli w całym CO, nie pomijasz źródła, bufora, grzejników ani połączeń.</p><div class="rk-table-wrap"><table><thead><tr><th>Element</th><th>Skąd wziąć objętość</th><th>Typowy błąd</th></tr></thead><tbody><tr><td data-label="Element"><strong>Przewody i pętle</strong></td><td data-label="Skąd">Długości oraz rzeczywista średnica wewnętrzna; najlepiej zestawienie z projektu.</td><td data-label="Błąd">Liczenie całej instalacji z samej powierzchni podłogi.</td></tr><tr><td data-label="Element"><strong>Grzejniki, rozdzielacze, armatura</strong></td><td data-label="Skąd">Karty urządzeń i dokumentacja układu.</td><td data-label="Błąd">Pominięcie równoległych obiegów lub części zasilającej.</td></tr><tr><td data-label="Element"><strong>Źródło, bufor, wymiennik</strong></td><td data-label="Skąd">Pojemność wodna konkretnych elementów i schemat połączeń.</td><td data-label="Błąd">Przypisanie całej objętości bufora do obiegu odseparowanego wymiennikiem.</td></tr><tr><td data-label="Element"><strong>Woda pozostała po płukaniu</strong></td><td data-label="Skąd">Procedura opróżnienia i późniejszy pomiar stężenia.</td><td data-label="Błąd">Założenie, że obieg jest suchy, choć pozostała w nim woda.</td></tr></tbody></table></div><p>Jeżeli potrzebujesz punktu wyjścia dla rur, zobacz <a href="https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/">ile wody mieści metr rury 16</a> oraz wspomniany <a href="https://projekt-ogrzewania.pl/ile-wody-potrzeba-do-wypelnienia-instalacji-podlogowki-kalkulator/">kalkulator zładu podłogówki</a>. Oba wyniki trzeba uzupełnić o pozostałą część układu.</p></section>

    <section class="rk-section rk-soft" id="rk-glycol-hydraulics"><span class="rk-eyebrow">Po policzeniu litrów praca dopiero się zaczyna</span><h2>Dlaczego glikol zmienia przepływ, opory i dobór naczynia?</h2><p class="rk-lead">Mieszanina ma inną gęstość, ciepło właściwe, lepkość oraz rozszerzalność niż woda. Te cechy zależą także od stężenia i temperatury. Ten sam wynik „200 l płynu” nie oznacza, że nastawy wodne i punkt pracy pompy pozostaną odpowiednie.</p><div class="rk-grid3"><div class="rk-card"><span class="rk-badge">Transport ciepła</span><h3>Wymagany przepływ</h3><p>Do przekazania danej mocy liczą się gęstość, ciepło właściwe i projektowa różnica temperatur. Wartości dla wody nie przenosi się automatycznie na glikol.</p></div><div class="rk-card"><span class="rk-badge">Cyrkulacja</span><h3>Opór krytycznej drogi</h3><p>Zwłaszcza podczas zimnego rozruchu lepkość może być wyraźnie większa. Sprawdza się cały obieg: przewody, wymiennik, armaturę i punkt pracy pompy.</p></div><div class="rk-card"><span class="rk-badge">Objętość i ciśnienie</span><h3>Naczynie przeponowe</h3><p>Zmiana medium wpływa na jego przyrost objętości po ogrzaniu. Dobór naczynia zależy też od ciśnień, zładu i zakresu temperatur.</p></div></div><p>W praktyce projektowej przepływ jednej pętli wynika z mocy oraz parametrów medium. Wyjaśnia to poradnik <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>. Zobacz także <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">dobór pompy obiegowej</a> i <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">dobór naczynia wzbiorczego</a>.</p>
      <div class="rk-cta"><div class="rk-cta-title">Projektujesz podłogówkę, która ma pracować na glikolu?</div><p>Obliczenie litrów rozwiązuje tylko problem przygotowania płynu. Projekt musi jeszcze uwzględnić właściwości medium przy temperaturach pracy, przepływy pętli, opory oraz współpracę ze źródłem ciepła i pompą. Te decyzje warto podjąć przed napełnieniem.</p><a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt podłogówki z obliczoną hydrauliką</a><small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small></div>
    </section>

    <section class="rk-section" id="rk-glycol-fill"><span class="rk-eyebrow">Obliczenie trzeba potwierdzić pomiarem</span><h2>Jak przygotować mieszaninę, napełnić instalację i sprawdzić jej stężenie?</h2><div class="rk-steps"><div class="rk-step"><span class="rk-step-num">1</span><div><h3>Sprawdź płyn i układ</h3><p>Ustal bazę chemiczną, sposób podania stężenia, wymagany zakres, zgodność z materiałami, pompą, źródłem i warunkami gwarancji.</p></div></div><div class="rk-step"><span class="rk-step-num">2</span><div><h3>Zmierz zład i skład zastanego płynu</h3><p>Jeżeli to istniejąca instalacja, pobierz próbkę reprezentatywną. Sam kolor płynu nie określa rodzaju glikolu, stężenia ani stanu dodatków.</p></div></div><div class="rk-step"><span class="rk-step-num">3</span><div><h3>Przygotuj ciecz zgodnie z instrukcją produktu</h3><p>Uwzględnij wymaganą jakość wody i sposób mieszania. Nie dodawaj nieznanych środków do układu tylko dlatego, że wynik arytmetyczny wygląda poprawnie.</p></div></div><div class="rk-step"><span class="rk-step-num">4</span><div><h3>Napełnij, wymieszaj i odpowietrz</h3><p>Kontroluj ciśnienie, szczelność oraz przepływ. Przed pobraniem próbki upewnij się, że płyn został rozprowadzony po analizowanym obiegu.</p></div></div><div class="rk-step"><span class="rk-step-num">5</span><div><h3>Zweryfikuj skład po wymieszaniu</h3><p>Użyj metody przeznaczonej dla danego typu płynu, właściwej skali oraz tabeli jego dostawcy. Zapisz datę, temperaturę próbki i wynik.</p></div></div></div><div class="rk-note"><p><strong>Uwaga przy pomiarze:</strong> refraktometr musi być stosowany i interpretowany dla znanego rodzaju glikolu. Uniwersalny odczyt Brix bez odpowiedniej tabeli nie staje się automatycznie procentem glikolu ani deklarowaną ochroną produktu.</p></div></section>

    <section class="rk-section rk-soft" id="rk-glycol-errors"><span class="rk-eyebrow">Najczęstsze przyczyny złego wyniku</span><h2>Siedem błędów przy doborze glikolu do CO</h2><div class="rk-grid3"><div class="rk-card"><span class="rk-badge">01</span><h3>30% oznacza zawsze −30°C</h3><p>Temperatura wynika z krzywej właściwej dla substancji i preparatu. Procent nie jest temperaturą.</p></div><div class="rk-card"><span class="rk-badge">02</span><h3>Procent masowy potraktowany jak objętościowy</h3><p>W ten sposób można zaniżyć lub zawyżyć ilość zakupionego środka.</p></div><div class="rk-card"><span class="rk-badge">03</span><h3>„Koncentrat” przyjęty za 100%</h3><p>Do wzoru wchodzi rzeczywista zawartość glikolu w preparacie, jeżeli jest znana.</p></div><div class="rk-card"><span class="rk-badge">04</span><h3>Pominięta woda po płukaniu</h3><p>Resztki wody rozcieńczają świeży płyn. Potrzebny jest pomiar po uruchomieniu.</p></div><div class="rk-card"><span class="rk-badge">05</span><h3>Dolewka do nieznanego płynu</h3><p>Zbieżny kolor nie potwierdza kompatybilności składu i dodatków antykorozyjnych.</p></div><div class="rk-card"><span class="rk-badge">06</span><h3>Wybór tylko według mrozu</h3><p>Wyższe stężenie może zwiększyć wymagania dla pompy i pogorszyć transfer ciepła.</p></div><div class="rk-card"><span class="rk-badge">07</span><h3>Brak kontroli po napełnieniu</h3><p>Wynik kalkulatora nie zastępuje pomiaru stężenia i kontroli pracy instalacji.</p></div></div><p>Osady, powtarzające się dolewki i zmiany jakości medium wymagają osobnej diagnostyki. Mechanizmy opisuje poradnik o <a href="https://projekt-ogrzewania.pl/korozja-w-instalacjach-grzewczych-i-wodnych/">korozji w instalacjach grzewczych i wodnych</a>.</p></section>

    <section class="rk-section" id="rk-glycol-checklist"><span class="rk-eyebrow">Do zapisania przed zakupem płynu</span><h2>Checklista: jakie dane przygotować do obliczenia glikolu?</h2><div class="rk-grid3"><div class="rk-card"><span class="rk-badge">INSTALACJA</span><h3>Granice obiegu</h3><ul><li>zład i zakres napełnienia,</li><li>miejsca zagrożone wychłodzeniem,</li><li>źródło, bufor i wymiennik,</li><li>minimalna temperatura płynu,</li><li>warunki rozruchu i postoju.</li></ul></div><div class="rk-card"><span class="rk-badge">PŁYN</span><h3>Dane preparatu</h3><ul><li>PG albo EG i przeznaczenie,</li><li>% mas. lub % obj.,</li><li>koncentrat czy gotowa mieszanka,</li><li>tabela początku zamarzania,</li><li>zgodność i zalecana jakość wody.</li></ul></div><div class="rk-card"><span class="rk-badge">POMIAR</span><h3>Stan instalacji</h3><ul><li>rodzaj płynu już w układzie,</li><li>zmierzone stężenie,</li><li>ilość utraconej cieczy,</li><li>zgodność preparatów,</li><li>pomiar końcowy i protokół.</li></ul></div></div><div class="rk-note rk-note-good"><p><strong>Jeżeli brakuje rodzaju lub stężenia płynu zastanego w obiegu,</strong> najpierw ustal te dane. Kalkulator nie rozpozna składu na podstawie ciśnienia, koloru ani nazwy źródła ciepła.</p></div></section>

    <section class="rk-section rk-soft" id="rk-glycol-summary"><span class="rk-eyebrow">Końcowa decyzja</span><h2>Ile glikolu do instalacji CO? Najpierw liczby, potem weryfikacja w układzie</h2><p class="rk-lead">Kalkulator porządkuje zakup i procedurę dolewki, gdy znasz zład, typ płynu i podstawę stężenia. Nie określa samodzielnie bezpieczeństwa mieszaniny dla wszystkich elementów instalacji ani tego, czy glikol w ogóle jest potrzebny.</p><p>W istniejącym CO wynikiem działania może być także decyzja o pobraniu próbki i sprawdzeniu stanu płynu. W nowym ogrzewaniu podłogowym decyzja o glikolu powinna znaleźć się w danych do projektu, zanim zostaną ustalone przepływy i pompa.</p><div class="rk-cta"><div class="rk-cta-title">Nowa podłogówka z obiegiem wymagającym glikolu?</div><p>W projekcie połączymy bilans cieplny, rozkład pętli, wymagane przepływy i hydraulikę z założonym medium. Dzięki temu wiadomo, czy instalacja i źródło ciepła mogą pracować w zaplanowanych warunkach.</p><a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zobacz 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-glycol-sources"><span class="rk-eyebrow">Podstawa danych i zakres ich użycia</span><h2>Źródła techniczne kalkulatora glikolu</h2><p class="rk-lead">Wykres referencyjny powstał z wybranych punktów tabel ASHRAE dla inhibitowanych roztworów PG i EG. Narzędzie interpoluje wyłącznie między tymi punktami. Właściwości konkretnego produktu mogą się różnić; jego karta i dokumentacja urządzeń mają pierwszeństwo przy rzeczywistym napełnianiu.</p><div class="rk-sources"><div class="rk-source"><a href="https://handbook.ashrae.org/Handbooks/F25/SI/F25_Ch31/F25_Ch31_si.aspx" target="_blank" rel="nofollow noopener noreferrer">ASHRAE Handbook—Fundamentals 2025, rozdział 31</a><p>Oficjalny rozdział o właściwościach płynów niezamarzających: stężeniu, początku zamarzania, lepkości i kontroli mieszanin. Dane temperaturowe tego rozdziału są referencyjnymi wartościami określonych formulacji, a nie kartą dowolnego produktu.</p></div><div class="rk-source"><a href="https://store.astm.org/d8039-16r23.html" target="_blank" rel="nofollow noopener noreferrer">ASTM D8039-16(2023) — płyny do systemów HVAC</a><p>Oficjalna karta normy dotyczącej płynów do ogrzewania i klimatyzacji. Zakres obejmuje koncentraty i gotowe płyny oraz różne substancje bazowe. Nie utożsamiaj jej z dopuszczeniem wybranego preparatu do każdej instalacji.</p></div></div><div class="rk-note"><p><strong>Zakres odpowiedzialności:</strong> kalkulator jest pomocą do bilansu składników. Nie analizuje rezerwy inhibitorów, zmian objętości po zmieszaniu, zanieczyszczeń, kompatybilności ani hydrauliki. Informacja o temperaturze oznacza szacowany <em>początek zamarzania</em>, nigdy gwarancję ochrony przed uszkodzeniem.</p></div></section>

    <section class="rk-section rk-soft" id="rk-glycol-faq"><span class="rk-eyebrow">Najczęstsze pytania</span><h2>FAQ — glikol do instalacji CO</h2><div class="rk-faq">
      <details><summary>Ile glikolu potrzeba do instalacji CO o pojemności 200 l?</summary><div class="rk-faq-answer"><p>To zależy od stężenia docelowego i rzeczywistej zawartości glikolu w dodawanym preparacie. Dla nominalnego celu 30% obj. i płynu 100% obj. prosty bilans daje 60 l preparatu oraz 140 l wody. Po wymieszaniu trzeba zmierzyć rzeczywisty skład.</p></div></details>
      <details><summary>Czy 30% glikolu oznacza ochronę do −30°C?</summary><div class="rk-faq-answer"><p>Nie. Procent jest miarą składu, a temperatura początkiem zamarzania odczytywanym z tabeli właściwej dla rodzaju płynu i sposobu podania stężenia. Dla konkretnego produktu sprawdź jego aktualną dokumentację.</p></div></details>
      <details><summary>Czy 30% masowo można wpisać jako 30% objętościowo?</summary><div class="rk-faq-answer"><p>Nie. To różne podstawy stężenia. Wybierz w kalkulatorze właściwą skalę; bez danych o gęstości nie przeliczaj porcji wyrażonych w kilogramach na litry.</p></div></details>
      <details><summary>Ile koncentratu 95% na 200 l mieszaniny 30% obj.?</summary><div class="rk-faq-answer"><p>Bilans nominalny daje 200 × 30 / 95, czyli około 63,2 l preparatu oraz 136,8 l wody. Wynik zakłada, że oba procenty są objętościowe, preparat rzeczywiście ma taki udział glikolu oraz że potwierdzisz stężenie po napełnieniu.</p></div></details>
      <details><summary>Czy płyn gotowy 30% można rozcieńczyć wodą i zachować ochronę 30%?</summary><div class="rk-faq-answer"><p>Nie. Po dolaniu wody stężenie będzie mniejsze niż 30%. Gotowy płyn należy stosować w zakresie opisanym w jego dokumentacji, a końcowy skład potwierdzić pomiarem.</p></div></details>
      <details><summary>Jak podnieść stężenie płynu w napełnionej instalacji?</summary><div class="rk-faq-answer"><p>Najpierw zmierz stężenie i ustal skład. W pełnym układzie można obliczyć, ile jednorodnego płynu należy spuścić i zastąpić zgodnym preparatem o większym stężeniu. Potem wymieszaj medium i zmierz wynik; obliczenie nie potwierdza zgodności dodatków.</p></div></details>
      <details><summary>Co się stanie, gdy po ubytku glikolu doleję czystą wodę?</summary><div class="rk-faq-answer"><p>Stężenie spadnie. Wielkość zmiany zależy od początkowego stężenia, utraconej ilości i pojemności obiegu. Kalkulator w trybie dolewki pokazuje nominalny wynik po uzupełnieniu.</p></div></details>
      <details><summary>Czy można mieszać glikol propylenowy i etylenowy?</summary><div class="rk-faq-answer"><p>Nie traktuj ich jako zamiennych płynów do dolewki. Nieznany skład, dodatki i wymagania elementów instalacji wykluczają bezpieczny wniosek na podstawie samej arytmetyki stężenia. Wymagane są identyfikacja i ocena zgodności.</p></div></details>
      <details><summary>Czy kolor płynu pokazuje, jaki glikol jest w instalacji?</summary><div class="rk-faq-answer"><p>Nie. Barwa nie jest wiarygodną metodą rozpoznania substancji bazowej, stężenia, temperatury początku zamarzania ani stanu inhibitorów.</p></div></details>
      <details><summary>Czy glikol samochodowy nadaje się do instalacji CO?</summary><div class="rk-faq-answer"><p>Nie przyjmuj tego automatycznie. Płyn musi być przeznaczony do właściwego zastosowania i zgodny z urządzeniami oraz materiałami układu. Sama wspólna baza glikolowa nie potwierdza zgodności pakietu dodatków.</p></div></details>
      <details><summary>Jak zmierzyć stężenie glikolu po napełnieniu?</summary><div class="rk-faq-answer"><p>Próbkę pobiera się po wymieszaniu medium w analizowanym obiegu. Odczyt z refraktometru lub innej metody trzeba interpretować według rodzaju glikolu i tabeli danego produktu; sama skala Brix nie daje uniwersalnego procentu.</p></div></details>
      <details><summary>Czy większe stężenie glikolu zawsze poprawia ochronę?</summary><div class="rk-faq-answer"><p>Nie. Zwiększa koszt i może pogarszać właściwości hydrauliczne. W przypadku mieszanin etylenowych dalsze zwiększanie stężenia poza korzystny zakres nie poprawia już ochrony przed zamarzaniem. Należy trzymać się zakresu dopuszczonego dla produktu i instalacji.</p></div></details>
      <details><summary>Czy kalkulator wylicza dobór pompy i naczynia przeponowego?</summary><div class="rk-faq-answer"><p>Nie. Oblicza bilans składników i orientacyjną temperaturę początku zamarzania. Dobór pompy wymaga strat ciśnienia i właściwości płynu w temperaturze pracy, a naczynie dodatkowo zmian objętości i danych ciśnieniowych.</p></div></details>
      <details><summary>Czy mogę wpisać dowolną temperaturę zamarzania zamiast stężenia?</summary><div class="rk-faq-answer"><p>Możesz wybrać taki tryb, lecz kalkulator wyznaczy tylko orientacyjne stężenie między punktami wybranej tabeli. Dla rzeczywistego preparatu podstawą powinny być jego dane, a wynik trzeba potwierdzić pomiarem po zmieszaniu.</p></div></details>
    </div></section>

    <section class="rk-author" id="rk-glycol-author"><span class="rk-eyebrow">Opracowanie eksperckie</span><h2>Autor i weryfikacja merytoryczna</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" width="400" height="400" loading="lazy" decoding="async"><strong>Robert Kucharski</strong><p>CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</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 Projekt HVAC w serwisie X">X</a></div></aside><div class="rk-author-body"><h3>Bilans płynu to część projektu, nie jego koniec</h3><div class="rk-author-quote">„Litry przygotowanego płynu można policzyć z bilansu. Dopiero pomiar gotowej mieszaniny oraz obliczenia przepływów i oporów pokazują, czy układ będzie pracował zgodnie z założeniami.”</div><p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W analizie medium oddziela ilość potrzebną do napełnienia od jego własności w rzeczywistej temperaturze pracy.</p><p>Ten poradnik zestawia prosty bilans składników z ograniczeniami, których nie usunie żaden internetowy kalkulator: nieznanym stanem płynu, kompatybilnością preparatów, pojemnością układu i procedurą pomiaru po napełnieniu.</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 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/",
      "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": [
        "instalacje grzewcze",
        "ogrzewanie podłogowe",
        "hydraulika instalacji grzewczych",
        "dobór płynu niezamarzającego"
      ],
      "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/kalkulator-glikolu-do-instalacji-co/#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": "Kalkulator glikolu do instalacji CO",
          "item": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#webpage",
      "url": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/",
      "name": "Kalkulator glikolu do instalacji CO – stężenie, litry i temperatura zamarzania",
      "description": "Kalkulator glikolu do instalacji CO: oblicz litry koncentratu, stężenie po dolewce i orientacyjną temperaturę zamarzania. Sprawdź trzy tryby i przykłady.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#breadcrumb"
      },
      "datePublished": "2026-10-04T09:00:00+02:00",
      "dateModified": "2026-10-04T09:00:00+02:00",
      "inLanguage": "pl-PL",
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#article"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#webpage"
      },
      "headline": "Kalkulator glikolu do instalacji CO – stężenie, litry i temperatura zamarzania",
      "description": "Praktyczny kalkulator glikolu propylenowego i etylenowego do CO: nowe napełnienie, korekta stężenia, dolewka po ubytku, szacowany początek zamarzania i zasady weryfikacji płynu.",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "datePublished": "2026-10-04T09:00:00+02:00",
      "dateModified": "2026-10-04T09:00:00+02:00",
      "inLanguage": "pl-PL",
      "about": [
        "glikol do instalacji CO",
        "stężenie glikolu",
        "temperatura początku zamarzania",
        "napełnianie instalacji grzewczej"
      ],
      "keywords": "kalkulator glikolu do instalacji CO, ile glikolu do CO, stężenie glikolu, glikol propylenowy, temperatura zamarzania glikolu",
      "isAccessibleForFree": true,
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#kalkulator"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#procedura"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#faq"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#kalkulator",
      "name": "Kalkulator glikolu do instalacji CO",
      "url": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#rk-glycol-calc",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Oblicza nominalne ilości składników nowego napełnienia, wymiany części mieszaniny i dolewki oraz szacuje początek zamarzania na podstawie wybranych danych referencyjnych lub punktów wpisanych przez użytkownika."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#procedura",
      "name": "Jak obliczyć i sprawdzić mieszaninę glikolu w instalacji CO",
      "description": "Pięć etapów ustalenia składu medium, napełnienia instalacji i kontroli wyniku.",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Sprawdź płyn i układ",
          "text": "Ustal bazę płynu, stężenie, materiały instalacji i zakres dopuszczenia urządzeń."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Zmierz zład i obecne stężenie",
          "text": "Oblicz pojemność właściwego obiegu, a przy istniejącej instalacji zbadaj reprezentatywną próbkę."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Przygotuj mieszaninę",
          "text": "Wyznacz ilości preparatu i wody w tej samej podstawie stężenia oraz uwzględnij instrukcję płynu."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Napełnij i wymieszaj",
          "text": "Napełnij obieg, odpowietrz i sprawdź ciśnienie, szczelność oraz przepływ."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Sprawdź wynik pomiarem",
          "text": "Po wymieszaniu medium zmierz stężenie metodą przeznaczoną dla tego rodzaju płynu."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Ile glikolu potrzeba do instalacji CO o pojemności 200 l?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "To zależy od stężenia docelowego i rzeczywistej zawartości glikolu w dodawanym preparacie. Dla nominalnego celu 30% obj. i płynu 100% obj. prosty bilans daje 60 l preparatu oraz 140 l wody. Po wymieszaniu trzeba zmierzyć rzeczywisty skład."
          }
        },
        {
          "@type": "Question",
          "name": "Czy 30% glikolu oznacza ochronę do −30°C?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Procent jest miarą składu, a temperatura początkiem zamarzania odczytywanym z tabeli właściwej dla rodzaju płynu i sposobu podania stężenia. Dla konkretnego produktu sprawdź jego aktualną dokumentację."
          }
        },
        {
          "@type": "Question",
          "name": "Czy 30% masowo można wpisać jako 30% objętościowo?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. To różne podstawy stężenia. Wybierz w kalkulatorze właściwą skalę; bez danych o gęstości nie przeliczaj porcji wyrażonych w kilogramach na litry."
          }
        },
        {
          "@type": "Question",
          "name": "Ile koncentratu 95% na 200 l mieszaniny 30% obj.?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Bilans nominalny daje 200 × 30 / 95, czyli około 63,2 l preparatu oraz 136,8 l wody. Wynik zakłada, że oba procenty są objętościowe, preparat rzeczywiście ma taki udział glikolu oraz że potwierdzisz stężenie po napełnieniu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy płyn gotowy 30% można rozcieńczyć wodą i zachować ochronę 30%?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Po dolaniu wody stężenie będzie mniejsze niż 30%. Gotowy płyn należy stosować w zakresie opisanym w jego dokumentacji, a końcowy skład potwierdzić pomiarem."
          }
        },
        {
          "@type": "Question",
          "name": "Jak podnieść stężenie płynu w napełnionej instalacji?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najpierw zmierz stężenie i ustal skład. W pełnym układzie można obliczyć, ile jednorodnego płynu należy spuścić i zastąpić zgodnym preparatem o większym stężeniu. Potem wymieszaj medium i zmierz wynik; obliczenie nie potwierdza zgodności dodatków."
          }
        },
        {
          "@type": "Question",
          "name": "Co się stanie, gdy po ubytku glikolu doleję czystą wodę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Stężenie spadnie. Wielkość zmiany zależy od początkowego stężenia, utraconej ilości i pojemności obiegu. Kalkulator w trybie dolewki pokazuje nominalny wynik po uzupełnieniu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy można mieszać glikol propylenowy i etylenowy?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie traktuj ich jako zamiennych płynów do dolewki. Nieznany skład, dodatki i wymagania elementów instalacji wykluczają bezpieczny wniosek na podstawie samej arytmetyki stężenia. Wymagane są identyfikacja i ocena zgodności."
          }
        },
        {
          "@type": "Question",
          "name": "Czy kolor płynu pokazuje, jaki glikol jest w instalacji?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Barwa nie jest wiarygodną metodą rozpoznania substancji bazowej, stężenia, temperatury początku zamarzania ani stanu inhibitorów."
          }
        },
        {
          "@type": "Question",
          "name": "Czy glikol samochodowy nadaje się do instalacji CO?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie przyjmuj tego automatycznie. Płyn musi być przeznaczony do właściwego zastosowania i zgodny z urządzeniami oraz materiałami układu. Sama wspólna baza glikolowa nie potwierdza zgodności pakietu dodatków."
          }
        },
        {
          "@type": "Question",
          "name": "Jak zmierzyć stężenie glikolu po napełnieniu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Próbkę pobiera się po wymieszaniu medium w analizowanym obiegu. Odczyt z refraktometru lub innej metody trzeba interpretować według rodzaju glikolu i tabeli danego produktu; sama skala Brix nie daje uniwersalnego procentu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy większe stężenie glikolu zawsze poprawia ochronę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Zwiększa koszt i może pogarszać właściwości hydrauliczne. W przypadku mieszanin etylenowych dalsze zwiększanie stężenia poza korzystny zakres nie poprawia już ochrony przed zamarzaniem. Należy trzymać się zakresu dopuszczonego dla produktu i instalacji."
          }
        },
        {
          "@type": "Question",
          "name": "Czy kalkulator wylicza dobór pompy i naczynia przeponowego?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Oblicza bilans składników i orientacyjną temperaturę początku zamarzania. Dobór pompy wymaga strat ciśnienia i właściwości płynu w temperaturze pracy, a naczynie dodatkowo zmian objętości i danych ciśnieniowych."
          }
        },
        {
          "@type": "Question",
          "name": "Czy mogę wpisać dowolną temperaturę zamarzania zamiast stężenia?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Możesz wybrać taki tryb, lecz kalkulator wyznaczy tylko orientacyjne stężenie między punktami wybranej tabeli. Dla rzeczywistego preparatu podstawą powinny być jego dane, a wynik trzeba potwierdzić pomiarem po zmieszaniu."
          }
        }
      ]
    }
  ]
}
</script>
<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-glycol-guide");
  if (!root) { return; }
  if (root.getAttribute("data-rk-ready") === "1") { return; }
  root.setAttribute("data-rk-ready", "1");

  // Wybrane punkty tabel 4 i 5: ASHRAE Handbook—Fundamentals 2025, rozdział 31.
  // Każda trójka: [stężenie % mas., stężenie % obj., początek zamarzania °C].
  // Są to dane referencyjne dla opisanych tam mieszanin inhibitowanych.
  var curves = {
    pg: [[0,0,0],[10,9.7,-3.3],[20,19.7,-7.1],[25,24.8,-9.6],[30,29.9,-12.7],[35,35.0,-16.4],[40,40.2,-21.1],[45,45.4,-26.7],[50,50.7,-33.5],[55,55.9,-41.6],[60,61.1,-51.1]],
    eg: [[0,0,0],[10,9.1,-3.2],[20,18.5,-7.8],[25,23.3,-10.7],[30,28.2,-14.1],[35,33.1,-17.9],[40,38.1,-22.3],[45,43.1,-27.5],[50,48.3,-33.8],[55,53.4,-41.1],[60,58.7,-48.3]]
  };

  function el(id) { return root.querySelector("#" + id); }
  function mode() {
    var selected = root.querySelector('input[name="rk-glycol-mode"]:checked');
    return selected ? selected.value : "fresh";
  }
  function n(id, label, min, max) {
    var value = Number(String(el(id).value).trim().replace(",", "."));
    if (String(el(id).value).trim() === "") { throw new Error("Uzupełnij: " + label + "."); }
    if (!Number.isFinite(value)) { throw new Error("Wpisz liczbę dla pola: " + label + "."); }
    if (value < min) { throw new Error(label + ": wartość musi wynosić co najmniej " + min + "."); }
    if (value > max) { throw new Error(label + ": wartość nie może przekraczać " + max + "."); }
    return value;
  }
  function fmt(value, maxDigits) {
    return new Intl.NumberFormat("pl-PL", {maximumFractionDigits:maxDigits, minimumFractionDigits:0}).format(value);
  }
  function show(id, visible) { el(id).hidden = !visible; }
  function panelState() {
    var current = mode();
    var mass = el("rk-glycol-basis").value === "mass";
    el("rk-glycol-target-heading").textContent = current === "topup" ? "3. Podaj obecny stan i wielkość ubytku" : "3. Ustal wymagane stężenie";
    show("rk-glycol-target-panel", true);
    show("rk-glycol-existing-wrap", current !== "fresh");
    show("rk-glycol-loss-wrap", current === "topup");
    show("rk-glycol-compat-wrap", current !== "fresh");
    show("rk-glycol-target-c-wrap", current !== "topup" ? el("rk-glycol-target-kind").value === "concentration" : false);
    show("rk-glycol-target-t-wrap", current !== "topup" ? el("rk-glycol-target-kind").value === "temperature" : false);
    el("rk-glycol-target-kind").parentNode.hidden = current === "topup";
    show("rk-glycol-mass-density", mass);
    show("rk-glycol-custom-panel", el("rk-glycol-custom").checked);
    el("rk-glycol-total-label").textContent = mass ? "Docelowa masa mieszaniny [kg]" : "Całkowita pojemność obiegu [l]";
    el("rk-glycol-loss-label").textContent = mass ? "Ile płynu ubyło [kg]?" : "Ile płynu ubyło [l]?";
  }
  function series(family, basis, custom) {
    if (custom) {
      var lines = el("rk-glycol-custom-data").value.split(/\r?\n/).map(function (s) { return s.trim(); }).filter(function (s) { return s.length > 0; });
      if (lines.length < 2) { throw new Error("Wpisz przynajmniej dwa punkty z tabeli swojego płynu."); }
      if (lines.length > 8) { throw new Error("Wprowadź maksymalnie osiem punktów z tabeli płynu."); }
      var result = lines.map(function (line) {
        var parts = line.split(";");
        if (parts.length !== 2) { throw new Error("Każdy punkt musi mieć format: stężenie;temperatura."); }
        var c = Number(parts[0].trim().replace(",", "."));
        var t = Number(parts[1].trim().replace(",", "."));
        if (!Number.isFinite(c)) { throw new Error("Nieprawidłowe stężenie w tabeli własnej."); }
        if (!Number.isFinite(t)) { throw new Error("Nieprawidłowa temperatura w tabeli własnej."); }
        if (c < 0) { throw new Error("Stężenie w tabeli nie może być ujemne."); }
        if (c > 65) { throw new Error("Punkty tabeli własnej poza zakresem 0–65% wymagają indywidualnej oceny."); }
        if (t < -65) { throw new Error("Temperatura w tabeli własnej jest poza zakresem narzędzia."); }
        if (t > 0) { throw new Error("Temperatura początku zamarzania w tej tabeli nie może przekraczać 0°C."); }
        return {c:c,t:t};
      });
      result.forEach(function (point, index) {
        if (index > 0) {
          if (point.c <= result[index-1].c) { throw new Error("Punkty podaj w rosnącej kolejności stężenia."); }
          if (point.t >= result[index-1].t) { throw new Error("Temperatury powinny spadać wraz ze stężeniem w użytym zakresie."); }
        }
      });
      return result;
    }
    return curves[family].map(function (p) { return {c:basis === "mass" ? p[0] : p[1],t:p[2]}; });
  }
  function atConcentration(points, concentration) {
    if (concentration < points[0].c) { return null; }
    if (concentration > points[points.length - 1].c) { return null; }
    for (var i=0;i<points.length;i+=1) {
      if (Math.abs(concentration - points[i].c) < 0.0000001) { return points[i].t; }
      if (i > 0) {
        if (concentration < points[i].c) {
          var left=points[i-1];
          var right=points[i];
          return left.t+(concentration-left.c)*(right.t-left.t)/(right.c-left.c);
        }
      }
    }
    return null;
  }
  function atTemperature(points, temperature) {
    if (temperature > points[0].t) { return null; }
    if (temperature < points[points.length-1].t) { return null; }
    for (var i=0;i<points.length;i+=1) {
      if (Math.abs(temperature - points[i].t) < 0.0000001) { return points[i].c; }
      if (i > 0) {
        if (temperature > points[i].t) {
          var left=points[i-1];
          var right=points[i];
          return left.c+(temperature-left.t)*(right.c-left.c)/(right.t-left.t);
        }
      }
    }
    return null;
  }
  function clearNode(node) { while (node.firstChild) { node.removeChild(node.firstChild); } }
  function stat(label, value) {
    var box=document.createElement("div");
    var small=document.createElement("span");
    var strong=document.createElement("strong");
    box.className="rk-stat";
    small.textContent=label;
    strong.textContent=value;
    box.appendChild(small);
    box.appendChild(strong);
    return box;
  }
  var ns="http://www.w3.org/2000/svg";
  function svgNode(name, attributes, contents) {
    var node=document.createElementNS(ns,name);
    Object.keys(attributes).forEach(function (key) { node.setAttribute(key,String(attributes[key])); });
    if (typeof contents === "string") { node.textContent=contents; }
    return node;
  }
  function draw(points, concentration, temperature, basis, family, custom, secondary) {
    var svg=el("rk-glycol-svg");
    clearNode(svg);
    var x0=66,x1=647,y0=28,y1=245;
    var maxC=Math.max(60,Math.ceil(points[points.length-1].c/10)*10);
    var minT=Math.min(-35,Math.floor(points[points.length-1].t/10)*10);
    function x(c) { return x0+(c/maxC)*(x1-x0); }
    function y(t) { return y0+(0-t)/(0-minT)*(y1-y0); }
    for (var t=0;t>=minT;t-=10) {
      svg.appendChild(svgNode("line",{x1:x0,x2:x1,y1:y(t),y2:y(t),stroke:"#d9e8ed","stroke-width":1}));
      svg.appendChild(svgNode("text",{x:x0-10,y:y(t)+4,"text-anchor":"end",fill:"#536d7c","font-size":"13"},String(t)));
    }
    for (var c=0;c<=maxC;c+=10) {
      svg.appendChild(svgNode("line",{x1:x(c),x2:x(c),y1:y0,y2:y1,stroke:"#ebf2f4","stroke-width":1}));
      svg.appendChild(svgNode("text",{x:x(c),y:y1+22,"text-anchor":"middle",fill:"#536d7c","font-size":"13"},String(c)));
    }
    svg.appendChild(svgNode("line",{x1:x0,x2:x1,y1:y1,y2:y1,stroke:"#7397a8","stroke-width":2}));
    svg.appendChild(svgNode("text",{x:(x0+x1)/2,y:298,"text-anchor":"middle",fill:"#28495c","font-size":"14"},"Stężenie [% "+(basis==="mass"?"mas.":"obj.")+"]"));
    var path=points.map(function (p,i) { return (i===0?"M":"L")+x(p.c).toFixed(1)+" "+y(p.t).toFixed(1); }).join(" ");
    svg.appendChild(svgNode("path",{d:path,fill:"none",stroke:"#078ca6","stroke-width":4,"stroke-linecap":"round","stroke-linejoin":"round"}));
    points.forEach(function (p) {
      var circle=svgNode("circle",{cx:x(p.c),cy:y(p.t),r:5,fill:"#087e9b",stroke:"#fff","stroke-width":2,tabindex:0,role:"button","aria-label":fmt(p.c,1)+" procent, początek zamarzania "+fmt(p.t,1)+" stopni Celsjusza"});
      function reveal() { el("rk-glycol-chart-hover").textContent=fmt(p.c,1)+"% — początek zamarzania około "+fmt(p.t,1)+"°C."; }
      circle.addEventListener("focus",reveal);
      circle.addEventListener("mouseenter",reveal);
      circle.addEventListener("click",reveal);
      circle.addEventListener("keydown",function (event) {
        if (event.key === "Enter") { reveal(); }
        if (event.key === " ") { event.preventDefault(); reveal(); }
      });
      svg.appendChild(circle);
    });
    if (temperature !== null) {
      svg.appendChild(svgNode("circle",{cx:x(concentration),cy:y(temperature),r:9,fill:"#f76b47",stroke:"#fff","stroke-width":3}));
    }
    if (secondary) {
      if (secondary.t !== null) {
        svg.appendChild(svgNode("circle",{cx:x(secondary.c),cy:y(secondary.t),r:7,fill:"#e3a529",stroke:"#fff","stroke-width":2}));
      }
    }
    el("rk-glycol-chart-lead").textContent=(custom?"Punkty wprowadzone z Twojej karty płynu":"Wybrane punkty referencyjne ASHRAE 2025")+" — "+(family==="pg"?"PG":"EG")+", stężenie % "+(basis==="mass"?"mas.":"obj.")+"; pomarańczowy punkt oznacza wynik"+(secondary?", żółty wariant dolewki samą wodą.":".");
    el("rk-glycol-chart-hover").textContent="Wybierz myszą albo klawiaturą punkt na krzywej, aby zobaczyć jego wartość.";
    var wrap=el("rk-glycol-chart-table");
    clearNode(wrap);
    var table=document.createElement("table");
    var head=document.createElement("thead");
    var headRow=document.createElement("tr");
    ["Stężenie [%]","Początek zamarzania [°C]"].forEach(function (s) { var th=document.createElement("th");th.textContent=s;headRow.appendChild(th); });
    head.appendChild(headRow);
    table.appendChild(head);
    var body=document.createElement("tbody");
    points.forEach(function (p) {var row=document.createElement("tr");var a=document.createElement("td");var b=document.createElement("td");a.textContent=fmt(p.c,1);b.textContent=fmt(p.t,1);row.appendChild(a);row.appendChild(b);body.appendChild(row);});
    table.appendChild(body);
    wrap.appendChild(table);
  }
  function optionalLitres(mass, fieldId) {
    var input=el(fieldId).value.trim();
    if (input==="") { return null; }
    var density=Number(input.replace(",","."));
    if (!Number.isFinite(density)) { throw new Error("Wpisz prawidłową gęstość w kg/l lub pozostaw to pole puste."); }
    if (density < 0.5) { throw new Error("Sprawdź gęstość w jednostce kg/l."); }
    if (density > 2) { throw new Error("Sprawdź gęstość w jednostce kg/l."); }
    return mass/density;
  }
  function presentStats(items) {
    var target=el("rk-glycol-stats");clearNode(target);
    items.forEach(function (p) { target.appendChild(stat(p[0],p[1])); });
  }
  function run() {
    try {
      show("rk-glycol-error",false);
      var currentMode=mode();
      var basis=el("rk-glycol-basis").value;
      var family=el("rk-glycol-family").value;
      var points=series(family,basis,el("rk-glycol-custom").checked);
      var unit=basis==="mass"?"kg":"l";
      var total=n("rk-glycol-total",basis==="mass"?"docelowa masa mieszaniny":"pojemność obiegu",0.1,1000000);
      var stock=n("rk-glycol-stock","stężenie dodawanego produktu",0,100);
      var low=n("rk-glycol-low","najniższa temperatura płynu",-55,20);
      var margin=n("rk-glycol-margin","margines temperaturowy",0,15);
      var warnings=[];
      var stats=[];
      var concentration=0;
      var secondary=null;
      var big="";
      var summary="";
      var custom=el("rk-glycol-custom").checked;
      if (currentMode!=="topup") {
        var strategy=el("rk-glycol-target-kind").value;
        if (strategy==="temperature") {
          var targetTemp=n("rk-glycol-target-t","docelowa temperatura początku zamarzania",-55,0);
          concentration=atTemperature(points,targetTemp);
          if (concentration===null) { throw new Error("Wybrana temperatura jest poza zakresem podanej tabeli. Wpisz dane płynu obejmujące ten punkt."); }
        } else {
          concentration=n("rk-glycol-target-c","docelowe stężenie",0,100);
        }
      }
      if (currentMode==="fresh") {
        if (stock===0) { throw new Error("Do nowego napełnienia glikolem wybierz produkt o dodatniej zawartości glikolu."); }
        if (concentration>stock) { throw new Error("Z podanego produktu nie uzyskasz mieszaniny o większej zawartości glikolu. Wybierz płyn o wyższym stężeniu."); }
        var product=total*concentration/stock;
        var water=total-product;
        big=fmt(product,2)+" "+unit+" dodawanego płynu";
        summary="Nowe napełnienie: nominalny bilans preparatu i wody dla "+fmt(total,1)+" "+unit+" mieszaniny.";
        stats.push(["Preparat",fmt(product,2)+" "+unit]);
        stats.push(["Woda do mieszaniny",fmt(water,2)+" "+unit]);
        stats.push(["Docelowe stężenie",fmt(concentration,2)+"% "+(basis==="mass"?"mas.":"obj.")]);
        if (basis==="mass") {
          var productLitres=optionalLitres(product,"rk-glycol-density-stock");
          var waterLitres=optionalLitres(water,"rk-glycol-density-water");
          if (productLitres!==null) { stats.push(["Preparat, orientacyjnie",fmt(productLitres,2)+" l"]); }
          if (waterLitres!==null) { stats.push(["Woda, orientacyjnie",fmt(waterLitres,2)+" l"]); }
        }
      }
      if (currentMode==="replace") {
        var existing=n("rk-glycol-existing","zmierzone obecne stężenie",0,100);
        if (Math.abs(concentration-existing)<0.000001) {
          big="0 "+unit+" do wymiany";
          summary="Docelowe stężenie jest takie samo jak obecnie zmierzone. Sprawdź jeszcze stan inhibitorów i wymagania urządzeń.";
          stats.push(["Do usunięcia", "0 "+unit]);
          stats.push(["Do dodania", "0 "+unit]);
        } else {
          if (Math.abs(stock-existing)<0.000001) { throw new Error("Dodawany płyn ma takie samo stężenie jak mieszanina w układzie — nie zmieni jej składu."); }
          var replace=total*(concentration-existing)/(stock-existing);
          if (replace<0) { throw new Error("Dodawany płyn zmieni stężenie w niewłaściwym kierunku. Wybierz inny preparat."); }
          if (replace>total) { throw new Error("Tego celu nie da się osiągnąć przez pojedynczą wymianę części układu wskazanym płynem."); }
          big=fmt(replace,2)+" "+unit+" do wymiany";
          summary="Usuń wskazaną porcję jednorodnego starego płynu i wprowadź taką samą ilość nowego medium w przyjętej podstawie bilansu.";
          stats.push(["Do spuszczenia",fmt(replace,2)+" "+unit]);
          stats.push(["Do dodania",fmt(replace,2)+" "+unit]);
        }
        stats.push(["Stan początkowy",fmt(existing,2)+"%"]);
        stats.push(["Wynik bilansu",fmt(concentration,2)+"%"]);
        if (!el("rk-glycol-compat").checked) { warnings.push("Nie potwierdzono zgodności obecnego i dodawanego płynu. To wynik teoretyczny, nie instrukcja mieszania."); }
        if (basis==="mass") { warnings.push("Wymiana równych mas nie gwarantuje identycznej objętości i ciśnienia napełnienia. Skontroluj układ po zabiegu."); }
      }
      if (currentMode==="topup") {
        var before=n("rk-glycol-existing","zmierzone stężenie przed ubytkiem",0,100);
        var loss=n("rk-glycol-loss",basis==="mass"?"masę ubytku":"objętość ubytku",0.001,total);
        if (loss>=total) { throw new Error("Ubytek nie może obejmować całego zładu. Wybierz nowe napełnienie."); }
        var waterAfter=before*(total-loss)/total;
        concentration=(before*(total-loss)+stock*loss)/total;
        secondary={c:waterAfter,t:atConcentration(points,waterAfter)};
        big=fmt(concentration,2)+"% po dolaniu płynu";
        summary="Porównanie dwóch sposobów uzupełnienia ubytku "+fmt(loss,2)+" "+unit+". Wykres pokazuje wynik dolewki wybranym preparatem.";
        stats.push(["Przed ubytkiem",fmt(before,2)+"%"]);
        stats.push(["Dolewka: woda",fmt(waterAfter,2)+"%"]);
        stats.push(["Dolewka: płyn "+fmt(stock,1)+"%",fmt(concentration,2)+"%"]);
        var tWater=atConcentration(points,waterAfter);
        stats.push(["Początek zamarzania po wodzie",tWater===null?"poza tabelą":fmt(tWater,1)+"°C, orientacyjnie"]);
        if (!el("rk-glycol-compat").checked) { warnings.push("Zgodność dodawanego płynu nie została potwierdzona. Nie mieszaj nieznanych preparatów na podstawie samego wyniku."); }
        if (basis==="mass") { warnings.push("Wynik dotyczy wymiany masy w kg. Bez pomiaru gęstości i objętości nie zakładaj, że zapełnia dokładnie brakujące litry."); }
      }
      var freezing=atConcentration(points,concentration);
      stats.push(["Początek zamarzania",freezing===null?"poza tabelą":fmt(freezing,1)+"°C, orientacyjnie"]);
      stats.push(["Wymagany próg z marginesem",fmt(low-margin,1)+"°C"]);
      if (freezing===null) {
        warnings.push("Wynikowe stężenie jest poza punktami wybranej tabeli. Kalkulator nie ekstrapoluje temperatury.");
      } else {
        if (freezing>low-margin) { warnings.push("Orientacyjny początek zamarzania jest wyższy niż wymagany próg z marginesem. Zweryfikuj dobór płynu i założenia."); }
      }
      if (concentration<25) { warnings.push("Niskie stężenie może nie spełniać wymagań pakietu inhibitorów. Sprawdź minimalne stężenie w dokumentacji płynu."); }
      if (concentration>60) { warnings.push("Stężenia powyżej około 60% wymagają szczególnej oceny właściwości i ograniczeń; większy udział glikolu nie oznacza automatycznie lepszej ochrony."); }
      if (basis==="vol") { warnings.push("Bilans litrów jest przybliżeniem. Po zmieszaniu objętości mogą nie sumować się dokładnie; sprawdź rzeczywiste stężenie i pojemność układu."); }
      if (basis==="mass") { warnings.push("Dane masowe podano w kg. Litry pojawiają się tylko tam, gdzie wpisano odpowiednie gęstości."); }
      if (custom) { warnings.push("Własną tabelę wprowadza użytkownik. Kalkulator nie sprawdza poprawności jej źródła, składu produktu ani dopuszczenia do instalacji."); }
      el("rk-glycol-big").textContent=big;
      el("rk-glycol-summary-text").textContent=summary;
      presentStats(stats);
      el("rk-glycol-warning-text").textContent=warnings.join(" ");
      show("rk-glycol-warning",warnings.length>0);
      el("rk-glycol-method").textContent="Interpolacja wyłącznie pomiędzy podanymi punktami. "+(custom?"Dane temperatur: punkty wpisane z karty płynu.":"Dane temperatur: wybrane punkty referencyjne ASHRAE Handbook 2025.")+" Wynik nie opisuje ochrony przed rozsadzeniem, stanu inhibitorów ani możliwości hydraulicznych układu.";
      draw(points,concentration,freezing,basis,family,custom,secondary);
      show("rk-glycol-result",true);
    } catch (error) {
      el("rk-glycol-error").textContent=error.message;
      show("rk-glycol-error",true);
      show("rk-glycol-result",false);
    }
  }
  function preset(which) {
    root.querySelectorAll('input[name="rk-glycol-mode"]').forEach(function (radio) { radio.checked=radio.value===which; });
    el("rk-glycol-family").value="pg";
    el("rk-glycol-basis").value="vol";
    el("rk-glycol-total").value="200";
    el("rk-glycol-stock").value="100";
    el("rk-glycol-target-kind").value="concentration";
    el("rk-glycol-target-c").value="30";
    el("rk-glycol-target-t").value="-15";
    el("rk-glycol-existing").value=which==="topup"?"30":"20";
    el("rk-glycol-loss").value="15";
    el("rk-glycol-low").value="-12";
    el("rk-glycol-margin").value="3";
    el("rk-glycol-compat").checked=false;
    el("rk-glycol-custom").checked=false;
    el("rk-glycol-custom-data").value="";
    el("rk-glycol-density-stock").value="";
    el("rk-glycol-density-water").value="";
    panelState();run();
  }
  root.querySelectorAll('input[name="rk-glycol-mode"]').forEach(function (radio) { radio.addEventListener("change",function () { panelState();run(); }); });
  ["rk-glycol-basis","rk-glycol-family","rk-glycol-target-kind","rk-glycol-custom"].forEach(function (id) { el(id).addEventListener("change",function () { panelState();run(); }); });
  el("rk-glycol-run").addEventListener("click",run);
  el("rk-glycol-reset").addEventListener("click",function () { preset("fresh"); });
  root.querySelectorAll("[data-rk-preset]").forEach(function (button) { button.addEventListener("click",function () { preset(button.getAttribute("data-rk-preset")); }); });
  panelState();run();
}());

</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/">Kalkulator glikolu do instalacji CO – stężenie, litry i temperatura zamarzania.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/kalkulator-glikolu-do-instalacji-co/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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>Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów.</title>
		<link>https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/</link>
					<comments>https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 03 Oct 2026 10:41:02 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Materiały instalacyjne]]></category>
		<category><![CDATA[Montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Rury do podłogówki]]></category>
		<category><![CDATA[ile spinek do podłogówki na m²]]></category>
		<category><![CDATA[ile spinek na 10 m²]]></category>
		<category><![CDATA[ile spinek na 100 m²]]></category>
		<category><![CDATA[ile spinek na metr rury]]></category>
		<category><![CDATA[kalkulator spinek]]></category>
		<category><![CDATA[klipsy do podłogówki]]></category>
		<category><![CDATA[mocowanie rur podłogówki]]></category>
		<category><![CDATA[montaż ogrzewania podłogowego]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[rozstaw rur ogrzewania podłogowego]]></category>
		<category><![CDATA[rury do podłogówki]]></category>
		<category><![CDATA[spinki do podłogówki]]></category>
		<category><![CDATA[spinki do styropianu]]></category>
		<category><![CDATA[spinki do takera]]></category>
		<category><![CDATA[taker do podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7795</guid>

					<description><![CDATA[<p>Planując montaż ogrzewania podłogowego, warto wcześniej policzyć nie tylko metry rury, ale również elementy potrzebne do jej prawidłowego zamocowania. Ile spinek do podłogówki na m² trzeba przygotować przy rozstawie rur 10, 15 lub 20 cm? W artykule pokazuję prosty sposób obliczeń, wyjaśniam wpływ odstępu pomiędzy mocowaniami, łuków i podejść do rozdzielacza oraz podpowiadam, jaki zapas materiału przyjąć. Do dyspozycji jest również praktyczny kalkulator, który przelicza zapotrzebowanie na spinki i pełne opakowania.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/">Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-clips-guide {
    --rk-navy:#0b2536;--rk-navy2:#153d50;--rk-cyan:#28c3d3;--rk-cyan-dark:#087f9c;
    --rk-orange:#f76745;--rk-ink:#142d3d;--rk-copy:#3d5869;--rk-muted:#627d8d;
    --rk-line:#cfdfe6;--rk-bg:#f2f8fa;--rk-soft:#e8f8fa;--rk-white:#fff;
    color:var(--rk-ink);font:16px/1.62 Arial,Helvetica,sans-serif;max-width:1360px;
    width:100%;margin:0 auto;overflow-wrap:anywhere;
  }
  #rk-clips-guide,#rk-clips-guide *{box-sizing:border-box;min-width:0}
  #rk-clips-guide a{color:var(--rk-cyan-dark);text-underline-offset:3px}
  #rk-clips-guide a:hover{color:#ba452e}
  #rk-clips-guide button,#rk-clips-guide input,#rk-clips-guide select{font:inherit}
  #rk-clips-guide :is(a,button,input,select,summary):focus-visible{outline:3px solid var(--rk-cyan);outline-offset:3px}
  #rk-clips-guide img{display:block;max-width:100%;height:auto}
  #rk-clips-guide .rk-shell{background:var(--rk-white);border:1px solid var(--rk-line);box-shadow:0 18px 58px rgba(8,38,55,.12);overflow:hidden}
  #rk-clips-guide .rk-hero{background:radial-gradient(circle at 91% 108%,rgba(40,195,211,.24) 0 18%,transparent 18.2%),linear-gradient(125deg,#0b2536,#19465b 69%,#0b6271);padding:62px 58px 55px;color:#fff}
  #rk-clips-guide .rk-kicker,#rk-clips-guide .rk-eyebrow{display:block;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:900}
  #rk-clips-guide .rk-kicker{color:#7de5ee;margin-bottom:15px}
  #rk-clips-guide .rk-hero-title{font-size:clamp(2.4rem,5.2vw,4.8rem);line-height:1.06;letter-spacing:-.04em;font-weight:900;margin:0;max-width:1150px;color:#fff}
  #rk-clips-guide .rk-hero-title span{color:#72e5ed}
  #rk-clips-guide .rk-hero-lead{font-size:clamp(1.08rem,1.85vw,1.35rem);color:#e1f0f3;max-width:1060px;margin:24px 0 0}
  #rk-clips-guide .rk-hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
  #rk-clips-guide .rk-hero-tags span{display:inline-flex;align-items:center;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.29);border-radius:999px;color:#fff;font-size:.81rem;font-weight:800;line-height:1.35;padding:8px 13px}
  #rk-clips-guide .rk-hero-meta{display:flex;flex-wrap:wrap;gap:9px 25px;font-size:.84rem;color:#c8dce3;margin-top:27px}
  #rk-clips-guide .rk-hero-meta strong{color:#fff}
  #rk-clips-guide .rk-nav{padding:19px 28px;display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--rk-line);background:#fff;align-items:center}
  #rk-clips-guide .rk-nav strong{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;margin-right:6px}
  #rk-clips-guide .rk-nav a{background:#edf4f6;border-radius:999px;padding:7px 11px;font-size:.76rem;font-weight:800;text-decoration:none;color:var(--rk-ink)}
  #rk-clips-guide .rk-nav a:hover{background:#d9f6f8;color:#075b71}
  #rk-clips-guide .rk-section{padding:62px 58px}
  #rk-clips-guide .rk-section+.rk-section{border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-soft{background:var(--rk-bg)}
  #rk-clips-guide .rk-dark{background:var(--rk-navy);color:#fff}
  #rk-clips-guide .rk-eyebrow{color:var(--rk-cyan-dark);margin-bottom:10px}
  #rk-clips-guide .rk-dark .rk-eyebrow{color:#80e6ef}
  #rk-clips-guide h2,#rk-clips-guide .rk-cta-title{font-size:clamp(1.95rem,3.8vw,3.55rem);line-height:1.1;letter-spacing:-.035em;font-weight:900;margin:0;color:var(--rk-ink)}
  #rk-clips-guide h3{font-size:1.19rem;line-height:1.3;color:var(--rk-ink);margin:0 0 9px}
  #rk-clips-guide h4{color:var(--rk-ink);font-size:1rem;line-height:1.35;margin:0 0 8px}
  #rk-clips-guide .rk-dark h2,#rk-clips-guide .rk-dark h3{color:#fff}
  #rk-clips-guide p{margin:15px 0 0;color:var(--rk-copy)}
  #rk-clips-guide .rk-dark p{color:#d0e1e7}
  #rk-clips-guide .rk-lead{font-size:clamp(1.03rem,1.6vw,1.23rem);line-height:1.69;max-width:1080px;margin-top:19px}
  #rk-clips-guide p strong,#rk-clips-guide li strong{color:var(--rk-ink)}
  #rk-clips-guide .rk-dark p strong{color:#fff}
  #rk-clips-guide .rk-answer{margin-top:27px;background:linear-gradient(120deg,#e2f8fa,#fafdfd);border:1px solid #a8dce4;border-left:7px solid var(--rk-cyan);border-radius:16px;padding:24px 26px}
  #rk-clips-guide .rk-answer strong{display:block;font-size:1.17rem;line-height:1.45;color:var(--rk-ink)}
  #rk-clips-guide .rk-answer p{margin-top:8px}
  #rk-clips-guide .rk-grid2,#rk-clips-guide .rk-grid3,#rk-clips-guide .rk-grid4{display:grid;gap:17px;margin-top:26px}
  #rk-clips-guide .rk-grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
  #rk-clips-guide .rk-grid3{grid-template-columns:repeat(3,minmax(0,1fr))}
  #rk-clips-guide .rk-grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
  #rk-clips-guide .rk-card{background:#fff;border:1px solid var(--rk-line);border-radius:16px;padding:21px}
  #rk-clips-guide .rk-card p{margin:0}
  #rk-clips-guide .rk-card-badge{display:inline-flex;align-items:center;justify-content:center;background:#dff7fa;color:#07657c;font-weight:900;border-radius:9px;padding:5px 10px;min-height:35px;margin-bottom:12px;font-size:.78rem}
  #rk-clips-guide .rk-note{background:#fff4df;color:#594319;border-left:6px solid #efb432;border-radius:13px;padding:17px 20px;margin-top:24px}
  #rk-clips-guide .rk-note p{color:inherit;margin:0}
  #rk-clips-guide .rk-note-ok{background:#e9f9f3;color:#1b5b4a;border-color:#2ac99c}
  #rk-clips-guide .rk-note-alert{background:#fff0eb;color:#713b2b;border-color:var(--rk-orange)}
  #rk-clips-guide ul,#rk-clips-guide ol{padding-left:23px;color:var(--rk-copy)}
  #rk-clips-guide li+li{margin-top:8px}
  #rk-clips-guide .rk-table-wrap{overflow-x:auto;margin-top:26px}
  #rk-clips-guide table{border-collapse:separate;border-spacing:0;min-width:720px;width:100%}
  #rk-clips-guide th{background:var(--rk-navy);color:#fff;text-align:left;font-size:.77rem;text-transform:uppercase;letter-spacing:.04em;padding:13px 15px}
  #rk-clips-guide th:first-child{border-radius:12px 0 0 0}
  #rk-clips-guide th:last-child{border-radius:0 12px 0 0}
  #rk-clips-guide td{background:#fff;border-bottom:1px solid var(--rk-line);padding:13px 15px;color:var(--rk-copy);vertical-align:top}
  #rk-clips-guide tr td:first-child{border-left:1px solid var(--rk-line)}
  #rk-clips-guide tr td:last-child{border-right:1px solid var(--rk-line)}
  #rk-clips-guide td strong{color:var(--rk-ink)}
  #rk-clips-guide .rk-table-caption{font-size:.83rem;color:var(--rk-muted)}
  #rk-clips-guide .rk-formula{margin:13px 0 0;background:#e8f6f8;border:1px solid #b5dce3;color:#085b74;border-radius:12px;padding:12px 15px;font-family:Consolas,Monaco,monospace;font-weight:800;overflow-wrap:anywhere}
  #rk-clips-guide .rk-calculator{background:#15394c;border:1px solid #4e7181;border-radius:21px;margin-top:27px;padding:26px}
  #rk-clips-guide .rk-calculator h3{font-size:1.55rem;margin:0;color:#fff}
  #rk-clips-guide .rk-calculator p{color:#d5e8ed}
  #rk-clips-guide .rk-choose{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
  #rk-clips-guide .rk-radio{display:flex;align-items:center;gap:8px;background:#22546a;border:1px solid #66899a;border-radius:11px;color:#fff;padding:10px 13px;cursor:pointer;font-weight:800}
  #rk-clips-guide .rk-radio input{accent-color:var(--rk-cyan);width:18px;height:18px}
  #rk-clips-guide .rk-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:20px}
  #rk-clips-guide .rk-field{display:block;color:#e9f5f8;font-size:.86rem;font-weight:800}
  #rk-clips-guide .rk-field small{display:block;font-size:.75rem;font-weight:400;color:#bad3dd;margin-top:3px;line-height:1.4}
  #rk-clips-guide .rk-field input,#rk-clips-guide .rk-field select{display:block;width:100%;min-height:48px;background:#fff;color:var(--rk-ink);border:1px solid #bed0d9;border-radius:9px;padding:9px 11px;margin-top:7px}
  #rk-clips-guide .rk-fields-group{margin-top:18px;background:#1b465a;border:1px solid #577a8d;border-radius:13px;padding:17px}
  #rk-clips-guide .rk-fields-group h4{color:#fff;margin-bottom:0}
  #rk-clips-guide [hidden]{display:none!important}
  #rk-clips-guide .rk-btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}
  #rk-clips-guide .rk-btn{cursor:pointer;border-radius:10px;padding:12px 19px;min-height:48px;font-weight:900;border:1px solid transparent}
  #rk-clips-guide .rk-btn-primary{background:var(--rk-orange);color:#fff;border-color:var(--rk-orange)}
  #rk-clips-guide .rk-btn-primary:hover{background:#d94e31}
  #rk-clips-guide .rk-btn-secondary{background:transparent;color:#fff;border-color:#7c9aa9}
  #rk-clips-guide .rk-btn-secondary:hover{background:#21556a}
  #rk-clips-guide .rk-error{background:#fff1ec;border-left:5px solid var(--rk-orange);color:#773426;border-radius:9px;padding:11px 15px;margin-top:15px}
  #rk-clips-guide .rk-result{background:#fff;border-left:7px solid var(--rk-cyan);border-radius:16px;padding:24px;margin-top:22px;color:var(--rk-ink)}
  #rk-clips-guide .rk-result-head{font-size:.78rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#08738d}
  #rk-clips-guide .rk-big{font-size:clamp(2.3rem,5vw,3.55rem);font-weight:900;letter-spacing:-.045em;line-height:1.13;color:var(--rk-ink);margin-top:5px}
  #rk-clips-guide .rk-result p{color:var(--rk-copy);margin-top:5px}
  #rk-clips-guide .rk-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:21px}
  #rk-clips-guide .rk-stat{background:#edf5f7;border:1px solid #cfe0e5;border-radius:11px;padding:13px}
  #rk-clips-guide .rk-stat span{display:block;color:#527184;text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:900;line-height:1.35}
  #rk-clips-guide .rk-stat strong{display:block;color:var(--rk-ink);font-size:1.23rem;margin-top:5px;line-height:1.35}
  #rk-clips-guide .rk-breakdown{padding-top:16px;margin-top:18px;border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-breakdown strong{color:var(--rk-ink)}
  #rk-clips-guide .rk-breakdown p{font-size:.87rem}
  #rk-clips-guide .rk-cta{margin-top:32px;padding:30px;background:radial-gradient(circle at 100% 110%,rgba(40,195,211,.22) 0 19%,transparent 19.3%),linear-gradient(125deg,#0b2536,#17516a);border-radius:19px;color:#fff}
  #rk-clips-guide .rk-cta .rk-cta-title{color:#fff;font-size:clamp(1.55rem,3vw,2.35rem)}
  #rk-clips-guide .rk-cta p{color:#d6e8ed;max-width:920px}
  #rk-clips-guide .rk-cta a.rk-cta-link{display:inline-block;margin-top:20px;padding:13px 19px;border-radius:11px;background:var(--rk-orange);color:#fff;text-decoration:none;font-weight:900}
  #rk-clips-guide .rk-cta a.rk-cta-link:hover{background:#fff;color:#bb4229}
  #rk-clips-guide .rk-cta small{display:block;color:#bdd5de;margin-top:11px}
  #rk-clips-guide .rk-steps{display:grid;gap:14px;margin-top:26px}
  #rk-clips-guide .rk-step{display:grid;grid-template-columns:43px minmax(0,1fr);gap:12px;background:#fff;border:1px solid var(--rk-line);border-radius:14px;padding:17px}
  #rk-clips-guide .rk-step-num{display:flex;align-items:center;justify-content:center;background:#dcf6f9;border-radius:9px;color:#086b85;font-weight:900;height:39px}
  #rk-clips-guide .rk-step p{margin:3px 0 0}
  #rk-clips-guide .rk-faq{display:grid;gap:11px;margin-top:27px}
  #rk-clips-guide .rk-faq details{border:1px solid var(--rk-line);background:#fff;border-radius:13px;overflow:hidden}
  #rk-clips-guide .rk-faq summary{cursor:pointer;list-style:none;color:var(--rk-ink);font-weight:900;padding:17px 45px 17px 18px;position:relative}
  #rk-clips-guide .rk-faq summary::-webkit-details-marker{display:none}
  #rk-clips-guide .rk-faq summary:after{content:'+';position:absolute;right:17px;top:9px;font-size:1.55rem;color:var(--rk-cyan-dark)}
  #rk-clips-guide .rk-faq details[open] summary:after{content:'−'}
  #rk-clips-guide .rk-faq .rk-faq-text{padding:0 18px 18px;border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-faq .rk-faq-text p{margin-top:13px}
  #rk-clips-guide .rk-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:25px}
  #rk-clips-guide .rk-source{background:#f0f7f9;border:1px solid #cbdfe6;border-radius:13px;padding:18px}
  #rk-clips-guide .rk-source a{font-weight:900}
  #rk-clips-guide .rk-source p{font-size:.89rem;margin-top:7px}
  #rk-clips-guide .rk-author{background:#eef6f8;padding:62px 58px;border-top:1px solid var(--rk-line)}
  #rk-clips-guide .rk-author-grid{display:grid;grid-template-columns:275px minmax(0,1fr);background:#fff;border:1px solid #c9dfe7;border-radius:20px;overflow:hidden;margin-top:25px}
  #rk-clips-guide .rk-author-side{background:var(--rk-navy);padding:32px 23px;color:#fff;text-align:center;display:flex;align-items:center;flex-direction:column}
  #rk-clips-guide .rk-author-side img{width:150px;height:150px;object-fit:cover;border-radius:50%;border:5px solid rgba(255,255,255,.24)}
  #rk-clips-guide .rk-author-side strong{font-size:1.2rem;margin-top:17px}
  #rk-clips-guide .rk-author-side p{color:#c0d6de;font-size:.84rem;margin-top:7px}
  #rk-clips-guide .rk-social{display:flex;gap:9px;margin-top:18px}
  #rk-clips-guide .rk-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #5f8293;border-radius:50%;color:#fff;text-decoration:none;font-weight:900}
  #rk-clips-guide .rk-social a:hover{background:var(--rk-cyan);color:var(--rk-navy)}
  #rk-clips-guide .rk-author-body{padding:33px}
  #rk-clips-guide .rk-author-body h3{font-size:1.7rem}
  #rk-clips-guide .rk-author-quote{border-left:5px solid var(--rk-cyan);background:#f1fafb;border-radius:11px;padding:16px 20px;font-weight:800;color:var(--rk-ink);margin-top:19px}
  #rk-clips-guide .rk-author-links a{font-weight:800}
  #rk-clips-guide .rk-sr{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;white-space:nowrap}
  @media(max-width:1000px){#rk-clips-guide .rk-grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:820px){#rk-clips-guide .rk-hero,#rk-clips-guide .rk-section,#rk-clips-guide .rk-author{padding-left:28px;padding-right:28px}#rk-clips-guide .rk-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}#rk-clips-guide .rk-author-grid{grid-template-columns:minmax(0,1fr)}}
  @media(max-width:650px){
    #rk-clips-guide .rk-hero{padding-top:43px;padding-bottom:39px}
    #rk-clips-guide .rk-section,#rk-clips-guide .rk-author{padding-top:43px;padding-bottom:43px}
    #rk-clips-guide .rk-grid2,#rk-clips-guide .rk-grid3,#rk-clips-guide .rk-grid4,#rk-clips-guide .rk-input-grid,#rk-clips-guide .rk-result-grid,#rk-clips-guide .rk-sources{grid-template-columns:minmax(0,1fr)}
    #rk-clips-guide .rk-calculator,#rk-clips-guide .rk-cta{padding:18px}
    #rk-clips-guide .rk-btn-row{display:grid}
    #rk-clips-guide .rk-btn{width:100%}
    #rk-clips-guide .rk-table-wrap{overflow:visible}
    #rk-clips-guide table,#rk-clips-guide thead,#rk-clips-guide tbody,#rk-clips-guide tr,#rk-clips-guide td{display:block;min-width:0;width:100%}
    #rk-clips-guide thead{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;white-space:nowrap;width:1px}
    #rk-clips-guide tbody{display:grid;gap:14px}
    #rk-clips-guide tbody tr{border:1px solid var(--rk-line);border-radius:12px;overflow:hidden}
    #rk-clips-guide td,#rk-clips-guide tr td:first-child,#rk-clips-guide tr td:last-child{border:0;border-bottom:1px solid #e2ebef;padding:12px 14px}
    #rk-clips-guide tr td:last-child{border-bottom:0}
    #rk-clips-guide td:before{content:attr(data-label);display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--rk-cyan-dark);font-weight:900;margin-bottom:3px}
    #rk-clips-guide .rk-author-body{padding:24px 20px}
  }
  @media(max-width:430px){#rk-clips-guide .rk-hero,#rk-clips-guide .rk-section,#rk-clips-guide .rk-author{padding-left:18px;padding-right:18px}#rk-clips-guide .rk-nav{padding:14px}#rk-clips-guide .rk-nav a{flex:1 1 calc(50% - 8px);text-align:center}#rk-clips-guide .rk-nav strong{flex:1 1 100%}#rk-clips-guide .rk-hero-title{font-size:2.19rem}}
  @media(prefers-reduced-motion:reduce){#rk-clips-guide *,#rk-clips-guide *:before,#rk-clips-guide *:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
</style>

<article id="rk-clips-guide" aria-labelledby="rk-clips-visual-title">
  <div class="rk-shell">
    <header class="rk-hero">
      <span class="rk-kicker">Materiały do podłogówki · poradnik i kalkulator</span>
      <div class="rk-hero-title" id="rk-clips-visual-title">Ile spinek do podłogówki na m²? <span>Kalkulator spinek i klipsów</span></div>
      <p class="rk-hero-lead">Policz zapotrzebowanie na mocowania na podstawie powierzchni i rozstawu rur albo gotowego metrażu z projektu. Zobacz osobno wynik bazowy, poprawkę na trudne miejsca, zapas i liczbę opakowań.</p>
      <div class="rk-hero-tags" aria-label="Zakres poradnika">
        <span>spinki na 1 m²</span>
        <span>spinki na metr rury</span>
        <span>rozstaw rur 10, 15 i 20 cm</span>
        <span>mocowanie co 40–50 cm</span>
        <span>łuki, zapas i opakowania</span>
      </div>
      <div class="rk-hero-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Zakres: <strong>spinki do takera i szacunek materiałowy</strong></span><span>Data publikacji: <strong>3 października 2026 r.</strong></span></div>
    </header>

    <nav class="rk-nav" aria-label="Na skróty po artykule"><strong>Na skróty</strong><a href="#rk-clips-answer">Odpowiedź</a><a href="#rk-clips-calculator-section">Kalkulator</a><a href="#rk-clips-method">Wzór</a><a href="#rk-clips-table">Tabela</a><a href="#rk-clips-turns">Łuki i podejścia</a><a href="#rk-clips-systems">Systemy</a><a href="#rk-clips-fit">Dobór</a><a href="#rk-clips-packs">Opakowania</a><a href="#rk-clips-errors">Błędy</a><a href="#rk-clips-faq">FAQ</a><a href="#rk-clips-sources">Źródła</a><a href="#rk-clips-author">Autor</a></nav>

    <section class="rk-section" id="rk-clips-answer">
      <span class="rk-eyebrow">Odpowiedź od razu</span>
      <h2>Ile spinek do podłogówki przypada na 1 m²?</h2>
      <p class="rk-lead">Zużycie spinek zależy przede wszystkim od <strong>metrów rury na danym polu</strong> i od odstępu między jej punktami mocowania. Ta sama powierzchnia przy rozstawie rur 10 cm potrzebuje więcej spinek niż przy 20 cm. Mocowanie łuków i odcinków przy rozdzielaczu może zwiększyć wynik.</p>
      <div class="rk-answer"><strong>Orientacyjny punkt wyjścia dla systemu takerowego: około 13–17 spinek na 1 m² przy rozstawie rur 15 cm i mocowaniu prostych odcinków co 40–50 cm.</strong><p>To obliczenie bazowe, bez osobno doliczonej korekty na łuki, podejścia i zapasu. Podany odstęp mocowania jest przykładem spotykanym w dokumentacjach technicznych. Pierwszeństwo ma instrukcja konkretnej rury, spinki, izolacji i narzędzia.</p></div>
      <div class="rk-grid3">
        <div class="rk-card"><span class="rk-card-badge">KROK 1</span><h3>Rura</h3><p>Przybliżenie dla regularnego pola to powierzchnia czynna podzielona przez rozstaw rur w metrach.</p></div>
        <div class="rk-card"><span class="rk-card-badge">KROK 2</span><h3>Mocowanie</h3><p>Metraż rury dzielisz przez odstęp mocowań przyjęty dla używanego systemu.</p></div>
        <div class="rk-card"><span class="rk-card-badge">KROK 3</span><h3>Zakup</h3><p>Doliczasz potrzebne mocowania na łukach, zapas i zaokrąglasz wynik do pełnych opakowań.</p></div>
      </div>
    </section>

    <section class="rk-section rk-dark" id="rk-clips-calculator-section">
      <span class="rk-eyebrow">Narzędzie materiałowe</span>
      <h2>Kalkulator spinek i klipsów do podłogówki</h2>
      <p class="rk-lead">Wybierz dane, które masz. Jeżeli projekt podaje rzeczywisty metraż rur, użyj drugiego trybu. Kalkulator liczy spinki dla mocowania do izolacji; nie dobiera rozstawu rur ani nie sprawdza hydrauliki pętli.</p>
      <div class="rk-calculator" id="rk-clips-calculator">
        <h3>Policz spinki i pełne opakowania</h3>
        <p>Wszystkie założenia są widoczne. Wartości 40 i 50 cm to przykłady; sprawdź zalecenia systemu, który montujesz.</p>
        <div class="rk-choose" role="radiogroup" aria-label="Rodzaj danych do obliczenia">
          <label class="rk-radio"><input type="radio" name="rk-clips-mode" value="area" checked> Znam powierzchnię i rozstaw</label>
          <label class="rk-radio"><input type="radio" name="rk-clips-mode" value="length"> Znam metraż rury z projektu</label>
        </div>
        <div id="rk-clips-area-fields" class="rk-fields-group">
          <h4>Powierzchnia czynna i rozstaw</h4>
          <div class="rk-input-grid">
            <label class="rk-field">Czynna powierzchnia podłogi [m²]<input id="rk-clips-area" type="number" min="0.1" max="10000" step="0.1" value="30" inputmode="decimal"><small>Nie wpisuj całego budynku, jeśli część pól jest wyłączona z układania rur.</small></label>
            <label class="rk-field">Rozstaw rur [cm]<select id="rk-clips-spacing"><option value="10">10 cm</option><option value="12.5">12,5 cm</option><option value="15" selected>15 cm</option><option value="20">20 cm</option><option value="25">25 cm</option></select><small>Podaj rozstaw wynikający z projektu lub przyjętego założenia.</small></label>
          </div>
        </div>
        <div id="rk-clips-length-fields" class="rk-fields-group" hidden>
          <h4>Znany metraż rury</h4>
          <div class="rk-input-grid"><label class="rk-field">Metry rur objęte obliczeniem [m]<input id="rk-clips-length" type="number" min="0.1" max="100000" step="0.1" value="200" inputmode="decimal"><small>Wpisz sumę długości z projektu. Jeśli zawiera podejścia, zostaw pole poniżej na zero.</small></label></div>
        </div>
        <div class="rk-input-grid">
          <label class="rk-field">Dodatkowe podejścia nieuwzględnione powyżej [m]<input id="rk-clips-approaches" type="number" min="0" max="10000" step="0.1" value="0" inputmode="decimal"><small>Łączna długość obu kierunków. Nie doliczaj po raz drugi odcinków już zawartych w metrażu z projektu.</small></label>
          <label class="rk-field">Odstęp mocowań na odcinkach prostych [cm]<select id="rk-clips-pitch"><option value="35">35 cm</option><option value="40">40 cm</option><option value="50" selected>50 cm</option><option value="60">60 cm</option></select><small>Wybierz wartość zgodną z dokumentacją stosowanego systemu.</small></label>
          <label class="rk-field">Korekta na łuki i trudne miejsca [%]<input id="rk-clips-bends" type="number" min="0" max="100" step="1" value="10" inputmode="numeric"><small>10% to jawny przykład zakupowy, nie norma. W projekcie można policzyć te mocowania dokładniej.</small></label>
          <label class="rk-field">Dodatkowy zapas zakupowy [%]<input id="rk-clips-reserve" type="number" min="0" max="50" step="1" value="5" inputmode="numeric"><small>Obejmuje straty montażowe i zaokrąglenia zamówienia, a nie długość projektową rur.</small></label>
          <label class="rk-field">Sztuk w jednym opakowaniu<input id="rk-clips-pack" type="number" min="1" max="100000" step="1" value="270" inputmode="numeric"><small>Zmień, jeśli wybrany produkt ma inną wielkość opakowania.</small></label>
        </div>
        <div class="rk-btn-row"><button type="button" class="rk-btn rk-btn-primary" id="rk-clips-run">Oblicz liczbę spinek</button><button type="button" class="rk-btn rk-btn-secondary" id="rk-clips-reset">Przywróć przykład</button></div>
        <div id="rk-clips-error" class="rk-error" role="alert" hidden></div>
        <div id="rk-clips-result" class="rk-result" aria-live="polite" aria-atomic="true">
          <div class="rk-result-head">Wynik dla wprowadzonych danych</div>
          <div class="rk-big" id="rk-clips-total">—</div>
          <p id="rk-clips-summary">Uzupełnij założenia i oblicz wynik.</p>
          <div class="rk-result-grid">
            <div class="rk-stat"><span>Rura do mocowania</span><strong id="rk-clips-result-length">—</strong></div>
            <div class="rk-stat"><span>Spinki na prostych odcinkach</span><strong id="rk-clips-result-base">—</strong></div>
            <div class="rk-stat"><span>Korekta na łuki</span><strong id="rk-clips-result-bends">—</strong></div>
            <div class="rk-stat"><span>Zapas zakupowy</span><strong id="rk-clips-result-reserve">—</strong></div>
            <div class="rk-stat"><span>Pełne opakowania</span><strong id="rk-clips-result-packs">—</strong></div>
            <div class="rk-stat"><span>Na 1 m² pola</span><strong id="rk-clips-result-density">—</strong></div>
          </div>
          <div class="rk-breakdown"><strong>Jak powstał wynik</strong><p id="rk-clips-equation">Pokażemy metry rury, odstęp mocowań, obie korekty i zaokrąglenie do opakowań.</p><p id="rk-clips-limit">Wynik jest szacunkiem materiałowym. Rozkład faktycznych punktów mocowania sprawdź na rysunku pętli i w instrukcji systemu.</p></div>
        </div>
      </div>
      <div class="rk-cta" aria-label="Sprawdź produkt po obliczeniu materiałów">
        <div class="rk-cta-title">Policzyłeś spinki? Sprawdź jeszcze ich zgodność z rurą i takerem</div>
        <p>Przed zakupem porównaj wymiar spinki, średnicę rury, grubość izolacji, narzędzie oraz liczbę sztuk w opakowaniu. Wynik kalkulatora jest punktem wyjścia do zamówienia odpowiedniego mocowania.</p>
        <a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/spinka-do-styropianu-do-takera/">Sprawdź spinki do takera</a>
        <small>Odnośnik prowadzi do produktu w sklepie autora poradnika.</small>
      </div>
    </section>

    <section class="rk-section" id="rk-clips-method">
      <span class="rk-eyebrow">Jawny rachunek</span>
      <h2>Jak obliczyć liczbę spinek krok po kroku?</h2>
      <p class="rk-lead">Kalkulator rozdziela geometrię pola, częstotliwość mocowania i rezerwę materiałową. Dzięki temu nie ukrywa łuków pod jedną rzekomo uniwersalną liczbą spinek na metr kwadratowy.</p>
      <div class="rk-steps">
        <div class="rk-step"><span class="rk-step-num">1</span><div><h3>Ustal metry rury na aktywnej powierzchni</h3><p>Dla regularnego pola długość rury można oszacować, dzieląc czynną powierzchnię przez rozstaw w metrach. Przy 30 m² i rozstawie 15 cm otrzymasz około 200 m. Jeżeli masz metraż z projektu, wykorzystaj go bez ponownego wyliczania z powierzchni.</p><div class="rk-formula">L pola ≈ A czynna ÷ (s / 100)</div></div></div>
        <div class="rk-step"><span class="rk-step-num">2</span><div><h3>Dolicz podejścia, których nie ma w metrażu</h3><p>Odcinki do rozdzielacza i z powrotem bywają pominięte przy szacowaniu rury wyłącznie na polu. Wpisz ich sumę tylko raz. Jeżeli projektowa suma pętli już je uwzględnia, dodatkiem jest zero.</p><div class="rk-formula">L mocowania ≈ L pola albo L projektu + L brakujących podejść</div></div></div>
        <div class="rk-step"><span class="rk-step-num">3</span><div><h3>Policz spinki bazowe</h3><p>Podziel długość mocowanej rury przez przyjęty odstęp między punktami mocowania. Wynik zaokrąglij do pełnej sztuki. Odcinki przy końcach i załamaniach mogą wymagać mocowania niezależnie od tego przybliżenia.</p><div class="rk-formula">N baza = zaokrąglij w górę (L mocowania ÷ odstęp mocowań)</div></div></div>
        <div class="rk-step"><span class="rk-step-num">4</span><div><h3>Dodaj korektę i zapas, następnie pełne opakowania</h3><p>Poprawka procentowa na trudne miejsca służy wyłącznie do orientacyjnego zakupu. Osobno dodaj rezerwę, a dopiero potem przelicz liczbę pełnych opakowań.</p><div class="rk-formula">N zakup = zaokrąglij w górę [(N baza + N łuki) × (1 + zapas / 100)]</div><div class="rk-formula">Opakowania = zaokrąglij w górę (N zakup ÷ sztuki w opakowaniu)</div></div></div>
      </div>
      <div class="rk-note"><p><strong>Uwaga o zaokrągleniu:</strong> dla małego pomieszczenia ostatnie mocowanie przy końcu odcinka może wymagać dodatkowej sztuki. Kalkulator służy do planowania całego zamówienia, a miejsca wbijania spinek określa wykonawca na rzeczywistej trasie rury.</p></div>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-table">
      <span class="rk-eyebrow">Szybka tabela</span>
      <h2>Ile spinek na 10, 50 i 100 m² przy rozstawie 10, 15 lub 20 cm?</h2>
      <p class="rk-lead">Poniższe wartości dotyczą prostych odcinków w systemie takerowym, przy dwóch przykładach odstępu mocowań. W tabeli nie ma dodatkowych spinek na łuki, nieujętych podejść ani zapasu.</p>
      <div class="rk-table-wrap"><table><thead><tr><th>Powierzchnia czynna</th><th>Rozstaw rur</th><th>Rura na polu</th><th>Spinki co 50 cm</th><th>Spinki co 40 cm</th></tr></thead><tbody>
        <tr><td data-label="Powierzchnia"><strong>10 m²</strong></td><td data-label="Rozstaw">10 cm</td><td data-label="Rura">100 m</td><td data-label="Co 50 cm">200 szt.</td><td data-label="Co 40 cm">250 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>10 m²</strong></td><td data-label="Rozstaw">15 cm</td><td data-label="Rura">około 66,7 m</td><td data-label="Co 50 cm">około 134 szt.</td><td data-label="Co 40 cm">około 167 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>10 m²</strong></td><td data-label="Rozstaw">20 cm</td><td data-label="Rura">50 m</td><td data-label="Co 50 cm">100 szt.</td><td data-label="Co 40 cm">125 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>50 m²</strong></td><td data-label="Rozstaw">15 cm</td><td data-label="Rura">około 333,3 m</td><td data-label="Co 50 cm">około 667 szt.</td><td data-label="Co 40 cm">około 834 szt.</td></tr>
        <tr><td data-label="Powierzchnia"><strong>100 m²</strong></td><td data-label="Rozstaw">15 cm</td><td data-label="Rura">około 666,7 m</td><td data-label="Co 50 cm">około 1334 szt.</td><td data-label="Co 40 cm">około 1667 szt.</td></tr>
      </tbody></table></div>
      <p class="rk-table-caption">Rachunek geometryczny: A ÷ s, następnie podział długości przez 0,5 m albo 0,4 m. Każdy wynik w sztukach zaokrąglono w górę. Rzeczywista geometria pętli zmienia zużycie.</p>
      <div class="rk-note rk-note-ok"><p><strong>Przykład do zamówienia:</strong> dla 30 m², 15 cm rozstawu i mocowania co 50 cm bazą jest 400 spinek. Przy przykładowych 10% na trudne miejsca i 5% zapasu otrzymujesz 462 spinki, czyli dwa opakowania po 270 sztuk. To wariant kalkulatorowy, a nie obowiązkowa liczba na taką powierzchnię.</p></div>
    </section>

    <section class="rk-section" id="rk-clips-turns">
      <span class="rk-eyebrow">Miejsca, w których średnia myli</span>
      <h2>Łuki, nawroty i podejścia: gdzie potrzeba więcej mocowań?</h2>
      <p class="rk-lead">Mocowanie rury co jednakową odległość na całej trasie jest uproszczeniem. Nawroty, przejścia przez drzwi i odcinki wychodzące z rozdzielacza mogą wymagać dodatkowych punktów stabilizacji zgodnie z instrukcją systemu i geometrią pętli.</p>
      <div class="rk-grid3">
        <div class="rk-card"><span class="rk-card-badge">NAWRÓT</span><h3>Rura zmienia kierunek</h3><p>Sprawdź, czy łuk trzyma zadany promień i nie unosi się z izolacji. Sama gęstość spinek na prostych odcinkach nie opisuje tego miejsca.</p></div>
        <div class="rk-card"><span class="rk-card-badge">ROZDZIELACZ</span><h3>Wiele rur w jednym miejscu</h3><p>Każda pętla ma własne podejście. Jeżeli długości projektu obejmują te odcinki, uwzględnij je raz w całkowitym metrażu mocowanej rury.</p></div>
        <div class="rk-card"><span class="rk-card-badge">PRZEJŚCIA</span><h3>Dylatacja i próg</h3><p>Przejścia trzeba wykonać zgodnie z projektem i ochronić rurę. O dodatkowym mocowaniu decyduje sposób prowadzenia oraz osłony.</p></div>
      </div>
      <p>Przy własnym projekcie odczytaj rzeczywistą długość każdej <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a>. Jeżeli liczysz rurę z metrażu powierzchni, pomocny będzie osobny <a href="https://projekt-ogrzewania.pl/kalkulator-do-obliczania-ilosci-metrow-rury-potrzebnych-do-ogrzewania-podlogowego/">kalkulator ilości rury</a>. Żadnego z tych narzędzi nie należy używać do automatycznego dobierania rozstawu.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-systems">
      <span class="rk-eyebrow">Technologia mocowania</span>
      <h2>Spinki do takera, klipsy, szyny i płyty z wypustkami</h2>
      <p class="rk-lead">Słowo „klips” bywa używane wobec różnych elementów. Przed użyciem kalkulatora ustal, co dokładnie trzyma rurę w wybranej konstrukcji podłogi.</p>
      <div class="rk-table-wrap"><table><thead><tr><th>Sposób mocowania</th><th>Co trzyma rurę?</th><th>Czy kalkulator spinek do izolacji ma zastosowanie?</th></tr></thead><tbody>
        <tr><td data-label="System"><strong>Taker na izolacji</strong></td><td data-label="Mocowanie">Osobne spinki wbijane nad rurą do odpowiedniej warstwy izolacji.</td><td data-label="Zastosowanie">Tak, po ustaleniu rozstawu mocowań z dokumentacji wybranego systemu.</td></tr>
        <tr><td data-label="System"><strong>Szyna montażowa</strong></td><td data-label="Mocowanie">Rurę utrzymuje listwa, a szynę mocuje się do podłoża osobno.</td><td data-label="Zastosowanie">Nie do obliczania elementów szyny. Potrzebny jest rozstaw szyn i liczba ich punktów kotwienia.</td></tr>
        <tr><td data-label="System"><strong>Płyta z wypustkami</strong></td><td data-label="Mocowanie">Rurę ustalają wypustki płyty, bez spinki do takera na każdym odcinku.</td><td data-label="Zastosowanie">Nie. Zamówienie dotyczy powierzchni płyt i elementów systemowych.</td></tr>
        <tr><td data-label="System"><strong>Siatka i opaski</strong></td><td data-label="Mocowanie">Rurę podtrzymują odpowiednie opaski lub klipsy mocowane do siatki.</td><td data-label="Zastosowanie">Nie wprost. Instrukcja tego rozwiązania może przewidywać inną liczbę mocowań.</td></tr>
      </tbody></table></div>
      <div class="rk-note"><p><strong>Nie myl dwóch rozstawów:</strong> „rury co 15 cm” oznacza odległość między sąsiednimi przebiegami rury, a „spinki co 50 cm” oznaczają odległość między punktami mocowania wzdłuż rury. To dwie różne wielkości.</p></div>
    </section>

    <section class="rk-section" id="rk-clips-fit">
      <span class="rk-eyebrow">Kontrola przed zakupem</span>
      <h2>Jak dobrać spinkę do rury, izolacji i takera?</h2>
      <p class="rk-lead">Poprawna liczba spinek nie wystarczy, jeżeli mocowanie nie jest zgodne z pozostałymi elementami. Sprawdź kartę konkretnego produktu oraz instrukcję kompletnego systemu.</p>
      <div class="rk-grid4">
        <div class="rk-card"><span class="rk-card-badge">01</span><h3>Średnica rury</h3><p>Sprawdź zakres średnic dopuszczony dla spinki. Nie zakładaj, że każda pasuje jednakowo do 16, 17 i 20 mm.</p></div>
        <div class="rk-card"><span class="rk-card-badge">02</span><h3>Izolacja i folia</h3><p>Znaczenie mają grubość i typ warstwy, w której kotwi się spinka, oraz sposób zabezpieczenia podłoża.</p></div>
        <div class="rk-card"><span class="rk-card-badge">03</span><h3>Narzędzie</h3><p>Porównaj geometrię i sposób podawania spinek z takerem. Zgodna wysokość nie przesądza o zgodności magazynka.</p></div>
        <div class="rk-card"><span class="rk-card-badge">04</span><h3>Warunki montażu</h3><p>Sprawdź sposób mocowania na łukach, ochronę rury przy dylatacjach i stabilność przed układaniem jastrychu.</p></div>
      </div>
      <p>Jeżeli dopiero wybierasz całą konstrukcję posadzki, najpierw ustal warstwę izolacji w poradniku <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">ile styropianu pod ogrzewanie podłogowe</a> i rozstrzygnij <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry czy suchy</a>. Dopiero wtedy porównuj sposoby mocowania rur.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-packs">
      <span class="rk-eyebrow">Zamówienie materiału</span>
      <h2>Ile opakowań spinek kupić na całą instalację?</h2>
      <p class="rk-lead">Wynik w sztukach zawsze zaokrąglij do pełnych opakowań wybranego produktu. Przy dużym domu policz wszystkie pola o różnych rozstawach osobno, dodaj rzeczywiste podejścia i dopiero podsumuj zamówienie.</p>
      <ol><li>Spisz aktywną powierzchnię lub metraż rur dla każdego pomieszczenia.</li><li>Jeżeli rozstawy są różne, oszacuj długość rury dla każdego pola oddzielnie.</li><li>Dodaj podejścia, jeżeli nie ma ich w projekcie lub zestawieniu pętli.</li><li>Zastosuj odstęp mocowania dopuszczony dla wybranego produktu.</li><li>Ujmij dodatkowe mocowania oraz zapas zakupowy.</li><li>Sprawdź liczbę sztuk w opakowaniu i zaokrąglij liczbę opakowań w górę.</li></ol>
      <div class="rk-note rk-note-ok"><p><strong>Przykład:</strong> potrzebujesz 462 spinek, a wybrana paczka zawiera 270 sztuk. Do zamówienia wychodzą 2 paczki, czyli 540 sztuk. Po odliczeniu oszacowanego zużycia pozostaje 78 sztuk. Wielkość opakowania wpisujesz w kalkulatorze samodzielnie.</p></div>
      <p>Rozstaw rury musi wynikać z zapotrzebowania na ciepło i konstrukcji podłogi; osobno omawia to artykuł <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur co 10 czy 15 cm</a>. Liczba spinek jest konsekwencją tego wyboru, nie kryterium jego podejmowania.</p>
    </section>

    <section class="rk-section" id="rk-clips-errors">
      <span class="rk-eyebrow">Szybka kontrola wykonawcza</span>
      <h2>Najczęstsze błędy przy liczeniu i mocowaniu spinek</h2>
      <div class="rk-grid3">
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 1</span><h3>Jedna liczba na każdy m²</h3><p>Nie bierze pod uwagę, czy rury są co 10, 15 czy 20 cm.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 2</span><h3>Pomijanie podejść</h3><p>Powierzchnia pomieszczenia nie opisuje dodatkowych odcinków do rozdzielacza.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 3</span><h3>Podwójne doliczanie rur</h3><p>Gdy wpisano pełny metraż pętli z projektu, podejść zawartych w tej sumie nie dodaje się ponownie.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 4</span><h3>Ten sam odstęp wszędzie</h3><p>Na łukach i przy zmianach kierunku punkty stabilizacji trzeba ocenić na rzeczywistym ułożeniu.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 5</span><h3>Niezgodny system</h3><p>Spinka, tacker, rura i izolacja muszą tworzyć odpowiedni układ mocowania.</p></div>
        <div class="rk-card"><span class="rk-card-badge">BŁĄD 6</span><h3>Przelicznik do każdej technologii</h3><p>Płyty z wypustkami, szyny i opaski na siatce nie są obliczane jak spinki do takera.</p></div>
      </div>
      <p>Szerszą kontrolę prac przed zalaniem podłogi zawiera poradnik o <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">błędach montażu ogrzewania podłogowego</a>. Zapis przebiegu pętli i próba przed zakryciem są ważniejsze niż samo zamówienie poprawnej liczby klipsów.</p>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-faq">
      <span class="rk-eyebrow">Pytania przed zamówieniem</span>
      <h2>FAQ — ile spinek i klipsów do podłogówki?</h2>
      <div class="rk-faq">
        <details><summary>Ile spinek do podłogówki na 1 m² przy rozstawie 15 cm?</summary><div class="rk-faq-text"><p>Na regularnym polu wypada około 6,67 m rury na 1 m². Przy mocowaniu co 50 cm daje to około 13–14 spinek bazowych, a co 40 cm około 16–17. Osobno uwzględnij łuki, podejścia i zapas.</p></div></details>
        <details><summary>Ile spinek na 10 m² podłogówki?</summary><div class="rk-faq-text"><p>Przy rozstawie rur 15 cm powstaje orientacyjnie 66,7 m rury na polu. Mocowanie co 50 cm oznacza około 134 spinki bazowe, a co 40 cm około 167. Inny rozstaw rur zmieni wynik.</p></div></details>
        <details><summary>Ile spinek na 100 m² ogrzewania podłogowego?</summary><div class="rk-faq-text"><p>Dla jednego regularnego pola 100 m² i rozstawu 15 cm można oszacować około 667 m rury. Podział przez 0,5 m daje około 1334 spinki bazowe, a przez 0,4 m około 1667. Cały dom zwykle ma różne rozstawy i podejścia, dlatego te liczby są jedynie przykładem.</p></div></details>
        <details><summary>Ile spinek przypada na metr rury?</summary><div class="rk-faq-text"><p>Przy odstępie mocowań 50 cm wypada orientacyjnie 2 spinki na metr rury; przy 40 cm około 2,5. Sprawdź instrukcję konkretnego systemu, szczególnie zalecenia dotyczące łuków.</p></div></details>
        <details><summary>Czy odstęp między spinkami to to samo co rozstaw rur?</summary><div class="rk-faq-text"><p>Nie. Rozstaw rur opisuje odległość między sąsiednimi przebiegami przewodu w podłodze. Odstęp między spinkami mierzy się wzdłuż jednej rury.</p></div></details>
        <details><summary>Czy kalkulator dolicza łuki?</summary><div class="rk-faq-text"><p>Tak, jako jawnie ustawianą korektę procentową do liczby spinek bazowych. Domyślne 10% jest przykładem do wstępnego zamówienia, a nie liczbą wymaganą dla każdej instalacji.</p></div></details>
        <details><summary>Czy trzeba doliczyć rury od rozdzielacza?</summary><div class="rk-faq-text"><p>Tak, jeżeli nie zostały ujęte w długości rury wpisanej do kalkulatora. Jeśli znasz pełny metraż pętli z projektu wraz z podejściami, wpisz dodatkową długość równą zero.</p></div></details>
        <details><summary>Czy na łuku można wbijać spinki tak samo jak na prostej?</summary><div class="rk-faq-text"><p>Łuk musi zachować promień gięcia i stabilnie przylegać do podłoża. Liczbę i położenie punktów mocowania trzeba ocenić na rzeczywistej trasie zgodnie z instrukcją systemu.</p></div></details>
        <details><summary>Czy spinki 40 mm i 50 mm są zamienne?</summary><div class="rk-faq-text"><p>Sama długość ramion nie wystarcza do stwierdzenia zamienności. Sprawdź średnicę rury, rodzaj i grubość izolacji, narzędzie oraz dopuszczenie danego systemu.</p></div></details>
        <details><summary>Czy spinki do rury 16 mm pasują również do rury 20 mm?</summary><div class="rk-faq-text"><p>Nie wynika to automatycznie z nazwy spinki. O zgodności decyduje zakres wymiarów deklarowany dla konkretnego produktu i używanego narzędzia.</p></div></details>
        <details><summary>Czy kalkulator policzy klipsy do szyny albo siatki?</summary><div class="rk-faq-text"><p>Nie. Narzędzie jest przeznaczone do wstępnego liczenia osobnych spinek mocujących rurę do izolacji. Szyny, płyty z wypustkami i siatki wymagają własnych zasad obmiaru.</p></div></details>
        <details><summary>Dlaczego wynik w opakowaniach jest wyższy od wyniku w sztukach?</summary><div class="rk-faq-text"><p>Opakowania kupuje się zwykle w całości. Kalkulator dzieli zapotrzebowanie w sztukach przez wielkość paczki i zaokrągla liczbę paczek w górę. Pokazuje także liczbę sztuk, które pozostaną po takim zakupie.</p></div></details>
        <details><summary>Czy liczba spinek określa poprawność projektu ogrzewania?</summary><div class="rk-faq-text"><p>Nie. Wynik dotyczy materiału montażowego. Rozstaw rur, podział na pętle, przepływy, opory i temperatury pracy wynikają z obliczeń projektu instalacji.</p></div></details>
        <details><summary>Co zrobić, jeśli spinka nie trzyma się izolacji?</summary><div class="rk-faq-text"><p>Nie próbuj kompensować problemu wyłącznie większą liczbą spinek. Sprawdź zgodność mocowania z izolacją, jej grubość i stan, poprawność użycia narzędzia oraz instrukcję systemu.</p></div></details>
      </div>
    </section>

    <section class="rk-section" id="rk-clips-project">
      <span class="rk-eyebrow">Gdy brakuje danych do kalkulatora</span>
      <h2>Nie znasz jeszcze rozstawów ani długości pętli?</h2>
      <p class="rk-lead">Dokładniejsze zamówienie materiału zaczyna się od ustalenia aktywnych powierzchni, przebiegu obwodów i położenia rozdzielacza. Te dane wynikają z projektu całej instalacji, a nie z uśrednionej liczby spinek na metr kwadratowy domu.</p>
      <div class="rk-cta"><div class="rk-cta-title">Zamów projekt podłogówki z rozstawami i podziałem na pętle</div><p>Projekt określa obciążenia cieplne, rozstaw rur w poszczególnych polach, długości pętli, podejścia, przepływy i nastawy. Na tej podstawie wykonawca może przygotować rzeczywiste zestawienie rury i materiałów do jej montażu.</p><a class="rk-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt ogrzewania podłogowego</a><small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small></div>
    </section>

    <section class="rk-section rk-soft" id="rk-clips-sources">
      <span class="rk-eyebrow">Podstawa techniczna</span>
      <h2>Źródła i granice szacunku</h2>
      <p class="rk-lead">Odstępy mocowania 40 i 50 cm są jawnymi założeniami scenariuszy zakupowych, a nie uniwersalną liczbą spinek wynikającą z poniższych norm. Geometria pola to autorskie przybliżenie materiałowe; projektowanie cieplne i instalowanie systemów płaszczyznowych mają odrębne wymagania. Właściwy sposób mocowania ustal dla wybranego systemu.</p>
      <div class="rk-sources">
        <div class="rk-source"><a href="https://knowledge.bsigroup.com/products/water-based-surface-embedded-heating-and-cooling-systems-installation-1" target="_blank" rel="nofollow noopener noreferrer">EN 1264-4:2021 — instalowanie wodnych systemów płaszczyznowych</a><p>Oficjalna karta normy dotyczącej projektowania i wykonania konstrukcji ogrzewania oraz chłodzenia powierzchniowego.</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 systemu</a><p>Oficjalna karta normy o doborze i wymiarowaniu instalacji w celu zapewnienia wymaganej mocy grzewczej lub chłodniczej.</p></div>
        <div class="rk-source"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — instalowanie wbudowanych systemów wodnych</a><p>Oficjalna karta normy opisującej montaż wodnych systemów ogrzewania i chłodzenia płaszczyznowego.</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 — ustalanie zdolności grzewczej i chłodniczej</a><p>Oficjalna karta obliczeń cieplnych, z których wynika projektowy rozstaw rury.</p></div>
      </div>
      <div class="rk-note rk-note-alert"><p><strong>Zakres narzędzia:</strong> liczy orientacyjne zapotrzebowanie na spinki do mocowania rury do izolacji. Nie wyznacza lokalizacji pojedynczych punktów mocowania, wymaganego rozstawu rur, nośności podłoża, wydajności ogrzewania ani dopuszczalnych długości pętli. Przy sprzeczności z kartą produktu stosuj aktualną instrukcję wybranego systemu.</p></div>
    </section>

    <section class="rk-author" id="rk-clips-author">
      <span class="rk-eyebrow">Autor i weryfikacja</span>
      <h2>O autorze</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 sanitarnych i ogrzewania podłogowego" 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="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 Projekt HVAC w X">X</a></div></aside>
        <div class="rk-author-body"><h3>Projektowanie i obmiar jednej instalacji</h3><div class="rk-author-quote">„Metry rury wynikają z rozrysowanych pól i podejść. Liczbę spinek można policzyć dopiero po ustaleniu tych metrów oraz sposobu mocowania.”</div><p>Robert Kucharski przygotowuje projekty wodnego ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W tym poradniku oddziela obliczenie zakupowe spinek od doboru rozstawu rur i parametrów pracy instalacji.</p><p>Weryfikacja obejmuje jawność wzorów, zgodność przykładów liczbowych, rozróżnienie technologii mocowania i wskazanie granic wyniku. Zastosowanie konkretnej spinki trzeba potwierdzić w dokumentacji wyrobu oraz instrukcji używanego systemu.</p><p class="rk-author-links">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/",
      "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", "projektowanie instalacji grzewczych", "dobór materiałów montażowych", "hydraulika pętli grzewczych"],
      "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/ile-spinek-do-podlogowki-na-m2/#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": "Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów", "item": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/" }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#webpage",
      "url": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/",
      "name": "Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów",
      "description": "Ile spinek do podłogówki na m²? Oblicz zapotrzebowanie z rozstawu rur i odstępu mocowań. Kalkulator pokaże liczbę spinek, zapas i opakowania.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#breadcrumb" },
      "datePublished": "2026-10-03",
      "dateModified": "2026-10-03",
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#webpage" },
      "headline": "Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów",
      "description": "Przewodnik szacowania liczby spinek do rur ogrzewania podłogowego z tabelą, metodą obliczeń i kalkulatorem opakowań.",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "datePublished": "2026-10-03",
      "dateModified": "2026-10-03",
      "inLanguage": "pl-PL",
      "keywords": "ile spinek do podłogówki na m², kalkulator spinek, ile klipsów na metr rury, spinki do takera, ile opakowań spinek",
      "about": ["spinki do ogrzewania podłogowego", "mocowanie rur do izolacji", "obmiar materiałów instalacyjnych"],
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#calculator" },
        { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#calculator",
      "name": "Kalkulator spinek i klipsów do podłogówki",
      "url": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#rk-clips-calculator-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Orientacyjnie oblicza liczbę spinek z powierzchni i rozstawu rur albo ze znanego metrażu, a następnie dolicza jawne poprawki i pełne opakowania."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#howto",
      "name": "Jak obliczyć liczbę spinek do ogrzewania podłogowego",
      "description": "Cztery etapy obmiaru rury, mocowań, dodatków i opakowań w systemie takerowym.",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Ustal długość rury", "text": "Odczytaj metraż z projektu albo podziel powierzchnię czynną przez rozstaw rur wyrażony w metrach." },
        { "@type": "HowToStep", "position": 2, "name": "Uwzględnij brakujące podejścia", "text": "Dolicz tylko odcinki od rozdzielacza, których nie ma w podanym metrażu rury." },
        { "@type": "HowToStep", "position": 3, "name": "Oblicz spinki bazowe", "text": "Podziel metraż mocowanej rury przez odstęp między punktami mocowania wymagany dla danego systemu i zaokrąglij do pełnych sztuk." },
        { "@type": "HowToStep", "position": 4, "name": "Dodaj łuki, zapas i opakowania", "text": "Dolicz punkty mocowania wymagane w trudnych miejscach, zapas zakupowy i zaokrąglij wynik do pełnych opakowań." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m2/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Ile spinek do podłogówki na 1 m² przy rozstawie 15 cm?", "acceptedAnswer": { "@type": "Answer", "text": "Na regularnym polu wypada około 6,67 m rury na 1 m². Przy mocowaniu co 50 cm daje to około 13–14 spinek bazowych, a co 40 cm około 16–17. Osobno uwzględnij łuki, podejścia i zapas." } },
        { "@type": "Question", "name": "Ile spinek na 10 m² podłogówki?", "acceptedAnswer": { "@type": "Answer", "text": "Przy rozstawie rur 15 cm powstaje orientacyjnie 66,7 m rury na polu. Mocowanie co 50 cm oznacza około 134 spinki bazowe, a co 40 cm około 167. Inny rozstaw rur zmieni wynik." } },
        { "@type": "Question", "name": "Ile spinek na 100 m² ogrzewania podłogowego?", "acceptedAnswer": { "@type": "Answer", "text": "Dla regularnego pola 100 m² i rozstawu 15 cm można oszacować około 667 m rury. Podział przez 0,5 m daje około 1334 spinki bazowe, a przez 0,4 m około 1667. Cały dom zwykle ma różne rozstawy i podejścia." } },
        { "@type": "Question", "name": "Ile spinek przypada na metr rury?", "acceptedAnswer": { "@type": "Answer", "text": "Przy odstępie mocowań 50 cm wypada orientacyjnie 2 spinki na metr rury; przy 40 cm około 2,5. Sprawdź instrukcję konkretnego systemu, szczególnie zalecenia dotyczące łuków." } },
        { "@type": "Question", "name": "Czy odstęp między spinkami to to samo co rozstaw rur?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Rozstaw rur opisuje odległość między sąsiednimi przebiegami przewodu w podłodze. Odstęp między spinkami mierzy się wzdłuż jednej rury." } },
        { "@type": "Question", "name": "Czy kalkulator dolicza łuki?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jako jawnie ustawianą korektę procentową do liczby spinek bazowych. Domyślne 10% jest przykładem do wstępnego zamówienia, a nie liczbą wymaganą dla każdej instalacji." } },
        { "@type": "Question", "name": "Czy trzeba doliczyć rury od rozdzielacza?", "acceptedAnswer": { "@type": "Answer", "text": "Tak, jeżeli nie zostały ujęte w długości rury wpisanej do kalkulatora. Jeśli znasz pełny metraż pętli z projektu wraz z podejściami, wpisz dodatkową długość równą zero." } },
        { "@type": "Question", "name": "Czy na łuku można wbijać spinki tak samo jak na prostej?", "acceptedAnswer": { "@type": "Answer", "text": "Łuk musi zachować promień gięcia i stabilnie przylegać do podłoża. Liczbę i położenie punktów mocowania trzeba ocenić na rzeczywistej trasie zgodnie z instrukcją systemu." } },
        { "@type": "Question", "name": "Czy spinki 40 mm i 50 mm są zamienne?", "acceptedAnswer": { "@type": "Answer", "text": "Sama długość ramion nie wystarcza do stwierdzenia zamienności. Sprawdź średnicę rury, rodzaj i grubość izolacji, narzędzie oraz dopuszczenie danego systemu." } },
        { "@type": "Question", "name": "Czy spinki do rury 16 mm pasują również do rury 20 mm?", "acceptedAnswer": { "@type": "Answer", "text": "Nie wynika to automatycznie z nazwy spinki. O zgodności decyduje zakres wymiarów deklarowany dla konkretnego produktu i używanego narzędzia." } },
        { "@type": "Question", "name": "Czy kalkulator policzy klipsy do szyny albo siatki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Narzędzie jest przeznaczone do wstępnego liczenia osobnych spinek mocujących rurę do izolacji. Szyny, płyty z wypustkami i siatki wymagają własnych zasad obmiaru." } },
        { "@type": "Question", "name": "Dlaczego wynik w opakowaniach jest wyższy od wyniku w sztukach?", "acceptedAnswer": { "@type": "Answer", "text": "Opakowania kupuje się zwykle w całości. Kalkulator dzieli zapotrzebowanie w sztukach przez wielkość paczki i zaokrągla liczbę paczek w górę. Pokazuje także liczbę sztuk, które pozostaną po takim zakupie." } },
        { "@type": "Question", "name": "Czy liczba spinek określa poprawność projektu ogrzewania?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Wynik dotyczy materiału montażowego. Rozstaw rur, podział na pętle, przepływy, opory i temperatury pracy wynikają z obliczeń projektu instalacji." } },
        { "@type": "Question", "name": "Co zrobić, jeśli spinka nie trzyma się izolacji?", "acceptedAnswer": { "@type": "Answer", "text": "Sprawdź zgodność mocowania z izolacją, jej grubość i stan, poprawność użycia narzędzia oraz instrukcję systemu. Samo zwiększenie liczby spinek może nie rozwiązać problemu." } }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-clips-guide");
  if (!root) { return; }
  var byId = function (id) { return root.querySelector("#" + id); };
  var areaFields = byId("rk-clips-area-fields");
  var lengthFields = byId("rk-clips-length-fields");
  var result = byId("rk-clips-result");
  var error = byId("rk-clips-error");
  var numberFormat = new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 1 });
  var integerFormat = new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 0 });

  function mode() {
    var selected = root.querySelector('input[name="rk-clips-mode"]:checked');
    return selected ? selected.value : "area";
  }
  function parseField(id) {
    var field = byId(id);
    return Number(String(field.value).trim().replace(",", "."));
  }
  function write(id, value) { byId(id).textContent = value; }
  function validRange(n, minimum, maximum) {
    return Number.isFinite(n) ? n >= minimum && n <= maximum : false;
  }
  function changeMode() {
    var isArea = mode() === "area";
    areaFields.hidden = !isArea;
    lengthFields.hidden = isArea;
    calculate(false);
  }
  function showError(message, announce) {
    result.hidden = true;
    error.textContent = message;
    error.hidden = !announce;
  }
  function calculate(announce) {
    var isArea = mode() === "area";
    var area = parseField("rk-clips-area");
    var projectLength = parseField("rk-clips-length");
    var spacing = parseField("rk-clips-spacing");
    var approaches = parseField("rk-clips-approaches");
    var pitch = parseField("rk-clips-pitch");
    var bends = parseField("rk-clips-bends");
    var reserve = parseField("rk-clips-reserve");
    var packageSize = parseField("rk-clips-pack");
    if (isArea) {
      if (!validRange(area, 0.1, 10000)) {
        showError("Wpisz czynną powierzchnię od 0,1 do 10 000 m².", announce);
        return;
      }
    } else {
      if (!validRange(projectLength, 0.1, 100000)) {
        showError("Wpisz metraż rury z projektu od 0,1 do 100 000 m.", announce);
        return;
      }
    }
    if (!validRange(spacing, 5, 50)) {
      showError("Wybierz poprawny rozstaw rur.", announce);
      return;
    }
    if (!validRange(approaches, 0, 10000)) {
      showError("Dodatkowe podejścia muszą mieć długość od 0 do 10 000 m.", announce);
      return;
    }
    if (!validRange(pitch, 20, 100)) {
      showError("Wybierz poprawny odstęp między spinkami.", announce);
      return;
    }
    if (!validRange(bends, 0, 100)) {
      showError("Korekta na łuki musi wynosić od 0 do 100%.", announce);
      return;
    }
    if (!validRange(reserve, 0, 50)) {
      showError("Zapas zakupowy musi wynosić od 0 do 50%.", announce);
      return;
    }
    if (!validRange(packageSize, 1, 100000) || Math.floor(packageSize) !== packageSize) {
      showError("Podaj pełną liczbę spinek w opakowaniu od 1 do 100 000.", announce);
      return;
    }
    var fieldLength = isArea ? area / (spacing / 100) : projectLength;
    var totalLength = fieldLength + approaches;
    if (totalLength > 100000) {
      showError("Łączny metraż przekracza zakres kalkulatora (100 000 m).", announce);
      return;
    }
    var base = Math.ceil(totalLength / (pitch / 100) - 0.000000001);
    var bendsPieces = Math.ceil(base * bends / 100 - 0.000000001);
    var beforeReserve = base + bendsPieces;
    var withReserve = Math.ceil(beforeReserve * (1 + reserve / 100) - 0.000000001);
    var reservePieces = withReserve - beforeReserve;
    var packages = Math.ceil(withReserve / packageSize);
    var remainder = packages * packageSize - withReserve;
    error.hidden = true;
    result.hidden = false;
    write("rk-clips-total", integerFormat.format(withReserve) + " spinek do zakupu");
    write("rk-clips-summary", "Zamów " + integerFormat.format(packages) + " pełne opakowania po " + integerFormat.format(packageSize) + " szt. Po odjęciu obliczonego zapotrzebowania zostanie " + integerFormat.format(remainder) + " szt.");
    write("rk-clips-result-length", numberFormat.format(totalLength) + " m");
    write("rk-clips-result-base", integerFormat.format(base) + " szt.");
    write("rk-clips-result-bends", "+" + integerFormat.format(bendsPieces) + " szt.");
    write("rk-clips-result-reserve", "+" + integerFormat.format(reservePieces) + " szt.");
    write("rk-clips-result-packs", integerFormat.format(packages) + " × " + integerFormat.format(packageSize));
    write("rk-clips-result-density", isArea ? numberFormat.format(withReserve / area) + " szt./m²" : "brak powierzchni");
    var firstPart = isArea ? numberFormat.format(area) + " m² ÷ " + numberFormat.format(spacing / 100) + " m = około " + numberFormat.format(fieldLength) + " m rury na polu" : numberFormat.format(projectLength) + " m rury z projektu";
    var equation = firstPart + "; dodatkowe podejścia " + numberFormat.format(approaches) + " m; " + numberFormat.format(totalLength) + " m ÷ " + numberFormat.format(pitch / 100) + " m = " + integerFormat.format(base) + " spinek bazowych. Korekta na łuki: " + integerFormat.format(bendsPieces) + "; zapas zakupowy: " + integerFormat.format(reservePieces) + ". Razem " + integerFormat.format(withReserve) + " szt., czyli " + integerFormat.format(packages) + " opakowania/ń.";
    write("rk-clips-equation", equation);
    write("rk-clips-limit", isArea ? "Szacunek powierzchniowy nie zna faktycznej liczby nawrotów ani przebiegu pętli. Korektę na łuki przyjęto jako " + numberFormat.format(bends) + "%; sprawdź ją na rzucie oraz w instrukcji systemu." : "Wynik bazuje na metrażu wpisanym z projektu. Sprawdź, czy uwzględnia on podejścia i czy korekta na łuki (" + numberFormat.format(bends) + "%) odpowiada rzeczywistym trasom.");
  }
  root.querySelectorAll('input[name="rk-clips-mode"]').forEach(function (field) {
    field.addEventListener("change", changeMode);
  });
  root.querySelectorAll("#rk-clips-calculator input, #rk-clips-calculator select").forEach(function (field) {
    if (field.type !== "radio") {
      field.addEventListener("input", function () { calculate(false); });
      field.addEventListener("change", function () { calculate(false); });
    }
  });
  byId("rk-clips-run").addEventListener("click", function () { calculate(true); });
  byId("rk-clips-reset").addEventListener("click", function () {
    root.querySelector('input[name="rk-clips-mode"][value="area"]').checked = true;
    byId("rk-clips-area").value = "30";
    byId("rk-clips-spacing").value = "15";
    byId("rk-clips-length").value = "200";
    byId("rk-clips-approaches").value = "0";
    byId("rk-clips-pitch").value = "50";
    byId("rk-clips-bends").value = "10";
    byId("rk-clips-reserve").value = "5";
    byId("rk-clips-pack").value = "270";
    changeMode();
  });
  changeMode();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/">Ile spinek do podłogówki na m²? Kalkulator spinek i klipsów.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ile-spinek-do-podlogowki-na-m%c2%b2/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>
					<comments>https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/#respond</comments>
		
		<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>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/wygrzewanie-wylewki-pod-ogrzewanie-podlogowe/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania.</title>
		<link>https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/</link>
					<comments>https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 01 Oct 2026 09:07:27 +0000</pubDate>
				<category><![CDATA[Analizy rynkowe]]></category>
		<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Budownictwo]]></category>
		<category><![CDATA[Dane GUS]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Kotły gazowe]]></category>
		<category><![CDATA[Kotły na paliwa stałe]]></category>
		<category><![CDATA[Kotły na pellet]]></category>
		<category><![CDATA[Ogrzewanie]]></category>
		<category><![CDATA[Ogrzewanie budynków]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Prognozy rynku]]></category>
		<category><![CDATA[Rekuperacja]]></category>
		<category><![CDATA[branża instalacyjna]]></category>
		<category><![CDATA[budowa domu 2027]]></category>
		<category><![CDATA[budownictwo jednorodzinne]]></category>
		<category><![CDATA[dane gus budownictwo]]></category>
		<category><![CDATA[domy jednorodzinne 2027]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[kotły gazowe 2027]]></category>
		<category><![CDATA[liczba domów w polsce]]></category>
		<category><![CDATA[nowe budynki jednorodzinne]]></category>
		<category><![CDATA[nowe domy w polsce]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompy ciepła 2027]]></category>
		<category><![CDATA[prognoza budownictwa 2027]]></category>
		<category><![CDATA[prognoza rynku ogrzewania]]></category>
		<category><![CDATA[rekuperacja]]></category>
		<category><![CDATA[rynek hvac]]></category>
		<category><![CDATA[rynek kotłów gazowych]]></category>
		<category><![CDATA[rynek ogrzewania 2027]]></category>
		<category><![CDATA[rynek pomp ciepła]]></category>
		<category><![CDATA[sprzedaż urządzeń hvac]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7782</guid>

					<description><![CDATA[<p>Ile nowych domów może zostać oddanych w Polsce w najbliższych latach i co oznacza to dla rynku ogrzewania? Analizujemy dane GUS, dotychczasową skalę budownictwa oraz trzy możliwe scenariusze rozwoju sytuacji. Domy jednorodzinne 2027 to nie tylko liczba zakończonych inwestycji, ale również potencjalny rynek dla pomp ciepła, kotłów, ogrzewania podłogowego, rekuperacji, rur, rozdzielaczy i automatyki. W artykule pokazujemy wariant ostrożny, bazowy i wysoki, wyjaśniamy ograniczenia takich prognoz oraz wskazujemy, dlaczego liczby oddanych domów nie mogą być bezpośrednio utożsamiane ze sprzedażą urządzeń HVAC.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/">Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
#rk-forecast{--navy:#0b2536;--navy2:#173c51;--cyan:#29c4d7;--orange:#ff6846;--ink:#102a3b;--copy:#355365;--muted:#587281;--line:#d1e0e7;--soft:#f1f7f9;--white:#fff;--green:#0e795e;color:var(--ink);font:16px/1.62 Arial,Helvetica,sans-serif;max-width:1360px;margin:0 auto;overflow-wrap:anywhere}
#rk-forecast,#rk-forecast *{box-sizing:border-box;min-width:0}
#rk-forecast [hidden]{display:none!important}
#rk-forecast a{color:#087d99;text-underline-offset:3px}
#rk-forecast a:focus-visible,#rk-forecast button:focus-visible,#rk-forecast summary:focus-visible,#rk-forecast .rkf-chart-point:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
#rk-forecast .rkf-shell{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 18px 50px rgba(10,40,55,.11);overflow:hidden}
#rk-forecast .rkf-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 99% 105%,rgba(41,196,215,.19) 0 15%,transparent 15.1%),radial-gradient(circle at 0% 100%,rgba(255,104,70,.12),transparent 38%),linear-gradient(118deg,#0b2536 0%,#153b4d 56%,#0e6572 100%);padding:60px 58px 48px;color:#fff}
#rk-forecast .rkf-hero:after{content:"";position:absolute;z-index:-1;width:410px;aspect-ratio:1;border:60px solid rgba(113,227,233,.075);border-radius:50%;right:-125px;bottom:-245px}
#rk-forecast .rkf-kicker,#rk-forecast .rkf-eyebrow{font-size:.76rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
#rk-forecast .rkf-kicker{display:flex;align-items:center;gap:12px;color:#75e6f0}
#rk-forecast .rkf-kicker:before{content:"";flex:0 0 13px;width:13px;height:13px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 8px rgba(255,104,70,.13)}
#rk-forecast .rkf-hero-title{color:#fff;font-size:clamp(2.4rem,5.7vw,5.25rem);font-weight:900;line-height:1.06;letter-spacing:-.043em;max-width:1200px;margin:29px 0 0}
#rk-forecast .rkf-hero-title span{color:#78ebf3}
#rk-forecast .rkf-hero-lead{max-width:1060px;color:#dcecf1;font-size:clamp(1.05rem,1.8vw,1.38rem);line-height:1.58;margin:25px 0 0}
#rk-forecast .rkf-hero-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}
#rk-forecast .rkf-hero-tags span{background:rgba(255,255,255,.09);border:1px solid rgba(211,238,243,.25);border-radius:999px;color:#fff;font-size:.81rem;font-weight:800;padding:8px 13px;line-height:1.3}
#rk-forecast .rkf-meta{display:flex;gap:8px 23px;flex-wrap:wrap;border-top:1px solid rgba(208,239,244,.25);padding-top:22px;margin-top:34px;color:#c9e0e7;font-size:.84rem;font-weight:700}
#rk-forecast .rkf-meta strong{color:#fff}
#rk-forecast .rkf-hero-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:29px}
#rk-forecast .rkf-hero-card{background:rgba(9,34,49,.47);border:1px solid rgba(212,240,246,.16);border-radius:17px;padding:20px 21px}
#rk-forecast .rkf-hero-card strong{color:#7bebf1;display:block;line-height:1.3;font-size:1rem}
#rk-forecast .rkf-hero-card p{color:#e2f1f4;font-size:.9rem;line-height:1.5;margin:7px 0 0}
#rk-forecast .rkf-nav{display:flex;flex-wrap:wrap;gap:8px;background:#fff;padding:18px 32px;border-bottom:1px solid var(--line)}
#rk-forecast .rkf-nav a{display:inline-block;background:#edf5f7;border-radius:30px;padding:8px 12px;text-decoration:none;color:var(--ink);font-size:.79rem;font-weight:800}
#rk-forecast .rkf-nav a:hover{background:#d5f4f7}
#rk-forecast .rkf-section{padding:58px 54px;border-top:1px solid var(--line)}
#rk-forecast .rkf-section.rkf-soft{background:var(--soft)}
#rk-forecast .rkf-eyebrow{color:#087d99;display:block;margin-bottom:12px}
#rk-forecast h2,#rk-forecast h3,#rk-forecast h4{line-height:1.2;letter-spacing:-.02em}
#rk-forecast .rkf-section>h2{font-size:clamp(1.9rem,3.8vw,3.2rem);margin:0;max-width:1040px}
#rk-forecast .rkf-lead{font-size:1.14rem;color:var(--copy);max-width:1100px;margin:19px 0 0}
#rk-forecast .rkf-copy{color:var(--copy);margin:20px 0 0}
#rk-forecast .rkf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px}
#rk-forecast .rkf-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
#rk-forecast .rkf-card{border:1px solid var(--line);border-radius:15px;background:#fff;padding:22px}
#rk-forecast .rkf-card h3{font-size:1.14rem;margin:0 0 9px;color:var(--ink)}
#rk-forecast .rkf-card p{margin:0;color:var(--copy)}
#rk-forecast .rkf-number{display:inline-block;border-radius:9px;background:#dff6f8;color:#06627a;font-weight:900;font-size:.8rem;padding:6px 10px;margin-bottom:13px}
#rk-forecast .rkf-answer{margin-top:28px;background:#e8f9fb;border:1px solid #a4dfe7;border-left:6px solid var(--cyan);border-radius:15px;padding:23px;color:var(--ink)}
#rk-forecast .rkf-answer p{margin:8px 0 0;color:var(--copy)}
#rk-forecast .rkf-note{background:#fff5df;border-left:5px solid #e9ae26;border-radius:12px;padding:17px 20px;margin-top:22px;color:#584520}
#rk-forecast .rkf-note p{margin:0}
#rk-forecast .rkf-note.green{background:#e9f8f1;border-left-color:#28bd89;color:#155f49}
#rk-forecast .rkf-table-wrap{overflow-x:auto;margin-top:24px}
#rk-forecast table{border-collapse:collapse;min-width:680px;width:100%;font-size:.93rem}
#rk-forecast th{background:var(--navy);color:#fff;text-align:left;padding:13px}
#rk-forecast td{background:#fff;border:1px solid var(--line);color:var(--copy);padding:13px;vertical-align:top}
#rk-forecast td strong{color:var(--ink)}
#rk-forecast .rkf-list{color:var(--copy);padding-left:22px;margin:18px 0 0}
#rk-forecast .rkf-list li+li{margin-top:8px}
#rk-forecast .rkf-tool{background:var(--navy);border-radius:19px;color:#fff;margin-top:29px;padding:27px}
#rk-forecast .rkf-tool h3{color:#fff;font-size:1.65rem;margin:0}
#rk-forecast .rkf-tool>p{color:#d1e4eb;margin:8px 0 0}
#rk-forecast .rkf-tabs,#rk-forecast .rkf-scenario-buttons{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}
#rk-forecast button{cursor:pointer;font:inherit}
#rk-forecast .rkf-tab,#rk-forecast .rkf-scenario-button{padding:10px 15px;border-radius:10px;background:#21495c;color:#fff;border:1px solid #678a99;font-weight:800;line-height:1.3}
#rk-forecast .rkf-tab[aria-pressed=true],#rk-forecast .rkf-scenario-button[aria-pressed=true]{background:var(--cyan);border-color:var(--cyan);color:#082838}
#rk-forecast .rkf-scenario-button[data-rkf-scenario="low"][aria-pressed=true]{background:#ffd6be;border-color:#ffd6be}
#rk-forecast .rkf-scenario-button[data-rkf-scenario="high"][aria-pressed=true]{background:#c6f5db;border-color:#c6f5db}
#rk-forecast .rkf-scenario-buttons{margin:16px 0 13px}
#rk-forecast .rkf-plot{background:#fff;border-radius:14px;border:1px solid #bdcfd7;padding:16px;color:var(--ink);overflow-x:auto}
#rk-forecast .rkf-plot svg{width:100%;height:auto;display:block;min-height:180px}
#rk-forecast .rkf-plot-desc{font-size:.85rem;color:var(--copy);margin:8px 4px 0}
#rk-forecast .rkf-chart-point{cursor:pointer;outline:none}
#rk-forecast .rkf-chart-point:focus-visible circle:first-child{stroke:#0b2536;stroke-width:3}
#rk-forecast .rkf-chart-readout{background:#e7f8fa;border-left:5px solid var(--cyan);color:var(--ink);border-radius:12px;padding:17px 19px;margin-top:14px}
#rk-forecast .rkf-chart-readout strong{display:block;font-size:1.12rem;line-height:1.35}
#rk-forecast .rkf-chart-readout p{color:var(--copy);margin:5px 0 0;font-size:.91rem}
#rk-forecast .rkf-chart-key{display:flex;flex-wrap:wrap;gap:9px 16px;margin:18px 0 2px;color:#d6edf2;font-size:.84rem;font-weight:700}
#rk-forecast .rkf-chart-key span{display:inline-flex;align-items:center;gap:7px}
#rk-forecast .rkf-chart-key i{width:22px;height:3px;display:inline-block;background:#29c4d7;border-radius:4px}
#rk-forecast .rkf-chart-key i.rkf-key-forecast{background:#ff6846;border-top:1px dashed #fff}
#rk-forecast .rkf-disclosure{color:#c4e0e8!important;font-size:.82rem!important;margin-top:16px!important}
#rk-forecast .rkf-cta{border-radius:18px;background:linear-gradient(120deg,#102c3e,#176072);padding:29px;color:#fff;margin-top:28px}
#rk-forecast .rkf-cta h3{color:#fff;font-size:1.65rem;margin:0}
#rk-forecast .rkf-cta p{color:#d5e8eb;margin:10px 0 0}
#rk-forecast .rkf-cta a.rkf-button{display:inline-block;margin-top:19px;background:var(--orange);border-radius:10px;color:#fff;padding:12px 17px;text-decoration:none;font-weight:900}
#rk-forecast .rkf-cta a.rkf-button:hover{background:#fff;color:#bb3e24}
#rk-forecast .rkf-cta small{display:block;color:#c5dfe4;margin-top:10px}
#rk-forecast .rkf-cta .rkf-cta-kicker{color:#80e7f0;font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;margin:0 0 9px}
#rk-forecast .rkf-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:23px}
#rk-forecast .rkf-source{background:#f3f8fa;border:1px solid var(--line);border-radius:12px;padding:17px}
#rk-forecast .rkf-source a{font-weight:900}
#rk-forecast .rkf-source p{font-size:.88rem;color:var(--copy);margin:7px 0 0}
#rk-forecast .rkf-faq{display:grid;gap:10px;margin-top:25px}
#rk-forecast .rkf-faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 17px}
#rk-forecast .rkf-faq summary{cursor:pointer;font-weight:900;padding:16px 0;color:var(--ink)}
#rk-forecast .rkf-faq p{margin:0 0 17px;color:var(--copy)}
#rk-forecast .rkf-author-section{background:#edf6f8!important}
#rk-forecast .rkf-author{display:grid;grid-template-columns:280px minmax(0,1fr);background:#fff;border:1px solid #d2e1e7;border-radius:20px;overflow:hidden;margin-top:27px}
#rk-forecast .rkf-author-side{background:#0b2536;color:#fff;padding:32px 23px;text-align:center;display:flex;align-items:center;flex-direction:column}
#rk-forecast .rkf-author-side img{width:158px;height:158px;object-fit:cover;border:6px solid rgba(255,255,255,.22);background:#fff;border-radius:50%}
#rk-forecast .rkf-author-side h3{color:#fff;margin:17px 0 0;font-size:1.35rem}
#rk-forecast .rkf-author-side p{color:#c6dbe3;font-size:.85rem;margin:6px 0 0}
#rk-forecast .rkf-author-links{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;margin-top:18px}
#rk-forecast .rkf-author-links a{display:inline-flex;justify-content:center;align-items:center;width:42px;height:42px;border-radius:50%;border:1px solid #54788a;color:#fff;font-size:.9rem;font-weight:900;text-decoration:none}
#rk-forecast .rkf-author-links a:hover{background:var(--cyan);color:var(--navy)}
#rk-forecast .rkf-author-main{padding:34px 37px}
#rk-forecast .rkf-author-main p{color:var(--copy);margin:16px 0 0}
#rk-forecast .rkf-author-thesis{font-size:1.1rem;line-height:1.65;font-style:italic;font-weight:700;color:var(--ink);background:#f1f8fa;border-left:6px solid var(--cyan);border-radius:13px;padding:19px 22px}
#rk-forecast .rkf-visually-hidden{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}
@media(max-width:950px){#rk-forecast .rkf-grid,#rk-forecast .rkf-hero-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){#rk-forecast .rkf-hero,#rk-forecast .rkf-section{padding:42px 25px}#rk-forecast .rkf-author{grid-template-columns:1fr}#rk-forecast .rkf-author-side{padding:25px}#rk-forecast .rkf-grid,#rk-forecast .rkf-grid.two,#rk-forecast .rkf-hero-cards,#rk-forecast .rkf-sources{grid-template-columns:1fr}#rk-forecast .rkf-plot svg{min-width:620px;min-height:0}#rk-forecast .rkf-nav{padding:15px}#rk-forecast .rkf-author-main{padding:25px}#rk-forecast .rkf-hero-title{font-size:clamp(2.15rem,9vw,3.8rem)}}
@media(max-width:520px){#rk-forecast .rkf-hero,#rk-forecast .rkf-section{padding-left:17px;padding-right:17px}#rk-forecast .rkf-hero-title{font-size:clamp(2.05rem,9vw,2.65rem)}#rk-forecast .rkf-meta{display:grid;gap:4px}#rk-forecast .rkf-tab,#rk-forecast .rkf-scenario-button{flex:1 1 100%}#rk-forecast .rkf-tool{padding:18px}#rk-forecast .rkf-nav{padding:13px}#rk-forecast .rkf-table-wrap{overflow:visible}#rk-forecast table,#rk-forecast thead,#rk-forecast tbody,#rk-forecast tr,#rk-forecast td{display:block;min-width:0;width:100%}#rk-forecast thead{position:absolute;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;white-space:nowrap;width:1px}#rk-forecast tbody{display:grid;gap:13px}#rk-forecast tbody tr{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}#rk-forecast td{border:0;border-bottom:1px solid var(--line)}#rk-forecast td:last-child{border-bottom:0}#rk-forecast td:before{content:attr(data-label);display:block;color:#087d99;font-size:.73rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px}}
@media(prefers-reduced-motion:reduce){#rk-forecast *,#rk-forecast *:before,#rk-forecast *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

</style>
<article id="rk-forecast" aria-label="Domy jednorodzinne 2027 – dane i prognoza rynku ogrzewania">
<div class="rkf-shell">
  <header class="rkf-hero">
    <span class="rkf-kicker">Rynek budowy domów · dane GUS · scenariusze na 2027</span>
    <div class="rkf-hero-title">Ile domów zostanie oddanych w 2027 roku? <span>Prognoza rynku ogrzewania</span></div>
    <p class="rkf-hero-lead">Liczba nowych domów daje punkt wyjścia do rozmowy o rynku pomp ciepła, kotłów, rur i rozdzielaczy. Pokazujemy dane GUS, zakres możliwych wyników na 2027 rok oraz granice tego, co można z nich uczciwie wyliczyć.</p>
    <div class="rkf-hero-tags" aria-label="Tematy artykułu"><span>20 lat kontekstu mieszkaniowego</span><span>oddane budynki jednorodzinne</span><span>trzy warianty na 2027</span><span>rynek urządzeń HVAC</span></div>
    <div class="rkf-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Aktualizacja: <strong>28 września 2026 r.</strong></span><span>Czas czytania: <strong>około 19 minut</strong></span></div>
    <div class="rkf-hero-cards">
      <div class="rkf-hero-card"><strong>Co potwierdza GUS?</strong><p>Oddane domy z lat 2023–2025 i osobny, dłuższy szereg mieszkań ogółem.</p></div>
      <div class="rkf-hero-card"><strong>Co zakładamy na 2027 rok?</strong><p>Trzy warunkowe scenariusze pokazane na interaktywnym wykresie.</p></div>
      <div class="rkf-hero-card"><strong>Co to znaczy dla branży?</strong><p>Skalę inwestycji, której nie należy utożsamiać z roczną sprzedażą urządzeń.</p></div>
    </div>
  </header>
  <nav class="rkf-nav" aria-label="Spis treści"><a href="#rkf-answer">Odpowiedź</a><a href="#rkf-definitions">Definicje</a><a href="#rkf-long-series">20 lat mieszkań</a><a href="#rkf-history">Prognoza domów</a><a href="#rkf-current">Sygnały 2026</a><a href="#rkf-lag">Od budowy do oddania</a><a href="#rkf-method">Metoda</a><a href="#rkf-scenarios">Scenariusze</a><a href="#rkf-market">Potencjał rynku</a><a href="#rkf-equipment">Urządzenia</a><a href="#rkf-timing">Moment zakupu</a><a href="#rkf-update">Aktualizacja prognozy</a><a href="#rkf-limits">Ograniczenia</a><a href="#rkf-sources">Źródła</a><a href="#rkf-faq">FAQ</a><a href="#rkf-author">Autor</a></nav>

  <section class="rkf-section" id="rkf-answer">
    <span class="rkf-eyebrow">Odpowiedź w skrócie</span>
    <h2>Ile domów jednorodzinnych może zostać oddanych w 2027 roku?</h2>
    <p class="rkf-lead">W 2025 r. oddano <strong>86 042 nowe budynki jednorodzinne</strong>. Liczba za rok 2027 jeszcze nie istnieje w statystyce: możemy rozważyć scenariusze, a nie podać pewny wynik. W tym artykule przyjmujemy orientacyjnie <strong>73 tys., 86 tys. lub 99 tys.</strong> budynków przy odmiennych warunkach realizacji inwestycji.</p>
    <div class="rkf-answer"><strong>Najważniejsze rozróżnienie:</strong> Około 208,4 tys. mieszkań oddanych ogółem w 2025 r. nie oznacza 208,4 tys. domów. Jeden budynek jednorodzinny może mieścić do dwóch lokali, a liczba mieszkań obejmuje również budownictwo wielorodzinne.<p>Przykłady potencjału dla rur, rozdzielaczy, pomp ciepła i kotłów wymagają dodatkowych danych o udziale technologii. Liczba ukończonych budynków nie jest oficjalną statystyką sprzedaży urządzeń w roku 2027.</p></div>
    <div class="rkf-grid"><div class="rkf-card"><span class="rkf-number">GUS · 2023</span><h3>96 170</h3><p>Nowych budynków jednorodzinnych oddanych do użytkowania.</p></div><div class="rkf-card"><span class="rkf-number">GUS · 2024</span><h3>85 416</h3><p>Ten sam miernik, spadek wobec 2023 r.</p></div><div class="rkf-card"><span class="rkf-number">GUS · 2025</span><h3>86 042</h3><p>Ten sam miernik, baza trzech scenariuszy na rok 2027.</p></div></div>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-definitions">
    <span class="rkf-eyebrow">Zanim porównasz liczby</span><h2>Budynki, mieszkania, pozwolenia i sprzedaż to różne miary</h2>
    <div class="rkf-table-wrap"><table><thead><tr><th>Wskaźnik</th><th>Co pokazuje</th><th>Czy to liczba nowych domów?</th></tr></thead><tbody>
    <tr><td><strong>Oddane budynki jednorodzinne</strong></td><td>Obiekty ujęte w statystyce budynków oddanych; właściwy punkt wyjścia dla analizy domów.</td><td>Tak, z uwzględnieniem definicji GUS.</td></tr>
    <tr><td><strong>Oddane mieszkania ogółem</strong></td><td>Lokale mieszkalne we wszystkich rodzajach budynków i formach budownictwa.</td><td>Nie.</td></tr>
    <tr><td><strong>Rozpoczęte mieszkania i pozwolenia</strong></td><td>Etapy procesu inwestycyjnego, obejmujące również budynki wielorodzinne.</td><td>Nie. Zmiany wpływają na oddania z opóźnieniem.</td></tr>
    <tr><td><strong>Sprzedane pompy, kotły, rury</strong></td><td>Dostawy do nowych i modernizowanych obiektów, kupowane w różnych momentach.</td><td>Nie. To odrębna statystyka rynku.</td></tr>
    </tbody></table></div>
    <p class="rkf-copy">W tabelach GUS dla 2025 r. do 86 042 budynków jednorodzinnych przypisano 98 014 mieszkań. Dla obliczeń rynku pojedynczych inwestycji konsekwentnie używamy <strong>budynków</strong>, a nie sumy lokali. Dotyczy to też budynków bliźniaczych i szeregowych ujętych w przyjętej klasyfikacji, a nie wyłącznie domów wolnostojących.</p>
  </section>

  <section class="rkf-section" id="rkf-long-series">
    <span class="rkf-eyebrow">Osobny wykres historyczny</span><h2>Ile mieszkań oddawano w Polsce w ostatnich 20 latach?</h2>
    <p class="rkf-lead">Wykres przedstawia <strong>mieszkania oddane ogółem w latach 2006–2025</strong>. Daje kontekst dla zmian w budownictwie mieszkaniowym, lecz obejmuje także mieszkania w budynkach wielorodzinnych. Każdy punkt pokazuje konkretny rok i zmianę względem poprzedniego.</p>
    <div class="rkf-tool" id="rkf-long-series-tool"><h3>Wykres historyczny GUS · 2006–2025</h3><p>Najedź na punkt, wybierz go dotykiem lub przejdź do niego klawiaturą. Odczytasz wartość oraz zmianę rok do roku.</p>
      <div class="rkf-plot" role="group" aria-label="Historyczny wykres mieszkań oddanych ogółem"><svg id="rkf-historical-svg" viewBox="0 0 960 380" role="img" aria-label="Mieszkania oddane ogółem w latach 2006–2025. Dane liczbowe są w tabeli pod wykresem"><text x="35" y="45" fill="#102a3b">Dane liczbowe znajdują się pod wykresem.</text></svg><p class="rkf-plot-desc">Oś pionowa: tysiące mieszkań ogółem, od zera. Seria 2006–2024 pochodzi z BDL GUS; punkt 2025 z rocznej publikacji GUS.</p></div>
      <div class="rkf-chart-readout" role="status" aria-live="polite"><strong id="rkf-historical-title">Dwadzieścia lat danych o mieszkaniach</strong><p id="rkf-historical-text">Wybierz rok na wykresie albo rozwiń tabelę poniżej. Mieszkania ogółem nie oznaczają liczby domów jednorodzinnych.</p></div>
      <p class="rkf-disclosure">Na telefonie wykres można przewinąć poziomo. Punkty są opisane również w tabeli tekstowej, więc dane pozostają dostępne bez korzystania z wykresu.</p>
    </div>
    <details class="rkf-note"><summary><strong>Tabela 2006–2025: mieszkania oddane ogółem, tys.</strong></summary><p>2006: 115,4 · 2007: 133,7 · 2008: 165,2 · 2009: 160,0 · 2010: 135,8 · 2011: 131,0 · 2012: 152,9 · 2013: 145,1 · 2014: 143,2 · 2015: 147,7 · 2016: 163,3 · 2017: 178,3 · 2018: 185,1 · 2019: 207,4 · 2020: 220,8 · 2021: 234,7 · 2022: 238,5 · 2023: 221,3 · 2024: 200,1 · 2025: 208,4. Te liczby nie są liczbą domów.</p></details>
    <p class="rkf-copy">Seria mieszkań pokazuje kontekst cyklu mieszkaniowego, ale nie może służyć jako dwudziestoletni szereg domów. GUS udostępnia dane o budynkach z opisami definicji zmienianych w czasie; bez sprawdzenia porównywalności nie łączymy starszych i nowszych zbiorów w jedną prognozę. Z wykresu nie wynika także, jaka część nowych domów ma podłogówkę albo pompę ciepła.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-history">
    <span class="rkf-eyebrow">Drugi, niezależny wykres</span><h2>Ile domów może zostać oddanych w 2027 roku?</h2>
    <p class="rkf-lead">Tu jednostką są <strong>nowe budynki jednorodzinne</strong>, a nie mieszkania. Punkty z lat 2023–2025 to dane GUS; trzy zakończenia linii na rok 2027 pokazują warunkowe warianty autora. Rok 2026 pozostaje bez wyniku rocznego.</p>
    <div class="rkf-tool" id="rkf-history-tool"><h3>Interaktywny wykres prognozy domów</h3><p>Wskaż wariant, a następnie wybierz punkt na wykresie. Warianty są założeniami autora, nie wynikiem GUS.</p>
      <div class="rkf-scenario-buttons" id="rkf-scenario-buttons" role="group" aria-label="Wariant liczby budynków jednorodzinnych w 2027 roku"><button class="rkf-scenario-button" type="button" data-rkf-scenario="low" aria-pressed="false">Ostrożny · 73 tys.</button><button class="rkf-scenario-button" type="button" data-rkf-scenario="base" aria-pressed="true">Bazowy · 86 tys.</button><button class="rkf-scenario-button" type="button" data-rkf-scenario="high" aria-pressed="false">Wysoki · 99 tys.</button></div>
      <div class="rkf-plot" id="rkf-history-plot" role="group" aria-label="Wykres i objaśnienia danych"><svg id="rkf-svg" viewBox="0 0 960 380" role="img" aria-label="Budynki jednorodzinne 2023–2025 i trzy scenariusze na 2027 rok. Dane liczbowe znajdują się w tabeli poniżej"><text x="35" y="45" fill="#102a3b">Dane liczbowe znajdziesz w tabeli pod wykresem.</text></svg><p class="rkf-plot-desc" id="rkf-plot-desc">Budynki jednorodzinne, tysiące; rok 2026 bez punktu, ponieważ wynik roczny nie jest jeszcze znany.</p></div>
      <div class="rkf-chart-readout" id="rkf-chart-readout" role="status" aria-live="polite"><strong id="rkf-chart-readout-title">2027: 86 000 domów — scenariusz bazowy</strong><p id="rkf-chart-readout-text">Wariant autora bliski wynikowi 2025 r. To założenie, nie liczba ogłoszona przez GUS.</p></div>
      <div class="rkf-chart-key" aria-label="Legenda"><span><i></i>linia ciągła: dane GUS</span><span><i class="rkf-key-forecast"></i>linie przerywane: scenariusze autora</span></div>
      <p class="rkf-disclosure">2026 r. jest na osi czasu, ale nie ma punktu z liczbą domów. Przerywane odcinki łączą ostatni potwierdzony rok z wariantami na 2027 r. i nie są szacunkiem dla 2026 r. Rozpiętość wariantów nie jest przedziałem ufności. Na małym ekranie przewiń wykres poziomo; wartości pozostają dostępne w tabeli.</p>
    </div>
    <details class="rkf-note"><summary><strong>Tabela liczb: budynki jednorodzinne i warianty na 2027 r.</strong></summary><div class="rkf-table-wrap"><table><thead><tr><th>Rok</th><th>Liczba budynków</th><th>Status danych</th></tr></thead><tbody><tr><td>2023</td><td>96 170</td><td>Dane GUS</td></tr><tr><td>2024</td><td>85 416</td><td>Dane GUS</td></tr><tr><td>2025</td><td>86 042</td><td>Dane GUS</td></tr><tr><td>2026</td><td>—</td><td>Brak wyniku rocznego w dacie aktualizacji</td></tr><tr><td>2027</td><td>73 000 / 86 000 / 99 000</td><td>Ostrożny / bazowy / wysoki scenariusz autora</td></tr></tbody></table></div></details>
    <p class="rkf-copy">Historyczny wykres mieszkań umieszczony powyżej korzysta z innej jednostki. Jego wartości nie są wykorzystywane do mnożenia liczby domów ani urządzeń.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-current">
    <span class="rkf-eyebrow">Co już wiadomo w 2026 r.?</span><h2>Sygnały bieżące nie są wynikiem za cały rok</h2>
    <p class="rkf-lead">Według GUS w styczniu–sierpniu 2026 r. oddano <strong>132,2 tys. mieszkań ogółem</strong>, o 4,5% więcej rok do roku. Rozpoczęto budowę <strong>153,5 tys. mieszkań</strong> (wzrost o 4,8%), a pozwolenia i zgłoszenia obejmowały <strong>193,3 tys. mieszkań</strong> (wzrost o 14,9%). Żadna z tych liczb nie mówi wprost, ile budynków jednorodzinnych będzie oddanych w 2027 r.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Popyt i finanse</span><h3>Koszt kredytu</h3><p>Zmiana raty i dostępności finansowania wpływa na nowe decyzje; opóźnienie do oddania zależy od czasu budowy.</p></article><article class="rkf-card"><span class="rkf-number">Podaż</span><h3>Materiały i wykonawcy</h3><p>Terminy prac i ceny mogą przyspieszyć lub odsunąć odbiór domu bez zmiany liczby wcześniejszych pozwoleń.</p></article><article class="rkf-card"><span class="rkf-number">Reguły i decyzje</span><h3>Technologia ogrzewania</h3><p>Koszt energii, warunki lokalne i wymagania inwestora zmieniają wybór źródła i udział ogrzewania płaszczyznowego.</p></article></div>
    <p class="rkf-copy">Przeciętny czas wznoszenia budynku jednorodzinnego oddanego w 2025 r. wyniósł według GUS <strong>51 miesięcy</strong>. Jest to średnia historyczna ukończonych inwestycji, a nie stałe opóźnienie, którym można mechanicznie przesunąć liczbę wydanych pozwoleń na rok 2027.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-lag"><span class="rkf-eyebrow">Od sygnału do oddania</span><h2>Od rozpoczęcia budowy do oddania domu: skąd bierze się opóźnienie?</h2>
    <p class="rkf-lead">Decyzja o budowie, rozpoczęcie prac, zamówienie instalacji i oddanie domu do użytkowania przypadają na różne momenty. Wskaźniki z 2026 r. są więc wskazówką o aktywności rynku, lecz bez podziału na budynki i kontroli czasu realizacji nie określają liczby nowych domów w 2027 r.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">01 · zamiar</span><h3>Pozwolenie lub zgłoszenie</h3><p>Potwierdza etap formalny. Część inwestycji ruszy później, część zmieni zakres, a zbiorczy wskaźnik mieszkań obejmuje także zabudowę wielorodzinną.</p></article><article class="rkf-card"><span class="rkf-number">02 · realizacja</span><h3>Rozpoczęcie i wykonanie</h3><p>Prace zależą od finansowania, ekip, działki i harmonogramu. Tempo poszczególnych domów jest różne; średni czas budowy nie jest terminem dla każdego pozwolenia.</p></article><article class="rkf-card"><span class="rkf-number">03 · statystyka</span><h3>Oddanie do użytkowania</h3><p>Dopiero tu budynek trafia do rocznego wyniku. Instalacje i źródło ciepła mogły zostać kupione wcześniej, dlatego odbiór nie jest datą sprzedaży urządzenia.</p></article></div>
    <div class="rkf-note"><p><strong>Jak czytać wskaźniki:</strong> obserwuj ten sam rodzaj obiektu na kolejnych etapach i aktualizuj prognozę po rocznych danych o oddanych budynkach. Zmiana liczby pozwoleń na wszystkie mieszkania nie jest gotowym przelicznikiem domów na kolejny rok.</p></div>
  </section>

  <section class="rkf-section" id="rkf-method">
    <span class="rkf-eyebrow">Metoda i uczciwe granice</span><h2>Jak powstały scenariusze na 2027 rok?</h2>
    <p class="rkf-lead">Podstawą jest potwierdzona wartość 86 042 budynków w 2025 r. Zamiast dopasowywać krzywą do liczby wszystkich mieszkań, budujemy trzy <strong>warunkowe warianty</strong> dla liczby budynków jednorodzinnych: 85%, 100% i 115% tej wartości. Po zaokrągleniu daje to odpowiednio około 73, 86 i 99 tys. budynków.</p>
    <div class="rkf-table-wrap"><table><thead><tr><th>Wariant autorski</th><th>Założona liczba domów 2027</th><th>Co musiałoby sprzyjać temu wynikowi?</th></tr></thead><tbody>
      <tr><td><strong>Ostrożny</strong></td><td>73 000</td><td>Słabsza dostępność kredytów i presja na budżety gospodarstw domowych, wyższe lub bardziej nieprzewidywalne koszty energii i materiałów oraz opóźnienia wykonawcze mogłyby przesunąć część odbiorów. Napięcia geopolityczne mogłyby nasilić te czynniki.</td></tr>
      <tr><td><strong>Bazowy</strong></td><td>86 000</td><td>Względnie stabilne warunki finansowania i pracy wykonawców oraz brak silnego impulsu cenowego na rynku paliw i energii pozwoliłyby utrzymać skalę oddań zbliżoną do 2025 r. Wahania lokalne nadal będą występować.</td></tr>
      <tr><td><strong>Wysoki</strong></td><td>99 000</td><td>Poprawa dostępności finansowania, stabilniejsze koszty energii i sprawniejsza realizacja budów mogłyby zwiększyć liczbę domów ukończonych w danym roku. Wymagałoby to również korzystnego otoczenia gospodarczego i braku istotnych zakłóceń dostaw.</td></tr>
    </tbody></table></div>
    <p class="rkf-copy">Warunki w tabeli są <strong>opisem scenariuszy, a nie prognozą stóp procentowych, cen paliw czy rozwoju sytuacji geopolitycznej</strong>. Gospodarka, decyzje pojedynczych inwestorów i terminy odbiorów mogą działać jednocześnie w różnych kierunkach. Sam wzrost liczby domów nie przesądza też o udziale pomp ciepła lub kotłów gazowych.</p>
    <div class="rkf-note"><p><strong>To nie jest 85-procentowy przedział ufności.</strong> Wybrane mnożniki służą do pokazania wrażliwości wyników. Zmienna liczba budynków w 2026 r. oraz udział domów z poszczególnymi instalacjami nie są obecnie ustalone przez te dane. Po publikacji pełnych wyników 2026 r. należy scenariusze przeliczyć.</p></div>
    <p class="rkf-copy">Przygotowując założenia ogrzewania dla pojedynczego domu, punkt wyjścia stanowią <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">straty ciepła pomieszczeń</a> i warunki budynku, a nie udział danej technologii w ogólnopolskim scenariuszu. Dlatego dalsza analiza rynku nie dobiera wyposażenia do konkretnej inwestycji.</p>


  </section>

  <section class="rkf-section rkf-soft" id="rkf-scenarios">
    <span class="rkf-eyebrow">Czytanie prognozy</span><h2>Czego zmiana jednej przesłanki nie wyjaśni?</h2>
    <div class="rkf-grid two"><article class="rkf-card"><span class="rkf-number">Niepewność gospodarcza</span><h3>Otoczenie makro</h3><p>Wzrost gospodarczy, dochody, stopy procentowe, ceny energii i dostępność kredytów mają znaczenie dla decyzji inwestycyjnych. Nie podstawiamy tu prognozy pojedynczej stopy do nieudokumentowanego wzoru na liczbę domów.</p></article><article class="rkf-card"><span class="rkf-number">Niepewność lokalna</span><h3>Realizacja i technologia</h3><p>Region, plan miejscowy, gotowość działki, tempo ekip, konstrukcja budynku i preferencje użytkowników wpływają na wynik. Odłożenie odbioru o kilka miesięcy może przenieść dom między latami statystycznymi.</p></article></div>
    <div class="rkf-grid two"><article class="rkf-card"><span class="rkf-number">Kredyt</span><h3>Koszt i dostępność finansowania</h3><p>Zmiana warunków kredytowych może wpłynąć na decyzję o rozpoczęciu inwestycji i tempo jej domknięcia. Wpływ na oddania w 2027 r. zależy od etapu, na którym znajdują się już prowadzone budowy.</p></article><article class="rkf-card"><span class="rkf-number">Energia</span><h3>Paliwa, energia i materiały</h3><p>Ceny energii i paliw wpływają na koszty eksploatacji oraz wybór źródła ciepła. Koszty materiałów i usług mogą dodatkowo zmieniać budżet budowy, niezależnie od wyboru ogrzewania.</p></article><article class="rkf-card"><span class="rkf-number">Makro i mikro</span><h3>Gospodarka i sytuacja gospodarstw</h3><p>Dochody, zatrudnienie i nastroje wpływają na popyt krajowy, a decyzja pojedynczej rodziny zależy także od działki, oszczędności, projektu i dostępności ekip.</p></article><article class="rkf-card"><span class="rkf-number">Geopolityka</span><h3>Ryzyko zakłóceń</h3><p>Zdarzenia międzynarodowe mogą zmieniać ceny paliw, warunki dostaw i oczekiwania inwestorów. Nie przypisujemy im jednej liczby domów ani prawdopodobieństwa każdego wariantu.</p></article></div>
    <p class="rkf-copy">Dla producentów i wykonawców najważniejsze jest rozróżnienie <strong>liczby oddanych domów</strong> od <strong>momentu zakupu urządzenia</strong>. Źródło ciepła i rury bywają kupowane na długo przed odbiorem, a dostawy obejmują również modernizacje. Rachunek poniżej szacuje wyposażenie przypisane do kohorty budynków, nie obroty firm w konkretnym roku.</p>
  </section>

  <section class="rkf-section" id="rkf-market">
    <span class="rkf-eyebrow">Od liczby domów do skali rynku</span><h2>Jak przejść od liczby domów do szacunku dla branży?</h2>
    <p class="rkf-lead">Liczba oddanych budynków jest jedynie bazą. Aby oszacować liczbę domów z daną technologią, potrzeba wiarygodnego udziału tej technologii w nowych domach. Przytoczone tablice GUS <strong>nie podają</strong> udziału pomp ciepła, kotłów gazowych ani ogrzewania podłogowego w tej kohorcie.</p>
    <div class="rkf-answer"><strong>Przykład pokazujący skalę, a nie sprzedaż:</strong><p>Gdyby jakaś technologia wystąpiła w dodatkowych 10% nowych domów, oznaczałoby to około <strong>7 300 domów</strong> w wariancie ostrożnym, <strong>8 600</strong> w bazowym lub <strong>9 900</strong> w wysokim. Jest to wyłącznie iloczyn liczby domów i hipotetycznego udziału 10%; nie oznacza liczby urządzeń kupionych w 2027 r.</p></div>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Źródła ciepła</span><h3>Pompy i kotły</h3><p>Osobne badania udziałów technologii są konieczne do oszacowania domów korzystających z danego źródła. Modernizacje budynków istniejących tworzą dodatkowy rynek poza tym szacunkiem.</p></article><article class="rkf-card"><span class="rkf-number">Dystrybucja</span><h3>Rury i rozdzielacze</h3><p>Liczba domów z podłogówką nie określa metrażu rur ani liczby rozdzielaczy. Zależą one od powierzchni czynnej, rozstawu, pętli i kondygnacji.</p></article><article class="rkf-card"><span class="rkf-number">Sprzedaż</span><h3>Terminy i kanały</h3><p>Dostawy do hurtowni, zakupy instalatorów i montaż w nowym domu nie muszą wystąpić w tym samym roku, w którym dom zostanie oddany.</p></article></div>
    <p class="rkf-copy">Potrzebne parametry dla pojedynczej budowy wyjaśniają poradniki o <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstawie rur</a>, <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a> i <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">współpracy podłogówki z pompą ciepła</a>. Prognoza ogólnopolska nie zastępuje tych obliczeń.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-equipment">
    <span class="rkf-eyebrow">Potencjał kilku kategorii HVAC</span><h2>Ile urządzeń mogłoby trafić do domów oddanych w 2027 roku?</h2>
    <p class="rkf-lead">Warianty 73, 86 i 99 tys. opisują liczbę budynków. Poniżej przeliczamy je na <strong>warunkowy potencjał instalacji w tych domach</strong>. Udziały technologii przyjęto wyłącznie jako jawne przykłady rachunkowe: <strong>nie są zmierzonymi udziałami nowych domów ani prognozą sprzedaży w 2027 r.</strong></p>
    <div class="rkf-table-wrap"><table>
      <thead><tr><th>Kategoria</th><th>Hipotetyczne założenie do przykładu</th><th>73 tys. domów</th><th>86 tys. domów</th><th>99 tys. domów</th></tr></thead>
      <tbody>
        <tr><td><strong>Pompy ciepła</strong></td><td>W 50% domów po jednej pompie.</td><td>36 500</td><td>43 000</td><td>49 500</td></tr>
        <tr><td><strong>Kotły gazowe</strong></td><td>W 20% domów po jednym kotle.</td><td>14 600</td><td>17 200</td><td>19 800</td></tr>
        <tr><td><strong>Centralne rekuperatory</strong></td><td>W 40% domów po jednej centrali z odzyskiem ciepła.</td><td>29 200</td><td>34 400</td><td>39 600</td></tr>
        <tr><td><strong>Osobne zasobniki c.w.u.</strong></td><td>W 60% domów po jednym zewnętrznym zasobniku; bez zbiorników zintegrowanych.</td><td>43 800</td><td>51 600</td><td>59 400</td></tr>
        <tr><td><strong>Osobne bufory</strong></td><td>W 25% domów z przykładowo założoną pompą ciepła po jednym buforze.</td><td>około 9 100</td><td>około 10 800</td><td>około 12 400</td></tr>
      </tbody>
    </table></div>
    <p class="rkf-copy"><strong>Jak powstały liczby?</strong> Mnożymy liczbę domów przez udział założony dla danej kategorii; bufor liczymy jako liczbę domów z pompą × 25%. Przykładowo 86 000 × 50% daje 43 000 domów z pompą, a 43 000 × 25% daje 10 750 potencjalnych osobnych buforów, czyli około 10 800 po zaokrągleniu do setek. Odsetki 50%, 20%, 40%, 60% i 25% służą <strong>tylko pokazaniu mechanizmu</strong> i należy je zastąpić reprezentatywnymi danymi, zanim liczby posłużą do planowania produkcji.</p>
    <div class="rkf-grid two"><article class="rkf-card"><span class="rkf-number">Źródło i wentylacja</span><h3>Udziały mierzą różne rzeczy</h3><p>Dom z kotłem lub pompą ciepła może mieć również rekuperator. Udział wentylacji liczymy osobno, a źródła ciepła mogą występować w układach mieszanych; procentów z różnych kategorii nie należy sumować.</p></article><article class="rkf-card"><span class="rkf-number">Magazynowanie i c.w.u.</span><h3>Nie każde źródło oznacza osobny zbiornik</h3><p>Część rozwiązań ma zintegrowany zasobnik, inne przygotowują ciepłą wodę bez osobnego zbiornika. Potrzeba osobnego bufora wynika z hydrauliki, wymaganych przepływów, pojemności instalacji i dokumentacji urządzenia.</p></article></div>
    <div class="rkf-note"><p><strong>Dlaczego nie podajemy metrażu rur?</strong> Nie znamy udziału domów z podłogówką ani powierzchni czynnych, rozstawów, długości dobiegów i liczby pętli. Tak samo z liczby domów nie wynika liczba rozdzielaczy. Przeliczenie bez tych informacji dałoby liczbę wyglądającą precyzyjnie, lecz pozbawioną wiarygodnej podstawy.</p></div>
    <p class="rkf-copy">Dane CEEB o źródłach ciepła dotyczą <strong>zasobu domów istniejących</strong>, a nie wyłącznie budynków oddanych w jednym roku. Nie przenosimy ich udziałów na nowych inwestorów. Nawet gdy poznamy lepsze udziały technologii w nowych domach, do prognozy <strong>sprzedaży w samym 2027 r.</strong> potrzebna będzie jeszcze informacja o czasie zakupu, modernizacjach, wymianach oraz zapasach w kanale dystrybucji.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-timing"><span class="rkf-eyebrow">Z perspektywy producenta</span><h2>Kiedy nowy dom tworzy popyt na pompę, rury i rozdzielacz?</h2>
    <p class="rkf-lead">Statystyka oddań pokazuje zakończenie inwestycji. Popyt na poszczególne elementy powstaje wcześniej i w różnym czasie. Prognozę budynków warto więc połączyć z harmonogramem zakupów, a nie traktować jako gotową prognozę faktur branży HVAC.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Projekt i dobór</span><h3>Parametry instalacji</h3><p>Na podstawie obciążeń cieplnych, podziału obwodów i źródła ciepła powstaje lista potrzebnych rozwiązań. To etap ważny dla przyszłego wyboru technologii.</p></article><article class="rkf-card"><span class="rkf-number">Zakup i montaż</span><h3>Materiały oraz urządzenia</h3><p>Rury, rozdzielacze, armatura i źródła ciepła mogą zostać zamówione w różnym terminie. Terminy zależą od prac na budowie i kanału sprzedaży.</p></article><article class="rkf-card"><span class="rkf-number">Odbiór</span><h3>Ujęcie domu w GUS</h3><p>Ukończony budynek zostaje zaliczony do wyniku rocznego, nawet jeżeli część instalacji kupiono lub zamontowano w poprzednim roku.</p></article></div>
    <div class="rkf-cta" aria-label="Współpraca z producentami i dystrybutorami HVAC"><p class="rkf-cta-kicker">Dla producentów i dystrybutorów HVAC</p><h3>Wielkość rynku to punkt wyjścia. Ważny jest także moment wyboru technologii.</h3><p>Prognoza 2027 pomaga ocenić skalę nowych inwestycji. Jeżeli rozwijasz rury, rozdzielacze, automatykę, źródła ciepła, rekuperatory lub urządzenia do przygotowania c.w.u., zobacz, jak Projekt-Ogrzewania.pl dociera do inwestorów na etapie poznawania wymagań i porównywania rozwiązań.</p><a class="rkf-button" href="https://projekt-ogrzewania.pl/wspolpraca/">Zobacz możliwości współpracy dla producentów</a></div>
  </section>

  <section class="rkf-section" id="rkf-update"><span class="rkf-eyebrow">Prognoza, do której można wrócić</span><h2>Jak sprawdzić prognozę, gdy pojawią się nowe dane?</h2>
    <p class="rkf-lead">Scenariusze odnoszą się do informacji dostępnych w dniu aktualizacji tekstu. Po ogłoszeniu kolejnych wyników trzeba porównać te same jednostki i zdecydować, czy założenia 73, 86 i 99 tys. domów nadal mają sens.</p>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">Krok 1</span><h3>Pełny rok 2026</h3><p>Sprawdź roczną liczbę <strong>budynków jednorodzinnych</strong> oddanych do użytkowania. Miesięczne dane o wszystkich mieszkaniach nie zastępują tego wyniku.</p></article><article class="rkf-card"><span class="rkf-number">Krok 2</span><h3>Przyszły strumień budów</h3><p>Porównaj rozpoczęcia i pozwolenia w adekwatnym przekroju wraz z informacjami o czasie realizacji; unikaj prostego przesuwania całej serii o jeden rok.</p></article><article class="rkf-card"><span class="rkf-number">Krok 3</span><h3>Udziały technologii</h3><p>Gdy pojawią się reprezentatywne dane o źródłach ciepła i podłogówce w nowych domach, można ostrożniej przeliczyć potencjał kategorii produktów.</p></article></div>
    <div class="rkf-note green"><p><strong>Zasada aktualizacji:</strong> nowe dane GUS służą do zmiany scenariusza domów, a dane o technologiach do zmiany szacunków wyposażenia. Każde źródło musi opisywać tę samą grupę budynków i porównywalny okres.</p></div>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-limits">
    <span class="rkf-eyebrow">Jak interpretować wyniki</span><h2>Pięć ograniczeń, które zmieniają znaczenie liczb</h2>
    <div class="rkf-grid"><article class="rkf-card"><span class="rkf-number">01</span><h3>Odbiór to nie zakup</h3><p>Elementy instalacji można zamówić rok wcześniej; statystyka oddań nie opisuje sprzedaży w 2027 r.</p></article><article class="rkf-card"><span class="rkf-number">02</span><h3>Udziały technologii są nieustalone</h3><p>Przytoczone dane nie podają udziału podłogówki, pomp i kotłów w nowo oddanych domach.</p></article><article class="rkf-card"><span class="rkf-number">03</span><h3>Nowe domy to część rynku</h3><p>Modernizacje, wymiany źródeł i instalacje w mieszkaniach wielorodzinnych są poza tym rachunkiem.</p></article><article class="rkf-card"><span class="rkf-number">04</span><h3>Rura zależy od projektu</h3><p>Metrażu rur nie można policzyć z samej liczby domów: potrzebne są powierzchnie czynne, rozstawy i podział obwodów.</p></article><article class="rkf-card"><span class="rkf-number">05</span><h3>Źródła mogą się łączyć</h3><p>Dom może wykorzystywać więcej niż jedno źródło. Liczby oddań budynków nie wystarczą do ustalenia liczby urządzeń.</p></article></div>
    <div class="rkf-note green"><p><strong>Wniosek dla producenta:</strong> do planowania sprzedaży połącz wariant liczby nowych domów z rzeczywistymi udziałami technologii, momentem zakupu, modernizacjami, kanałem dystrybucji i danymi zamówień.</p></div>
    <p class="rkf-copy">Dla inwestora w pojedynczym domu statystyczny udział instalacji nie odpowiada na pytanie, czy <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-moze-byc-jedynym-zrodlem-ciepla-w-domu-analiza-dla-polskich-warunkow/">podłogówka pokryje obciążenie cieplne</a>, ile pętli potrzeba ani jak zrównoważyć obieg. To rozstrzyga projekt z obliczeniami.</p>
    <div class="rkf-cta"><h3>Statystyka pomaga planować rynek. Projekt pozwala zbudować konkretną instalację.</h3><p>Przed zamówieniem rur i rozdzielacza sprawdź obciążenie cieplne pomieszczeń, powierzchnię aktywną, temperatury, rozstawy, przepływy i opory. Dokumentacja wykonawcza łączy te wyniki w jeden układ.</p><a class="rkf-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź projekt podłogówki dla swojego domu</a><small>Odnośnik prowadzi do płatnej usługi projektowej autora.</small></div>
  </section>

  <section class="rkf-section" id="rkf-sources"><span class="rkf-eyebrow">Weryfikacja i możliwość aktualizacji</span><h2>Źródła danych i sposób wyznaczania wariantów</h2>
    <p class="rkf-lead">Liczby oficjalne pochodzą z GUS. Serię mieszkań ogółem 2006–2024 przedstawiono po zaokrągleniu do 100 mieszkań na podstawie rocznej zmiennej 748601 w BDL; punkt za 2025 r. (208,4 tys.) pochodzi z późniejszej publikacji rocznej GUS. Tabele nowych budynków jednorodzinnych za 2023, 2024 i 2025 pochodzą z trzech publikacji GUS. Scenariusze są obliczeniami autora.</p>
    <div class="rkf-sources">
      <div class="rkf-source"><a href="https://bdl.stat.gov.pl/bdl/dane/podgrup/wymiary/12/603/3824" target="_blank" rel="nofollow noopener noreferrer">GUS BDL – mieszkania oddane do użytkowania</a><p>Roczny szereg wszystkich mieszkań 2006–2024; nie utożsamiać go z liczbą domów. Dane zaokrąglono do 0,1 tys.</p></div>
      <div class="rkf-source"><a href="https://stat.gov.pl/download/gfx/portalinformacyjny/pl/defaultaktualnosci/5478/13/21/1/budownictwo_w_2023_r..pdf" target="_blank" rel="nofollow noopener noreferrer">GUS – Budownictwo w 2023 r., tablica 2</a><p>96 170 nowych budynków jednorodzinnych oddanych w 2023 r.</p></div>
      <div class="rkf-source"><a href="https://stat.gov.pl/files/gfx/portalinformacyjny/pl/defaultaktualnosci/5478/13/25/1/budownictwo_w_2024_roku_2.pdf" target="_blank" rel="nofollow noopener noreferrer">GUS – Budownictwo w 2024 r., tablica 2</a><p>85 416 nowych budynków jednorodzinnych oddanych w 2024 r.</p></div>
      <div class="rkf-source"><a href="https://lublin.stat.gov.pl/files/gfx/lublin/pl/defaultstronaopisowa/1055/1/1/opracowanie_sygnalne_2025_4_budownictwo.pdf" target="_blank" rel="nofollow noopener noreferrer">GUS – Budownictwo w 2025 r., tablica 2</a><p>86 042 nowych budynków jednorodzinnych, 98 014 mieszkań w nich; 208,4 tys. oddanych mieszkań ogółem; średni czas budowy domu 51,0 miesięcy.</p></div>
      <div class="rkf-source"><a href="https://ssgk.stat.gov.pl/Budownictwo_mieszkaniowe.html" target="_blank" rel="nofollow noopener noreferrer">GUS – budownictwo mieszkaniowe, sierpień 2026</a><p>Wstępne liczby mieszkań ogółem, rozpoczynanych i objętych pozwoleniami od stycznia do sierpnia.</p></div>
      <div class="rkf-source"><a href="https://zone.gunb.gov.pl/pl/raporty/struktura_budynkow_zrodla_co" target="_blank" rel="nofollow noopener noreferrer">GUNB / CEEB – struktura źródeł w istniejących domach</a><p>Oficjalny raport o zasobie budynków jednorodzinnych; jego udziałów nie przeniesiono na domy oddane w 2027 r.</p></div>
      <div class="rkf-source"><a href="https://bdl.stat.gov.pl/bdl/dane/podgrup/temat/12/573/1735" target="_blank" rel="nofollow noopener noreferrer">GUS BDL – metadane i zmiana definicji</a><p>W archiwum osobno opisano stare i nowe definicje budynków; przed łączeniem szeregów konieczna jest kontrola.</p></div>
    </div><p class="rkf-copy">Dla odtworzenia wariantów przyjmij: budynki 2027 = 86 042 × wybrany mnożnik (0,85 / 1,00 / 1,15), po czym zaokrąglij do pełnych tysięcy. Przykład dodatkowych 10% domów z technologią jest jedynie mnożeniem przez 0,10. Tabela urządzeń przedstawia niezależne założenia przykładowe, a nie zmierzone udziały rynku; bufor liczony jest warunkowo tylko dla części domów z pompą. Sprzedaż urządzeń wymaga odrębnych danych i czasu zakupu. Wynik nie ma dokładności większej od przyjętych założeń.</p>
  </section>

  <section class="rkf-section rkf-soft" id="rkf-faq"><span class="rkf-eyebrow">Najczęstsze pytania</span><h2>FAQ: nowe domy i rynek ogrzewania w 2027 roku</h2><div class="rkf-faq">
    <details><summary>Czy 86 tys. domów w 2027 r. jest prognozą GUS?</summary><p>Nie. To bazowy scenariusz autora, celowo zbliżony do potwierdzonych 86 042 domów oddanych w 2025 r. GUS nie podał jeszcze wyniku za 2027 r.</p></details>
    <details><summary>Dlaczego 20-letni wykres pokazuje mieszkania, a nie domy?</summary><p>Pełna dostępna tutaj seria 2006–2025 dotyczy mieszkań ogółem. Pokazujemy osobno potwierdzone liczby budynków jednorodzinnych za 2023–2025. Łączenie różnych mierników pod jednym podpisem wprowadzałoby w błąd.</p></details>
    <details><summary>Czy mieszkania oddane przez inwestorów indywidualnych to liczba domów?</summary><p>Nie. Forma budownictwa opisuje inwestora i lokale, a nie jest równoważna liczbie budynków jednorodzinnych. Klasyfikacja form zmieniała się również w czasie.</p></details>
    <details><summary>Czy pozwolenia wydane w 2026 r. wskazują liczbę domów oddanych w 2027 r.?</summary><p>Nie wprost. Pozwolenia odnoszą się do przyszłych budów, dane bieżące GUS dotyczą wielu rodzajów mieszkań, a czas realizacji inwestycji jest zróżnicowany.</p></details>
    <details><summary>Ile pomp ciepła sprzeda się w 2027 r. do nowych domów?</summary><p>Nie ma wiarygodnej liczby sprzedaży wyliczalnej z samych oddań. Potrzebne są dane o udziale pomp w nowych domach i terminie ich zakupu; także wymiany urządzeń w istniejących budynkach wpływają na roczną sprzedaż.</p></details>
    <details><summary>Czy wykres podaje udział pomp ciepła i kotłów gazowych?</summary><p>Nie. Wykres przedstawia potwierdzoną liczbę domów i trzy warianty liczby oddanych budynków. Udziały technologii wymagają osobnego badania dla tej samej grupy domów.</p></details>
    <details><summary>A co z domami z podłogówką i grzejnikami?</summary><p>Układ mieszany jest możliwy. Bez osobnych danych o udziałach takich układów nie można przypisać mu ogólnopolskiej liczby domów na podstawie samych oddań.</p></details>
    <details><summary>Czy z prognozy domów można obliczyć metraż rur do zakupu?</summary><p>Nie. Dla konkretnego domu potrzebny jest rzut, bilans cieplny, podział pętli, rozstawy, dobiegi i obliczenia hydrauliczne. W skali kraju dochodzi nieznany udział domów z podłogówką.</p></details>
    <details><summary>Czy jeden dom z podłogówką zawsze oznacza jeden rozdzielacz?</summary><p>Nie. Liczba rozdzielaczy zależy od kondygnacji, geometrii i układu obwodów. Z liczby oddanych domów nie wynika liczba rozdzielaczy kupionych w roku ich oddania.</p></details>
    <details><summary>Kiedy należy zaktualizować prognozę?</summary><p>Po publikacji rocznego wyniku GUS za 2026 r. dla budynków jednorodzinnych, a także po uzyskaniu porównywalnych danych o technologiach w nowych domach.</p></details>
  </div></section>

  <section class="rkf-section rkf-author-section" id="rkf-author"><span class="rkf-eyebrow">Opracowanie i weryfikacja</span><h2>Autor: Robert Kucharski</h2>
    <div class="rkf-author">
      <aside class="rkf-author-side"><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"><h3>Robert Kucharski</h3><p>CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</p><div class="rkf-author-links" 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="rkf-author-main"><div class="rkf-author-thesis">Liczba oddanych domów jest punktem wyjścia do analizy rynku. Sama nie mówi jeszcze, ile pomp, kotłów i rozdzielaczy sprzedano w tym samym roku.</div><p>Robert Kucharski projektuje instalacje ogrzewania podłogowego i prowadzi analizy cieplne oraz hydrauliczne budynków. W tym opracowaniu oddziela dane GUS o oddanych budynkach od warunkowych scenariuszy na 2027 r. i od szacunków dotyczących wyposażenia.</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"}},
    {"@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":"https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp","jobTitle":"Projektant instalacji sanitarnych, 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":"BreadcrumbList","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#rk-forecast-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":"Domy jednorodzinne 2027 – prognoza rynku ogrzewania","item":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/"}]},
    {"@type":"WebPage","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#webpage","url":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/","name":"Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania","inLanguage":"pl-PL","isPartOf":{"@id":"https://projekt-ogrzewania.pl/#website"},"breadcrumb":{"@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#rk-forecast-breadcrumb"},"mainEntity":{"@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#article"}},
    {"@type":"TechArticle","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#article","headline":"Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania","description":"Dane GUS o oddanych domach, dwadzieścia lat danych o mieszkaniach i autorskie scenariusze dla rynku ogrzewania w 2027 roku.","inLanguage":"pl-PL","author":{"@id":"https://projekt-ogrzewania.pl/#robert-kucharski"},"publisher":{"@id":"https://projekt-ogrzewania.pl/#organization"},"mainEntityOfPage":{"@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#webpage"},"isAccessibleForFree":true,"about":["budynki jednorodzinne oddane do użytkowania","rynek ogrzewania w Polsce","ogrzewanie podłogowe","prognoza scenariuszowa 2027"]},
    {"@type":"WebApplication","@id":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#chart","name":"Interaktywny wykres domów jednorodzinnych i scenariuszy na 2027 rok","url":"https://projekt-ogrzewania.pl/domy-jednorodzinne-2027-prognoza-rynku-ogrzewania/#rkf-history","applicationCategory":"EducationalApplication","operatingSystem":"Przeglądarka internetowa","inLanguage":"pl-PL","isAccessibleForFree":true,"description":"Wykres danych GUS o domach jednorodzinnych oraz trzech scenariuszy autorskich na 2027 rok. Dwudziestoletni szereg mieszkań ogółem przedstawia drugi, oddzielny wykres."}
  ]
}
</script>
<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-forecast");
  if (!root) { return; }
  if (root.getAttribute("data-rkf-ready") === "true") { return; }
  root.setAttribute("data-rkf-ready", "true");

  var flats = [[2006,115.4],[2007,133.7],[2008,165.2],[2009,160.0],[2010,135.8],[2011,131.0],[2012,152.9],[2013,145.1],[2014,143.2],[2015,147.7],[2016,163.3],[2017,178.3],[2018,185.1],[2019,207.4],[2020,220.8],[2021,234.7],[2022,238.5],[2023,221.3],[2024,200.1],[2025,208.4]];
  var houses = [[2023,96.170],[2024,85.416],[2025,86.042]];
  var scenarios = {
    low: {name:"ostrożny", value:73, color:"#db613e", note:"Wariant odpowiadający około 85% poziomu z 2025 r. Zakłada słabsze tempo oddawania domów; nie jest wynikiem GUS."},
    base: {name:"bazowy", value:86, color:"#078eac", note:"Wariant bliski liczbie budynków z 2025 r. Jest autorskim punktem odniesienia, a nie prognozą GUS."},
    high: {name:"wysoki", value:99, color:"#168267", note:"Wariant odpowiadający około 115% poziomu z 2025 r. Wymagałby większej liczby zakończonych inwestycji."}
  };
  var selected = "base";
  var ns = "http://www.w3.org/2000/svg";
  var svg = root.querySelector("#rkf-svg");
  var historicalSvg = root.querySelector("#rkf-historical-svg");
  var format = new Intl.NumberFormat("pl-PL", {maximumFractionDigits:0});
  var oneDecimal = new Intl.NumberFormat("pl-PL", {minimumFractionDigits:1,maximumFractionDigits:1});

  function create(name, attrs, value) {
    var node = document.createElementNS(ns, name);
    Object.keys(attrs).forEach(function (key) { node.setAttribute(key, attrs[key]); });
    if (value !== undefined) { node.textContent = value; }
    return node;
  }

  function append(name, attrs, value, parent) {
    var node = create(name, attrs, value);
    (parent || svg).appendChild(node);
    return node;
  }

  function readout(title, body) {
    root.querySelector("#rkf-chart-readout-title").textContent = title;
    root.querySelector("#rkf-chart-readout-text").textContent = body;
  }

  function selectedReadout() {
    var value = scenarios[selected];
    readout("2027: " + format.format(value.value * 1000) + " domów — scenariusz " + value.name, value.note);
  }

  function interactivePoint(x, y, color, label, title, message, radius, scenarioKey) {
    var group = append("g", {"class":"rkf-chart-point",tabindex:"0",role:"button","aria-label":label});
    append("circle", {cx:x,cy:y,r:radius,fill:"#ffffff",stroke:color,"stroke-width":"3"},undefined,group);
    append("circle", {cx:x,cy:y,r:Math.max(radius + 11, 17),fill:"transparent"},undefined,group);
    append("title",{},label,group);
    group.addEventListener("focus",function () { readout(title,message); });
    group.addEventListener("pointerenter",function () { readout(title,message); });
    group.addEventListener("pointerleave",selectedReadout);
    group.addEventListener("click",function () {
      if (scenarioKey) { selected = scenarioKey; render(); }
      else { readout(title,message); }
    });
    group.addEventListener("keydown",function (event) {
      if (event.key === "Enter" || event.key === " ") {
        event.preventDefault();
        if (scenarioKey) { selected = scenarioKey; render(); }
        else { readout(title,message); }
      }
    });
  }

  function axes(min, max, ticks, xPositions, title) {
    var yTop = 75, yBottom = 298, left = 76, right = 892;
    append("text",{x:28,y:27,fill:"#102a3b","font-size":"18","font-weight":"800"},title);
    function y(value) { return yBottom - (value - min) * (yBottom - yTop) / (max - min); }
    ticks.forEach(function (tick) {
      var pos = y(tick);
      append("line",{x1:left,y1:pos,x2:right,y2:pos,stroke:"#dce7ec","stroke-width":"1"});
      append("text",{x:61,y:pos+5,fill:"#466170","text-anchor":"end","font-size":"13"},String(tick));
    });
    xPositions.forEach(function (item) {
      append("text",{x:item.x,y:330,fill:item.muted ? "#7f949f" : "#355365","text-anchor":"middle","font-size":"14","font-weight":item.muted ? "400" : "700"},String(item.label));
    });
    return y;
  }

  function renderHouses() {
    var xActual = [130,305,480], x2027 = 815;
    var y = axes(60,110,[60,70,80,90,100,110],[{x:130,label:2023},{x:305,label:2024},{x:480,label:2025},{x:648,label:2026,muted:true},{x:815,label:2027}],"Oddane budynki jednorodzinne · tys.");
    append("rect",{x:563,y:45,width:167,height:267,rx:12,fill:"#f1f5f6"});
    append("text",{x:646,y:68,fill:"#526b78","text-anchor":"middle","font-size":"12","font-weight":"800"},"2026: brak wyniku rocznego");
    append("path",{d:"M " + xActual[2] + " " + y(houses[2][1]) + " L " + x2027 + " " + y(99) + " L " + x2027 + " " + y(73) + " Z",fill:"#1caec1","fill-opacity":".075"});
    var historyPath = houses.map(function (row,index) { return (index ? "L " : "M ") + xActual[index] + " " + y(row[1]); }).join(" ");
    append("path",{d:historyPath,fill:"none",stroke:"#087f9e","stroke-width":"5","stroke-linecap":"round","stroke-linejoin":"round"});
    ["low","base","high"].forEach(function (key) {
      var item = scenarios[key];
      var active = key === selected;
      var path = "M " + xActual[2] + " " + y(86.042) + " C 603 " + y(86.042) + " 709 " + y(item.value) + " " + x2027 + " " + y(item.value);
      append("path",{d:path,fill:"none",stroke:item.color,"stroke-width":active ? "5" : "3","stroke-dasharray":"10 8","stroke-linecap":"round",opacity:active ? "1" : ".55"});
    });
    houses.forEach(function (row,index) {
      interactivePoint(xActual[index],y(row[1]),"#087f9e","GUS, " + row[0] + ": " + format.format(Math.round(row[1]*1000)) + " oddanych domów",row[0] + ": " + format.format(Math.round(row[1]*1000)) + " budynków","Potwierdzony wynik GUS dla budynków jednorodzinnych oddanych w " + row[0] + " r.",8);
    });
    ["low","base","high"].forEach(function (key) {
      var item = scenarios[key];
      var pointY = y(item.value);
      if (key === selected) {
        append("circle",{cx:x2027,cy:pointY,r:19,fill:item.color,"fill-opacity":".17"});
      }
      interactivePoint(x2027,pointY,item.color,"2027, scenariusz " + item.name + ": " + format.format(item.value*1000) + " domów","2027: " + format.format(item.value*1000) + " domów — " + item.name,item.note,key === selected ? 10 : 8,key);
      append("text",{x:834,y:pointY+5,fill:item.color,"font-size":"15","font-weight":key === selected ? "900" : "700"},String(item.value) + " tys.");
    });
    root.querySelector("#rkf-plot-desc").textContent = "Oś pionowa: tysiące budynków; wykres ma skróconą skalę 60–110 tys. Rozpiętość i dane dokładne są podane w tabeli. Rok 2026 nie ma punktu.";
    svg.setAttribute("aria-label","GUS: 2023 – 96 170, 2024 – 85 416, 2025 – 86 042 budynki jednorodzinne. Brak wyniku rocznego dla 2026. Warianty autora na 2027: 73 000, 86 000 lub 99 000. Tabela znajduje się niżej.");
    selectedReadout();
  }

  function renderHistorical() {
    var chosenYear = -1;
    var x = function (index) { return 105 + index * 750 / (flats.length - 1); };
    var y = function (value) { return 298 - value * 223 / 260; };
    function historyAppend(name, attrs, value, parent) {
      var node = create(name, attrs, value);
      (parent || historicalSvg).appendChild(node);
      return node;
    }
    function historyReadout(index) {
      var row = flats[index];
      var previous = flats[index - 1];
      var difference = previous ? row[1] - previous[1] : 0;
      var comparison = previous ? "Zmiana względem " + previous[0] + " r.: " + (difference >= 0 ? "+" : "−") + oneDecimal.format(Math.abs(difference)) + " tys. mieszkań (wartości zaokrąglone)." : "Początek pokazanego szeregu; nie ma wcześniejszego punktu na wykresie.";
      root.querySelector("#rkf-historical-title").textContent = row[0] + ": " + oneDecimal.format(row[1]) + " tys. mieszkań oddanych ogółem";
      root.querySelector("#rkf-historical-text").textContent = comparison + " To liczba mieszkań, nie domów.";
    }
    historicalSvg.textContent = "";
    historyAppend("text",{x:28,y:27,fill:"#102a3b","font-size":"18","font-weight":"800"},"Mieszkania oddane ogółem · tys.");
    [0,50,100,150,200,250].forEach(function (tick) {
      historyAppend("line",{x1:76,y1:y(tick),x2:892,y2:y(tick),stroke:"#dce7ec","stroke-width":"1"});
      historyAppend("text",{x:61,y:y(tick)+5,fill:"#466170","text-anchor":"end","font-size":"13"},String(tick));
    });
    [[0,2006],[3,2009],[6,2012],[9,2015],[12,2018],[15,2021],[19,2025]].forEach(function (mark) {
      historyAppend("text",{x:x(mark[0]),y:330,fill:"#355365","text-anchor":"middle","font-size":"14","font-weight":"700"},String(mark[1]));
    });
    var path = flats.map(function (row,index) { return (index ? "L " : "M ") + x(index) + " " + y(row[1]); }).join(" ");
    var defs = historyAppend("defs",{});
    var gradient = historyAppend("linearGradient",{id:"rkf-historical-fill",x1:"0",y1:"0",x2:"0",y2:"1"},undefined,defs);
    historyAppend("stop",{offset:"0%","stop-color":"#29c4d7","stop-opacity":".34"},undefined,gradient);
    historyAppend("stop",{offset:"100%","stop-color":"#29c4d7","stop-opacity":".015"},undefined,gradient);
    historyAppend("path",{d:path + " L " + x(flats.length - 1) + " " + y(0) + " L " + x(0) + " " + y(0) + " Z",fill:"url(#rkf-historical-fill)"});
    historyAppend("path",{d:path,fill:"none",stroke:"#087f9e","stroke-width":"4","stroke-linecap":"round","stroke-linejoin":"round"});
    flats.forEach(function (row,index) {
      var label = "GUS, " + row[0] + ": " + oneDecimal.format(row[1]) + " tys. mieszkań";
      var group = historyAppend("g",{"class":"rkf-chart-point",tabindex:"0",role:"button","aria-label":label});
      historyAppend("circle",{cx:x(index),cy:y(row[1]),r:4,fill:"#ffffff",stroke:"#087f9e","stroke-width":"3"},undefined,group);
      historyAppend("circle",{cx:x(index),cy:y(row[1]),r:17,fill:"transparent"},undefined,group);
      historyAppend("title",{},label,group);
      group.addEventListener("focus",function () { historyReadout(index); });
      group.addEventListener("pointerenter",function () { historyReadout(index); });
      group.addEventListener("pointerleave",function () { if (chosenYear >= 0) { historyReadout(chosenYear); } });
      group.addEventListener("click",function () { chosenYear = index; historyReadout(index); });
      group.addEventListener("keydown",function (event) {
        if (event.key === "Enter" || event.key === " ") { event.preventDefault(); chosenYear = index; historyReadout(index); }
      });
    });
  }

  function render() {
    svg.textContent = "";
    root.querySelectorAll("[data-rkf-scenario]").forEach(function (button) {
      button.setAttribute("aria-pressed",button.getAttribute("data-rkf-scenario") === selected ? "true" : "false");
    });
    renderHouses();
  }

  root.querySelectorAll("[data-rkf-scenario]").forEach(function (button) {
    button.addEventListener("click",function () { selected = button.getAttribute("data-rkf-scenario"); render(); });
  });
  root.querySelectorAll("table").forEach(function (table) {
    var heads = Array.prototype.map.call(table.querySelectorAll("thead th"),function (th) { return th.textContent.trim(); });
    table.querySelectorAll("tbody tr").forEach(function (tr) {
      tr.querySelectorAll("td").forEach(function (td,index) { td.setAttribute("data-label",heads[index] || "Dane"); });
    });
  });
  renderHistorical();
  render();
}());

</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/">Ile domów jednorodzinnych zostanie oddanych w Polsce w 2027 roku? Prognoza rynku ogrzewania.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/domy-jednorodzinne-w-2027-r-dane-gus-i-prognoza-rynku-ogrzewania/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku</title>
		<link>https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/</link>
					<comments>https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 29 Sep 2026 09:37:47 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Instalacja ogrzewania podłogowego]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Koszty inwestycji]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Projekt instalacji grzewczej]]></category>
		<category><![CDATA[Projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[budowa domu ogrzewanie]]></category>
		<category><![CDATA[cena podłogówki]]></category>
		<category><![CDATA[jak porównać wyceny ogrzewania podłogowego]]></category>
		<category><![CDATA[koszt instalacji podłogowej]]></category>
		<category><![CDATA[koszt ogrzewania podłogowego]]></category>
		<category><![CDATA[koszt wykonania podłogówki]]></category>
		<category><![CDATA[materiały do ogrzewania podłogowego]]></category>
		<category><![CDATA[oferta instalatora]]></category>
		<category><![CDATA[oferta na podłogówkę]]></category>
		<category><![CDATA[ogrzewanie podłogowe cena]]></category>
		<category><![CDATA[pętle ogrzewania podłogowego]]></category>
		<category><![CDATA[porównanie ofert wykonawców]]></category>
		<category><![CDATA[próba szczelności podłogówki]]></category>
		<category><![CDATA[projekt podłogówki]]></category>
		<category><![CDATA[regulacja ogrzewania podłogowego]]></category>
		<category><![CDATA[robocizna ogrzewania podłogowego]]></category>
		<category><![CDATA[rozdzielacz ogrzewania podłogowego]]></category>
		<category><![CDATA[wycena instalacji grzewczej]]></category>
		<category><![CDATA[wycena ogrzewania podłogowego]]></category>
		<category><![CDATA[wykonawca ogrzewania podłogowego]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7769</guid>

					<description><![CDATA[<p>Porównujesz dwie lub trzy oferty na podłogówkę i każda wygląda zupełnie inaczej? Sama cena końcowa niewiele mówi, jeśli wykonawcy przyjęli różny zakres robót, liczbę pętli, materiały, sposób wykonania próby szczelności czy zakres uruchomienia instalacji. W tym poradniku pokazujemy, **jak porównać wyceny ogrzewania podłogowego**, aby sprawdzić, za co rzeczywiście płacisz i gdzie mogą pojawić się dodatkowe koszty. Znajdziesz tu praktyczną listę kontrolną, przykłady różnic między ofertami oraz interaktywne narzędzia pomagające uporządkować wyceny i przygotować jednakowe zapytanie do wykonawców.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/">Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-quote-guide {
    --rq-ink: #102c3e;
    --rq-copy: #39576a;
    --rq-muted: #637c8a;
    --rq-navy: #0b2536;
    --rq-mid: #164257;
    --rq-cyan: #23bfd2;
    --rq-cyan-ink: #076c80;
    --rq-orange: #ff6846;
    --rq-green: #1b8f6d;
    --rq-border: #d2e3e9;
    --rq-soft: #f2f8fa;
    --rq-white: #fff;
    color: var(--rq-ink);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    margin: 0 auto;
    max-width: 1360px;
    overflow-wrap: anywhere;
    width: 100%;
  }
  #rk-quote-guide, #rk-quote-guide * { box-sizing: border-box; min-width: 0; }
  #rk-quote-guide a { color: #087996; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  #rk-quote-guide a:hover { color: #d84d31; }
  #rk-quote-guide img { display: block; height: auto; max-width: 100%; }
  #rk-quote-guide button, #rk-quote-guide input, #rk-quote-guide select, #rk-quote-guide textarea { font: inherit; }
  #rk-quote-guide :is(a, button, input, select, textarea, summary):focus-visible {
    outline: 3px solid #19b9d4; outline-offset: 3px;
  }
  #rk-quote-guide .rq-shell {
    background: #fff; border: 1px solid var(--rq-border);
    box-shadow: 0 18px 56px rgba(12, 39, 55, .10); overflow: hidden;
  }
  #rk-quote-guide .rq-hero {
    background: radial-gradient(circle at 95% 108%, rgba(35,191,210,.22) 0 19%, transparent 19.2%),
      linear-gradient(122deg, #0b2536, #164257 65%, #0e6879);
    color: white; padding: 64px 58px 58px;
  }
  #rk-quote-guide .rq-kicker, #rk-quote-guide .rq-eyebrow {
    color: #61e4ef; display: block; font-size: .77rem; font-weight: 900;
    letter-spacing: .12em; margin: 0 0 16px; text-transform: uppercase;
  }
  #rk-quote-guide .rq-hero-title, #rk-quote-guide .rq-section h2, #rk-quote-guide .rq-author h2 {
    font-weight: 900; letter-spacing: -.035em; line-height: 1.1; margin: 0;
  }
  #rk-quote-guide .rq-hero-title { font-size: clamp(2.35rem, 5.9vw, 5.1rem); max-width: 1120px; }
  #rk-quote-guide .rq-hero-title span { color: #79e8f1; }
  #rk-quote-guide .rq-hero p { color: #e0eff4; font-size: clamp(1.03rem, 1.9vw, 1.4rem); margin: 23px 0 0; max-width: 1010px; }
  #rk-quote-guide .rq-tags, #rk-quote-guide .rq-meta, #rk-quote-guide .rq-nav { display: flex; flex-wrap: wrap; }
  #rk-quote-guide .rq-tags { gap: 9px; margin-top: 26px; }
  #rk-quote-guide .rq-tags span {
    border: 1px solid rgba(255,255,255,.28); border-radius: 99px;
    color: white; font-size: .82rem; font-weight: 800; padding: 7px 12px;
  }
  #rk-quote-guide .rq-meta { color: #d3e5eb; font-size: .82rem; gap: 12px 23px; margin-top: 32px; }
  #rk-quote-guide .rq-meta strong { color: white; }
  #rk-quote-guide .rq-nav { align-items: center; border-bottom: 1px solid var(--rq-border); gap: 8px; padding: 19px 29px; }
  #rk-quote-guide .rq-nav-label { font-size: .74rem; font-weight: 900; letter-spacing: .08em; margin-right: 5px; text-transform: uppercase; }
  #rk-quote-guide .rq-nav a {
    background: #eff6f8; border-radius: 30px; color: var(--rq-ink); font-size: .78rem;
    font-weight: 800; line-height: 1.3; padding: 8px 12px; text-decoration: none;
  }
  #rk-quote-guide .rq-nav a:hover { background: #dff7fa; color: #075a70; }
  #rk-quote-guide .rq-section, #rk-quote-guide .rq-author { padding: 61px 58px; }
  #rk-quote-guide .rq-section + .rq-section, #rk-quote-guide .rq-author { border-top: 1px solid var(--rq-border); }
  #rk-quote-guide .rq-section.rq-soft { background: var(--rq-soft); }
  #rk-quote-guide .rq-eyebrow { color: var(--rq-cyan-ink); margin-bottom: 11px; }
  #rk-quote-guide .rq-section h2, #rk-quote-guide .rq-author h2 { font-size: clamp(2rem, 3.9vw, 3.55rem); }
  #rk-quote-guide .rq-lead { color: var(--rq-copy); font-size: clamp(1.02rem, 1.6vw, 1.21rem); line-height: 1.7; margin: 20px 0 0; max-width: 1100px; }
  #rk-quote-guide .rq-copy { color: var(--rq-copy); margin: 20px 0 0; }
  #rk-quote-guide .rq-section h3 { color: var(--rq-ink); font-size: 1.29rem; line-height: 1.3; margin: 29px 0 12px; }
  #rk-quote-guide .rq-grid { display: grid; gap: 17px; margin-top: 26px; }
  #rk-quote-guide .rq-grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  #rk-quote-guide .rq-grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  #rk-quote-guide .rq-card { background: white; border: 1px solid var(--rq-border); border-radius: 17px; padding: 22px; }
  #rk-quote-guide .rq-card h3 { font-size: 1.11rem; margin: 0 0 10px; }
  #rk-quote-guide .rq-card p, #rk-quote-guide .rq-card li { color: var(--rq-copy); }
  #rk-quote-guide .rq-card p { margin: 0; }
  #rk-quote-guide .rq-num {
    align-items: center; background: #dff8fa; border-radius: 10px; color: #086b80;
    display: inline-flex; font-size: .8rem; font-weight: 900; justify-content: center;
    min-height: 36px; min-width: 36px; padding: 5px 9px; margin-bottom: 14px;
  }
  #rk-quote-guide .rq-answer { background: #e8f9fc; border: 1px solid #a6dfe7; border-left: 6px solid var(--rq-cyan); border-radius: 15px; margin-top: 25px; padding: 21px 24px; }
  #rk-quote-guide .rq-answer strong { display: block; font-size: 1.2rem; }
  #rk-quote-guide .rq-answer p { color: var(--rq-copy); margin: 8px 0 0; }
  #rk-quote-guide .rq-note { background: #fff5e6; border-left: 5px solid #eca927; border-radius: 12px; color: #614b20; margin-top: 24px; padding: 16px 20px; }
  #rk-quote-guide .rq-note p { margin: 0; }
  #rk-quote-guide .rq-note.rq-note-good { background: #eafaf4; border-color: #34c69b; color: #175e4c; }
  #rk-quote-guide .rq-list { color: var(--rq-copy); margin: 17px 0 0; padding-left: 22px; }
  #rk-quote-guide .rq-list li + li { margin-top: 8px; }
  #rk-quote-guide .rq-table-wrap { margin-top: 25px; overflow-x: auto; }
  #rk-quote-guide table { border-collapse: collapse; min-width: 740px; width: 100%; }
  #rk-quote-guide th { background: var(--rq-navy); color: white; font-size: .78rem; letter-spacing: .03em; padding: 14px; text-align: left; text-transform: uppercase; }
  #rk-quote-guide td { background: white; border: 1px solid var(--rq-border); color: var(--rq-copy); padding: 14px; vertical-align: top; }
  #rk-quote-guide td strong { color: var(--rq-ink); }
  #rk-quote-guide .rq-example { background: #102f41; border-radius: 20px; color: white; margin-top: 28px; padding: 26px; }
  #rk-quote-guide .rq-example h3 { color: white; margin-top: 0; }
  #rk-quote-guide .rq-example p { color: #dae8ed; }
  #rk-quote-guide .rq-example .rq-table-wrap { margin-top: 19px; }
  #rk-quote-guide .rq-small { color: var(--rq-muted); font-size: .82rem; line-height: 1.5; }
  #rk-quote-guide .rq-tool-wrap { background: #0b2536; color: #fff; margin-top: 29px; padding: 27px; border-radius: 21px; }
  #rk-quote-guide .rq-tool-wrap h3 { color: white; font-size: clamp(1.5rem,2.8vw,2.15rem); margin: 0; }
  #rk-quote-guide .rq-tool-wrap > p { color: #c5dce4; margin: 10px 0 0; }
  #rk-quote-guide .rq-tool-step {
    background: #163b4f; border: 1px solid #37657a; border-radius: 15px; margin-top: 16px; padding: 21px;
  }
  #rk-quote-guide .rq-tool-step h4 { color: #fff; font-size: 1.1rem; line-height: 1.3; margin: 0 0 15px; }
  #rk-quote-guide .rq-tool-step p, #rk-quote-guide .rq-tool-step small { color: #cfdee4; }
  #rk-quote-guide .rq-fields { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #rk-quote-guide .rq-field, #rk-quote-guide .rq-offer-field { display: block; }
  #rk-quote-guide .rq-field > span, #rk-quote-guide .rq-offer-field > span {
    color: #e8f5f7; display: block; font-size: .82rem; font-weight: 800; line-height: 1.4; margin-bottom: 6px;
  }
  #rk-quote-guide .rq-field :is(select,input,textarea), #rk-quote-guide .rq-offer-field :is(select,input) {
    background: white; border: 1px solid #a9c2cf; border-radius: 9px; color: #102c3e; min-height: 46px; padding: 10px; width: 100%;
  }
  #rk-quote-guide .rq-field textarea { min-height: 130px; resize: vertical; }
  #rk-quote-guide .rq-field input::placeholder { color: #647887; opacity: 1; }
  #rk-quote-guide .rq-scope-grid { display: grid; gap: 9px; grid-template-columns: repeat(2,minmax(0,1fr)); }
  #rk-quote-guide .rq-checkline {
    align-items: flex-start; background: #225168; border: 1px solid #47748a;
    border-radius: 10px; color: #fff; display: flex; font-size: .86rem; gap: 9px;
    line-height: 1.4; padding: 11px; cursor: pointer;
  }
  #rk-quote-guide .rq-checkline input { accent-color: #28cad6; flex: 0 0 auto; height: 17px; margin: 2px 0 0; width: 17px; }
  #rk-quote-guide .rq-fixed-scope {
    background: #225168; border: 1px solid #71dce6; border-radius: 10px;
    color: #fff; font-size: .86rem; line-height: 1.4; padding: 11px;
  }
  #rk-quote-guide .rq-fixed-scope::before { color: #8ff0e9; content: "✓ "; font-weight: 900; }
  #rk-quote-guide .rq-offer-grid { display: grid; gap: 13px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 16px; }
  #rk-quote-guide .rq-offer {
    background: #204b61; border: 1px solid #537b8e; border-radius: 12px;
    padding: 15px; 
  }
  #rk-quote-guide .rq-offer[hidden], #rk-quote-guide .rq-extra[hidden] { display: none; }
  #rk-quote-guide .rq-offer h5 { color: #fff; font-size: 1rem; margin: 0 0 13px; }
  #rk-quote-guide .rq-offer-field + .rq-offer-field { margin-top: 11px; }
  #rk-quote-guide .rq-item-grid { display: grid; gap: 13px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 13px; }
  #rk-quote-guide .rq-item-name { color: #bff5f7; font-size: .91rem; font-weight: 900; line-height: 1.4; }
  #rk-quote-guide .rq-item-hint { color: #cbdee4; font-size: .81rem; line-height: 1.45; margin-top: 4px; }
  #rk-quote-guide .rq-scope-item { background: #214e63; border: 1px solid #426f82; border-radius: 13px; margin-top: 10px; padding: 15px; }
  #rk-quote-guide .rq-scope-item:first-child { margin-top: 0; }
  #rk-quote-guide .rq-scope-item .rq-offer-field { margin: 0; }
  #rk-quote-guide .rq-extra { margin-top: 9px; }
  #rk-quote-guide .rq-extra span { color: #e8f5f7; display: block; font-size: .76rem; font-weight: 800; margin-bottom: 3px; }
  #rk-quote-guide .rq-extra input { background: #fff; border: 1px solid #abc2cd; border-radius: 8px; color: #102c3e; min-height: 42px; padding: 8px; width: 100%; }
  #rk-quote-guide .rq-buttons { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 20px; }
  #rk-quote-guide .rq-button {
    background: var(--rq-orange); border: 1px solid var(--rq-orange); border-radius: 10px;
    color: white; cursor: pointer; font-weight: 900; min-height: 48px; padding: 11px 17px;
  }
  #rk-quote-guide .rq-button:hover { background: #dd4f32; border-color: #dd4f32; }
  #rk-quote-guide .rq-button-outline { background: transparent; border-color: #83a5b4; }
  #rk-quote-guide .rq-button-outline:hover { background: #295166; border-color: #83a5b4; }
  #rk-quote-guide .rq-result { background: #fff; border-left: 6px solid #f0b43b; border-radius: 15px; color: var(--rq-ink); margin-top: 19px; padding: 21px; }
  #rk-quote-guide .rq-result.rq-result-good { border-left-color: #27bc93; }
  #rk-quote-guide .rq-result.rq-result-stop { border-left-color: var(--rq-orange); }
  #rk-quote-guide .rq-result h4 { color: var(--rq-ink); font-size: 1.36rem; line-height: 1.35; margin: 0; }
  #rk-quote-guide .rq-result p { color: var(--rq-copy); margin: 9px 0 0; }
  #rk-quote-guide .rq-result-grid { display: grid; gap: 12px; grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 17px; }
  #rk-quote-guide .rq-result-col { background: #f1f7f9; border: 1px solid var(--rq-border); border-radius: 11px; padding: 14px; }
  #rk-quote-guide .rq-result-col h5 { color: #153246; font-size: .8rem; letter-spacing: .04em; margin: 0 0 8px; text-transform: uppercase; }
  #rk-quote-guide .rq-result-col ul { color: var(--rq-copy); font-size: .86rem; margin: 0; padding-left: 17px; }
  #rk-quote-guide .rq-result-col li + li { margin-top: 7px; }
  #rk-quote-guide .rq-result-col:first-child h5 { color: #168362; }
  #rk-quote-guide .rq-result-col:last-child h5 { color: #a14b2e; }
  #rk-quote-guide .rq-output { background: #fff; border: 1px solid #c5dce4; border-radius: 14px; color: var(--rq-ink); margin-top: 18px; padding: 18px; }
  #rk-quote-guide .rq-output label { color: var(--rq-ink); display: block; font-size: .91rem; font-weight: 900; margin-bottom: 8px; }
  #rk-quote-guide .rq-output textarea { background: #f5f9fa; border: 1px solid #b7d1dc; border-radius: 8px; color: var(--rq-ink); display: block; min-height: 280px; padding: 14px; resize: vertical; width: 100%; }
  #rk-quote-guide .rq-output .rq-button-outline { border-color: #538296; color: #103c50; }
  #rk-quote-guide .rq-output .rq-button-outline:hover { background: #e4f5f9; }
  #rk-quote-guide .rq-output [role="status"] { color: #1c6457; font-size: .85rem; margin-top: 8px; min-height: 1.4em; }
  #rk-quote-guide .rq-cta { background: linear-gradient(125deg,#0b2536,#18485d 73%,#116c78); border-radius: 20px; color: #fff; margin-top: 29px; padding: 32px; }
  #rk-quote-guide .rq-cta h3 { color: #fff; font-size: clamp(1.55rem,3vw,2.55rem); margin: 0; }
  #rk-quote-guide .rq-cta p { color: #daeaf0; margin: 14px 0 0; }
  #rk-quote-guide .rq-cta a.rq-cta-link {
    background: var(--rq-orange); border-radius: 10px; color: white;
    display: inline-block; font-weight: 900; margin-top: 19px; padding: 12px 18px;
    text-decoration: none;
  }
  #rk-quote-guide .rq-cta a.rq-cta-link:hover { background: white; color: #d94d30; }
  #rk-quote-guide .rq-cta small { color: #bdd6de; display: block; font-size: .76rem; margin-top: 10px; }
  #rk-quote-guide .rq-faq { display: grid; gap: 11px; margin-top: 26px; }
  #rk-quote-guide .rq-faq details { background: #fff; border: 1px solid var(--rq-border); border-radius: 12px; overflow: hidden; }
  #rk-quote-guide .rq-faq summary { color: var(--rq-ink); cursor: pointer; font-weight: 900; list-style: none; padding: 17px 48px 17px 19px; position: relative; }
  #rk-quote-guide .rq-faq summary::-webkit-details-marker { display: none; }
  #rk-quote-guide .rq-faq summary::after { color: var(--rq-cyan-ink); content: "+"; font-size: 1.5rem; position: absolute; right: 18px; top: 9px; }
  #rk-quote-guide .rq-faq details[open] summary::after { content: "−"; }
  #rk-quote-guide .rq-faq-answer { border-top: 1px solid var(--rq-border); color: var(--rq-copy); padding: 17px 19px; }
  #rk-quote-guide .rq-faq-answer p { margin: 0; }
  #rk-quote-guide .rq-sources { display: grid; gap: 14px; grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 23px; }
  #rk-quote-guide .rq-source { background: white; border: 1px solid var(--rq-border); border-radius: 13px; padding: 18px; }
  #rk-quote-guide .rq-source a { font-weight: 900; }
  #rk-quote-guide .rq-source p { color: var(--rq-copy); margin: 7px 0 0; }
  #rk-quote-guide .rq-author { background: #eaf4f7; }
  #rk-quote-guide .rq-author-layout { background: white; border: 1px solid var(--rq-border); border-radius: 18px; display: grid; grid-template-columns: 250px minmax(0,1fr); margin-top: 25px; overflow: hidden; }
  #rk-quote-guide .rq-author-side { align-items: center; background: #0b2536; color: white; display: flex; flex-direction: column; padding: 30px 19px; text-align: center; }
  #rk-quote-guide .rq-author-side img { border: 5px solid rgba(255,255,255,.22); border-radius: 50%; height: 145px; object-fit: cover; width: 145px; }
  #rk-quote-guide .rq-author-side strong { font-size: 1.15rem; margin-top: 17px; }
  #rk-quote-guide .rq-author-side p { color: #ccdee5; font-size: .83rem; margin: 8px 0 0; }
  #rk-quote-guide .rq-social { display: flex; gap: 9px; margin-top: 19px; }
  #rk-quote-guide .rq-social a { align-items: center; border: 1px solid #618299; border-radius: 50%; color: white; display: inline-flex; font-size: .85rem; font-weight: 900; height: 39px; justify-content: center; text-decoration: none; width: 39px; }
  #rk-quote-guide .rq-author-body { padding: 30px; }
  #rk-quote-guide .rq-author-body p { color: var(--rq-copy); margin: 0 0 15px; }
  #rk-quote-guide .rq-author-body blockquote { background: #eef8fa; border-left: 5px solid var(--rq-cyan); border-radius: 11px; color: var(--rq-ink); font-size: 1.05rem; font-style: italic; font-weight: 700; line-height: 1.65; margin: 0 0 18px; padding: 17px; }
  #rk-quote-guide .rq-sr-only { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
  @media(max-width:1000px) {
    #rk-quote-guide .rq-result-grid { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-offer-grid, #rk-quote-guide .rq-item-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  }
  @media(max-width:760px) {
    #rk-quote-guide .rq-hero, #rk-quote-guide .rq-section, #rk-quote-guide .rq-author { padding-left: 25px; padding-right: 25px; }
    #rk-quote-guide .rq-grid-3, #rk-quote-guide .rq-author-layout { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-offer-grid, #rk-quote-guide .rq-item-grid { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-offer { margin-top: 2px; }
  }
  @media(max-width:580px) {
    #rk-quote-guide .rq-hero, #rk-quote-guide .rq-section, #rk-quote-guide .rq-author { padding: 43px 18px; }
    #rk-quote-guide .rq-nav { padding: 16px; }
    #rk-quote-guide .rq-grid-2, #rk-quote-guide .rq-fields, #rk-quote-guide .rq-scope-grid, #rk-quote-guide .rq-sources { grid-template-columns: 1fr; }
    #rk-quote-guide .rq-tool-wrap, #rk-quote-guide .rq-example, #rk-quote-guide .rq-cta { padding: 19px; }
    #rk-quote-guide .rq-tool-step { padding: 15px; }
    #rk-quote-guide .rq-buttons { flex-direction: column; }
    #rk-quote-guide .rq-button, #rk-quote-guide .rq-cta a.rq-cta-link { text-align: center; width: 100%; }
    #rk-quote-guide .rq-table-wrap { overflow: visible; }
    #rk-quote-guide table, #rk-quote-guide thead, #rk-quote-guide tbody, #rk-quote-guide tr, #rk-quote-guide td { display: block; min-width: 0; width: 100%; }
    #rk-quote-guide thead { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; }
    #rk-quote-guide tbody { display: grid; gap: 13px; }
    #rk-quote-guide tr { border: 1px solid var(--rq-border); border-radius: 12px; overflow: hidden; }
    #rk-quote-guide td { border: 0; border-bottom: 1px solid var(--rq-border); }
    #rk-quote-guide td:last-child { border-bottom: 0; }
    #rk-quote-guide td::before { color: var(--rq-cyan-ink); content: attr(data-label); display: block; font-size: .72rem; font-weight: 900; letter-spacing: .05em; margin-bottom: 4px; text-transform: uppercase; }
    #rk-quote-guide .rq-author-body { padding: 22px; }
  }
  @media(prefers-reduced-motion:reduce) { #rk-quote-guide *, #rk-quote-guide *::before, #rk-quote-guide *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
</style>

<article id="rk-quote-guide" aria-labelledby="rq-hero-title">
  <div class="rq-shell">
    <header class="rq-hero">
      <span class="rq-kicker">Dwie lub trzy oferty · jedna decyzja inwestora</span>
      <div class="rq-hero-title" id="rq-hero-title">Jak porównać wyceny ogrzewania podłogowego? <span>Najpierw zakres, potem kwota</span></div>
      <p>Masz oferty od instalatorów, ale każda opiewa na inną sumę? Sprawdź, co zostało rzeczywiście wycenione, kto odpowiada za pominięte prace i czy wykonawcy proponują porównywalny układ ogrzewania.</p>
      <div class="rq-tags" aria-label="Zakres poradnika"><span>2–3 oferty</span><span>materiały i robocizna</span><span>pętle i rozdzielacze</span><span>dopłaty</span><span>pytania do wykonawców</span></div>
      <div class="rq-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Opracowanie: <strong>27 września 2026 r.</strong></span><span>Narzędzia: <strong>porównywarka i generator zapytania</strong></span></div>
    </header>

    <nav class="rq-nav" aria-label="Na skróty — sekcje artykułu">
      <span class="rq-nav-label">Na skróty</span>
      <a href="#rq-odpowiedz">Szybka odpowiedź</a>
      <a href="#rq-zakresy">Zakres ofert</a>
      <a href="#rq-dane">Wspólne dane</a>
      <a href="#rq-technika">Parametry</a>
      <a href="#rq-tabela">Tabela kontroli</a>
      <a href="#rq-porownywarka">Porównywarka</a>
      <a href="#rq-przyklad">Przykład</a>
      <a href="#rq-doplaty">Dopłaty</a>
      <a href="#rq-granice">Granice prac</a>
      <a href="#rq-zapytanie">Generator zapytania</a>
      <a href="#rq-odstepstwa">Zmiany w ofertach</a>
      <a href="#rq-umowa">Przed podpisaniem</a>
      <a href="#rq-decyzja">Decyzja</a>
      <a href="#rq-faq">FAQ</a>
      <a href="#rq-zrodla">Źródła</a>
      <a href="#rq-autor">Autor</a>
    </nav>

    <section class="rq-section" id="rq-odpowiedz">
      <span class="rq-eyebrow">Odpowiedź w 60 sekund</span>
      <h2>Jak porównać dwie wyceny podłogówki?</h2>
      <p class="rq-lead">Poproś wykonawców o wycenę <strong>tego samego układu i tego samego zakresu prac</strong>. Oddziel pozycje zawarte w cenie od wyłączonych, opcjonalnych i nieopisanych. Dopiero po wyjaśnieniu różnic zestawiaj kwoty brutto, terminy i sposób odbioru.</p>
      <div class="rq-answer">
        <strong>Najważniejsze pytanie: co dokładnie dostanę za podaną kwotę?</strong>
        <p>Jeżeli jedna oferta obejmuje próbę szczelności, a druga o niej milczy, różnica cen nie mówi jeszcze, która firma jest tańsza. Brakująca pozycja może być wliczona, płatna osobno albo wykonywana przez inną ekipę — ustal to na piśmie.</p>
      </div>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">01</span><h3>Ten sam budynek</h3><p>Przekaż wszystkim te same rzuty, zakres pomieszczeń, warstwy podłogi i dane o źródle ciepła.</p></article>
        <article class="rq-card"><span class="rq-num">02</span><h3>Ten sam punkt odniesienia</h3><p>Ustal obliczone pętle, rozstawy, przepływy i zakres dostawy. Odstępstwa wyceniaj osobno.</p></article>
        <article class="rq-card"><span class="rq-num">03</span><h3>Ta sama odpowiedzialność</h3><p>Zapisz, kto przygotuje podłoże, wykona próbę, uruchomi instalację i zabezpieczy ją przed wylewką.</p></article>
      </div>
      <p class="rq-copy">Jeżeli szukasz dopiero orientacyjnego budżetu, zacznij od osobnego poradnika <a href="https://projekt-ogrzewania.pl/ile-kosztuje-100-m%C2%B2-ogrzewania-podlogowego/">ile kosztuje 100 m² ogrzewania podłogowego</a>. Tutaj analizujemy oferty, które już otrzymałeś albo zamierzasz wysłać do konkretnych wykonawców.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-zakresy">
      <span class="rq-eyebrow">Nie każda oferta dotyczy tego samego produktu</span>
      <h2>Cztery zakresy, które kryją się pod nazwą „wycena podłogówki”</h2>
      <div class="rq-grid rq-grid-2">
        <article class="rq-card"><span class="rq-num">A</span><h3>Same materiały</h3><p>Rury, rozdzielacze i osprzęt bez pracy instalatora. Sprawdź, czy zestaw dotyczy dokładnie zaplanowanego systemu i obejmuje drobne przyłącza.</p></article>
        <article class="rq-card"><span class="rq-num">B</span><h3>Sama robocizna</h3><p>Może oznaczać wyłącznie rozłożenie rur na gotowym podłożu albo większy zakres prac. Poproś o wypisanie etapów.</p></article>
        <article class="rq-card"><span class="rq-num">C</span><h3>Instalacja z próbą</h3><p>Materiały hydrauliczne, montaż, podłączenie i sprawdzenie szczelności. Ustal, czy wliczono uruchomienie i nastawy przepływów.</p></article>
        <article class="rq-card"><span class="rq-num">D</span><h3>Cała ogrzewana podłoga</h3><p>Może obejmować również izolację, dylatacje, jastrych i automatykę. Nigdy nie zakładaj pełnego zakresu na podstawie samego nagłówka.</p></article>
      </div>
      <p class="rq-copy">Porównanie <a href="https://projekt-ogrzewania.pl/podlogowka-cena-za-m%C2%B2-robocizny/">ceny robocizny za m²</a> ma sens dopiero po ustaleniu jej zakresu i powierzchni rozliczeniowej. Stawka za położenie rury na przygotowanym podłożu nie jest ceną wykonania całej instalacji.</p>
    </section>

    <section class="rq-section" id="rq-dane">
      <span class="rq-eyebrow">Wspólna podstawa zapytania</span>
      <h2>Co przekazać każdemu wykonawcy przed wyceną?</h2>
      <p class="rq-lead">Inna powierzchnia, inna podłoga lub inna liczba pętli dają inne ilości materiałów. Najłatwiej porównać oferty wtedy, gdy wykonawcy otrzymują identyczne dane, a proponowane odstępstwa opisują osobno.</p>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">BUDYNEK</span><h3>Zakres pomieszczeń</h3><p>Rzuty, kondygnacje, planowane wykończenie podłóg, miejsca bez rur i warstwy podłogowe.</p></article>
        <article class="rq-card"><span class="rq-num">UKŁAD</span><h3>Założenia techniczne</h3><p>Obciążenie cieplne pomieszczeń, trasy, rozstaw, liczba pętli i rozdzielaczy oraz projektowe przepływy, jeżeli zostały wyznaczone.</p></article>
        <article class="rq-card"><span class="rq-num">ODPOWIEDZIALNOŚĆ</span><h3>Podział robót</h3><p>Zakres prac instalatora, ekipy przygotowującej podłoże i wykonawcy jastrychu oraz wymagane protokoły.</p></article>
      </div>
      <div class="rq-note"><p><strong>Bez projektu także można poprosić o wstępną ofertę.</strong> Wtedy trzeba wyraźnie zaznaczyć, że ilości rur, podział pętli i przepływy są założeniami poszczególnych oferentów. Uzyskane ceny nie potwierdzają równoważności technicznej.</p></div>
      <p class="rq-copy">Jeżeli chcesz sprawdzić, jakie informacje mogą być wspólną podstawą wyceny, zobacz poradnik <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt podłogówki</a>.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-technika">
      <span class="rq-eyebrow">Cena nie weryfikuje mocy i hydrauliki</span>
      <h2>Czy dwie oferty dotyczą tej samej instalacji?</h2>
      <p class="rq-lead">Porównaj nie tylko nazwy materiałów, lecz również założenia stojące za ich ilościami. Jeżeli jedna firma proponuje sześć pętli, a druga dziewięć, sama kwota nie rozstrzyga, który układ pokryje obciążenie pomieszczeń i będzie możliwy do wyregulowania.</p>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">MOC</span><h3>Obciążenie pomieszczeń</h3><p>Sprawdź, na jakiej podstawie określono wymagane moce i czy uwzględniono planowane okładziny.</p></article>
        <article class="rq-card"><span class="rq-num">PĘTLE</span><h3>Trasy i długości</h3><p>Porównaj rozstawy, dobiegi, liczbę obwodów oraz usytuowanie rozdzielaczy.</p></article>
        <article class="rq-card"><span class="rq-num">PRZEPŁYW</span><h3>Uruchomienie</h3><p>Ustal, czy oferta przewiduje nastawy według obliczonych przepływów i ich zapis podczas odbioru.</p></article>
      </div>
      <p class="rq-copy">ISO 11855-3 dotyczy projektowania i wymiarowania instalacji ogrzewania płaszczyznowego, a ISO 11855-5 — jej instalowania. Sam wykaz materiałów w ofercie nie zastępuje ustalenia warunków projektowych ani zasad wykonania.</p>
    </section>

    <section class="rq-section" id="rq-tabela">
      <span class="rq-eyebrow">Lista kontrolna przed porównaniem cen</span>
      <h2>Jakie pozycje powinny zostać jednoznacznie opisane?</h2>
      <p class="rq-lead">Pozycja może być wliczona, wyceniona osobno albo świadomie powierzona innej ekipie. W każdej ofercie należy ustalić jej status, jeśli należy do planowanego zakresu inwestycji.</p>
      <div class="rq-table-wrap"><table>
        <thead><tr><th>Pozycja</th><th>O co zapytać?</th><th>Możliwa pomyłka</th></tr></thead>
        <tbody>
          <tr><td data-label="Pozycja"><strong>Rury i mocowanie</strong></td><td data-label="O co zapytać?">Typ, wymiar, ilość, dobiegi i sposób mocowania.</td><td data-label="Możliwa pomyłka">Metry rur policzone bez dojść do rozdzielacza.</td></tr>
          <tr><td data-label="Pozycja"><strong>Rozdzielacz i przyłącza</strong></td><td data-label="O co zapytać?">Liczba obwodów, szafka, wyposażenie, złączki i podłączenie.</td><td data-label="Możliwa pomyłka">Cena samej belki porównana z wyposażonym zestawem.</td></tr>
          <tr><td data-label="Pozycja"><strong>Podłoże i izolacja</strong></td><td data-label="O co zapytać?">Kto przygotuje podłoże, wykona izolację, taśmy i przejścia?</td><td data-label="Możliwa pomyłka">Prace budowlane domyślnie przypisane instalatorowi.</td></tr>
          <tr><td data-label="Pozycja"><strong>Próba i dokumentacja</strong></td><td data-label="O co zapytać?">Czy uwzględniono procedurę, protokół i zdjęcia przed zakryciem?</td><td data-label="Możliwa pomyłka">„Sprawdzenie” bez ustalonego odbioru.</td></tr>
          <tr><td data-label="Pozycja"><strong>Uruchomienie i nastawy</strong></td><td data-label="O co zapytać?">Kto ustawi przepływy i kiedy wykona uruchomienie?</td><td data-label="Możliwa pomyłka">Montaż zakończony bez regulacji obwodów.</td></tr>
          <tr><td data-label="Pozycja"><strong>Automatyka, jastrych, transport</strong></td><td data-label="O co zapytać?">Co konkretnie jest wliczone i jakie są wyłączenia?</td><td data-label="Możliwa pomyłka">Różne zakresy opisane jedną nazwą „podłogówka”.</td></tr>
        </tbody>
      </table></div>
      <p class="rq-copy">Materiały rozpisuję szerzej w osobnym poradniku <a href="https://projekt-ogrzewania.pl/jakie-materialy-sa-potrzebne-do-instalacji-ogrzewania-podlogowego/">jakie materiały są potrzebne do podłogówki</a>. Tutaj traktujemy je jako elementy ofert wymagające identyfikacji.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-porownywarka">
      <span class="rq-eyebrow">Narzędzie 1 · ocena otrzymanych ofert</span>
      <h2>Porównywarka zakresu dwóch lub trzech wycen</h2>
      <p class="rq-lead">Wpisz informacje dokładnie tak, jak podano je w ofertach. „Nie wiadomo” jest uczciwszą odpowiedzią niż przypisanie pracy do ceny, w której nie została opisana.</p>
      <div class="rq-tool-wrap" id="rq-compare-tool">
        <h3>Czy wykonawcy wycenili to samo?</h3>
        <p>Wybierz zakres odniesienia, a następnie sprawdź status każdej pozycji. Dane pozostają w Twojej przeglądarce.</p>
        <form id="rq-compare-form" novalidate="">
          <div class="rq-tool-step">
            <h4>1. Wspólny punkt odniesienia</h4>
            <div class="rq-fields">
              <label class="rq-field"><span>Ile ofert porównujesz?</span><select id="rq-count"><option value="2">Dwie</option><option value="3">Trzy</option></select></label>
              <label class="rq-field"><span>Dokumentacja wspólna dla wykonawców</span><select id="rq-design"><option value="unknown">Nie wiem / brak danych</option><option value="yes">Ten sam projekt z obliczeniami</option><option value="partial">Tylko wspólne rzuty lub opis</option><option value="no">Każdy wykonawca przyjął własne założenia</option></select></label>
            </div>
            <p class="rq-small" style="color:#d8e8ec;margin:12px 0 0">Zaznacz prace, które chcesz uwzględnić w porównaniu. Świadome wyłączenie wspólne dla wszystkich ofert jest dopuszczalne, o ile wiadomo, kto za nie odpowiada.</p>
            <div class="rq-scope-grid" id="rq-scope-choices" aria-label="Pozycje do porównania">
              <label class="rq-checkline"><input type="checkbox" data-scope="pipes" checked=""><span>Rury i mocowanie</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="manifold" checked=""><span>Rozdzielacze, szafki i złączki</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="laying" checked=""><span>Układanie i podłączanie</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="feeds" checked=""><span>Dobiegi i przyłącza</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="test" checked=""><span>Próba szczelności i protokół</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="balancing" checked=""><span>Uruchomienie i nastawy</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="base"><span>Przygotowanie podłoża</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="insulation"><span>Izolacja, folia i taśmy</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="screed"><span>Jastrych</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="controls"><span>Automatyka</span></label>
              <label class="rq-checkline"><input type="checkbox" data-scope="transport"><span>Transport i dojazd</span></label>
            </div>
          </div>
          <div class="rq-tool-step">
            <h4>2. Kwoty i założenia ofert</h4>
            <p style="margin:0 0 11px">Kwota podstawowa jest opcjonalna. Dopłatę wpisz tylko wtedy, gdy wykonawca podał jej konkretną cenę w tej samej podstawie podatkowej co oferta.</p>
            <div class="rq-offer-grid">
              <div class="rq-offer" data-offer="0">
                <h5>Oferta A</h5>
                <label class="rq-offer-field"><span>Kwota podstawowa [zł]</span><input type="text" inputmode="decimal" data-key="price" placeholder="np. 18000" aria-label="Kwota oferty A"></label>
                <label class="rq-offer-field"><span>Podstawa kwoty</span><select data-key="tax" aria-label="Podstawa kwoty oferty A"><option value="unknown">Nie wiem</option><option value="gross">Brutto</option><option value="net">Netto</option></select></label>
                <label class="rq-offer-field"><span>Powierzchnia podana w ofercie [m²]</span><input type="text" inputmode="decimal" data-key="area" aria-label="Powierzchnia oferty A" placeholder="opcjonalnie"></label>
                <label class="rq-offer-field"><span>Rodzaj powierzchni</span><select data-key="areaType" aria-label="Rodzaj powierzchni oferty A"><option value="unknown">Nie określono</option><option value="floor">Całkowita podłóg</option><option value="heated">Ogrzewana</option><option value="active">Czynna z rurami</option></select></label>
                <label class="rq-offer-field"><span>Układ i parametry</span><select data-key="tech" aria-label="Parametry techniczne oferty A"><option value="unknown">Niepotwierdzone</option><option value="yes">Zgodne z tą samą dokumentacją</option><option value="change">Proponowana zmiana układu</option></select></label>
              </div>
              <div class="rq-offer" data-offer="1">
                <h5>Oferta B</h5>
                <label class="rq-offer-field"><span>Kwota podstawowa [zł]</span><input type="text" inputmode="decimal" data-key="price" placeholder="np. 21000" aria-label="Kwota oferty B"></label>
                <label class="rq-offer-field"><span>Podstawa kwoty</span><select data-key="tax" aria-label="Podstawa kwoty oferty B"><option value="unknown">Nie wiem</option><option value="gross">Brutto</option><option value="net">Netto</option></select></label>
                <label class="rq-offer-field"><span>Powierzchnia podana w ofercie [m²]</span><input type="text" inputmode="decimal" data-key="area" aria-label="Powierzchnia oferty B" placeholder="opcjonalnie"></label>
                <label class="rq-offer-field"><span>Rodzaj powierzchni</span><select data-key="areaType" aria-label="Rodzaj powierzchni oferty B"><option value="unknown">Nie określono</option><option value="floor">Całkowita podłóg</option><option value="heated">Ogrzewana</option><option value="active">Czynna z rurami</option></select></label>
                <label class="rq-offer-field"><span>Układ i parametry</span><select data-key="tech" aria-label="Parametry techniczne oferty B"><option value="unknown">Niepotwierdzone</option><option value="yes">Zgodne z tą samą dokumentacją</option><option value="change">Proponowana zmiana układu</option></select></label>
              </div>
              <div class="rq-offer" data-offer="2" hidden="">
                <h5>Oferta C</h5>
                <label class="rq-offer-field"><span>Kwota podstawowa [zł]</span><input type="text" inputmode="decimal" data-key="price" placeholder="opcjonalnie" aria-label="Kwota oferty C"></label>
                <label class="rq-offer-field"><span>Podstawa kwoty</span><select data-key="tax" aria-label="Podstawa kwoty oferty C"><option value="unknown">Nie wiem</option><option value="gross">Brutto</option><option value="net">Netto</option></select></label>
                <label class="rq-offer-field"><span>Powierzchnia podana w ofercie [m²]</span><input type="text" inputmode="decimal" data-key="area" aria-label="Powierzchnia oferty C" placeholder="opcjonalnie"></label>
                <label class="rq-offer-field"><span>Rodzaj powierzchni</span><select data-key="areaType" aria-label="Rodzaj powierzchni oferty C"><option value="unknown">Nie określono</option><option value="floor">Całkowita podłóg</option><option value="heated">Ogrzewana</option><option value="active">Czynna z rurami</option></select></label>
                <label class="rq-offer-field"><span>Układ i parametry</span><select data-key="tech" aria-label="Parametry techniczne oferty C"><option value="unknown">Niepotwierdzone</option><option value="yes">Zgodne z tą samą dokumentacją</option><option value="change">Proponowana zmiana układu</option></select></label>
              </div>
            </div>
          </div>
          <div class="rq-tool-step">
            <h4>3. Co obejmuje każda oferta?</h4>
            <p style="margin:0 0 12px">Poniżej pojawią się wybrane wyżej pozycje. Dla każdej oferty wskaż status; kwotę dopłaty wpisz tylko wtedy, gdy jest znana.</p>
            <div id="rq-item-list"></div>
          </div>
          <div class="rq-buttons"><button type="submit" class="rq-button">Porównaj oferty</button><button type="reset" class="rq-button rq-button-outline">Wyczyść formularz</button></div>
        </form>
        <div class="rq-result" id="rq-compare-result" aria-live="polite">
          <h4 id="rq-compare-title" tabindex="-1">Wybierz zakres i uzupełnij oferty</h4>
          <p id="rq-compare-intro">Narzędzie oddzieli zgodny zakres, różnice i pytania do wykonawców. Brak kwoty lub opisu nie jest traktowany jako koszt zero.</p>
          <div class="rq-result-grid">
            <div class="rq-result-col"><h5>Co ustalono</h5><ul id="rq-result-known"><li>Porównanie nie zostało jeszcze wykonane.</li></ul></div>
            <div class="rq-result-col"><h5>Różnice zakresu</h5><ul id="rq-result-diff"><li>Wypełnij dane z ofert.</li></ul></div>
            <div class="rq-result-col"><h5>Co wyjaśnić</h5><ul id="rq-result-ask"><li>Przygotuj oferty lub zapytania do wykonawców.</li></ul></div>
          </div>
          <p class="rq-small">Porównywarka porządkuje odpowiedzi. Nie weryfikuje poprawności projektu, jakości wykonawcy, warunków umowy ani obowiązującej stawki podatku.</p>
        </div>
      </div>
      <div class="rq-cta" aria-label="Projekt jako wspólna podstawa wycen">
        <h3>Każdy wykonawca wycenił inny układ?</h3>
        <p>Jeżeli oferty różnią się liczbą pętli, rozstawami lub ilością materiałów, potrzebujesz wspólnych założeń do ponownego zapytania. Indywidualny projekt określa obciążenie pomieszczeń, przebieg pętli, przepływy i zestawienie materiałów. Tę samą dokumentację możesz przekazać wybranym wykonawcom.</p>
        <a class="rq-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres projektu podłogówki</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora. Projekt nie obejmuje automatycznie audytu otrzymanych ofert robocizny.</small>
      </div>
    </section>

    <section class="rq-section" id="rq-przyklad">
      <span class="rq-eyebrow">Przykład edukacyjny · kwoty nie są cennikiem</span>
      <h2>Oferta za 18 000 zł i oferta za 21 000 zł: która jest tańsza?</h2>
      <p class="rq-lead">Na podstawie samych sum nie da się tego ustalić. Poniższe liczby i zakresy są wymyślonym przykładem służącym wyłącznie do pokazania sposobu porównania.</p>
      <div class="rq-example">
        <h3>Dwie oferty, różne informacje</h3>
        <div class="rq-table-wrap"><table><thead><tr><th>Pozycja</th><th>Oferta A · 18 000 zł</th><th>Oferta B · 21 000 zł</th></tr></thead><tbody>
          <tr><td data-label="Pozycja"><strong>Materiały i montaż pętli</strong></td><td data-label="Oferta A">Wliczone, bez opisu liczby pętli.</td><td data-label="Oferta B">Wliczone według przekazanego projektu.</td></tr>
          <tr><td data-label="Pozycja"><strong>Próba szczelności</strong></td><td data-label="Oferta A">Nie określono.</td><td data-label="Oferta B">Wliczona, z protokołem.</td></tr>
          <tr><td data-label="Pozycja"><strong>Izolacja podłogi</strong></td><td data-label="Oferta A">Wykonuje inna ekipa, koszt poza ofertą.</td><td data-label="Oferta B">Wykonuje inna ekipa, koszt poza ofertą.</td></tr>
          <tr><td data-label="Pozycja"><strong>Regulacja przepływów</strong></td><td data-label="Oferta A">Nie określono.</td><td data-label="Oferta B">Wliczona według projektu.</td></tr>
        </tbody></table></div>
        <p><strong>Wniosek:</strong> brakujących informacji w ofercie A nie można policzyć jako 0 zł. Wspólne wyłączenie izolacji nie musi utrudniać porównania cen instalatorów, ale inwestor powinien znać koszt i wykonawcę tej osobnej pracy.</p>
      </div>
    </section>

    <section class="rq-section rq-soft" id="rq-doplaty">
      <span class="rq-eyebrow">Kwoty bez zgadywania</span>
      <h2>Jak uwzględnić dopłaty i pozycje nieznane?</h2>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">W CENIE</span><h3>Potwierdzone</h3><p>Wykonawca opisuje pracę lub materiał i jednoznacznie wskazuje, że należą do podanej ceny.</p></article>
        <article class="rq-card"><span class="rq-num">DODATEK</span><h3>Wycenione osobno</h3><p>Dodaj jedynie kwotę podaną przez wykonawcę, po upewnieniu się, że nie jest już zawarta w sumie podstawowej.</p></article>
        <article class="rq-card"><span class="rq-num">BRAK</span><h3>Do wyjaśnienia</h3><p>Nie wstawiaj 0 zł ani własnej prognozy. Poproś o informację, czy pozycja jest wliczona, płatna dodatkowo czy wyłączona.</p></article>
      </div>
      <p class="rq-copy">Kwoty netto i brutto najpierw sprowadź do jednej podstawy. Jeżeli otrzymałeś kwotę netto bez potwierdzenia końcowego rozliczenia, poproś wykonawcę o cenę brutto dla Twojego zakresu. Nie przyjmujemy w formularzu uniwersalnej stawki podatku.</p>
    </section>

    <section class="rq-section" id="rq-granice">
      <span class="rq-eyebrow">Prace na styku ekip</span>
      <h2>Kto odpowiada za podłoże, próbę i wylewkę?</h2>
      <p class="rq-lead">Prawidłowo określony zakres częściowy bywa korzystny. Trzeba jednak ustalić, co przekazuje każda ekipa następnej i w jakim stanie instalacja zostanie zakryta.</p>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">PRZED</span><h3>Podłoże i izolacja</h3><p>Kto wyrówna podłoże, zapewni wymaganą izolację, taśmy i przejścia instalacyjne?</p></article>
        <article class="rq-card"><span class="rq-num">W TRAKCIE</span><h3>Ułożone pętle</h3><p>Kto chroni przewody podczas dalszych prac i kto usuwa uszkodzenie ujawnione przed zalaniem?</p></article>
        <article class="rq-card"><span class="rq-num">PO</span><h3>Próba i rozruch</h3><p>Kto sporządza protokół, odpowiada za uruchomienie oraz dokonuje wstępnych nastaw rozdzielacza?</p></article>
      </div>
      <p class="rq-copy">Zakres i moment badania instalacji omawia osobny poradnik o <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próbie szczelności ogrzewania podłogowego</a>. W ofercie warto wskazać zarówno wykonawcę próby, jak i sposób udokumentowania jej wyniku.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-zapytanie">
      <span class="rq-eyebrow">Narzędzie 2 · wspólne zapytanie</span>
      <h2>Generator jednakowego zapytania do wykonawców</h2>
      <p class="rq-lead">Gdy otrzymane oferty są niejasne, wyślij wszystkim ten sam opis potrzeb. Narzędzie przygotuje treść e-maila; osobny przycisk otworzy WhatsApp do autora. Żadna wiadomość nie zostanie wysłana bez Twojego potwierdzenia.</p>
      <div class="rq-tool-wrap" id="rq-request-tool">
        <h3>Przygotuj opis prac bez pomijania granic zakresu</h3>
        <p>Podaj tylko informacje, które znasz. Puste pole lub brak projektu pozostanie w zapytaniu jawny.</p>
        <form id="rq-request-form" novalidate="">
          <div class="rq-tool-step">
            <h4>1. Budynek i dostępne dane</h4>
            <div class="rq-fields">
              <label class="rq-field"><span>Powierzchnia objęta planem [m²]</span><input id="rq-request-area" type="text" inputmode="decimal" placeholder="np. 120; opcjonalnie"></label>
              <label class="rq-field"><span>Kondygnacje z podłogówką</span><select id="rq-request-levels"><option value="unknown">Jeszcze nieustalone</option><option value="one">Jedna</option><option value="two">Dwie</option><option value="many">Trzy lub więcej</option></select></label>
              <label class="rq-field"><span>Projekt z obliczeniami</span><select id="rq-request-project"><option value="unknown">Nie mam / jeszcze nieustalone</option><option value="yes">Mam i dołączę ten sam projekt do zapytań</option></select></label>
              <label class="rq-field"><span>Technologia</span><select id="rq-request-tech"><option value="unspecified">Do określenia w ofertach</option><option value="wet">System mokry</option><option value="dry">System suchy</option><option value="retrofit">Modernizacja istniejącej podłogi</option></select></label>
              <label class="rq-field"><span>Źródło ciepła</span><select id="rq-request-source"><option value="unspecified">Nieustalone</option><option value="heatpump">Pompa ciepła</option><option value="boiler">Kocioł</option><option value="other">Inne / układ mieszany</option></select></label>
              <label class="rq-field"><span>Kiedy potrzebujesz wykonania?</span><input id="rq-request-date" type="text" maxlength="80" placeholder="np. listopad 2026; opcjonalnie"></label>
            </div>
          </div>
          <div class="rq-tool-step">
            <h4>2. Zakres do wycenienia</h4>
            <p>Zakres podstawowy — zawsze uwzględniony w zapytaniu:</p>
            <div class="rq-scope-grid">
              <div class="rq-fixed-scope">Projekt ogrzewania podłogowego — wykonanie albo weryfikacja i uzupełnienie posiadanej dokumentacji</div>
              <div class="rq-fixed-scope">Obliczenia OZC — wykonanie albo weryfikacja i aktualizacja posiadanych obliczeń</div>
            </div>
            <p>Zaznacz dodatkowe prace, które chcesz również uwzględnić w wycenie:</p>
            <div class="rq-scope-grid" id="rq-request-scope">
              <label class="rq-checkline"><input type="checkbox" value="dostawa rur, rozdzielaczy i osprzętu"><span>Dostawa materiałów instalacyjnych</span></label>
              <label class="rq-checkline"><input type="checkbox" value="ułożenie rur, przyłącza i montaż rozdzielaczy"><span>Montaż rur i rozdzielaczy</span></label>
              <label class="rq-checkline"><input type="checkbox" value="próba szczelności i protokół"><span>Próba i protokół</span></label>
              <label class="rq-checkline"><input type="checkbox" value="uruchomienie i nastawy przepływów"><span>Uruchomienie i nastawy</span></label>
              <label class="rq-checkline"><input type="checkbox" value="przygotowanie podłoża"><span>Przygotowanie podłoża</span></label>
              <label class="rq-checkline"><input type="checkbox" value="izolacja podłogi, folia, taśmy i dylatacje"><span>Izolacja i dylatacje</span></label>
              <label class="rq-checkline"><input type="checkbox" value="wykonanie jastrychu"><span>Jastrych</span></label>
              <label class="rq-checkline"><input type="checkbox" value="automatyka sterowania"><span>Automatyka</span></label>
            </div>
            <p class="rq-small" style="color:#d8e8ec">Projekt i OZC pozostają w zapytaniu. Dodatkowych prac nie zaznaczaj, jeśli nie chcesz ich zlecić. Tekst poprosi oferentów także o listę wyłączeń i opis prac powierzonych innym ekipom.</p>
          </div>
          <div class="rq-buttons"><button type="submit" class="rq-button">Przygotuj treść zapytania</button><button type="reset" class="rq-button rq-button-outline">Wyczyść odpowiedzi</button></div>
        </form>
        <div class="rq-output">
          <label for="rq-request-output">Przygotowana treść zapytania</label>
          <textarea id="rq-request-output" readonly="" placeholder="Uzupełnij formularz i wybierz „Przygotuj treść zapytania”."></textarea>
          <div class="rq-buttons">
            <button class="rq-button rq-button-outline" type="button" id="rq-email-request">Otwórz w aplikacji e-mail</button>
            <button class="rq-button rq-button-outline" type="button" id="rq-whatsapp-request">Otwórz WhatsApp do Roberta</button>
          </div>
          <p class="rq-small">E-mail otworzy szkic do biuro@projekt-ogrzewania.pl — możesz dopisać innych odbiorców. WhatsApp otworzy wiadomość wyłącznie do Roberta Kucharskiego: +48 794 358 367. W obu przypadkach samodzielnie zatwierdzasz wysyłkę.</p>
          <p role="status" aria-live="polite" id="rq-copy-status"></p>
        </div>
      </div>
      <div class="rq-note rq-note-good"><p><strong>Przy ponownym zapytaniu do firm:</strong> dołącz ten sam projekt i rzuty, jeżeli je masz. Jeżeli jedna firma proponuje wariant odmienny od projektu, poproś o jego osobne opisanie i wycenę.</p></div>
    </section>

    <section class="rq-section" id="rq-odstepstwa">
      <span class="rq-eyebrow">Inna propozycja może być wartościowa</span>
      <h2>Co zrobić, gdy wykonawca proponuje mniej pętli lub inny materiał?</h2>
      <p class="rq-lead">Nie odrzucaj automatycznie wariantu innego niż wyjściowy. Poproś o uzasadnienie, parametry, zakres zamienionych elementów oraz cenę dla rozwiązania bazowego i wariantu. Dzięki temu porównanie wariantów nie miesza się z konkurencją cenową przy tym samym zakresie.</p>
      <ul class="rq-list">
        <li>ustal, czy zmienią się temperatura pracy, możliwość pokrycia strat ciepła i opory obiegów,</li>
        <li>porównaj rzeczywistą średnicę i typ rury, liczbę pętli, rozstawy oraz wyposażenie rozdzielacza,</li>
        <li>potwierdź zgodność elementów i warunki wykonania według dokumentacji systemu,</li>
        <li>zapisz zmiany zaakceptowane przed zamówieniem materiałów i montażem.</li>
      </ul>
      <p class="rq-copy">Dlaczego szczegóły projektu mają znaczenie, pokazuje poradnik <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-glowy-vs-projekt-z-obliczeniami-ile-mozesz-stracic-na-bledach/">projekt z głowy czy projekt z obliczeniami</a>.</p>
    </section>

    <section class="rq-section rq-soft" id="rq-umowa">
      <span class="rq-eyebrow">Ustalenia przed rozpoczęciem prac</span>
      <h2>Co potwierdzić w ofercie i przy zleceniu?</h2>
      <div class="rq-grid rq-grid-3">
        <article class="rq-card"><span class="rq-num">ZAKRES</span><h3>Dokumenty i materiały</h3><p>Wersja projektu, lista prac i wyłączeń, specyfikacja wyrobów, odpowiedzialność za zakup oraz transport.</p></article>
        <article class="rq-card"><span class="rq-num">CENA</span><h3>Kwota i zmiany</h3><p>Kwota brutto, sposób rozliczenia prac dodatkowych i zasada potwierdzania zmian przed ich wykonaniem.</p></article>
        <article class="rq-card"><span class="rq-num">ODBIÓR</span><h3>Terminy i protokół</h3><p>Etapy prac, próba przed zakryciem, przekazanie dokumentacji oraz termin uruchomienia i regulacji.</p></article>
      </div>
      <p class="rq-copy">Sprawdź także <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu podłogówki</a>, aby wiedzieć, które ustalenia są szczególnie ważne przed wylewką.</p>
    </section>

    <section class="rq-section" id="rq-decyzja">
      <span class="rq-eyebrow">Wybór bez sztucznego rankingu</span>
      <h2>Kiedy możesz porównać ceny, a kiedy wrócić po wyjaśnienia?</h2>
      <div class="rq-grid rq-grid-2">
        <article class="rq-card"><span class="rq-num">MOŻESZ PORÓWNAĆ</span><h3>Zakres jest opisany</h3><p>Wiesz, co należy do ceny, jakie są wspólne wyłączenia, jakie dopłaty wyceniono oraz czy firmy korzystały ze wspólnych danych technicznych. Nadal samodzielnie oceniasz warunki realizacji.</p></article>
        <article class="rq-card"><span class="rq-num">WRÓĆ Z PYTANIAMI</span><h3>Brakuje podstaw</h3><p>Nieustalone pozostają zakres, końcowa cena, pętle, próba lub odpowiedzialność za etapy. Wyślij jednakowe pytania do oferentów i dopiero później wróć do zestawienia.</p></article>
      </div>
      <p class="rq-copy">Projekt może uporządkować część techniczną i materiałową, lecz nie zastępuje rozmowy o cenie robocizny, terminie ani zakresie odpowiedzialności konkretnego wykonawcy.</p>
      <div class="rq-cta">
        <h3>Chcesz wysłać wykonawcom tę samą dokumentację?</h3>
        <p>Projekt z obliczeniami, pętlami i zestawieniem materiałów daje wspólną podstawę do sporządzenia ofert. Przed zamówieniem sprawdź jego dokładny zakres oraz warunki usługi.</p>
        <a class="rq-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zobacz indywidualny projekt podłogówki</a>
        <small>Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rq-section rq-soft" id="rq-faq">
      <span class="rq-eyebrow">Najczęstsze pytania inwestorów</span>
      <h2>FAQ — porównywanie ofert na ogrzewanie podłogowe</h2>
      <div class="rq-faq">
        <details><summary>Czy najtańsza wycena podłogówki oznacza najtańszy montaż?</summary><div class="rq-faq-answer"><p>Nie można tego ocenić bez porównania zakresu. Niższa kwota może dotyczyć mniejszej liczby prac, innych materiałów lub wyłączeń wycenianych później. Może też być uczciwą ceną za taki sam zakres; trzeba to sprawdzić.</p></div></details>
        <details><summary>Co zrobić, gdy jedna oferta jest za m², a druga jest ryczałtem?</summary><div class="rq-faq-answer"><p>Ustal powierzchnię i prace objęte każdą ceną. Poproś o kwotę końcową dla jednakowego zakresu oraz o wypisanie dopłat i wyłączeń. Sama stawka za m² nie opisuje kompletnej instalacji.</p></div></details>
        <details><summary>Czy dwie wyceny można porównać bez projektu?</summary><div class="rq-faq-answer"><p>Można porównać zakres handlowy i zapisane ceny, ale nie zakładać, że odmienne układy pętli są technicznie równoważne. Wyceny oparte na własnych założeniach firm pozostaną wstępne do czasu sprawdzenia rozwiązań.</p></div></details>
        <details><summary>Co powinna zawierać wycena ogrzewania podłogowego?</summary><div class="rq-faq-answer"><p>Powinna wskazywać zakres prac, materiały i ilości, podstawę powierzchni, cenę i jej podatkową podstawę, terminy, wyłączenia oraz sposób wykonania i udokumentowania próby i uruchomienia, jeśli należą do zlecenia.</p></div></details>
        <details><summary>Czy izolacja i wylewka muszą być w cenie instalatora?</summary><div class="rq-faq-answer"><p>Nie. Mogą należeć do innego zakresu robót. Ustal jednak, kto je wykonuje, na jakich warunkach przyjmuje pracę poprzedniej ekipy i jaki koszt ponosi inwestor poza wyceną instalatora.</p></div></details>
        <details><summary>Czy w cenie powinna być próba szczelności?</summary><div class="rq-faq-answer"><p>Należy wyraźnie ustalić, kto przeprowadza próbę przed zakryciem, według jakiej procedury i kto przekazuje protokół. Nie zakładaj, że próba jest wliczona tylko dlatego, że oferta mówi o montażu podłogówki.</p></div></details>
        <details><summary>Dlaczego wykonawcy podają różną liczbę pętli?</summary><div class="rq-faq-answer"><p>Mogą przyjmować inne rozstawy, dobiegi, powierzchnie czynne lub obciążenia cieplne. Warto porównać te założenia oraz sprawdzić przepływy i opory, zanim uzna się warianty za zamienne.</p></div></details>
        <details><summary>Co zrobić, gdy oferta nie podaje ceny transportu?</summary><div class="rq-faq-answer"><p>Poproś o pisemne potwierdzenie, czy dojazd i dostawa są wliczone, czy stanowią dopłatę. Nie przypisuj brakowi informacji kwoty 0 zł.</p></div></details>
        <details><summary>Czy oferta materiałów z wyceną jest ofertą wykonania instalacji?</summary><div class="rq-faq-answer"><p>Nie. Zestawienie materiałowe opisuje zakupy, a wykonanie wymaga osobnego ustalenia robocizny, harmonogramu, odpowiedzialności za połączenia, próby, uruchomienie i odbiór.</p></div></details>
        <details><summary>Czy można dopuścić zamienny typ rury lub rozdzielacza?</summary><div class="rq-faq-answer"><p>Można rozważyć wariant równoważny po porównaniu parametrów, zgodności systemowej i wpływu zmiany na projekt oraz hydraulikę. Poproś o jego osobny opis i cenę, zanim zaakceptujesz zamianę.</p></div></details>
        <details><summary>Czy porównywarka wybierze najlepszego wykonawcę?</summary><div class="rq-faq-answer"><p>Nie. Porządkuje informacje wpisane z ofert i wskazuje różnice oraz pytania. Nie zna jakości przyszłego montażu, nie sprawdza wiarygodności wykonawcy ani poprawności całego projektu.</p></div></details>
        <details><summary>Kiedy ponownie wysłać zapytanie o wycenę?</summary><div class="rq-faq-answer"><p>Gdy po porównaniu ofert nadal nie wiadomo, co zawierają ceny, jakie przyjęto założenia techniczne lub kto wykonuje pominięte prace. Wyślij te same informacje wszystkim wybranym wykonawcom i poproś o uzupełnione odpowiedzi.</p></div></details>
      </div>
    </section>

    <section class="rq-section" id="rq-zrodla">
      <span class="rq-eyebrow">Podstawa techniczna</span>
      <h2>Źródła i zakres poradnika</h2>
      <p class="rq-lead">Oficjalne karty norm pomagają rozdzielić wymiarowanie instalacji od jej wykonania. Szczegółowe wymagania i zakres odpowiedzialności trzeba odnieść do dokumentacji wybranego systemu, projektu i ustaleń z wykonawcą.</p>
      <div class="rq-sources">
        <div class="rq-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 części dotyczącej projektowania i określania wydajności wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</p></div>
        <div class="rq-source"><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-5:2021 — instalowanie</a><p>Oficjalna karta części poświęconej wykonaniu wbudowanych wodnych systemów płaszczyznowych.</p></div>
      </div>
      <div class="rq-note"><p><strong>Zakres narzędzi:</strong> nie pobierają cenników, nie weryfikują dokumentów ofertowych ani nie oceniają wiarygodności wykonawcy. Wyliczenie możliwych dopłat dotyczy wyłącznie kwot wpisanych przez użytkownika. Projekt, warunki rzeczywistego budynku i pisemne oferty pozostają podstawą ostatecznej decyzji.</p></div>
    </section>

    <section class="rq-author" id="rq-autor">
      <span class="rq-eyebrow">Opracowanie eksperckie</span>
      <h2>Autor i weryfikacja merytoryczna</h2>
      <div class="rq-author-layout">
        <aside class="rq-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>CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rq-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="rq-author-body">
          <blockquote>„Cena wykonania mówi niewiele, dopóki nie wiadomo, ile pętli trzeba ułożyć, według jakich przepływów je wyregulować i kto odpowiada za odbiór instalacji.”</blockquote>
          <p>Robert Kucharski przygotowuje projekty ogrzewania podłogowego oraz obliczenia cieplne i hydrauliczne. W tym poradniku oddziela porównanie zakresu ofert od oceny przydatności technicznej proponowanych rozwiązań.</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 autora</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",
        "projektowanie instalacji grzewczych",
        "obliczenia strat ciepła",
        "hydraulika ogrzewania podłogowego",
        "porównywanie zakresu ofert wykonawczych"
      ],
      "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/jak-porownac-wyceny-ogrzewania-podlogowego/#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": "Jak porównać wyceny ogrzewania podłogowego?",
          "item": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#webpage",
      "url": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/",
      "name": "Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku",
      "description": "Poradnik porównywania dwóch lub trzech ofert na ogrzewanie podłogowe, ich zakresów, parametrów i dopłat oraz generator jednakowego zapytania.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#breadcrumb" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#article" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#webpage" },
      "headline": "Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku",
      "description": "Praktyczna analiza zakresu i parametrów wycen podłogówki z porównywarką ofert oraz generatorem wspólnego zapytania do wykonawców.",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "about": [
        "porównywanie ofert na ogrzewanie podłogowe",
        "wycena instalacji grzewczej",
        "zakres prac instalatora",
        "pętle ogrzewania podłogowego",
        "próba szczelności i uruchomienie"
      ],
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#comparator" },
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#request-generator" },
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#comparator",
      "name": "Porównywarka zakresu wycen ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#rq-porownywarka",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie porównujące zakres dwóch lub trzech ofert oraz dopłaty o znanej kwocie bez oceniania wykonawców i bez zgadywania brakujących cen."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#request-generator",
      "name": "Generator jednakowego zapytania o wycenę podłogówki",
      "url": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#rq-zapytanie",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Przeglądarka internetowa z obsługą JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Generator jednakowego zapytania ofertowego z przyciskiem otwierającym szkic e-maila do wykonawców oraz rozmowę WhatsApp z autorem."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#howto",
      "name": "Jak porównać oferty wykonawców ogrzewania podłogowego",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zbierz wspólne dane budynku", "text": "Zapisz zakres pomieszczeń, powierzchnie, rzuty i dostępne obliczenia." },
        { "@type": "HowToStep", "position": 2, "name": "Rozpoznaj zakres ofert", "text": "Ustal, które oferty obejmują materiały, robociznę, próbę, uruchomienie i roboty podłogowe." },
        { "@type": "HowToStep", "position": 3, "name": "Sprawdź różnice techniczne", "text": "Porównaj założenia dotyczące pętli, rozstawów, rozdzielaczy i przepływów." },
        { "@type": "HowToStep", "position": 4, "name": "Wyjaśnij dopłaty", "text": "Zapytaj pisemnie o pozycje nieopisane oraz koszty wyłączeń i dodatków." },
        { "@type": "HowToStep", "position": 5, "name": "Poproś o oferty na wspólnej podstawie", "text": "Przekaż wykonawcom ten sam projekt lub ten sam opis prac i poproś o uzupełnione kwoty." },
        { "@type": "HowToStep", "position": 6, "name": "Potwierdź wykonanie i odbiór", "text": "Przed zleceniem ustal terminy, próbę, dokumentację oraz procedurę zmian zakresu." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Czy najtańsza wycena podłogówki oznacza najtańszy montaż?", "acceptedAnswer": { "@type": "Answer", "text": "Nie można tego ocenić bez porównania zakresu. Niższa kwota może dotyczyć mniejszej liczby prac, innych materiałów lub wyłączeń wycenianych później. Może też być uczciwą ceną za taki sam zakres; trzeba to sprawdzić." } },
        { "@type": "Question", "name": "Co zrobić, gdy jedna oferta jest za m², a druga jest ryczałtem?", "acceptedAnswer": { "@type": "Answer", "text": "Ustal powierzchnię i prace objęte każdą ceną. Poproś o kwotę końcową dla jednakowego zakresu oraz o wypisanie dopłat i wyłączeń. Sama stawka za m² nie opisuje kompletnej instalacji." } },
        { "@type": "Question", "name": "Czy dwie wyceny można porównać bez projektu?", "acceptedAnswer": { "@type": "Answer", "text": "Można porównać zakres handlowy i zapisane ceny, ale nie zakładać, że odmienne układy pętli są technicznie równoważne. Wyceny oparte na własnych założeniach firm pozostaną wstępne do czasu sprawdzenia rozwiązań." } },
        { "@type": "Question", "name": "Co powinna zawierać wycena ogrzewania podłogowego?", "acceptedAnswer": { "@type": "Answer", "text": "Powinna wskazywać zakres prac, materiały i ilości, podstawę powierzchni, cenę i jej podatkową podstawę, terminy, wyłączenia oraz sposób wykonania i udokumentowania próby i uruchomienia, jeśli należą do zlecenia." } },
        { "@type": "Question", "name": "Czy izolacja i wylewka muszą być w cenie instalatora?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Mogą należeć do innego zakresu robót. Ustal jednak, kto je wykonuje, na jakich warunkach przyjmuje pracę poprzedniej ekipy i jaki koszt ponosi inwestor poza wyceną instalatora." } },
        { "@type": "Question", "name": "Czy w cenie powinna być próba szczelności?", "acceptedAnswer": { "@type": "Answer", "text": "Należy wyraźnie ustalić, kto przeprowadza próbę przed zakryciem, według jakiej procedury i kto przekazuje protokół. Nie zakładaj, że próba jest wliczona tylko dlatego, że oferta mówi o montażu podłogówki." } },
        { "@type": "Question", "name": "Dlaczego wykonawcy podają różną liczbę pętli?", "acceptedAnswer": { "@type": "Answer", "text": "Mogą przyjmować inne rozstawy, dobiegi, powierzchnie czynne lub obciążenia cieplne. Warto porównać te założenia oraz sprawdzić przepływy i opory, zanim uzna się warianty za zamienne." } },
        { "@type": "Question", "name": "Co zrobić, gdy oferta nie podaje ceny transportu?", "acceptedAnswer": { "@type": "Answer", "text": "Poproś o pisemne potwierdzenie, czy dojazd i dostawa są wliczone, czy stanowią dopłatę. Nie przypisuj brakowi informacji kwoty 0 zł." } },
        { "@type": "Question", "name": "Czy oferta materiałów z wyceną jest ofertą wykonania instalacji?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Zestawienie materiałowe opisuje zakupy, a wykonanie wymaga osobnego ustalenia robocizny, harmonogramu, odpowiedzialności za połączenia, próby, uruchomienie i odbiór." } },
        { "@type": "Question", "name": "Czy można dopuścić zamienny typ rury lub rozdzielacza?", "acceptedAnswer": { "@type": "Answer", "text": "Można rozważyć wariant równoważny po porównaniu parametrów, zgodności systemowej i wpływu zmiany na projekt oraz hydraulikę. Poproś o jego osobny opis i cenę, zanim zaakceptujesz zamianę." } },
        { "@type": "Question", "name": "Czy porównywarka wybierze najlepszego wykonawcę?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Porządkuje informacje wpisane z ofert i wskazuje różnice oraz pytania. Nie zna jakości przyszłego montażu, nie sprawdza wiarygodności wykonawcy ani poprawności całego projektu." } },
        { "@type": "Question", "name": "Kiedy ponownie wysłać zapytanie o wycenę?", "acceptedAnswer": { "@type": "Answer", "text": "Gdy po porównaniu ofert nadal nie wiadomo, co zawierają ceny, jakie przyjęto założenia techniczne lub kto wykonuje pominięte prace. Wyślij te same informacje wszystkim wybranym wykonawcom i poproś o uzupełnione odpowiedzi." } }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-quote-guide");
  if (!root || root.getAttribute("data-rq-ready") === "true") { return; }
  root.setAttribute("data-rq-ready", "true");

  function byId(id) { return document.getElementById(id); }
  function el(tag, className, content) {
    var node = document.createElement(tag);
    if (className) { node.className = className; }
    if (typeof content === "string") { node.textContent = content; }
    return node;
  }
  function labelOf(index) { return ["A", "B", "C"][index]; }
  function getCount() { return Number(byId("rq-count").value) === 3 ? 3 : 2; }
  function numberFrom(value) {
    var clean = String(value).replace(/[\s\u00a0\u202f]/g, "").replace(",", ".");
    if (clean === "") { return null; }
    if (!/^\d+(?:\.\d{1,2})?$/.test(clean)) { return NaN; }
    var number = Number(clean);
    return number <= 100000000 ? number : NaN;
  }
  function money(number) {
    return new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 2, minimumFractionDigits: 0 }).format(number) + " zł";
  }
  function addList(id, items, empty) {
    var list = byId(id);
    list.textContent = "";
    (items.length ? items : [empty]).forEach(function (message) {
      list.appendChild(el("li", "", message));
    });
  }

  var rows = [
    { id: "pipes", name: "Rury i mocowanie", hint: "Materiał, długości, typ i system mocowania." },
    { id: "manifold", name: "Rozdzielacze, szafki i złączki", hint: "Liczba obwodów, wyposażenie, komplety przyłączeniowe." },
    { id: "laying", name: "Układanie i podłączanie", hint: "Montaż pętli, rozdzielaczy i połączeń." },
    { id: "feeds", name: "Dobiegi i przyłącza", hint: "Dojścia do pól grzewczych i zakres podłączenia." },
    { id: "test", name: "Próba szczelności i protokół", hint: "Procedura i dokument potwierdzający wynik." },
    { id: "balancing", name: "Uruchomienie i nastawy", hint: "Ustawienie obliczonych przepływów i przekazanie instalacji." },
    { id: "base", name: "Przygotowanie podłoża", hint: "Prace przed ułożeniem izolacji i rur." },
    { id: "insulation", name: "Izolacja, folia i taśmy", hint: "Warstwy podłogi oraz dylatacje." },
    { id: "screed", name: "Jastrych", hint: "Wykonanie i zakres prac związanych z wylewką." },
    { id: "controls", name: "Automatyka", hint: "Regulatory, siłowniki, połączenia i uruchomienie." },
    { id: "transport", name: "Transport i dojazd", hint: "Materiały, dostawa i przyjazd ekipy." }
  ];
  var storedStates = {};
  var offerBlocks = root.querySelectorAll(".rq-offer");
  var compareForm = byId("rq-compare-form");
  var rowsContainer = byId("rq-item-list");
  var choices = byId("rq-scope-choices");

  function selectedRows() {
    var checked = {};
    choices.querySelectorAll("input[data-scope]").forEach(function (input) {
      if (input.checked) { checked[input.getAttribute("data-scope")] = true; }
    });
    return rows.filter(function (row) { return checked[row.id]; });
  }
  function saveCurrentRows() {
    rowsContainer.querySelectorAll("select[data-row]").forEach(function (select) {
      var key = select.getAttribute("data-row") + "-" + select.getAttribute("data-offer");
      var field = select.parentElement.parentElement.querySelector("input[data-extra]");
      storedStates[key] = { status: select.value, extra: field ? field.value : "" };
    });
  }
  function makeOption(value, textLabel) {
    var option = el("option", "", textLabel);
    option.value = value;
    return option;
  }
  function renderRows() {
    saveCurrentRows();
    var count = getCount();
    offerBlocks.forEach(function (block, index) { block.hidden = index >= count; });
    rowsContainer.textContent = "";
    selectedRows().forEach(function (row) {
      var item = el("div", "rq-scope-item");
      item.appendChild(el("div", "rq-item-name", row.name));
      item.appendChild(el("div", "rq-item-hint", row.hint));
      var cells = el("div", "rq-item-grid");
      for (var index = 0; index < count; index += 1) {
        var cell = el("div");
        var fieldLabel = el("label", "rq-offer-field");
        fieldLabel.appendChild(el("span", "", "Oferta " + labelOf(index)));
        var select = el("select");
        select.setAttribute("data-row", row.id);
        select.setAttribute("data-offer", String(index));
        select.setAttribute("aria-label", row.name + " — oferta " + labelOf(index));
        select.appendChild(makeOption("unknown", "Nie wiadomo"));
        select.appendChild(makeOption("included", "Wliczone w cenę"));
        select.appendChild(makeOption("extra", "Dodatkowo płatne"));
        select.appendChild(makeOption("separate", "Wyłączone; inna ekipa"));
        var key = row.id + "-" + index;
        if (storedStates[key]) { select.value = storedStates[key].status; }
        fieldLabel.appendChild(select);
        cell.appendChild(fieldLabel);
        var extraLabel = el("label", "rq-extra");
        extraLabel.hidden = select.value !== "extra";
        extraLabel.appendChild(el("span", "", "Podana dopłata [zł] — " + labelOf(index)));
        var extraInput = el("input");
        extraInput.type = "text";
        extraInput.inputMode = "decimal";
        extraInput.setAttribute("data-extra", row.id);
        extraInput.setAttribute("data-offer", String(index));
        extraInput.setAttribute("aria-label", "Dopłata za " + row.name + " — oferta " + labelOf(index));
        extraInput.placeholder = "Puste = kwota nieznana";
        if (storedStates[key]) { extraInput.value = storedStates[key].extra; }
        extraLabel.appendChild(extraInput);
        cell.appendChild(extraLabel);
        cells.appendChild(cell);
      }
      item.appendChild(cells);
      rowsContainer.appendChild(item);
    });
    if (!selectedRows().length) {
      rowsContainer.appendChild(el("p", "", "Zaznacz co najmniej jedną pozycję ze wspólnego zakresu."));
    }
  }

  rowsContainer.addEventListener("change", function (event) {
    var target = event.target;
    if (target.matches("select[data-row]")) {
      var extra = target.parentElement.parentElement.querySelector(".rq-extra");
      if (extra) { extra.hidden = target.value !== "extra"; }
    }
  });
  choices.addEventListener("change", renderRows);
  byId("rq-count").addEventListener("change", renderRows);

  function offerField(index, key) {
    return offerBlocks[index].querySelector("[data-key='" + key + "']").value;
  }
  function resultState(title, description, level, known, differences, questions) {
    var result = byId("rq-compare-result");
    result.classList.remove("rq-result-good", "rq-result-stop");
    if (level === "good") { result.classList.add("rq-result-good"); }
    if (level === "stop") { result.classList.add("rq-result-stop"); }
    byId("rq-compare-title").textContent = title;
    byId("rq-compare-intro").textContent = description;
    addList("rq-result-known", known, "Brak potwierdzonych danych.");
    addList("rq-result-diff", differences, "Nie wpisano różnic zakresu.");
    addList("rq-result-ask", questions, "Brak kolejnych pytań z podanych danych.");
  }
  function analyze(event) {
    if (event) { event.preventDefault(); }
    saveCurrentRows();
    var count = getCount();
    var selected = selectedRows();
    var known = [];
    var different = [];
    var questions = [];
    var blocked = false;
    var incomplete = false;
    var design = byId("rq-design").value;
    if (!selected.length) {
      resultState("Wybierz zakres porównania", "Bez pozycji zakresu nie można zestawić ofert.", "stop", [], [], ["Zaznacz co najmniej jedną pracę lub dostawę."]);
      byId("rq-compare-title").focus();
      return;
    }
    if (design === "yes") {
      known.push("Oferty odnoszą się do wskazanego wspólnego projektu — sprawdź również zgodność każdej oferty z tym projektem.");
    } else {
      incomplete = true;
      questions.push(design === "no" ?
        "Każdy wykonawca przyjął własne założenia. Ustal wspólny układ lub osobno zweryfikuj proponowane warianty." :
        "Potwierdź, czy wykonawcy wycenili ten sam układ pętli i te same dane budynku.");
    }

    var offers = [];
    for (var index = 0; index < count; index += 1) {
      var offer = {
        letter: labelOf(index), price: numberFrom(offerField(index, "price")),
        tax: offerField(index, "tax"), area: numberFrom(offerField(index, "area")),
        areaType: offerField(index, "areaType"), tech: offerField(index, "tech"),
        extras: 0, missingExtra: false, hasExcluded: false
      };
      offers.push(offer);
      if (Number.isNaN(offer.price) || (offer.price !== null ? offer.price <= 0 : false)) {
        incomplete = true;
        questions.push("Oferta " + offer.letter + ": wpisz dodatnią kwotę w złotych albo zostaw pole puste.");
      }
      if (Number.isNaN(offer.area) || (offer.area !== null ? offer.area <= 0 : false)) {
        incomplete = true;
        questions.push("Oferta " + offer.letter + ": popraw podaną powierzchnię albo pozostaw ją pustą.");
      }
      if (offer.tech === "change") {
        blocked = true;
        different.push("Oferta " + offer.letter + " proponuje inny układ. Wymaga osobnej oceny technicznej przed porównaniem ceny z wariantem bazowym.");
      } else if (offer.tech === "unknown") {
        incomplete = true;
        questions.push("Oferta " + offer.letter + ": potwierdź rozstawy, liczbę pętli i parametry układu.");
      }
      if (offer.price !== null) {
        if (!Number.isNaN(offer.price)) {
          if (offer.tax === "unknown") {
            incomplete = true;
            questions.push("Oferta " + offer.letter + ": ustal, czy kwota jest netto czy brutto.");
          }
        }
      }
      if (offer.area !== null) {
        if (!Number.isNaN(offer.area)) {
          if (offer.areaType === "unknown") {
            incomplete = true;
            questions.push("Oferta " + offer.letter + ": ustal, od jakiej powierzchni wykonawca liczy zakres.");
          }
        }
      }
    }
    var areaTypeSet = {};
    var areaSet = {};
    offers.forEach(function (offer) {
      if (offer.areaType !== "unknown") { areaTypeSet[offer.areaType] = true; }
      if (offer.area !== null) {
        if (!Number.isNaN(offer.area)) {
          if (offer.area > 0) { areaSet[String(offer.area)] = true; }
        }
      }
    });
    if (Object.keys(areaTypeSet).length > 1 || Object.keys(areaSet).length > 1) {
      incomplete = true;
      different.push("Oferty odnoszą się do różnych podstaw powierzchniowych. Poproś o sumy dla tego samego zakresu pomieszczeń.");
    }

    selected.forEach(function (row) {
      var statuses = [];
      var names = [];
      for (var i = 0; i < count; i += 1) {
        var saved = storedStates[row.id + "-" + i] || { status: "unknown", extra: "" };
        statuses.push(saved.status);
        if (saved.status === "included") { names.push(labelOf(i) + ": wliczone"); }
        if (saved.status === "separate") {
          offers[i].hasExcluded = true;
          names.push(labelOf(i) + ": inna ekipa");
        }
        if (saved.status === "unknown") {
          incomplete = true;
          questions.push("Oferta " + labelOf(i) + ": wyjaśnij pozycję „" + row.name + "”.");
          names.push(labelOf(i) + ": brak informacji");
        }
        if (saved.status === "extra") {
          var extraAmount = numberFrom(saved.extra);
          if (Number.isNaN(extraAmount)) {
            incomplete = true;
            questions.push("Oferta " + labelOf(i) + ": popraw wpisaną dopłatę za „" + row.name + "”.");
            offers[i].missingExtra = true;
            names.push(labelOf(i) + ": błędna kwota dopłaty");
          } else if (extraAmount === null) {
            incomplete = true;
            questions.push("Oferta " + labelOf(i) + ": poproś o kwotę dopłaty za „" + row.name + "”.");
            offers[i].missingExtra = true;
            names.push(labelOf(i) + ": dopłata bez ceny");
          } else {
            offers[i].extras += extraAmount;
            names.push(labelOf(i) + ": dopłata " + money(extraAmount));
          }
        }
      }
      if (statuses.every(function (status) { return status === "included"; })) {
        known.push("„" + row.name + "” opisano jako wliczone we wszystkie porównywane oferty.");
      } else if (statuses.every(function (status) { return status === "separate"; })) {
        known.push("„" + row.name + "” wyłączono ze wszystkich ofert; uzgodnij koszt i wykonawcę poza nimi.");
      } else {
        different.push("„" + row.name + "” — " + names.join("; ") + ".");
        if (statuses.indexOf("separate") !== -1) {
          if (statuses.some(function (status) {
            return status === "included" || status === "extra";
          })) {
            blocked = true;
            questions.push("„" + row.name + "” należy do różnych zakresów prac. Ustal cenę wyłączenia i odpowiedzialność za wykonanie.");
          }
        }
      }
    });

    var taxSet = {};
    var completeMoney = true;
    offers.forEach(function (offer) {
      if (offer.price === null || Number.isNaN(offer.price) || offer.price <= 0 || offer.tax === "unknown" || offer.missingExtra) {
        completeMoney = false;
      }
      if (offer.tax !== "unknown") { taxSet[offer.tax] = true; }
    });
    if (Object.keys(taxSet).length > 1) {
      incomplete = true;
      completeMoney = false;
      questions.push("Oferty mieszają kwoty netto i brutto. Poproś wszystkich o tę samą podstawę rozliczenia.");
    }
    if (offers.some(function (offer) { return offer.price === null; })) {
      questions.push("Wpisz kwotę każdej oferty, jeśli chcesz zestawić znane sumy. Bez kwot można nadal ocenić zakres.");
    }
    var sumsCanBeShown = false;
    if (completeMoney) {
      if (Object.keys(taxSet).length === 1) {
        if (!blocked) { sumsCanBeShown = true; }
      }
    }
    if (sumsCanBeShown) {
      var allGross = offers.every(function (offer) { return offer.tax === "gross"; });
      known.push("Znane kwoty podstawowe z podanymi dopłatami (" + (allGross ? "brutto" : "netto") + "): " +
        offers.map(function (offer) { return offer.letter + " " + money(offer.price + offer.extras); }).join("; ") + ".");
      if (!allGross) {
        incomplete = true;
        questions.push("Podane sumy są netto. Poproś o końcowe kwoty brutto; narzędzie nie przyjmuje domyślnej stawki podatku.");
      }
      if (offers.some(function (offer) { return offer.hasExcluded; })) {
        known.push("Kwoty nie obejmują robót wskazanych jako wykonywane przez inną ekipę.");
      }
    } else if (offers.some(function (offer) { return offer.price !== null; })) {
      incomplete = true;
      questions.push("Nie wszystkie sumy da się zestawić: sprawdź podstawy podatku, brakujące kwoty i dopłaty.");
    }
    var comparisonReady = false;
    if (!blocked) {
      if (!incomplete) {
        if (completeMoney) { comparisonReady = true; }
      }
    }
    if (comparisonReady) {
      resultState("Zakres opisano na wspólnej podstawie", "Możesz zestawić podane kwoty brutto. Wynik nie ocenia jakości pracy ani poprawności obliczeń.", "good", known, different, questions);
    } else if (blocked) {
      resultState("Nie porównuj jeszcze cen końcowych", "Co najmniej jedna oferta obejmuje inny zakres lub wariant techniczny. Wyjaśnij tę różnicę przed wyborem.", "stop", known, different, questions);
    } else {
      resultState("Potrzebne są wyjaśnienia do ofert", "Część danych jest nieznana albo nie pozwala jeszcze porównać końcowych cen.", "check", known, different, questions);
    }
    byId("rq-compare-title").focus();
  }
  compareForm.addEventListener("submit", analyze);
  compareForm.addEventListener("reset", function () {
    window.setTimeout(function () {
      storedStates = {};
      renderRows();
      resultState("Wybierz zakres i uzupełnij oferty",
        "Narzędzie oddzieli zgodny zakres, różnice i pytania do wykonawców. Brak kwoty lub opisu nie jest traktowany jako koszt zero.",
        "check",
        ["Porównanie nie zostało jeszcze wykonane."],
        ["Wypełnij dane z ofert."],
        ["Przygotuj oferty lub zapytania do wykonawców."]);
    }, 0);
  });
  renderRows();

  var requestForm = byId("rq-request-form");
  var requestOutput = byId("rq-request-output");
  var copyStatus = byId("rq-copy-status");
  function cleanPlainText(text) {
    return String(text).replace(/[\r\n\t]+/g, " ").replace(/\s+/g, " ").trim();
  }
  function requestText(event) {
    event.preventDefault();
    copyStatus.textContent = "";
    var area = numberFrom(byId("rq-request-area").value);
    if (area !== null) {
      if (Number.isNaN(area) || area <= 0) {
        requestOutput.value = "";
        copyStatus.textContent = "Popraw powierzchnię: wpisz dodatnią liczbę albo zostaw pole puste.";
        byId("rq-request-area").focus();
        return;
      }
    }
    var chosen = Array.prototype.map.call(
      byId("rq-request-scope").querySelectorAll("input:checked"),
      function (input) { return input.value; }
    );
    var levels = { unknown: "nieustalona", one: "jedna", two: "dwie", many: "trzy lub więcej" };
    var technologies = {
      unspecified: "do określenia w ofercie", wet: "system mokry",
      dry: "system suchy", retrofit: "modernizacja istniejącej podłogi"
    };
    var sources = {
      unspecified: "nieustalone", heatpump: "pompa ciepła",
      boiler: "kocioł", other: "inne źródło lub układ mieszany"
    };
    var project = byId("rq-request-project").value === "yes";
    var time = cleanPlainText(byId("rq-request-date").value);
    var lines = [
      "Temat: Prośba o wycenę ogrzewania podłogowego — jednakowy zakres zapytania",
      "",
      "Dzień dobry,",
      "",
      "Proszę o wycenę projektu ogrzewania podłogowego i obliczeń OZC oraz wybranych poniżej dodatkowych prac, jeśli zostały wskazane.",
      "Powierzchnia objęta planem: " + (area === null ? "do ustalenia na podstawie rzutów" : new Intl.NumberFormat("pl-PL", { maximumFractionDigits: 2 }).format(area) + " m² (proszę podać własną podstawę rozliczenia)."),
      "Kondygnacje: " + levels[byId("rq-request-levels").value] + ".",
      "Technologia: " + technologies[byId("rq-request-tech").value] + ".",
      "Źródło ciepła: " + sources[byId("rq-request-source").value] + ".",
      "Planowany termin: " + (time || "do uzgodnienia") + ".",
      "Podstawa techniczna: " + (project ?
        "dołączam posiadany projekt z obliczeniami; proszę osobno wycenić jego weryfikację i niezbędne uzupełnienie oraz weryfikację lub aktualizację OZC. Ewentualne odstępstwa od istniejącego projektu proszę opisać oddzielnie." :
        "nie dysponuję jeszcze wspólnym projektem z obliczeniami; proszę osobno wycenić wykonanie projektu i OZC. Wycena ewentualnego montażu pozostanie wstępna do czasu ukończenia dokumentacji."),
      "",
      "Zakres podstawowy do wyceny — zawsze:",
      "- Projekt ogrzewania podłogowego: wykonanie albo weryfikacja i uzupełnienie posiadanej dokumentacji.",
      "- Obliczenia OZC: wykonanie albo weryfikacja i aktualizacja posiadanych obliczeń."
    ];
    if (chosen.length) {
      lines.push("", "Dodatkowe prace i dostawy do wyceny:");
      chosen.forEach(function (scope) { lines.push("- " + scope + "."); });
    } else {
      lines.push("", "Nie zamawiam w tym zapytaniu dostawy materiałów ani prac montażowych.");
    }
    lines.push(
      "",
      "W odpowiedzi proszę podać:",
      "- Osobno cenę brutto projektu i obliczeń OZC oraz zakres opracowań, przekazywane dokumenty i termin wykonania."
    );
    if (chosen.length) {
      lines.push(
      "1. Całkowitą cenę brutto oraz zestawienie materiałów i robocizny; wyodrębnić każdą dopłatę.",
      "2. Przyjętą powierzchnię i jej rodzaj: całkowita, ogrzewana albo czynna; wskazać pomieszczenia objęte wyceną.",
      "3. Typ i ilość rur, liczbę i długości pętli, rozstawy, dobiegi, liczbę rozdzielaczy oraz zakres przyłączy, o ile te dane są dostępne.",
      "4. Wykaz elementów w cenie, wyłączeń oraz prac przewidzianych dla innej ekipy lub inwestora.",
      "5. Informację o próbie szczelności, protokole, uruchomieniu i nastawach, także wtedy, gdy są wyłączone z oferty.",
      "6. Termin wykonania, okres ważności ceny i sposób wyceny zmian przed ich wykonaniem.",
      "7. Osobne uzasadnienie i cenę każdego wariantu odmiennego od przekazanego projektu."
      );
    }
    lines.push(
      "",
      "Proszę o pisemne potwierdzenie zakresu oraz o wskazanie danych potrzebnych do uzupełnienia wyceny.",
      "",
      "Pozdrawiam"
    );
    requestOutput.value = lines.join("\n");
    copyStatus.textContent = "Zapytanie gotowe. Możesz otworzyć szkic e-maila albo wiadomość WhatsApp do autora.";
    requestOutput.focus();
  }
  requestForm.addEventListener("submit", requestText);
  requestForm.addEventListener("reset", function () {
    window.setTimeout(function () {
      requestOutput.value = "";
      copyStatus.textContent = "";
    }, 0);
  });
  byId("rq-email-request").addEventListener("click", function () {
    if (!requestOutput.value) {
      copyStatus.textContent = "Najpierw przygotuj treść zapytania.";
      return;
    }
    var messageLines = requestOutput.value.split("\n");
    var subject = messageLines.shift().replace(/^Temat:\s*/, "");
    if (messageLines[0] === "") { messageLines.shift(); }
    var body = messageLines.join("\n");
    var separator = String.fromCharCode(38);
    copyStatus.textContent = "Otwieram szkic do biuro@projekt-ogrzewania.pl. Możesz dopisać innych odbiorców przed wysłaniem.";
    window.location.href = "mailto:biuro@projekt-ogrzewania.pl?subject=" + encodeURIComponent(subject) + separator + "body=" + encodeURIComponent(body);
  });
  byId("rq-whatsapp-request").addEventListener("click", function () {
    if (!requestOutput.value) {
      copyStatus.textContent = "Najpierw przygotuj treść zapytania.";
      return;
    }
    var message = "Wiadomość do Roberta Kucharskiego w sprawie ogrzewania podłogowego:\n\n" + requestOutput.value;
    copyStatus.textContent = "Otwieram rozmowę z Robertem Kucharskim. Sprawdź treść przed wysłaniem.";
    window.open("https://wa.me/48794358367?text=" + encodeURIComponent(message), "_blank", "noopener,noreferrer");
  });
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/">Jak porównać wyceny ogrzewania podłogowego? Oferty wykonawców krok po kroku</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/jak-porownac-wyceny-ogrzewania-podlogowego/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wyłączanie podłogówki na noc – czy się opłaca i jak ustawić ogrzewanie?</title>
		<link>https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/</link>
					<comments>https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 27 Sep 2026 09:53:47 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje niskotemperaturowe]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Kotły gazowe]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Oszczędzanie energii]]></category>
		<category><![CDATA[Podłogówka]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[bezwładność podłogówki]]></category>
		<category><![CDATA[harmonogram ogrzewania]]></category>
		<category><![CDATA[kocioł gazowy]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[nocne obniżenie temperatury]]></category>
		<category><![CDATA[nocne ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie nocą]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędzanie energii]]></category>
		<category><![CDATA[podłogówka nocą]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[regulator pogodowy]]></category>
		<category><![CDATA[regulator pokojowy]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[sterowanie podłogówką]]></category>
		<category><![CDATA[temperatura ogrzewania podłogowego]]></category>
		<category><![CDATA[temperatura w domu]]></category>
		<category><![CDATA[ustawienia podłogówki]]></category>
		<category><![CDATA[wyłączanie podłogówki na noc]]></category>
		<category><![CDATA[zużycie energii]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7760</guid>

					<description><![CDATA[<p>Wyłączanie podłogówki na noc może wydawać się prostym sposobem na ograniczenie zużycia energii, ale w praktyce efekt zależy od bezwładności posadzki, izolacji budynku, rodzaju źródła ciepła oraz sposobu sterowania instalacją. Czy lepiej całkowicie przerwać grzanie, zastosować niewielkie obniżenie temperatury, czy pozostawić ogrzewanie podłogowe na stabilnych parametrach przez całą dobę? W artykule wyjaśniam, co dzieje się z temperaturą podłogi i pomieszczeń po nocnej zmianie nastaw, jak reaguje pompa ciepła i kocioł oraz jak samodzielnie sprawdzić, który sposób sterowania rzeczywiście daje oszczędności bez pogorszenia komfortu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/">Wyłączanie podłogówki na noc – czy się opłaca i jak ustawić ogrzewanie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
#rk-night-guide{
  --rk-navy:#0b2536;--rk-navy-2:#143b50;--rk-cyan:#29c4d7;--rk-cyan-deep:#086c86;
  --rk-orange:#ff6846;--rk-orange-deep:#cb4a2f;--rk-ink:#10283a;
  --rk-copy:#3c5668;--rk-muted:#617b8a;--rk-line:#d3e2e8;
  --rk-soft:#f3f8fa;--rk-cyan-soft:#def7fa;--rk-green:#168267;
  --rk-gold:#f2b526;--rk-white:#fff;
  box-sizing:border-box;max-width:1360px;width:100%;margin:0 auto;
  color:var(--rk-ink);font:normal 16px/1.66 Arial,Helvetica,sans-serif;
  overflow-wrap:anywhere;
}
#rk-night-guide *,#rk-night-guide *::before,#rk-night-guide *::after{box-sizing:border-box;min-width:0}
#rk-night-guide a{color:var(--rk-cyan-deep);text-underline-offset:3px}
#rk-night-guide a:hover{color:var(--rk-orange-deep)}
#rk-night-guide a:focus-visible,#rk-night-guide button:focus-visible,#rk-night-guide select:focus-visible,#rk-night-guide summary:focus-visible{outline:3px solid var(--rk-cyan);outline-offset:3px}
#rk-night-guide img{display:block;max-width:100%;height:auto}
#rk-night-guide button,#rk-night-guide select{font:inherit}
#rk-night-guide [hidden]{display:none!important}
#rk-night-guide .rk-night-shell{background:#fff;border:1px solid var(--rk-line);box-shadow:0 22px 65px rgba(13,41,57,.12);overflow:hidden}
#rk-night-guide .rk-night-hero{
  position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(circle at 92% 112%,rgba(41,196,215,.23) 0 18%,transparent 18.2%),
  linear-gradient(118deg,#0b2536 0%,#143e52 62%,#0d6576 100%);
  padding:62px 58px 55px
}
#rk-night-guide .rk-night-hero::before{position:absolute;left:58px;top:44px;background:var(--rk-orange);width:12px;height:12px;border-radius:50%;content:"";box-shadow:0 0 0 9px rgba(255,104,70,.14)}
#rk-night-guide .rk-night-kicker{display:block;margin:0 0 18px 28px;color:#6ce5ef;font-size:.77rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
#rk-night-guide .rk-night-hero-title,#rk-night-guide .rk-night-title,#rk-night-guide .rk-night-cta-title,#rk-night-guide .rk-night-author-title{font-weight:900;letter-spacing:-.035em;line-height:1.09}
#rk-night-guide .rk-night-hero-title{font-size:clamp(2.4rem,5.8vw,5.3rem);max-width:1200px}
#rk-night-guide .rk-night-hero-title span{color:#69e7f2}
#rk-night-guide .rk-night-hero-lead{color:#e3f0f4;font-size:clamp(1.08rem,2vw,1.42rem);line-height:1.54;margin:24px 0 0;max-width:1070px}
#rk-night-guide .rk-night-tags,#rk-night-guide .rk-night-meta,#rk-night-guide .rk-night-nav{display:flex;flex-wrap:wrap}
#rk-night-guide .rk-night-tags{gap:10px;margin-top:28px}
#rk-night-guide .rk-night-tags span{border:1px solid rgba(255,255,255,.29);border-radius:999px;background:rgba(255,255,255,.08);padding:8px 13px;font-size:.81rem;font-weight:800}
#rk-night-guide .rk-night-meta{gap:12px 24px;margin-top:33px;font-size:.83rem;color:#c5d9df;font-weight:700}
#rk-night-guide .rk-night-meta strong{color:#fff}
#rk-night-guide .rk-night-nav{align-items:center;gap:8px;padding:20px 33px;border-bottom:1px solid var(--rk-line);background:#fff}
#rk-night-guide .rk-night-nav-label{margin-right:5px;color:var(--rk-ink);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
#rk-night-guide .rk-night-nav a{background:#f1f6f8;border:1px solid transparent;border-radius:999px;color:var(--rk-ink);text-decoration:none;font-size:.75rem;font-weight:800;line-height:1.25;padding:8px 12px}
#rk-night-guide .rk-night-nav a:hover,#rk-night-guide .rk-night-nav a:focus-visible{background:var(--rk-cyan-soft);border-color:#91dce5;color:#075f78}
#rk-night-guide .rk-night-section{padding:63px 58px}
#rk-night-guide .rk-night-section+.rk-night-section{border-top:1px solid var(--rk-line)}
#rk-night-guide .rk-night-section.is-soft{background:var(--rk-soft)}
#rk-night-guide .rk-night-section.is-dark{background:var(--rk-navy);color:#fff}
#rk-night-guide .rk-night-eyebrow{display:block;margin:0 0 12px;color:var(--rk-cyan-deep);text-transform:uppercase;font-size:.75rem;letter-spacing:.11em;font-weight:900}
#rk-night-guide .is-dark .rk-night-eyebrow{color:#68e6ef}
#rk-night-guide .rk-night-title,#rk-night-guide .rk-night-author-title{font-size:clamp(2rem,3.9vw,3.5rem);margin:0;max-width:1100px}
#rk-night-guide .is-dark .rk-night-title{color:#fff}
#rk-night-guide .rk-night-lead{max-width:1120px;margin:21px 0 0;color:var(--rk-copy);font-size:clamp(1.03rem,1.6vw,1.23rem);line-height:1.72}
#rk-night-guide .rk-night-copy{margin:21px 0 0;color:var(--rk-copy)}
#rk-night-guide .is-dark .rk-night-lead,#rk-night-guide .is-dark .rk-night-copy{color:#d0e1e7}
#rk-night-guide .is-dark .rk-night-copy a,#rk-night-guide .is-dark .rk-night-lead a{color:#8eecf3}
#rk-night-guide .rk-night-answer{margin-top:27px;background:linear-gradient(135deg,#e7fafd,#f9fcfd);border:1px solid #9cdfe8;border-left:7px solid var(--rk-cyan);border-radius:17px;padding:26px 28px}
#rk-night-guide .rk-night-answer strong{color:var(--rk-ink);font-size:1.21rem;line-height:1.4}
#rk-night-guide .rk-night-answer p{margin:9px 0 0;color:var(--rk-copy)}
#rk-night-guide .rk-night-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:28px}
#rk-night-guide .rk-night-grid.is-two{grid-template-columns:repeat(2,minmax(0,1fr))}
#rk-night-guide .rk-night-grid.is-four{grid-template-columns:repeat(4,minmax(0,1fr))}
#rk-night-guide .rk-night-card{border:1px solid var(--rk-line);background:#fff;border-radius:16px;padding:23px}
#rk-night-guide .rk-night-card h3{margin:0 0 9px;color:var(--rk-ink);font-size:1.11rem;line-height:1.32}
#rk-night-guide .rk-night-card p{margin:0;color:var(--rk-copy)}
#rk-night-guide .rk-night-card p+p{margin-top:12px}
#rk-night-guide .rk-night-badge{display:inline-flex;align-items:center;justify-content:center;min-height:35px;min-width:35px;margin-bottom:14px;padding:0 9px;border-radius:9px;background:var(--rk-cyan-soft);color:#076c85;font-weight:900;font-size:.82rem}
#rk-night-guide .rk-night-list{margin:19px 0 0;padding-left:23px;color:var(--rk-copy)}
#rk-night-guide .rk-night-list li+li{margin-top:9px}
#rk-night-guide .rk-night-card .rk-night-list{margin-top:9px}
#rk-night-guide .is-dark .rk-night-list{color:#d0e1e7}
#rk-night-guide .rk-night-note{background:#fff6e4;color:#5b481b;border-left:6px solid var(--rk-gold);border-radius:12px;padding:18px 21px;margin-top:25px}
#rk-night-guide .rk-night-note.is-alert{background:#fff0ec;color:#713527;border-left-color:var(--rk-orange)}
#rk-night-guide .rk-night-note.is-positive{background:#e9faf5;color:#145e4d;border-left-color:#2fcda1}
#rk-night-guide .rk-night-note p{margin:0}
#rk-night-guide .rk-night-table-wrap{overflow-x:auto;margin-top:28px}
#rk-night-guide table{border-spacing:0;border-collapse:separate;min-width:760px;width:100%}
#rk-night-guide th{text-align:left;background:var(--rk-navy);color:#fff;font-size:.79rem;text-transform:uppercase;letter-spacing:.04em;padding:14px 16px}
#rk-night-guide th:first-child{border-radius:12px 0 0 0}
#rk-night-guide th:last-child{border-radius:0 12px 0 0}
#rk-night-guide td{background:#fff;border-bottom:1px solid var(--rk-line);color:var(--rk-copy);padding:15px;vertical-align:top}
#rk-night-guide td:first-child{border-left:1px solid var(--rk-line)}
#rk-night-guide td:last-child{border-right:1px solid var(--rk-line)}
#rk-night-guide td strong{color:var(--rk-ink)}
#rk-night-guide .rk-night-tool{margin-top:31px;background:#102f42;border:1px solid #355d70;border-radius:21px;padding:27px;color:#fff}
#rk-night-guide .rk-night-tool-head{border-bottom:1px solid #385c6d;padding-bottom:19px;margin-bottom:20px}
#rk-night-guide .rk-night-tool-head h3{color:#fff;font-size:clamp(1.5rem,2.7vw,2.2rem);margin:0;line-height:1.22}
#rk-night-guide .rk-night-tool-head p{color:#c1d9e0;margin:8px 0 0}
#rk-night-guide .rk-night-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
#rk-night-guide .rk-night-field{display:block}
#rk-night-guide .rk-night-field span{display:block;margin-bottom:7px;color:#eaf5f8;font-weight:800;font-size:.81rem;line-height:1.35}
#rk-night-guide .rk-night-field select{width:100%;min-height:48px;border:1px solid #b8ccd5;border-radius:9px;background:#fff;color:var(--rk-ink);padding:9px 11px}
#rk-night-guide .rk-night-tool-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
#rk-night-guide .rk-night-primary,#rk-night-guide .rk-night-secondary{cursor:pointer;min-height:47px;border-radius:10px;font-weight:900;padding:10px 16px}
#rk-night-guide .rk-night-primary{color:#fff;border:1px solid var(--rk-orange-deep);background:var(--rk-orange-deep)}
#rk-night-guide .rk-night-primary:hover{background:#a63821}
#rk-night-guide .rk-night-secondary{color:#fff;border:1px solid #72919f;background:transparent}
#rk-night-guide .rk-night-secondary:hover{background:#224c60}
#rk-night-guide .rk-night-result{margin-top:19px;border:1px solid #d5e4ea;border-left:7px solid var(--rk-gold);background:#fff;border-radius:14px;padding:23px;color:var(--rk-ink)}
#rk-night-guide .rk-night-result.is-caution{border-left-color:var(--rk-orange)}
#rk-night-guide .rk-night-result.is-ready{border-left-color:#2fcda1}
#rk-night-guide .rk-night-result h3{margin:0;color:var(--rk-ink);font-size:1.42rem;line-height:1.3}
#rk-night-guide .rk-night-result>p{margin:8px 0 0;color:var(--rk-copy)}
#rk-night-guide .rk-night-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:19px}
#rk-night-guide .rk-night-result-card{background:#f4f9fa;border:1px solid var(--rk-line);border-radius:12px;padding:16px}
#rk-night-guide .rk-night-result-card h4{font-size:.78rem;letter-spacing:.06em;color:#076c85;text-transform:uppercase;margin:0 0 8px}
#rk-night-guide .rk-night-result-card ul{margin:0;padding-left:18px;color:var(--rk-copy);font-size:.9rem}
#rk-night-guide .rk-night-result-card li+li{margin-top:7px}
#rk-night-guide .rk-night-small{font-size:.83rem;line-height:1.55;color:#617b8a}
#rk-night-guide .rk-night-result .rk-night-small{margin-top:13px}
#rk-night-guide .rk-night-map{margin-top:30px;border-radius:20px;background:#102f42;border:1px solid #345d72;padding:27px;color:#fff}
#rk-night-guide .rk-night-map h3{margin:0;color:#fff;font-size:clamp(1.5rem,2.7vw,2.1rem);line-height:1.2}
#rk-night-guide .rk-night-map-intro{color:#c8dde4;margin:8px 0 0}
#rk-night-guide .rk-night-map-controls{display:grid;gap:15px;margin-top:22px}
#rk-night-guide .rk-night-control-label{display:block;color:#cce9ed;font-size:.78rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;margin-bottom:7px}
#rk-night-guide .rk-night-button-row{display:flex;flex-wrap:wrap;gap:8px}
#rk-night-guide .rk-night-choice{color:#fff;background:#204b60;border:1px solid #53798b;border-radius:9px;cursor:pointer;padding:9px 12px;font-size:.83rem;line-height:1.3;font-weight:800;min-height:44px}
#rk-night-guide .rk-night-choice[aria-pressed="true"]{color:#092c3b;background:#69e7f2;border-color:#69e7f2}
#rk-night-guide .rk-night-phase-choices .rk-night-choice{flex:1 1 145px}
#rk-night-guide .rk-night-map-panel{background:#fff;border:1px solid #b6dbe2;border-radius:15px;margin-top:19px;padding:23px;color:var(--rk-ink)}
#rk-night-guide .rk-night-map-panel h4{margin:0;color:var(--rk-ink);font-size:1.25rem}
#rk-night-guide .rk-night-map-panel>p{color:var(--rk-copy);margin:8px 0 0}
#rk-night-guide .rk-night-map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
#rk-night-guide .rk-night-map-card{background:#f2f8fa;border:1px solid #d1e2e9;border-radius:12px;padding:17px}
#rk-night-guide .rk-night-map-card strong{display:block;color:#096b85;text-transform:uppercase;font-size:.79rem;letter-spacing:.06em;margin-bottom:6px}
#rk-night-guide .rk-night-map-card p{color:var(--rk-copy);margin:0}
#rk-night-guide .rk-night-map .rk-night-caution{color:#d6e9ed;margin:15px 0 0;font-size:.85rem}
#rk-night-guide .rk-night-cta{margin-top:32px;border-radius:19px;background:linear-gradient(118deg,#0b2536,#153e51 62%,#0d6272);color:#fff;padding:32px;overflow:hidden}
#rk-night-guide .rk-night-cta-title{margin:0;color:#fff;font-size:clamp(1.65rem,3vw,2.65rem);max-width:950px}
#rk-night-guide .rk-night-cta p{color:#d0e1e7;max-width:950px;margin:13px 0 0}
#rk-night-guide .rk-night-cta a.rk-night-cta-button{display:inline-block;margin-top:20px;background:var(--rk-orange-deep);border-radius:10px;color:#fff;text-decoration:none;font-weight:900;padding:13px 18px}
#rk-night-guide .rk-night-cta a.rk-night-cta-button:hover{background:#fff;color:var(--rk-orange-deep)}
#rk-night-guide .rk-night-cta small{display:block;color:#c0d6df;margin-top:11px;font-size:.76rem}
#rk-night-guide .rk-night-steps{counter-reset:nightstep;display:grid;gap:13px;margin-top:26px}
#rk-night-guide .rk-night-step{position:relative;padding:17px 18px 17px 64px;background:#fff;border:1px solid var(--rk-line);border-radius:12px}
#rk-night-guide .rk-night-step::before{counter-increment:nightstep;content:counter(nightstep);position:absolute;top:17px;left:17px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;color:#073b4d;background:var(--rk-cyan);border-radius:9px;font-weight:900}
#rk-night-guide .rk-night-step h3{color:var(--rk-ink);font-size:1.02rem;line-height:1.3;margin:0}
#rk-night-guide .rk-night-step p{color:var(--rk-copy);margin:5px 0 0}
#rk-night-guide .rk-night-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:27px}
#rk-night-guide .rk-night-source{background:#f2f7f9;border:1px solid #cfe0e7;border-radius:13px;padding:20px}
#rk-night-guide .rk-night-source a{font-weight:900}
#rk-night-guide .rk-night-source p{color:var(--rk-copy);margin:7px 0 0}
#rk-night-guide .rk-night-faq{display:grid;gap:11px;margin-top:27px}
#rk-night-guide .rk-night-faq details{background:#fff;border:1px solid var(--rk-line);border-radius:12px;overflow:hidden}
#rk-night-guide .rk-night-faq summary{cursor:pointer;position:relative;padding:17px 50px 17px 19px;color:var(--rk-ink);font-weight:900;list-style:none}
#rk-night-guide .rk-night-faq summary::-webkit-details-marker{display:none}
#rk-night-guide .rk-night-faq summary::after{content:"+";position:absolute;right:19px;top:8px;color:var(--rk-cyan-deep);font-size:1.55rem}
#rk-night-guide .rk-night-faq details[open] summary::after{content:"−"}
#rk-night-guide .rk-night-faq-answer{border-top:1px solid var(--rk-line);padding:16px 19px;color:var(--rk-copy)}
#rk-night-guide .rk-night-faq-answer p{margin:0}
#rk-night-guide .rk-night-author{padding:62px 58px;background:#eef6f8;border-top:1px solid var(--rk-line)}
#rk-night-guide .rk-night-author-layout{display:grid;grid-template-columns:290px minmax(0,1fr);background:#fff;border:1px solid #cbdde5;border-radius:20px;overflow:hidden;margin-top:25px}
#rk-night-guide .rk-night-author-side{display:flex;align-items:center;flex-direction:column;background:var(--rk-navy);color:#fff;text-align:center;padding:34px 25px}
#rk-night-guide .rk-night-author-photo{background:#fff;width:156px;border:6px solid rgba(255,255,255,.22);border-radius:50%;overflow:hidden}
#rk-night-guide .rk-night-author-name{font-size:1.24rem;font-weight:900;margin-top:19px}
#rk-night-guide .rk-night-author-role{color:#bbd2db;font-size:.83rem;margin:7px 0 0}
#rk-night-guide .rk-night-social{display:flex;gap:9px;margin-top:19px}
#rk-night-guide .rk-night-social a{display:flex;align-items:center;justify-content:center;border:1px solid #55798b;border-radius:50%;width:42px;height:42px;text-decoration:none;color:#fff;font-weight:900}
#rk-night-guide .rk-night-social a:hover{color:var(--rk-navy);background:var(--rk-cyan)}
#rk-night-guide .rk-night-author-main{padding:36px}
#rk-night-guide .rk-night-author-title{font-size:clamp(1.8rem,3vw,2.8rem)}
#rk-night-guide .rk-night-author-main>p{color:var(--rk-copy);margin:15px 0 0}
#rk-night-guide .rk-night-author-quote{background:#f5fafb;border:1px solid #cfe0e7;border-left:6px solid var(--rk-cyan);border-radius:12px;color:var(--rk-ink);font-size:1.02rem;font-weight:700;font-style:italic;padding:18px 20px;margin-top:20px}
#rk-night-guide .rk-night-author-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:20px}
#rk-night-guide .rk-night-author-facts div{background:#eef7f9;border:1px solid #d2e4e9;border-radius:11px;color:var(--rk-copy);font-size:.82rem;padding:12px}
#rk-night-guide .rk-night-author-facts strong{display:block;color:var(--rk-cyan-deep);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
@media(max-width:1000px){
 #rk-night-guide .rk-night-grid.is-four{grid-template-columns:repeat(2,minmax(0,1fr))}
 #rk-night-guide .rk-night-result-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:820px){
 #rk-night-guide .rk-night-hero,#rk-night-guide .rk-night-section,#rk-night-guide .rk-night-author{padding-left:28px;padding-right:28px}
 #rk-night-guide .rk-night-hero::before{left:28px}
 #rk-night-guide .rk-night-nav{padding:18px 22px}
 #rk-night-guide .rk-night-author-layout{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:680px){
 #rk-night-guide .rk-night-hero{padding-top:54px;padding-bottom:42px}
 #rk-night-guide .rk-night-section,#rk-night-guide .rk-night-author{padding-top:44px;padding-bottom:44px}
 #rk-night-guide .rk-night-grid,#rk-night-guide .rk-night-grid.is-two,#rk-night-guide .rk-night-grid.is-four,
 #rk-night-guide .rk-night-fields,#rk-night-guide .rk-night-map-grid,#rk-night-guide .rk-night-sources,
 #rk-night-guide .rk-night-author-facts{grid-template-columns:minmax(0,1fr)}
 #rk-night-guide .rk-night-tool,#rk-night-guide .rk-night-map,#rk-night-guide .rk-night-cta{padding:19px}
 #rk-night-guide .rk-night-tool-actions{display:grid}
 #rk-night-guide .rk-night-primary,#rk-night-guide .rk-night-secondary,#rk-night-guide .rk-night-cta a.rk-night-cta-button{text-align:center;width:100%}
 #rk-night-guide .rk-night-table-wrap{overflow:visible}
 #rk-night-guide table,#rk-night-guide thead,#rk-night-guide tbody,#rk-night-guide tr,#rk-night-guide th,#rk-night-guide td{display:block;min-width:0;width:100%}
 #rk-night-guide thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 #rk-night-guide tbody{display:grid;gap:13px}
 #rk-night-guide tbody tr{border:1px solid var(--rk-line);border-radius:12px;overflow:hidden}
 #rk-night-guide td,#rk-night-guide td:first-child,#rk-night-guide td:last-child{border:0;border-bottom:1px solid var(--rk-line);padding:12px 15px}
 #rk-night-guide td:last-child{border-bottom:0}
 #rk-night-guide td::before{content:attr(data-label);display:block;color:var(--rk-cyan-deep);text-transform:uppercase;font-size:.71rem;font-weight:900;letter-spacing:.05em;margin-bottom:4px}
 #rk-night-guide .rk-night-author-main{padding:23px 19px}
}
@media(max-width:430px){
 #rk-night-guide .rk-night-hero,#rk-night-guide .rk-night-section,#rk-night-guide .rk-night-author{padding-left:18px;padding-right:18px}
 #rk-night-guide .rk-night-hero::before{left:18px}
 #rk-night-guide .rk-night-nav{padding:15px}
 #rk-night-guide .rk-night-nav-label{flex:0 0 100%}
 #rk-night-guide .rk-night-nav a{flex:1 1 calc(50% - 8px);text-align:center}
 #rk-night-guide .rk-night-hero-title{font-size:2.18rem}
 #rk-night-guide .rk-night-title{font-size:1.88rem}
 #rk-night-guide .rk-night-map-panel,#rk-night-guide .rk-night-result{padding:17px}
 #rk-night-guide .rk-night-choice{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){
 #rk-night-guide *,#rk-night-guide *::before,#rk-night-guide *::after{scroll-behavior:auto!important;transition-duration:.01ms!important}
}
</style>

<article id="rk-night-guide" aria-labelledby="rk-night-visual-title">
<div class="rk-night-shell">
<header class="rk-night-hero">
  <span class="rk-night-kicker">Sterowanie podłogówką · poradnik techniczny</span>
  <div class="rk-night-hero-title" id="rk-night-visual-title">Wyłączanie podłogówki na noc: <span>oszczędność czy poranny problem?</span></div>
  <p class="rk-night-hero-lead">To, czy warto obniżyć temperaturę nocą, zależy od tego, jak szybko stygnie dom, jaką bezwładność ma podłoga i w jaki sposób źródło ciepła wraca do pracy. „Wyłączyć ogrzewanie” może oznaczać cztery zupełnie różne działania.</p>
  <div class="rk-night-tags" aria-label="Tematy artykułu"><span>pompa ciepła i kocioł</span><span>podłoga mokra i sucha</span><span>obniżenie a przerwa</span><span>komfort rano</span><span>test zużycia energii</span></div>
  <div class="rk-night-meta"><span>Autor: <strong>Robert Kucharski</strong></span><span>Czas czytania: <strong>około 18 minut</strong></span><span>Opracowanie: <strong>26 września 2026 r.</strong></span></div>
</header>

<nav class="rk-night-nav" aria-label="Na skróty – sekcje artykułu">
 <span class="rk-night-nav-label">Na skróty</span>
 <a href="#rk-night-answer">Szybka odpowiedź</a><a href="#rk-night-definitions">Co wyłączasz?</a><a href="#rk-night-physics">Fizyka</a>
 <a href="#rk-night-source">Źródło ciepła</a><a href="#rk-night-analyzer-section">Analizator</a><a href="#rk-night-map-section">Mapa doby</a>
 <a href="#rk-night-when">Kiedy obniżać?</a><a href="#rk-night-savings">Koszty</a><a href="#rk-night-test">Test w domu</a>
 <a href="#rk-night-settings">Ustawienia</a><a href="#rk-night-errors">Błędy</a><a href="#rk-night-summary">Podsumowanie</a>
 <a href="#rk-night-sources">Źródła</a><a href="#rk-night-faq">FAQ</a><a href="#rk-night-author">Autor</a>
</nav>

<section class="rk-night-section" id="rk-night-answer">
 <span class="rk-night-eyebrow">Odpowiedź w minutę</span>
 <h2 class="rk-night-title">Czy wyłączać ogrzewanie podłogowe na noc?</h2>
 <p class="rk-night-lead"><strong>Najpierw sprawdź, czy nocne obniżenie rzeczywiście obniża temperaturę pomieszczeń.</strong> W ciężkiej podłodze z jastrychem kilkugodzinna przerwa w dostarczaniu ciepła może nie dać wyraźnego spadku temperatury w pokoju; za to rano nadal odczujesz opóźnienie przy powrocie do komfortu.</p>
 <div class="rk-night-answer"><strong>Zamiast odcinać zasilanie kotła albo pompy ciepła, porównaj stabilną pracę z niewielką zmianą nastawy przewidzianą przez sterownik.</strong><p>Jeżeli pokój niemal nie stygnie, korzyść z nocnej pauzy może być znikoma. Jeśli wyraźnie stygnie, oszczędność ciepła jest możliwa, ale dla pompy ciepła trzeba jeszcze sprawdzić sposób dogrzania, zużycie prądu, ewentualną grzałkę i taryfę. Nie ma jednej nastawy ani procentu oszczędności dla każdego domu.</p></div>
 <div class="rk-night-grid">
  <article class="rk-night-card"><span class="rk-night-badge">1</span><h3>Poznaj rodzaj posadzki</h3><p>Masywny jastrych oddaje wcześniej zgromadzone ciepło; lekki system suchy może reagować szybciej. Znaczenie ma także cała konstrukcja budynku.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">2</span><h3>Sprawdź efekt w pokojach</h3><p>Zmiana nastawy termostatu nie dowodzi spadku temperatury powietrza. Zmierz temperaturę wieczorem, nad ranem i po przywróceniu grzania.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">3</span><h3>Obserwuj źródło</h3><p>W pompie ciepła znaczenie ma sprawność podczas nadrabiania ciepła, przepływ i praca grzałki; przy kotle także sterowanie obiegiem.</p></article>
 </div>
 <p class="rk-night-copy">Wpis dotyczy przede wszystkim <strong>wodnego ogrzewania podłogowego</strong>. Maty elektryczne w cienkich warstwach mogą reagować inaczej. O czasie reakcji konkretnej podłogi więcej piszę w poradniku <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a>; tutaj skupiamy się na decyzji o nocnym sterowaniu.</p>
</section>

<section class="rk-night-section is-soft" id="rk-night-definitions">
 <span class="rk-night-eyebrow">Najpierw ustal znaczenie słowa „wyłączyć”</span>
 <h2 class="rk-night-title">Cztery różne działania i cztery różne skutki</h2>
 <p class="rk-night-lead">Stwierdzenie „wyłączę podłogówkę na noc” nie mówi jeszcze, co ma zrobić sterownik. Warto oddzielić zasilanie urządzenia, żądanie grzania pomieszczenia i temperaturę wody.</p>
 <div class="rk-night-table-wrap"><table>
 <thead><tr><th>Działanie</th><th>Co zmienia</th><th>Na co uważać</th></tr></thead>
 <tbody>
  <tr><td data-label="Działanie"><strong>Odłączenie źródła od prądu</strong></td><td data-label="Co zmienia">Wyłącza zasilanie urządzenia, a potencjalnie jego automatykę i funkcje ochronne.</td><td data-label="Na co uważać">Nie stosuj jako nocnego harmonogramu. Postępuj według instrukcji danego źródła.</td></tr>
  <tr><td data-label="Działanie"><strong>Pauza żądania ogrzewania CO</strong></td><td data-label="Co zmienia">Sterownik przestaje zgłaszać zapotrzebowanie na ciepło dla wybranej strefy lub obiegu.</td><td data-label="Na co uważać">Posadzka nadal oddaje energię. Sprawdź minimalny przepływ, działanie automatyki i skutki porannego powrotu.</td></tr>
  <tr><td data-label="Działanie"><strong>Obniżenie nastawy pokojowej</strong></td><td data-label="Co zmienia">Sterownik dąży do niższej temperatury pomieszczenia; reakcja zależy od miejsca i roli termostatu.</td><td data-label="Na co uważać">Sprawdź, czy temperatura faktycznie spada. Zmiana o kilka stopni na ekranie nie jest pomiarem oszczędności.</td></tr>
  <tr><td data-label="Działanie"><strong>Zmiana temperatury zasilania</strong></td><td data-label="Co zmienia">Wpływa na temperaturę wody dostarczanej do obwodów; w pogodówce przez krzywą lub korektę.</td><td data-label="Na co uważać">Nie podnoś jej automatycznie rano „na zapas”; oceń zgodność z projektem i ograniczeniami posadzki.</td></tr>
 </tbody></table></div>
 <div class="rk-night-note is-alert"><p><strong>Ważne rozróżnienie:</strong> nocna pauza w ogrzewaniu pomieszczeń nie jest tym samym, co pozbawienie pompy ciepła lub kotła zasilania. Automatyka może nadal potrzebować energii do zabezpieczeń i obsługi ciepłej wody użytkowej.</p></div>
</section>

<section class="rk-night-section" id="rk-night-physics">
 <span class="rk-night-eyebrow">Bezwładność posadzki i budynku</span>
 <h2 class="rk-night-title">Co dzieje się po wstrzymaniu grzania?</h2>
 <p class="rk-night-lead">Woda w pętlach, jastrych, okładzina, powietrze i przegrody nie zmieniają temperatury w tej samej chwili. Termostat może zakończyć żądanie ciepła wieczorem, a posadzka nadal przez pewien czas przekazuje energię do pokoju.</p>
 <div class="rk-night-grid is-four">
  <article class="rk-night-card"><span class="rk-night-badge">Ź</span><h3>Źródło ciepła</h3><p>Może przerwać ogrzewanie CO, przejść w podtrzymanie albo pracować dla innych zadań. Zależy to od konfiguracji.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">W</span><h3>Woda w pętlach</h3><p>Jej temperatura i przepływ podążają za ustawieniami obiegu. Sama woda nie opisuje ilości ciepła zgromadzonego w podłodze.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">P</span><h3>Posadzka</h3><p>W ciężkiej konstrukcji nadal oddaje ciepło po ograniczeniu zasilania. W lekkiej tempo zmian może być szybsze.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">D</span><h3>Dom</h3><p>Pokój traci ciepło do otoczenia, lecz jego temperatura zależy również od izolacji, wentylacji, zysków i przegród.</p></article>
 </div>
 <p class="rk-night-copy">Jeżeli temperatura wnętrza faktycznie maleje, różnica między nią a temperaturą na zewnątrz staje się mniejsza, więc <strong>straty ciepła budynku mogą spaść</strong>. To jednak nie przesądza o rachunku za prąd ani o wygodzie: do oceny potrzebne są także sprawność źródła przy ponownym ogrzewaniu i czas powrotu do komfortu.</p>
 <p class="rk-night-copy">Dużą rolę masy podłogi opisuje artykuł <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">podłoga jako magazyn ciepła</a>. Tu celowo nie przypisujemy każdej posadzce jednej liczby godzin ani tej samej pojemności cieplnej.</p>
</section>

<section class="rk-night-section is-soft" id="rk-night-source">
 <span class="rk-night-eyebrow">Ten sam harmonogram nie pasuje do każdego źródła</span>
 <h2 class="rk-night-title">Pompa ciepła, kocioł i lekka podłoga – kiedy reakcja się zmienia?</h2>
 <p class="rk-night-lead">Ograniczenie ciepła w nocy może zmniejszyć straty budynku tylko wtedy, gdy wnętrze rzeczywiście stygnie. Sposób, w jaki instalacja później nadrabia temperaturę, wpływa na koszt i komfort.</p>
 <div class="rk-night-grid">
  <article class="rk-night-card"><span class="rk-night-badge">PC</span><h3>Pompa ciepła</h3><p>Jeżeli rano potrzebuje znacznie cieplejszej wody albo uruchamia grzałkę, mniejsze nocne zapotrzebowanie na ciepło nie musi oznaczać mniejszego poboru prądu. W dobrze dobranej instalacji możliwa jest też łagodna korekta bez takiego efektu. Obserwuj rzeczywistą pracę urządzenia.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">K</span><h3>Kocioł i automat pogodowy</h3><p>Nocne obniżenie może mieć sens, gdy wnętrze stygnie i instalacja bez problemu przywraca komfort. Sam fakt posiadania kotła nie uzasadnia jednak codziennego wyłączania obiegu. Liczą się modulacja, hydraulika i sposób sterowania.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">S</span><h3>Suchy, lżejszy system</h3><p>Może szybciej reagować na przerwę lub zmianę nastawy niż podłoga z masywnym jastrychem. Ostateczny czas nadal zależy od warstw, okładziny i strat pomieszczenia. Zobacz <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-wodne-bez-wylewki/">system wodny bez wylewki</a>.</p></article>
 </div>
 <div class="rk-night-note"><p><strong>Automatyka ma znaczenie:</strong> gdy jeden termostat zamyka wszystkie pętle, pompa ciepła może utracić wymagany przepływ, o ile układ nie został do tego przystosowany. Nie ustawiaj nocnego programu wbrew schematowi hydrauliki i instrukcji źródła. Powiązania sterowania omawia poradnik <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">regulator pogodowy ogrzewania</a>.</p></div>
</section>

<section class="rk-night-section is-dark" id="rk-night-analyzer-section">
 <span class="rk-night-eyebrow">Narzędzie 1 · wskazówka do testu, nie wycena</span>
 <h2 class="rk-night-title">Analizator nocnego sterowania podłogówką</h2>
 <p class="rk-night-lead">Odpowiedz na podstawie własnej instalacji. Wynik wskaże rozsądny punkt startu i ograniczenia, lecz nie oblicza oszczędności ani nie zastępuje instrukcji urządzenia.</p>
 <div class="rk-night-tool">
  <div class="rk-night-tool-head"><h3>Co dzieje się w Twoim domu między wieczorem a porankiem?</h3><p>Jeśli nie znasz odpowiedzi, zostaw „Nie wiem” – wynik powie, które dane zebrać przed zmianą harmonogramu.</p></div>
  <form id="rk-night-form">
   <div class="rk-night-fields">
    <label class="rk-night-field" for="rk-night-source-input"><span>Główne źródło ogrzewania pomieszczeń</span><select id="rk-night-source-input" name="source"><option value="unknown">Nie wiem / układ mieszany</option><option value="heatpump">Pompa ciepła</option><option value="boiler">Kocioł</option><option value="other">Inne źródło</option></select></label>
    <label class="rk-night-field" for="rk-night-floor-input"><span>Konstrukcja ogrzewanej podłogi</span><select id="rk-night-floor-input" name="floor"><option value="unknown">Nie wiem</option><option value="heavy">Masywny jastrych / ciężka podłoga</option><option value="light">Lekka / sucha konstrukcja</option></select></label>
    <label class="rk-night-field" for="rk-night-action-input"><span>Jaką zmianę chcesz wprowadzić?</span><select id="rk-night-action-input" name="action"><option value="unknown">Jeszcze nie zdecydowano</option><option value="steady">Pozostawić stabilną pracę</option><option value="setback">Obniżyć nastawę pokojową</option><option value="pause">Wstrzymać nocne żądanie ogrzewania CO</option><option value="power">Codziennie odłączać źródło od zasilania</option><option value="boost">Rano mocno podnosić temperaturę zasilania</option></select></label>
    <label class="rk-night-field" for="rk-night-drop-input"><span>Rzeczywista zmiana temperatury pokoju nad ranem</span><select id="rk-night-drop-input" name="drop"><option value="unknown">Nie mierzono</option><option value="none">Bez dostrzegalnej zmiany</option><option value="small">Niewielki spadek</option><option value="large">Wyraźny spadek</option></select></label>
    <label class="rk-night-field" for="rk-night-return-input"><span>Powrót do komfortu po nocnej zmianie</span><select id="rk-night-return-input" name="return"><option value="unknown">Nie sprawdzono</option><option value="quick">Rano komfort jest osiągnięty</option><option value="late">Komfort wraca zbyt późno</option><option value="never">Pokój wciąż nie dogrzewa</option></select></label>
    <label class="rk-night-field" for="rk-night-goal-input"><span>Główny cel</span><select id="rk-night-goal-input" name="goal"><option value="unknown">Nie wiem / chcę porównać</option><option value="comfort">Komfort snu</option><option value="energy">Mniejsze zużycie energii</option><option value="tariff">Niższy rachunek przy taryfie godzinowej</option></select></label>
    <label class="rk-night-field" for="rk-night-flow-input"><span>Warunki sterowania potwierdzone w instrukcji / projekcie</span><select id="rk-night-flow-input" name="flow"><option value="unknown">Nie sprawdzono</option><option value="yes">Tak, znam ograniczenia przepływu i źródła</option><option value="no">Nie, plan zakłada zamknięcie wszystkich pętli mimo ograniczeń</option></select></label>
   </div>
   <div class="rk-night-tool-actions"><button class="rk-night-primary" type="submit">Pokaż wskazówkę dla mojego układu</button><button class="rk-night-secondary" id="rk-night-reset" type="button">Wyczyść odpowiedzi</button></div>
  </form>
  <div class="rk-night-result" id="rk-night-result" aria-live="polite" aria-atomic="true">
   <h3 id="rk-night-result-title">Uzupełnij odpowiedzi i uruchom analizę</h3>
   <p id="rk-night-result-intro">Zobaczysz osobno proponowany punkt startu, przyczynę i obserwacje potrzebne do sprawdzenia efektu.</p>
   <div class="rk-night-result-grid">
    <div class="rk-night-result-card"><h4>Punkt startu</h4><ul id="rk-night-result-start"><li>Wybierz źródło, posadzkę i sposób sterowania.</li></ul></div>
    <div class="rk-night-result-card"><h4>Dlaczego</h4><ul id="rk-night-result-why"><li>Wynik nie jest gotową nastawą dla każdego domu.</li></ul></div>
    <div class="rk-night-result-card"><h4>Co obserwować</h4><ul id="rk-night-result-watch"><li>Temperaturę pomieszczenia i zachowanie źródła.</li></ul></div>
   </div>
   <p class="rk-night-small">To pomoc w wyborze testu, a nie ocena bezpieczeństwa konkretnej instalacji ani instrukcja zmiany nastaw serwisowych.</p>
  </div>
 </div>
</section>

<section class="rk-night-section" id="rk-night-map-section">
 <span class="rk-night-eyebrow">Narzędzie 2 · mapa edukacyjna</span>
 <h2 class="rk-night-title">Co dzieje się od wieczora do następnego dnia?</h2>
 <p class="rk-night-lead">Wybierz sposób sterowania, rodzaj posadzki i porę doby. Cztery niezależne moduły wyjaśniają, dlaczego źródło, woda, podłoga i powietrze nie zmieniają temperatury jednocześnie.</p>
 <div class="rk-night-map" id="rk-night-map">
  <h3>Mapa jednej doby pracy podłogówki</h3>
  <p class="rk-night-map-intro">To porównanie <strong>jakościowe</strong>. Nie są to przewidywane temperatury, godziny nagrzewania ani oszczędności Twojego domu.</p>
  <div class="rk-night-map-controls" id="rk-night-map-controls" hidden="">
   <div><span class="rk-night-control-label" id="rk-night-strategy-label">Sposób sterowania</span>
    <div class="rk-night-button-row" role="group" aria-labelledby="rk-night-strategy-label">
     <button class="rk-night-choice" type="button" data-rk-strategy="steady" aria-pressed="true">Stała nastawa</button>
     <button class="rk-night-choice" type="button" data-rk-strategy="setback" aria-pressed="false">Nocne obniżenie</button>
     <button class="rk-night-choice" type="button" data-rk-strategy="pause" aria-pressed="false">Pauza grzania CO</button>
    </div>
   </div>
   <div><span class="rk-night-control-label" id="rk-night-mass-label">Konstrukcja podłogi</span>
    <div class="rk-night-button-row" role="group" aria-labelledby="rk-night-mass-label">
     <button class="rk-night-choice" type="button" data-rk-mass="heavy" aria-pressed="true">Jastrych masywny</button>
     <button class="rk-night-choice" type="button" data-rk-mass="light" aria-pressed="false">System lekki / suchy</button>
    </div>
   </div>
   <div><span class="rk-night-control-label" id="rk-night-phase-label">Pora doby</span>
    <div class="rk-night-button-row rk-night-phase-choices" role="group" aria-labelledby="rk-night-phase-label">
     <button class="rk-night-choice" type="button" data-rk-phase="evening" aria-pressed="false">Wieczór</button>
     <button class="rk-night-choice" type="button" data-rk-phase="night" aria-pressed="true">Noc</button>
     <button class="rk-night-choice" type="button" data-rk-phase="morning" aria-pressed="false">Poranek</button>
     <button class="rk-night-choice" type="button" data-rk-phase="later" aria-pressed="false">Później</button>
    </div>
   </div>
  </div>
  <div class="rk-night-map-panel" role="status" aria-live="polite" aria-atomic="true">
   <h4 id="rk-night-map-title">Stała nastawa · masywny jastrych · noc</h4>
   <p id="rk-night-map-intro">Jeżeli nadal występuje zapotrzebowanie na ciepło, instalacja uzupełnia bieżące straty budynku.</p>
   <div class="rk-night-map-grid">
    <div class="rk-night-map-card"><strong>Źródło ciepła</strong><p id="rk-night-map-source">Pracuje zgodnie z własną automatyką i zapotrzebowaniem; nie musi grzać bez przerwy.</p></div>
    <div class="rk-night-map-card"><strong>Woda w pętlach</strong><p id="rk-night-map-water">W zależności od regulacji krąży przy otwartych obwodach i oddaje ciepło do podłogi.</p></div>
    <div class="rk-night-map-card"><strong>Posadzka</strong><p id="rk-night-map-floor">Masywna warstwa zmienia temperaturę powoli i wyrównuje krótkie wahania.</p></div>
    <div class="rk-night-map-card"><strong>Pomieszczenie</strong><p id="rk-night-map-room">Temperatura ma pozostawać blisko nastawy, jeśli układ ma dostateczną moc.</p></div>
   </div>
  </div>
  <p class="rk-night-caution">Po odcięciu grzania dom może stygnąć szybciej albo wolniej od pokazanego przykładu. Wiele zależy od izolacji, wentylacji, pogody i wcześniejszego nagrzania przegród.</p>
 </div>
 <div class="rk-night-note is-positive"><p><strong>Jak czytać mapę:</strong> przy przełączaniu scenariuszy porównuj tę samą porę doby. Gdy źródło przerywa pracę, podłoga i pokój nie reagują natychmiast; gdy źródło wraca, temperatura pokoju również nie rośnie od razu.</p></div>
 <!-- Środkowe CTA: naturalne przejście od wyjaśnienia zachowania posadzki do projektowania nowej instalacji. -->
 <aside class="rk-night-cta" aria-label="Projekt nowego ogrzewania podłogowego">
  <div class="rk-night-cta-title">Dopiero planujesz podłogówkę? Ustal jej parametry przed wyborem automatyki</div>
  <p>Nocny harmonogram nie skoryguje zbyt małej powierzchni grzewczej, nieprawidłowych przepływów ani niedobranej temperatury zasilania. Projekt określa obciążenie pomieszczeń, podział pętli i warunki pracy instalacji. To punkt wyjścia do decyzji, jak nią sterować.</p>
  <a class="rk-night-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź zakres projektu podłogówki</a>
  <small>Odnośnik prowadzi do płatnej usługi projektowej autora. Jeśli masz już działającą instalację, zacznij od testu opisanych niżej ustawień.</small>
 </aside>
</section>

<section class="rk-night-section is-soft" id="rk-night-when">
 <span class="rk-night-eyebrow">Decyzja zależy od reakcji, a nie od mody</span>
 <h2 class="rk-night-title">Kiedy testować nocne obniżenie, a kiedy zostać przy stabilnej pracy?</h2>
 <p class="rk-night-lead">Nie ma sprzeczności między fizyką strat ciepła a ostrożnością przy sterowaniu. Jeśli dom stygnie, może potrzebować mniej energii cieplnej przez część nocy. O tym, czy zmiana jest użyteczna, decyduje także zachowanie źródła oraz komfort po obudzeniu.</p>
 <div class="rk-night-grid is-two">
  <article class="rk-night-card"><span class="rk-night-badge">TEST</span><h3>Test obniżenia ma sens, gdy…</h3><ul class="rk-night-list"><li>pokój rzeczywiście stygnie i jest cieplejszy, niż chcesz mieć podczas snu;</li><li>nocne ustawienie nie wywołuje kłopotów z przepływem ani ochroną źródła;</li><li>poranny powrót do komfortu odbywa się bez wymuszania niepożądanych wysokich parametrów;</li><li>możesz odróżnić energię na ogrzewanie pomieszczeń od pozostałych odbiorników.</li></ul></article>
  <article class="rk-night-card"><span class="rk-night-badge">STAŁA</span><h3>Stabilna praca jest dobrym punktem wyjścia, gdy…</h3><ul class="rk-night-list"><li>masywny jastrych i budynek prawie nie zmieniają temperatury podczas nocy;</li><li>rano przez długi czas pozostaje zbyt chłodno;</li><li>przy nadrabianiu źródło podnosi temperaturę wody lub uruchamia dodatkowe grzanie;</li><li>nie wiadomo, co robią wszystkie termostaty, siłowniki i pompa obiegowa.</li></ul></article>
 </div>
 <p class="rk-night-copy">Gdy nocą zależy Ci przede wszystkim na chłodniejszej <strong>sypialni</strong>, nie musisz od razu przerywać ogrzewania całego domu. Przy zrównoważonym układzie można rozważyć odpowiednie sterowanie strefą, ale sprawdź, czy zamykanie pojedynczych obwodów nie zaburza przepływów i czy sypialnia faktycznie osiąga niższą temperaturę.</p>
 <p class="rk-night-copy">Jeżeli korzystasz z pompy ciepła i regulatora pogodowego, obserwuj także pogodową krzywą grzewczą. Ustawienie termostatu w pokoju może ograniczać czas grzania, natomiast niekoniecznie zmienia sposób, w jaki źródło przygotowuje wodę. To zależy od połączenia sterowników.</p>
</section>

<section class="rk-night-section" id="rk-night-savings">
 <span class="rk-night-eyebrow">Zużycie ciepła, prądu i kwota na rachunku</span>
 <h2 class="rk-night-title">Czy wyłączanie podłogówki na noc naprawdę oszczędza?</h2>
 <p class="rk-night-lead">To trzy osobne pytania: czy dom otrzymał mniej <strong>ciepła</strong>, czy źródło pobrało mniej <strong>energii</strong> oraz czy zapłaciłeś mniej <strong>pieniędzy</strong>. Odpowiedzi nie zawsze są jednakowe.</p>
 <div class="rk-night-table-wrap"><table>
 <thead><tr><th>Co porównujesz</th><th>Kiedy może spaść</th><th>Czego to jeszcze nie dowodzi</th></tr></thead>
 <tbody>
  <tr><td data-label="Co porównujesz"><strong>Ciepło oddane domowi</strong></td><td data-label="Kiedy może spaść">Gdy wewnątrz naprawdę jest chłodniej przez wystarczającą część doby.</td><td data-label="Czego to jeszcze nie dowodzi">Nie przesądza o liczbie kWh prądu potrzebnych pompie do późniejszego dogrzania.</td></tr>
  <tr><td data-label="Co porównujesz"><strong>Prąd pompy ciepła</strong></td><td data-label="Kiedy może spaść">Gdy mniejsze straty nie są niwelowane przez gorszą sprawność lub dodatkową grzałkę przy odzyskiwaniu temperatury.</td><td data-label="Czego to jeszcze nie dowodzi">Niższy pobór prądu nie musi oznaczać niższego kosztu w taryfie godzinowej.</td></tr>
  <tr><td data-label="Co porównujesz"><strong>Koszt ogrzewania</strong></td><td data-label="Kiedy może spaść">Gdy zużycie i rozkład pracy względem cen godzinowych łącznie dają niższy rachunek.</td><td data-label="Czego to jeszcze nie dowodzi">Tani okres taryfowy nie uzasadnia przegrzewania podłogi ponad komfort lub ograniczenia okładziny.</td></tr>
 </tbody></table></div>
 <p class="rk-night-copy"><strong>Poranny rozruch nie unieważnia automatycznie nocnej oszczędności ciepła.</strong> Energia na powrót do temperatury jest potrzebna, ponieważ układ wcześniej stygł. Pytanie brzmi, czy suma energii i kosztów całego okresu jest mniejsza przy tym samym komforcie oraz pogodzie. Slogany „każda nocna pauza oszczędza” i „poranne dogrzanie zawsze zużyje więcej” są równie niewiarygodne.</p>
 <div class="rk-night-note"><p><strong>Dlaczego nie ma tutaj kalkulatora procentów?</strong> Potrzebowałby historii temperatur, zużycia CO, pracy pompy lub kotła, cen w poszczególnych godzinach i danych budynku. Wpisanie tylko metrażu i nastawy dałoby wynik pozornie dokładny.</p></div>
 <p class="rk-night-copy">Przenoszenie części grzania na tanią godzinę to osobny problem sterowania i magazynowania ciepła. Zobacz, jak działa <a href="https://projekt-ogrzewania.pl/najwiekszy-magazyn-energii-w-twoim-domu-juz-istnieje-i-prawdopodobnie-po-nim-chodzisz/">akumulacja ciepła w podłodze</a>; sam rachunek wymaga jednak rzeczywistych cen oraz pomiaru energii.</p>
</section>

<section class="rk-night-section is-soft" id="rk-night-test">
 <span class="rk-night-eyebrow">Porównanie, które możesz przeprowadzić</span>
 <h2 class="rk-night-title">Jak sprawdzić nocne ustawienia w swoim domu?</h2>
 <p class="rk-night-lead">Zmierz efekt zanim uznasz, że harmonogram działa. Przy ciężkiej podłodze nie oceniaj jej po jednej nocy; porównaj kilka pełnych dób przy możliwie podobnej pogodzie i bez jednoczesnych zmian pozostałych nastaw.</p>
 <div class="rk-night-steps">
  <article class="rk-night-step"><h3>Zapisz bazowy tryb pracy</h3><p>Przez kilka dni zanotuj nastawy dzienne i nocne, temperaturę w reprezentatywnych pokojach, pogodę, harmonogram CO i dostępny odczyt energii. Nie zmieniaj w tym czasie krzywej, przepływów i termostatów równocześnie.</p></article>
  <article class="rk-night-step"><h3>Sprawdź, czy sterowniki obsługują wybraną strategię</h3><p>Ustal, czy program steruje pomieszczeniem, obiegiem, źródłem czy temperaturą wody. Dla pompy ciepła potwierdź wymagania minimalnego przepływu i dostępne funkcje ochronne.</p></article>
  <article class="rk-night-step"><h3>Wprowadź jedną zmianę naraz</h3><p>Wypróbuj łagodniejszą nastawę nocną albo dopuszczony harmonogram CO. Nie odłączaj urządzenia od zasilania i nie podnoś równolegle temperatury zasilania.</p></article>
  <article class="rk-night-step"><h3>Obserwuj pokój, a nie tylko ekran sterownika</h3><p>Notuj temperaturę przed snem, nad ranem, przy wstawaniu oraz później. Zapisz, kiedy komfort wraca i czy ktoś odczuwa wychłodzenie albo przegrzanie.</p></article>
  <article class="rk-night-step"><h3>Zanotuj pracę źródła i rzeczywiste zużycie</h3><p>Sprawdź temperaturę wody, długie okresy nadrabiania, uruchomienie grzałki, ewentualne alarmy oraz liczniki. Jeśli pompa podaje tylko energię łączną, oznacz dni z dużym zużyciem ciepłej wody użytkowej.</p></article>
  <article class="rk-night-step"><h3>Porównaj pełne okresy przy podobnych warunkach</h3><p>Porównaj temperaturę zewnętrzną, wiatr, nasłonecznienie i godziny obecności domowników. Różnicę interpretuj ostrożnie; jeśli warunki były odmienne, powtórz obserwację zamiast ogłaszać procent oszczędności.</p></article>
 </div>
 <div class="rk-night-note is-positive"><p><strong>Co uznać za wynik:</strong> nastawa ma sens, jeśli daje oczekiwany komfort i zgodną z instrukcją pracę źródła. Korzyść energetyczną lub finansową oceniaj dopiero na podstawie porównywalnych pomiarów, a nie liczby godzin, przez które „źródło było wyłączone”.</p></div>
</section>

<section class="rk-night-section" id="rk-night-settings">
 <span class="rk-night-eyebrow">Praktyczne scenariusze</span>
 <h2 class="rk-night-title">Jak ustawić nocną pracę bez pogoni za temperaturą?</h2>
 <div class="rk-night-grid is-two">
  <article class="rk-night-card"><span class="rk-night-badge">A</span><h3>Masywny jastrych i pompa ciepła</h3><p>Rozpocznij od stabilnej pracy w ramach projektu i właściwie ustawionej krzywej. Jeśli dom nocą się przegrzewa, przetestuj przewidzianą przez automatykę łagodną korektę; sprawdź poranny komfort, temperaturę zasilania i dodatkowe dogrzewanie. Brak spadku temperatury pokoju przemawia przeciw długiej pauzie jako metodzie oszczędzania.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">B</span><h3>Sucha podłoga lub pokój szybko stygnący</h3><p>Można sprawdzić nocną zmianę nastawy i odpowiednio wcześnie wznowić ogrzewanie, jeśli sterownik na to pozwala. Dobór godziny zależy od rzeczywistej reakcji, nie od sztywnego schematu „22:00–06:00” dla wszystkich budynków.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">C</span><h3>Sypialnia chłodniejsza niż reszta domu</h3><p>Określ docelowy komfort lokalnie. Sprawdź, czy pojedyncza strefa może pracować inaczej i co się stanie z przepływem przez pozostałe pętle. Sypialnia może pozostać cieplejsza od nastawy przez ciepło oddawane z jastrychu.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">D</span><h3>Weekend, wyjazd i dłuższa nieobecność</h3><p>To inne zadanie niż nocny cykl. Użyj trybu przewidzianego przez automatykę i zachowaj wymagane zabezpieczenia przed mrozem. Uwzględnij wodę użytkową, rury w chłodnych strefach i czas powrotu budynku do komfortu.</p></article>
 </div>
 <p class="rk-night-copy">Jeśli pokój <strong>nie osiąga wymaganej temperatury nawet przy stabilnej pracy</strong>, nocny harmonogram może pogłębić problem. Zamiast dalszej korekty nastaw skorzystaj z poradnika <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/">ogrzewanie podłogowe nie grzeje – diagnostyka krok po kroku</a>.</p>
</section>

<section class="rk-night-section is-soft" id="rk-night-errors">
 <span class="rk-night-eyebrow">Najczęstsze błędne wnioski</span>
 <h2 class="rk-night-title">Czego nie robić tylko dlatego, że nocą grzejniki były zimne?</h2>
 <div class="rk-night-grid">
  <article class="rk-night-card"><span class="rk-night-badge">01</span><h3>Nie odłączaj codziennie prądu</h3><p>Harmonogram ogrzewania nie oznacza wyjęcia wtyczki albo wyłączenia bezpiecznika. Automatyka źródła może odpowiadać za ochronę instalacji i inne zadania.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">02</span><h3>Nie mierz efektu samym termostatem</h3><p>Nastawa nocna to cel sterownika. Dopiero pomiar temperatury pokoju pokazuje, czy obniżenie faktycznie nastąpiło.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">03</span><h3>Nie forsuj gorętszej wody rano</h3><p>Sztuczne przyspieszanie powrotu może pogorszyć pracę pompy ciepła i naruszyć ograniczenia podłogi oraz okładziny. Najpierw sprawdź projekt.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">04</span><h3>Nie zamykaj przypadkowo wszystkich pętli</h3><p>Wymagany przepływ źródła i obiegów musi zostać zachowany zgodnie z projektem. Zachowanie pompy obiegowej przy zamkniętych siłownikach zależy od układu.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">05</span><h3>Nie porównuj rachunków z różnych mrozów</h3><p>Zużycie energii zależy od pogody i korzystania z domu. Dwie nieporównywalne doby nie dowodzą opłacalności harmonogramu.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">06</span><h3>Nie przenoś nastaw z innego domu</h3><p>Ta sama rura i termostat mogą pracować przy innym jastrychu, izolacji, taryfie i źródle. To zmienia reakcję.</p></article>
 </div>
 <p class="rk-night-copy">Obawy dotyczące zbyt wysokiej temperatury wody i powierzchni podłogi opisuje osobny tekst o <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalnej temperaturze zasilania podłogówki</a>.</p>
</section>

<section class="rk-night-section" id="rk-night-summary">
 <span class="rk-night-eyebrow">Decyzja do zastosowania w praktyce</span>
 <h2 class="rk-night-title">Najpierw sprawdź nocny spadek temperatury, potem zdecyduj o sterowaniu</h2>
 <p class="rk-night-lead">Masywna podłoga często wolno reaguje na krótki nocny program, a pompa ciepła zwykle najlepiej współpracuje z przewidywalnym zapotrzebowaniem i odpowiednim przepływem. Z drugiej strony faktyczny spadek temperatury domu może zmniejszyć straty ciepła. Nie rozstrzygaj tego samą zasadą „zawsze włączone” albo „zawsze wyłączone”.</p>
 <div class="rk-night-grid">
  <article class="rk-night-card"><span class="rk-night-badge">01</span><h3>Zdefiniuj cel</h3><p>Osobno nazwij potrzebę chłodniejszej sypialni, mniejszego zużycia energii oraz niższego rachunku w taryfie.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">02</span><h3>Sprawdź możliwości</h3><p>Zapoznaj się z instrukcją źródła i sterowników; poznaj konstrukcję podłogi, wymagania przepływowe i ograniczenia temperatury.</p></article>
  <article class="rk-night-card"><span class="rk-night-badge">03</span><h3>Zmierz pełną dobę</h3><p>Porównaj rzeczywistą temperaturę wnętrza, poranny komfort, pracę źródła i dane zużycia przy podobnej pogodzie.</p></article>
 </div>
 <p class="rk-night-copy">Dla już pracującego układu pierwszym krokiem są obserwacja i prawidłowa regulacja. Jeśli dopiero <strong>planujesz nową instalację lub jej przebudowę</strong>, sposób sterowania powinien wynikać z bilansu pomieszczeń, parametrów wody i obliczonych przepływów.</p>
 <aside class="rk-night-cta" aria-label="Projekt dla planowanej instalacji">
  <div class="rk-night-cta-title">Planujesz podłogówkę? Zaprojektuj parametry, które będzie regulować automatyka</div>
  <p>W projekcie ustalamy obciążenie cieplne pomieszczeń, rozstaw i długości pętli oraz wymagane przepływy. Dzięki temu można dobrać sposób pracy źródła i ocenić możliwości sterowania dla konkretnego budynku.</p>
  <a class="rk-night-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zobacz indywidualny projekt podłogówki</a>
  <small>Odnośnik prowadzi do płatnej usługi projektowej autora. Projekt nowej instalacji nie zastępuje naprawy istniejącej usterki.</small>
 </aside>
</section>

<section class="rk-night-section" id="rk-night-sources">
 <span class="rk-night-eyebrow">Źródła i granice wniosków</span>
 <h2 class="rk-night-title">Na jakich materiałach opiera się poradnik?</h2>
 <p class="rk-night-lead">Źródła opisują sterowanie ogrzewaniem powierzchniowym i pompami ciepła. Żaden dokument nie daje jednej poprawnej nocnej nastawy dla każdego polskiego budynku; o wyborze decyduje konkretny projekt, instalacja i pomiar.</p>
 <div class="rk-night-sources">
  <div class="rk-night-source"><a href="https://www.iso.org/standard/64999.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-6:2018 – sterowanie ogrzewaniem powierzchniowym</a><p>Oficjalna karta części normy poświęconej sterowaniu wbudowanymi wodnymi układami ogrzewania i chłodzenia; wydanie potwierdzone przez ISO w 2024 r.</p></div>
  <div class="rk-night-source"><a href="https://www.iso.org/standard/83786.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-6:2018/Amd 1:2023 – zmiana</a><p>Oficjalny zapis opublikowanej poprawki do części 6 serii ISO 11855.</p></div>
  <div class="rk-night-source"><a href="https://www.seai.ie/sites/default/files/publications/HPAI%20Heat%20Pump%20Code%20of%20Practice.pdf" target="_blank" rel="nofollow noopener noreferrer">Heat Pump Association of Ireland – wytyczne instalacyjne udostępnione przez SEAI</a><p>Opisuje dłuższą reakcję wodnych systemów z pompami ciepła, stabilną pracę i możliwość warunkowego nocnego obniżenia; podanych tam zakresów nie kopiujemy jako domyślnych nastaw w Polsce.</p></div>
  <div class="rk-night-source"><a href="https://www.energy.gov/energysaver/programmable-thermostats" target="_blank" rel="nofollow noopener noreferrer">U.S. Department of Energy – programmable thermostats</a><p>Omawia programowanie termostatów, szczególną bezwładność ogrzewania podłogowego oraz ograniczenia harmonogramów dla części układów z pompami ciepła.</p></div>
 </div>
 <div class="rk-night-note"><p><strong>Zakres artykułu:</strong> opis ma charakter edukacyjny i dotyczy głównie wodnego ogrzewania podłogowego. Nie stanowi instrukcji odłączania urządzenia od zasilania, projektu konkretnego obiegu ani gwarancji oszczędności. W pierwszej kolejności stosuj dokumentację źródła, sterowania i podłogi oraz parametry projektu.</p></div>
</section>

<section class="rk-night-section is-soft" id="rk-night-faq">
 <span class="rk-night-eyebrow">Pytania domowników</span>
 <h2 class="rk-night-title">FAQ – nocna praca ogrzewania podłogowego</h2>
 <div class="rk-night-faq">
  <details><summary>Czy podłogówka musi grzać całą noc?</summary><div class="rk-night-faq-answer"><p>Źródło ciepła nie musi stale wytwarzać ciepła. Przy stabilnej nastawie automatyka uruchamia ogrzewanie zgodnie z zapotrzebowaniem. Warto sprawdzić, czy nocny program rzeczywiście zmienia temperaturę pokoju i czy nie pogarsza komfortu rano.</p></div></details>
  <details><summary>Czy wyłączenie podłogówki na osiem godzin zawsze oszczędza energię?</summary><div class="rk-night-faq-answer"><p>Nie. Jeżeli posadzka i budynek niemal nie stygną, oszczędność ciepła może być mała. Jeśli temperatura faktycznie spada, straty ciepła maleją, ale zużycie prądu i koszt zależą również od sposobu późniejszej pracy źródła.</p></div></details>
  <details><summary>Czy poranne dogrzanie zawsze zużywa więcej niż nocna oszczędność?</summary><div class="rk-night-faq-answer"><p>Nie ma takiej ogólnej reguły. Przy niższej temperaturze domu spadają straty ciepła, lecz źródło musi potem uzupełnić energię. W pompie ciepła niekorzystny sposób nadrabiania może ograniczyć albo odwrócić oszczędność prądu. Trzeba porównać pełne okresy pracy.</p></div></details>
  <details><summary>Czy przy pompie ciepła warto ustawić nocne obniżenie temperatury?</summary><div class="rk-night-faq-answer"><p>Często dobrym punktem wyjścia jest stabilna praca przy możliwie niskiej temperaturze wody i wymaganym przepływie. Niewielkie nocne obniżenie można przetestować, jeśli pozwalają na to sterowanie oraz instrukcja, a poranny powrót nie wywołuje problemów z komfortem i poborem energii.</p></div></details>
  <details><summary>Czy wolno na noc wyłączyć pompę ciepła bezpiecznikiem?</summary><div class="rk-night-faq-answer"><p>Nie używaj odłączania urządzenia od zasilania jako zwykłego harmonogramu. Może ono wymagać zasilania automatyki i funkcji ochronnych. Korzystaj z trybów udostępnionych przez sterownik i instrukcję konkretnego urządzenia.</p></div></details>
  <details><summary>Jaka jest różnica między pauzą CO a obniżeniem temperatury?</summary><div class="rk-night-faq-answer"><p>Pauza czasowo wstrzymuje żądanie ogrzewania pomieszczeń, a obniżenie ustawia niższą temperaturę docelową. Automatyka może realizować te strategie odmiennie. Żadna z nich nie oznacza koniecznie wyłączenia zasilania urządzenia.</p></div></details>
  <details><summary>Dlaczego po obniżeniu nastawy nocą rano wciąż jest ciepło?</summary><div class="rk-night-faq-answer"><p>Masywny jastrych i przegrody nadal oddają wcześniej zgromadzoną energię. W dobrze ocieplonym budynku temperatura powietrza może zmieniać się powoli. Warto sprawdzić temperaturę pokoju, zamiast wnioskować tylko z ustawienia termostatu.</p></div></details>
  <details><summary>Czy sucha podłogówka reaguje szybciej na nocny harmonogram?</summary><div class="rk-night-faq-answer"><p>Lżejsza konstrukcja może reagować szybciej niż ciężka podłoga z jastrychem, ale wynik zależy od wszystkich warstw podłogi, oporu okładziny, mocy źródła i strat pomieszczenia. Nie ma jednego czasu wspólnego dla wszystkich systemów suchych.</p></div></details>
  <details><summary>Jak obniżyć temperaturę w samej sypialni?</summary><div class="rk-night-faq-answer"><p>Najpierw sprawdź, czy sypialnia ma osobny obwód i czy sterowanie strefą jest przewidziane w instalacji. Przy zamykaniu pętli zachowaj wymagany przepływ przez źródło. Pomiary pokażą, czy posadzka pozwala na zauważalny nocny spadek temperatury.</p></div></details>
  <details><summary>Czy podniesienie temperatury zasilania przyspieszy poranne nagrzewanie?</summary><div class="rk-night-faq-answer"><p>Może zwiększyć chwilowy dopływ ciepła, ale nie usuwa bezwładności jastrychu i może pogorszyć sprawność pompy ciepła. Nie przekraczaj ograniczeń źródła, projektu, podłogi i okładziny. Wpierw sprawdź, czy wczesne wznowienie programu wystarcza.</p></div></details>
  <details><summary>Czy tania nocna taryfa oznacza, że lepiej grzać tylko w nocy?</summary><div class="rk-night-faq-answer"><p>Niekoniecznie. Cena prądu to tylko jeden czynnik; ważne są temperatura zewnętrzna, sprawność pompy, możliwa akumulacja, dostępna moc, komfort i ograniczenia podłogi. Porównuj koszt i zużycie całych dób, a nie pojedynczej taniej godziny.</p></div></details>
  <details><summary>Co ustawić, gdy wyjeżdżam na kilka dni?</summary><div class="rk-night-faq-answer"><p>Użyj przewidzianego przez sterownik trybu nieobecności zgodnie z instrukcją. Zadbaj o ochronę przed mrozem i czas potrzebny na późniejsze ogrzanie domu. Dłuższy wyjazd to inna sytuacja niż codzienna nocna przerwa.</p></div></details>
  <details><summary>Co jeśli podłogówka nie dogrzewa po porannym wznowieniu?</summary><div class="rk-night-faq-answer"><p>Wróć do bezpiecznych ustawień zgodnych z instrukcją i sprawdź temperaturę wody, żądanie grzania, przepływy oraz ewentualne alarmy. Jeżeli pomieszczenie nie osiąga temperatury nawet przy stabilnej pracy, potrzebna jest diagnostyka instalacji, a nie agresywniejszy harmonogram.</p></div></details>
 </div>
</section>

<section class="rk-night-author" id="rk-night-author">
 <span class="rk-night-eyebrow">Opracowanie eksperckie</span>
 <h2 class="rk-night-author-title">Autor i weryfikacja merytoryczna</h2>
 <div class="rk-night-author-layout">
  <aside class="rk-night-author-side">
   <div class="rk-night-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-night-author-name">Robert Kucharski</div>
   <p class="rk-night-author-role">CEO portalu<br>Specjalista HVAC i ogrzewania podłogowego</p>
   <div class="rk-night-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-night-author-main">
   <div class="rk-night-author-quote">„O wartości nocnego harmonogramu nie świadczy liczba godzin bez żądania grzania. Liczą się temperatura w pomieszczeniu, reakcja posadzki i sposób, w jaki źródło odzyskuje komfort.”</div>
   <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. Przy ocenie sterowania zestawia bezwładność podłogi, parametry źródła, rozdział na pętle i rzeczywistą reakcję pomieszczeń.</p>
   <p>W tym poradniku rozdziela zmniejszenie zapotrzebowania na ciepło od zużycia energii i rachunku. Pokazuje, jak przeprowadzić obserwację bez przypisywania fikcyjnych oszczędności każdej instalacji.</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-night-author-facts"><div><strong>Zakres</strong>ogrzewanie podłogowe, sterowanie i hydraulika</div><div><strong>Metoda</strong>projekt, pomiary i dokumentacja urządzeń</div><div><strong>Opracowanie</strong>26 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",
        "sterowanie ogrzewaniem podłogowym",
        "hydraulika instalacji grzewczych",
        "obliczenia strat ciepła",
        "współpraca pomp ciepła i podłogówki"
      ],
      "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": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#webpage",
      "url": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/",
      "name": "Wyłączanie podłogówki na noc – czy się opłaca i jak ustawić ogrzewanie?",
      "description": "Czy wyłączać podłogówkę na noc? Porównaj pauzę i obniżenie temperatury, sprawdź pompę ciepła, bezwładność posadzki i przetestuj ustawienia.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#breadcrumb"
      },
      "inLanguage": "pl-PL",
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#article"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#article",
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#webpage"
      },
      "headline": "Wyłączanie podłogówki na noc – czy się opłaca i jak ustawić ogrzewanie?",
      "description": "Techniczny poradnik o nocnym sterowaniu wodnym ogrzewaniem podłogowym, bezwładności posadzki, pompie ciepła, oszczędności ciepła i pomiarze zużycia.",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "inLanguage": "pl-PL",
      "about": [
        "wyłączanie podłogówki na noc",
        "nocne obniżenie temperatury podłogówki",
        "sterowanie pompą ciepła",
        "bezwładność cieplna podłogi",
        "komfort cieplny rano"
      ],
      "keywords": "wyłączanie podłogówki na noc, czy wyłączać podłogówkę na noc, nocne obniżenie temperatury, podłogówka i pompa ciepła",
      "isAccessibleForFree": true,
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#analyzer"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#daymap"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#faq-schema"
        }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#analyzer",
      "name": "Analizator nocnego sterowania podłogówką",
      "url": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#rk-night-analyzer-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Edukacyjny analizator sposobu nocnego sterowania na podstawie źródła ciepła, konstrukcji podłogi, pomiarów temperatury i celu domownika."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#daymap",
      "name": "Modułowa mapa doby ogrzewania podłogowego",
      "url": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#rk-night-map-section",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Interaktywna mapa edukacyjna porównująca źródło ciepła, wodę, posadzkę i pomieszczenie przy trzech strategiach sterowania oraz dwóch rodzajach podłogi."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#howto",
      "name": "Jak sprawdzić, czy nocna zmiana nastawy podłogówki ma sens",
      "description": "Sześć kolejnych etapów porównania nocnych ustawień przy możliwie podobnej pogodzie i bez równoczesnych zmian wielu parametrów.",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Zapisz bazowy tryb pracy",
          "text": "Przez kilka dni zanotuj nastawy dzienne i nocne, temperaturę w reprezentatywnych pokojach, pogodę, harmonogram CO i dostępny odczyt energii. Nie zmieniaj w tym czasie krzywej, przepływów i termostatów równocześnie."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Sprawdź, czy sterowniki obsługują wybraną strategię",
          "text": "Ustal, czy program steruje pomieszczeniem, obiegiem, źródłem czy temperaturą wody. Dla pompy ciepła potwierdź wymagania minimalnego przepływu i dostępne funkcje ochronne."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Wprowadź jedną zmianę naraz",
          "text": "Wypróbuj łagodniejszą nastawę nocną albo dopuszczony harmonogram CO. Nie odłączaj urządzenia od zasilania i nie podnoś równolegle temperatury zasilania."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Obserwuj pokój, a nie tylko ekran sterownika",
          "text": "Notuj temperaturę przed snem, nad ranem, przy wstawaniu oraz później. Zapisz, kiedy komfort wraca i czy ktoś odczuwa wychłodzenie albo przegrzanie."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Zanotuj pracę źródła i rzeczywiste zużycie",
          "text": "Sprawdź temperaturę wody, długie okresy nadrabiania, uruchomienie grzałki, ewentualne alarmy oraz liczniki. Jeśli pompa podaje tylko energię łączną, oznacz dni z dużym zużyciem ciepłej wody użytkowej."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Porównaj pełne okresy przy podobnych warunkach",
          "text": "Porównaj temperaturę zewnętrzną, wiatr, nasłonecznienie i godziny obecności domowników. Różnicę interpretuj ostrożnie; jeśli warunki były odmienne, powtórz obserwację zamiast ogłaszać procent oszczędności."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/#faq-schema",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Czy podłogówka musi grzać całą noc?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Źródło ciepła nie musi stale wytwarzać ciepła. Przy stabilnej nastawie automatyka uruchamia ogrzewanie zgodnie z zapotrzebowaniem. Warto sprawdzić, czy nocny program rzeczywiście zmienia temperaturę pokoju i czy nie pogarsza komfortu rano."
          }
        },
        {
          "@type": "Question",
          "name": "Czy wyłączenie podłogówki na osiem godzin zawsze oszczędza energię?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie. Jeżeli posadzka i budynek niemal nie stygną, oszczędność ciepła może być mała. Jeśli temperatura faktycznie spada, straty ciepła maleją, ale zużycie prądu i koszt zależą również od sposobu późniejszej pracy źródła."
          }
        },
        {
          "@type": "Question",
          "name": "Czy poranne dogrzanie zawsze zużywa więcej niż nocna oszczędność?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma takiej ogólnej reguły. Przy niższej temperaturze domu spadają straty ciepła, lecz źródło musi potem uzupełnić energię. W pompie ciepła niekorzystny sposób nadrabiania może ograniczyć albo odwrócić oszczędność prądu. Trzeba porównać pełne okresy pracy."
          }
        },
        {
          "@type": "Question",
          "name": "Czy przy pompie ciepła warto ustawić nocne obniżenie temperatury?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Często dobrym punktem wyjścia jest stabilna praca przy możliwie niskiej temperaturze wody i wymaganym przepływie. Niewielkie nocne obniżenie można przetestować, jeśli pozwalają na to sterowanie oraz instrukcja, a poranny powrót nie wywołuje problemów z komfortem i poborem energii."
          }
        },
        {
          "@type": "Question",
          "name": "Czy wolno na noc wyłączyć pompę ciepła bezpiecznikiem?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie używaj odłączania urządzenia od zasilania jako zwykłego harmonogramu. Może ono wymagać zasilania automatyki i funkcji ochronnych. Korzystaj z trybów udostępnionych przez sterownik i instrukcję konkretnego urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Jaka jest różnica między pauzą CO a obniżeniem temperatury?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Pauza czasowo wstrzymuje żądanie ogrzewania pomieszczeń, a obniżenie ustawia niższą temperaturę docelową. Automatyka może realizować te strategie odmiennie. Żadna z nich nie oznacza koniecznie wyłączenia zasilania urządzenia."
          }
        },
        {
          "@type": "Question",
          "name": "Dlaczego po obniżeniu nastawy nocą rano wciąż jest ciepło?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Masywny jastrych i przegrody nadal oddają wcześniej zgromadzoną energię. W dobrze ocieplonym budynku temperatura powietrza może zmieniać się powoli. Warto sprawdzić temperaturę pokoju, zamiast wnioskować tylko z ustawienia termostatu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy sucha podłogówka reaguje szybciej na nocny harmonogram?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Lżejsza konstrukcja może reagować szybciej niż ciężka podłoga z jastrychem, ale wynik zależy od wszystkich warstw podłogi, oporu okładziny, mocy źródła i strat pomieszczenia. Nie ma jednego czasu wspólnego dla wszystkich systemów suchych."
          }
        },
        {
          "@type": "Question",
          "name": "Jak obniżyć temperaturę w samej sypialni?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najpierw sprawdź, czy sypialnia ma osobny obwód i czy sterowanie strefą jest przewidziane w instalacji. Przy zamykaniu pętli zachowaj wymagany przepływ przez źródło. Pomiary pokażą, czy posadzka pozwala na zauważalny nocny spadek temperatury."
          }
        },
        {
          "@type": "Question",
          "name": "Czy podniesienie temperatury zasilania przyspieszy poranne nagrzewanie?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Może zwiększyć chwilowy dopływ ciepła, ale nie usuwa bezwładności jastrychu i może pogorszyć sprawność pompy ciepła. Nie przekraczaj ograniczeń źródła, projektu, podłogi i okładziny. Wpierw sprawdź, czy wczesne wznowienie programu wystarcza."
          }
        },
        {
          "@type": "Question",
          "name": "Czy tania nocna taryfa oznacza, że lepiej grzać tylko w nocy?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Niekoniecznie. Cena prądu to tylko jeden czynnik; ważne są temperatura zewnętrzna, sprawność pompy, możliwa akumulacja, dostępna moc, komfort i ograniczenia podłogi. Porównuj koszt i zużycie całych dób, a nie pojedynczej taniej godziny."
          }
        },
        {
          "@type": "Question",
          "name": "Co ustawić, gdy wyjeżdżam na kilka dni?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Użyj przewidzianego przez sterownik trybu nieobecności zgodnie z instrukcją. Zadbaj o ochronę przed mrozem i czas potrzebny na późniejsze ogrzanie domu. Dłuższy wyjazd to inna sytuacja niż codzienna nocna przerwa."
          }
        },
        {
          "@type": "Question",
          "name": "Co jeśli podłogówka nie dogrzewa po porannym wznowieniu?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Wróć do bezpiecznych ustawień zgodnych z instrukcją i sprawdź temperaturę wody, żądanie grzania, przepływy oraz ewentualne alarmy. Jeżeli pomieszczenie nie osiąga temperatury nawet przy stabilnej pracy, potrzebna jest diagnostyka instalacji, a nie agresywniejszy harmonogram."
          }
        }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";
  var root = document.getElementById("rk-night-guide");
  if (!root || root.getAttribute("data-rk-ready") === "1") { return; }
  root.setAttribute("data-rk-ready", "1");

  var form = root.querySelector("#rk-night-form");
  var box = root.querySelector("#rk-night-result");
  var heading = root.querySelector("#rk-night-result-title");
  var intro = root.querySelector("#rk-night-result-intro");

  function read(name) {
    var element = form.elements[name];
    return element ? element.value : "unknown";
  }
  function unique(items) {
    return items.filter(function (value, index) { return items.indexOf(value) === index; });
  }
  function fill(id, values) {
    var list = root.querySelector(id);
    list.textContent = "";
    unique(values).forEach(function (value) {
      var item = document.createElement("li");
      item.textContent = value;
      list.appendChild(item);
    });
  }
  function analyze() {
    var source = read("source"), floor = read("floor"), action = read("action");
    var drop = read("drop"), returnState = read("return"), goal = read("goal");
    var flow = read("flow");
    var start = [], why = [], watch = [], caution = false, title, summary;

    if (source === "unknown") {
      start.push("Ustal rodzaj źródła i sposób, w jaki przyjmuje sygnał z termostatów.");
      why.push("Bez źródła nie można ocenić porannego powrotu ani wpływu harmonogramu na automatykę.");
    } else if (source === "heatpump") {
      why.push("W pompie ciepła ważne są temperatura wody, wymagany przepływ i sprawność podczas dogrzewania.");
      watch.push("Sprawdź poranne temperatury zasilania, pracę sprężarki i ewentualne uruchomienie grzałki.");
    } else if (source === "boiler") {
      why.push("Praca kotła zależy od modulacji, regulacji obiegu i zapotrzebowania pomieszczeń.");
      watch.push("Zanotuj rano temperaturę zasilania i czas powrotu do komfortu.");
    } else {
      why.push("Właściwy harmonogram zależy od sterownika i ograniczeń konkretnego źródła.");
    }

    if (floor === "heavy") {
      why.push("Masywny jastrych może nadal ogrzewać pokój przez część nocy po wstrzymaniu ciepła.");
      watch.push("Zapisz temperaturę przed snem, nad ranem i po wznowieniu grzania.");
    } else if (floor === "light") {
      why.push("Lżejsza konstrukcja może szybciej reagować na zmianę żądania grzania.");
      watch.push("Obserwuj nie tylko nocny spadek, lecz także czas powrotu temperatury rano.");
    } else {
      start.push("Sprawdź warstwy podłogi: jastrych czy lekki system suchy.");
      why.push("Bezwładność podłogi wpływa na sens krótkich przerw w ogrzewaniu.");
    }

    if (action === "power") {
      caution = true;
      title = "Nie używaj odłączania zasilania jako nocnego programu";
      start.push("Zachowaj zasilanie źródła; sprawdź dopuszczone tryby CO w jego sterowniku i instrukcji.");
      why.push("Urządzenie może potrzebować energii do funkcji ochronnych i pracy automatyki.");
      watch.push("Sprawdź instrukcję źródła, sposób ochrony przed mrozem i oddzielne zadania, np. ciepłą wodę użytkową.");
    } else if (action === "boost") {
      caution = true;
      title = "Nie podnoś gwałtownie temperatury zasilania bez weryfikacji";
      start.push("Wróć do parametrów przewidzianych w projekcie i instrukcji; przetestuj wcześniejsze wznowienie ogrzewania.");
      why.push("Wyższa temperatura nie usuwa bezwładności podłogi i może pogorszyć pracę pompy ciepła.");
      watch.push("Zanotuj temperaturę powierzchni, zgodność z okładziną i poranny komfort.");
    } else if (action === "steady") {
      start.push("Pozostaw stabilną pracę jako punkt odniesienia i zapisz temperatury oraz zużycie.");
      why.push("Tryb bazowy pozwoli później uczciwie porównać efekt nocnej zmiany.");
    } else if (action === "setback") {
      start.push("Sprawdź łagodną nocną korektę przewidzianą przez automatykę, bez jednoczesnej zmiany krzywej i przepływów.");
      why.push("Obniżona nastawa ograniczy straty budynku tylko wtedy, gdy temperatura pomieszczenia faktycznie spadnie.");
    } else if (action === "pause") {
      start.push("Przed testem pauzy sprawdź, co pozostaje aktywne i jak źródło zareaguje rano.");
      why.push("Przerwa w żądaniu CO nie oznacza natychmiastowego wychłodzenia masywnej podłogi.");
      if (source === "heatpump") {
        if (floor === "heavy") {
          start.push("Rozważ porównanie stabilnej pracy z łagodnym obniżeniem, zanim wybierzesz pełną nocną pauzę.");
        }
      }
    } else {
      start.push("Najpierw wybierz, czy chodzi o nastawę pokoju, pauzę CO czy jedynie utrzymanie stabilnej pracy.");
      why.push("Słowo „wyłączyć” nie definiuje działania automatyki.");
    }

    if (drop === "none") {
      why.push("Brak mierzalnego nocnego spadku pokoju oznacza, że zamierzona redukcja strat może być niewielka.");
      start.push("Nie oceniaj skutku z samego harmonogramu: zmierz pełną dobę i porównaj podobne warunki.");
    } else if (drop === "small") {
      why.push("Niewielki spadek może wpływać na straty ciepła, ale nie wyznacza oszczędności prądu ani pieniędzy.");
    } else if (drop === "large") {
      why.push("Wyraźne nocne wychłodzenie może zmniejszać straty, lecz zwiększa wymagania dotyczące komfortu rano.");
      watch.push("Sprawdź temperaturę w sypialni i innych pokojach oraz zakres porannego dogrzewania.");
    } else {
      start.push("Zmierz temperaturę pokoju przed snem i nad ranem; nie utożsamiaj jej z nastawą.");
    }

    if (returnState === "late") {
      start.push("Jeśli rano jest zbyt chłodno, skróć przerwę lub wróć do stabilnej pracy przed kolejnym testem.");
      why.push("Długie odzyskiwanie komfortu obniża praktyczną wartość nocnej oszczędności.");
    } else if (returnState === "never") {
      caution = true;
      title = "Najpierw sprawdź przyczynę niedogrzania";
      start.push("Wstrzymaj pogłębianie nocnej redukcji i skontroluj pracę źródła, obiegów i moc instalacji.");
      why.push("Trwałe niedogrzanie nie jest problemem, który rozwiąże agresywniejszy harmonogram.");
      watch.push("Sprawdź alarmy, temperatury wody i przepływy; w razie potrzeby umów diagnostykę.");
    } else if (returnState === "quick") {
      why.push("Poranny komfort jest zachowany, ale nie jest jeszcze dowodem niższego rachunku.");
    } else {
      watch.push("Zapisz, czy o porze wstawania jest komfortowo i ile czasu trwa powrót do nastawy.");
    }

    if (flow === "no") {
      caution = true;
      title = "Wstrzymaj zmianę, która może naruszyć wymagany przepływ";
      start.push("Zweryfikuj schemat hydrauliki i instrukcję źródła przed zamknięciem wszystkich pętli.");
      why.push("Niektóre źródła potrzebują określonego przepływu nawet przy sterowaniu strefowym.");
    } else if (flow === "unknown") {
      start.push("Ustal, czy sterownik i rozdzielacz mogą realizować wybraną strategię bez problemu z przepływem.");
    } else {
      why.push("Warunki sterowania i przepływu zostały przez Ciebie sprawdzone; nadal porównaj efekt w pokoju.");
    }

    if (goal === "comfort") {
      watch.push("Zwróć uwagę na sen, odczucie podłogi i komfort o godzinie pobudki.");
    } else if (goal === "energy") {
      watch.push("Porównuj energię ogrzewania CO w pełnych dobach o podobnej pogodzie; oddziel CWU, jeśli to możliwe.");
    } else if (goal === "tariff") {
      watch.push("Porównuj koszt według cen w godzinach pracy oraz energię zużytą na cały cykl, nie tylko tanią noc.");
    } else {
      start.push("Ustal, czy ważniejszy jest komfort snu, zużycie energii czy koszt według taryfy.");
    }
    if (watch.length < 2) {
      watch.push("Obserwuj temperaturę pokoju, źródło i zużycie przez kilka porównywalnych dób.");
    }
    var noNightDropAfterChange = false;
    if (drop === "none") {
      noNightDropAfterChange = action !== "steady";
    }
    if (!title) {
      if (source === "unknown" || floor === "unknown" || action === "unknown" || drop === "unknown") {
        title = "Zacznij od pomiaru i ustalenia sposobu sterowania";
      } else if (returnState === "late" || noNightDropAfterChange) {
        title = "Sprawdź sens nocnej zmiany przed jej utrzymaniem";
      } else {
        title = "Możesz porównać nastawy w kontrolowanym teście";
      }
    }
    summary = caution ?
      "Wybrana odpowiedź wskazuje warunek, który należy wyjaśnić przed wprowadzeniem nocnego programu." :
      "Wynik jest wskazówką do obserwacji, a nie prognozą oszczędności lub gotową nastawą.";

    var ready = false;
    if (!caution) {
      if (action !== "unknown") {
        if (drop !== "unknown") {
          ready = floor !== "unknown";
        }
      }
    }
    box.classList.toggle("is-caution", caution);
    box.classList.toggle("is-ready", ready);
    heading.textContent = title;
    intro.textContent = summary;
    fill("#rk-night-result-start", start);
    fill("#rk-night-result-why", why);
    fill("#rk-night-result-watch", watch);
  }
  if (form) {
    if (box) {
      form.addEventListener("submit", function (event) {
      event.preventDefault();
      analyze();
      });
      root.querySelector("#rk-night-reset").addEventListener("click", function () {
      form.reset();
      box.classList.remove("is-caution", "is-ready");
      heading.textContent = "Uzupełnij odpowiedzi i uruchom analizę";
      intro.textContent = "Zobaczysz osobno proponowany punkt startu, przyczynę i obserwacje potrzebne do sprawdzenia efektu.";
      fill("#rk-night-result-start", ["Wybierz źródło, posadzkę i sposób sterowania."]);
      fill("#rk-night-result-why", ["Wynik nie jest gotową nastawą dla każdego domu."]);
      fill("#rk-night-result-watch", ["Temperaturę pomieszczenia i zachowanie źródła."]);
      });
    }
  }

  var map = root.querySelector("#rk-night-map");
  if (!map) { return; }
  var labels = {
    strategy: {steady:"Stała nastawa",setback:"Nocne obniżenie",pause:"Pauza grzania CO"},
    mass: {heavy:"masywny jastrych",light:"lekka podłoga"},
    phase: {evening:"wieczór",night:"noc",morning:"poranek",later:"później"}
  };
  var selected = {strategy:"steady",mass:"heavy",phase:"night"};
  var scenes = {
    steady: {
      evening: ["Pomieszczenia pozostają przy temperaturze wynikającej z nastawy.", "Automatyka odpowiada na zapotrzebowanie na ogrzewanie, nie musi pracować bez przerwy.", "Przepływ przez otwarte obiegi zależy od sterowania i hydrauliki.", "Podłoga stopniowo oddaje lub przyjmuje ciepło.", "Pokój utrzymuje temperaturę zbliżoną do wybranej nastawy."],
      night: ["Jeśli występują straty, układ dostarcza tyle ciepła, ile wymaga bieżąca regulacja.", "Źródło pracuje według własnej automatyki i zapotrzebowania, nie musi grzać stale.", "Woda płynie przez otwarte pętle i przenosi ciepło do posadzki.", "Posadzka łagodzi krótkie wahania dopływu ciepła.", "Temperatura powinna pozostawać blisko nastawy, jeśli dostępna moc wystarcza."],
      morning: ["Nie trzeba odzyskiwać dużej celowo obniżonej temperatury.", "Źródło reaguje na pogodę i zapotrzebowanie bez wymuszonego nadrabiania harmonogramu.", "Przepływ pętli zależy od aktualnych sygnałów sterowników.", "Podłoga zwykle utrzymuje temperaturę wynikającą z dotychczasowej pracy.", "Rano jest blisko założonego komfortu, jeśli układ został prawidłowo dobrany."],
      later: ["Automatyka kontynuuje regulację w ciągu dnia.", "Źródło może przerwać pracę przy braku zapotrzebowania albo przy zyskach słonecznych.", "Pętle przekazują ciepło tylko wtedy, gdy wymaga tego sterowanie.", "Posadzka pozostaje elementem akumulującym ciepło.", "Na temperaturę wpływają również ludzie, słońce i wentylacja."]
    },
    setback: {
      evening: ["Sterownik przełącza się na niższą nastawę nocną.", "Sygnał zapotrzebowania może osłabnąć lub zaniknąć zależnie od automatyki.", "Przepływ może zostać ograniczony w części obwodów.", "Podłoga nadal zawiera ciepło zgromadzone wcześniej.", "Pokój nie osiąga nowej nastawy od razu."],
      night: ["Niższa nastawa może pozwolić pomieszczeniu ostygnąć.", "Źródło może rzadziej pracować dla CO, ale jego inne funkcje pozostają zależne od sterownika.", "Woda w ograniczonych pętlach wolniej dostarcza ciepło do podłogi.", "Posadzka stopniowo oddaje zgromadzone ciepło.", "Pokój może się wychładzać; skala spadku zależy od całego budynku."],
      morning: ["Sterownik przywraca dzienną nastawę.", "Źródło rozpoczyna dogrzewanie w granicach własnej automatyki.", "Ciepła woda wraca do otwartych obwodów, jeśli żądanie zostaje przyjęte.", "Posadzka potrzebuje czasu, by dostarczać więcej ciepła.", "Temperatura pokoju wraca stopniowo; sprawdź komfort o godzinie pobudki."],
      later: ["Po porannym okresie odzyskiwania układ wraca do regulacji dziennej.", "Źródło może pracować dłużej po nocy niż przy stałej nastawie; ocenia się cały cykl.", "Przepływ zależy od osiągniętych nastaw i innych stref.", "Podłoga ponownie ustala temperaturę zgodną z warunkami pracy.", "Pokój powinien osiągnąć cel, o ile źródło i instalacja mają wystarczającą moc."]
    },
    pause: {
      evening: ["Harmonogram zbliża się do przerwy w żądaniu CO.", "Źródło może kończyć ogrzewanie pomieszczeń, ale pozostawać zasilane i gotowe do innych zadań.", "Sterowanie ogranicza przepływ w zależności od budowy obiegu.", "Posadzka wciąż dysponuje energią z wcześniejszego grzania.", "Powietrze w pokoju reaguje na zmianę z opóźnieniem."],
      night: ["Żądanie grzania dla wybranych obiegów jest wstrzymane.", "Źródło nie dostaje z tych stref żądania CO; nadal mogą działać funkcje ochronne i CWU.", "Woda może przestać krążyć w zamkniętych pętlach; konfiguracja zależy od instalacji.", "Posadzka oddaje wcześniej zgromadzone ciepło mimo przerwy w dostawie.", "Pokój może stygnąć lub niemal nie zmienić temperatury – to trzeba zmierzyć."],
      morning: ["Program ponownie zgłasza potrzebę grzania.", "Źródło odbudowuje temperaturę w granicach sterowania; oceniaj, czy nie włącza grzałki.", "Woda ponownie dostarcza ciepło do otwartych obiegów, jeśli działa przepływ.", "Posadzka pobiera ciepło, zanim mocniej ogrzeje pomieszczenie.", "Komfort może wracać z opóźnieniem, zwłaszcza po wyraźnym wychłodzeniu."],
      later: ["Skutki nocnej pauzy należy oceniać po pełnej dobie.", "Źródło wraca do typowego zapotrzebowania, jeśli temperatura pomieszczeń została odzyskana.", "Pętle pracują zgodnie z aktualnymi nastawami stref.", "Podłoga ponownie akumuluje ciepło.", "Sprawdź, czy dom osiągnął komfort bez długiego dogrzewania."]
    }
  };
  var influence = {
    heavy: {
      evening:["Masywny jastrych kumuluje energię i spowalnia reakcję na zmianę.","Temperatura pokoju zwykle reaguje wolniej niż sterownik."],
      night:["Ciepło z masywnego jastrychu może nadal płynąć do pokoju przez część nocy.","Spadek temperatury może być niewielki mimo przerwy w żądaniu CO."],
      morning:["Ciężka podłoga może pobierać ciepło przez pewien czas przed wyraźnym wzrostem mocy oddawanej do pokoju.","Efekt poranny może pojawić się później niż zmiana na sterowniku."],
      later:["Gdy już się nagrzeje, masywna podłoga oddaje ciepło również po ustaniu żądania.","Zanotuj opóźnienie między zmianą nastawy a reakcją pokoju."]
    },
    light: {
      evening:["Lekka podłoga zwykle ma mniejszą bezwładność samej warstwy grzewczej.","Reakcja pokoju nadal zależy od izolacji i innych przegród."],
      night:["Lżejsza konstrukcja może oddawać swoje zmagazynowane ciepło krócej.","W części domów nocny spadek temperatury pokoju może stać się wyraźniejszy."],
      morning:["Warstwa grzewcza może szybciej odpowiedzieć na ponowny przepływ ciepłej wody.","Sprawdź, czy przy tej pogodzie komfort wraca na czas."],
      later:["System lekki może szybciej podążać za sterownikiem niż jastrych.","Szybka reakcja podłogi nie zastępuje kontroli jej mocy dla pomieszczenia."]
    }
  };
  function paint() {
    var group = scenes[selected.strategy][selected.phase];
    var extra = influence[selected.mass][selected.phase];
    root.querySelector("#rk-night-map-title").textContent =
      labels.strategy[selected.strategy] + " · " + labels.mass[selected.mass] + " · " + labels.phase[selected.phase];
    root.querySelector("#rk-night-map-intro").textContent = group[0];
    root.querySelector("#rk-night-map-source").textContent = group[1];
    root.querySelector("#rk-night-map-water").textContent = group[2];
    root.querySelector("#rk-night-map-floor").textContent = group[3] + " " + extra[0];
    root.querySelector("#rk-night-map-room").textContent = group[4] + " " + extra[1];
    ["strategy","mass","phase"].forEach(function (dimension) {
      map.querySelectorAll("[data-rk-" + dimension + "]").forEach(function (button) {
        button.setAttribute("aria-pressed",
          button.getAttribute("data-rk-" + dimension) === selected[dimension] ? "true" : "false");
      });
    });
  }
  ["strategy","mass","phase"].forEach(function (dimension) {
    map.querySelectorAll("[data-rk-" + dimension + "]").forEach(function (button) {
      button.addEventListener("click", function () {
        selected[dimension] = button.getAttribute("data-rk-" + dimension);
        paint();
      });
    });
  });
  map.querySelector("#rk-night-map-controls").hidden = false;
  paint();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/">Wyłączanie podłogówki na noc – czy się opłaca i jak ustawić ogrzewanie?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/wylaczanie-podlogowki-na-noc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ogrzewanie podłogowe nie grzeje – 12 przyczyn i diagnostyka krok po kroku.</title>
		<link>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/</link>
					<comments>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#respond</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 26 Sep 2026 11:08:16 +0000</pubDate>
				<category><![CDATA[Awarie i problemy z ogrzewaniem]]></category>
		<category><![CDATA[Diagnostyka instalacji]]></category>
		<category><![CDATA[Eksploatacja instalacji]]></category>
		<category><![CDATA[Hydraulika instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy obiegowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Regulacja hydrauliczna]]></category>
		<category><![CDATA[Rozdzielacze do podłogówki]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[brak przepływu w podłogówce]]></category>
		<category><![CDATA[diagnostyka podłogówki]]></category>
		<category><![CDATA[jedna pętla podłogówki nie grzeje]]></category>
		<category><![CDATA[ogrzewanie podłogowe nie grzeje]]></category>
		<category><![CDATA[podłogówka nie grzeje]]></category>
		<category><![CDATA[pompa obiegowa podłogówki]]></category>
		<category><![CDATA[przepływ w pętli podłogówki]]></category>
		<category><![CDATA[regulacja ogrzewania podłogowego]]></category>
		<category><![CDATA[rotametr zero]]></category>
		<category><![CDATA[rozdzielacz ciepły podłoga zimna]]></category>
		<category><![CDATA[rozdzielacz ogrzewania podłogowego]]></category>
		<category><![CDATA[siłownik ogrzewania podłogowego]]></category>
		<category><![CDATA[termostat podłogówki]]></category>
		<category><![CDATA[zapowietrzona podłogówka]]></category>
		<category><![CDATA[zimna podłoga]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7754</guid>

					<description><![CDATA[<p>Gdy w domu robi się chłodno, a instalacja pracuje, znalezienie przyczyny problemu nie zawsze jest oczywiste. Jeśli **ogrzewanie podłogowe nie grzeje**, warto zacząć od sprawdzenia, czy źródło ciepła rzeczywiście zasila instalację, czy rozdzielacz otrzymuje ciepłą wodę oraz czy na poszczególnych pętlach występują prawidłowe przepływy. W poradniku omawiam 12 najczęstszych przyczyn problemów z podłogówką i pokazuję diagnostykę krok po kroku – od termostatów i siłowników, przez pompę obiegową i rotametry, aż po zapowietrzenie, regulację hydrauliczną oraz zbyt małą moc ogrzewania w pomieszczeniu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/">Ogrzewanie podłogowe nie grzeje – 12 przyczyn i diagnostyka krok po kroku.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>

  #rk-heat-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: #de4b2e;
    --rk-yellow: #f2b526;
    --rk-green: #2fcda1;
    --rk-green-dark: #12765e;
    --rk-red: #d7504a;
    --rk-purple: #6963ce;
    --rk-blue: #3198c5;
    --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-heat-guide,
  #rk-heat-guide * {
    box-sizing: border-box;
    min-width: 0;
  }

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

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

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

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-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-heat-guide .rk-heat-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-heat-guide .rk-heat-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-heat-guide .rk-heat-hero-title,
  #rk-heat-guide .rk-heat-section-title,
  #rk-heat-guide .rk-heat-cta-title,
  #rk-heat-guide .rk-heat-author-title {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    letter-spacing: -0.035em;
    line-height: 1.06;
  }

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

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

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

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-meta {
    color: #c5d9df;
    font-size: 0.83rem;
    font-weight: 700;
    gap: 12px 24px;
    margin-top: 34px;
  }

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

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-shortcuts a:hover,
  #rk-heat-guide .rk-heat-shortcuts a:focus-visible {
    background: var(--rk-cyan-soft);
    border-color: #91dce5;
    color: #075f78;
  }

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

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

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-section-dark .rk-heat-eyebrow {
    color: #68e6ef;
  }

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-section-dark .rk-heat-lead,
  #rk-heat-guide .rk-heat-section-dark .rk-heat-copy {
    color: #c8dbe2;
  }

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

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-answer strong {
    color: var(--rk-ink);
    display: block;
    font-size: 1.24rem;
    line-height: 1.4;
  }

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

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

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

  #rk-heat-guide .rk-heat-grid-3,
  #rk-heat-guide .rk-heat-term-grid {
    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 {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    padding: 24px;
  }

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

  #rk-heat-guide .rk-heat-section-dark .rk-heat-card {
    background: #17394b;
    border-color: #356178;
  }

  #rk-heat-guide .rk-heat-card-number,
  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-section-dark .rk-heat-card-number,
  #rk-heat-guide .rk-heat-section-dark .rk-heat-icon {
    background: var(--rk-cyan);
    color: #082c3c;
  }

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

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

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

  #rk-heat-guide .rk-heat-section-dark .rk-heat-card h3,
  #rk-heat-guide .rk-heat-section-dark .rk-heat-card h4 {
    color: #ffffff;
  }

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

  #rk-heat-guide .rk-heat-section-dark .rk-heat-card p,
  #rk-heat-guide .rk-heat-section-dark .rk-heat-card li {
    color: #c8dce3;
  }

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

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

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-bullets {
    color: var(--rk-copy);
    margin: 20px 0 0;
    padding-left: 22px;
  }

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

  #rk-heat-guide .rk-heat-section-dark .rk-heat-bullets {
    color: #c8dce3;
  }

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

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

  #rk-heat-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-heat-guide th:first-child {
    border-radius: 14px 0 0;
  }

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

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

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

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

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

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

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

  #rk-heat-guide .rk-heat-calculator {
    background: #102f42;
    border: 1px solid #315a70;
    border-radius: 22px;
    margin-top: 32px;
    padding: 28px;
  }

  #rk-heat-guide .rk-heat-calculator-head {
    border-bottom: 1px solid #315a70;
    margin-bottom: 25px;
    padding-bottom: 20px;
  }

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

  #rk-heat-guide .rk-heat-calculator-head p {
    color: #bad3dc;
    margin: 9px 0 0;
  }

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

  #rk-heat-guide .rk-heat-stage-head {
    align-items: flex-start;
    display: flex;
    gap: 13px;
    margin-bottom: 18px;
  }

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-stage-head h4 {
    color: #ffffff;
    font-size: 1.15rem;
    line-height: 1.3;
    margin: 0;
  }

  #rk-heat-guide .rk-heat-stage-head p {
    color: #aecad5;
    font-size: 0.88rem;
    margin: 4px 0 0;
  }

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

  #rk-heat-guide .rk-heat-field {
    display: block;
  }

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

  #rk-heat-guide .rk-heat-field input,
  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-field small {
    color: #aecaD5;
    display: block;
    font-size: 0.72rem;
    line-height: 1.45;
    margin-top: 6px;
  }

  #rk-heat-guide .rk-heat-calculator-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 20px;
  }

  #rk-heat-guide .rk-heat-calculate-button,
  #rk-heat-guide .rk-heat-reset-button {
    border-radius: 11px;
    cursor: pointer;
    font-weight: 900;
    min-height: 48px;
    padding: 11px 18px;
  }

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

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

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

  #rk-heat-guide .rk-heat-result {
    background: #ffffff;
    border-left: 7px solid var(--rk-yellow);
    border-radius: 17px;
    color: var(--rk-ink);
    margin-top: 22px;
    padding: 24px;
  }

  #rk-heat-guide .rk-heat-result.is-good {
    border-left-color: var(--rk-green);
  }

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-result-intro {
    color: var(--rk-copy) !important;
    margin: 8px 0 0;
  }

  #rk-heat-guide .rk-heat-result-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 19px;
  }

  #rk-heat-guide .rk-heat-result-item {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 13px;
    padding: 16px;
  }

  #rk-heat-guide .rk-heat-result-item strong {
    color: #627b8c !important;
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.055em;
    line-height: 1.35;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  #rk-heat-guide .rk-heat-result-item span {
    color: var(--rk-ink) !important;
    display: block;
    font-size: 1.22rem;
    font-weight: 900;
    line-height: 1.25;
  }

  #rk-heat-guide .rk-heat-result-note {
    background: #edf7f9;
    border: 1px solid #cfe0e7;
    border-radius: 13px;
    color: var(--rk-copy) !important;
    margin: 18px 0 0;
    padding: 16px;
  }

  #rk-heat-guide .rk-heat-result-note strong {
    color: var(--rk-ink) !important;
  }

  #rk-heat-guide .rk-heat-chart {
    background: #ffffff;
    border: 1px solid #cbdde5;
    border-radius: 18px;
    margin-top: 24px;
    padding: 22px;
  }

  #rk-heat-guide .rk-heat-chart h4 {
    color: var(--rk-ink) !important;
    font-size: 1.18rem;
    margin: 0;
  }

  #rk-heat-guide .rk-heat-chart-intro {
    color: var(--rk-copy) !important;
    margin: 7px 0 0;
  }

  #rk-heat-guide .rk-heat-stack {
    background: #e7eff2;
    border-radius: 999px;
    display: flex;
    height: 30px;
    margin-top: 18px;
    overflow: hidden;
    width: 100%;
  }

  #rk-heat-guide .rk-heat-stack-segment {
    align-items: center;
    color: #ffffff;
    display: flex;
    font-size: 0.68rem;
    font-weight: 900;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
    transition: width 0.35s ease;
    white-space: nowrap;
  }

  #rk-heat-guide .rk-heat-stack-loops { background: var(--rk-cyan-dark); }
  #rk-heat-guide .rk-heat-stack-mains { background: var(--rk-purple); }
  #rk-heat-guide .rk-heat-stack-other { background: var(--rk-yellow); color: #342703; text-shadow: none; }
  #rk-heat-guide .rk-heat-stack-buffer { background: var(--rk-orange); }

  #rk-heat-guide .rk-heat-legend {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 15px;
  }

  #rk-heat-guide .rk-heat-legend-item {
    align-items: flex-start;
    color: var(--rk-copy) !important;
    display: flex;
    font-size: 0.78rem;
    gap: 8px;
  }

  #rk-heat-guide .rk-heat-legend-dot {
    border-radius: 4px;
    flex: 0 0 12px;
    height: 12px;
    margin-top: 4px;
    width: 12px;
  }

  #rk-heat-guide .rk-heat-capacity-chart {
    display: grid;
    gap: 15px;
    margin-top: 25px;
  }

  #rk-heat-guide .rk-heat-capacity-row {
    display: grid;
    gap: 10px;
    grid-template-columns: 205px minmax(0, 1fr) 110px;
    align-items: center;
  }

  #rk-heat-guide .rk-heat-capacity-label {
    color: var(--rk-ink) !important;
    font-size: 0.84rem;
    font-weight: 900;
  }

  #rk-heat-guide .rk-heat-capacity-track {
    background: #e7eff2;
    border-radius: 999px;
    height: 22px;
    overflow: hidden;
  }

  #rk-heat-guide .rk-heat-capacity-fill {
    border-radius: 999px;
    height: 100%;
    min-width: 2px;
    transition: width 0.35s ease;
  }

  #rk-heat-guide .rk-heat-capacity-water { background: var(--rk-cyan-dark); }
  #rk-heat-guide .rk-heat-capacity-screed { background: var(--rk-orange); }

  #rk-heat-guide .rk-heat-capacity-value {
    color: var(--rk-ink) !important;
    font-size: 0.84rem;
    font-weight: 900;
    text-align: right;
  }

  #rk-heat-guide .rk-heat-chart-caption,
  #rk-heat-guide .rk-heat-disclaimer {
    color: #647d8e !important;
    font-size: 0.78rem;
    margin: 15px 0 0;
  }

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-cta-title {
    color: #ffffff;
    font-size: clamp(1.7rem, 3.3vw, 2.8rem);
    margin: 0;
    max-width: 970px;
  }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-author-social a:hover {
    background: var(--rk-cyan);
    color: var(--rk-navy);
  }

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-author-main > p {
    color: var(--rk-copy);
    margin: 18px 0 0;
  }

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

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

  #rk-heat-guide .rk-heat-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-heat-guide .rk-heat-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
  }

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

  #rk-heat-guide .rk-heat-process-tab {
    background: #173e51;
    border: 1px solid #3b6579;
    border-radius: 12px;
    color: #ffffff;
    cursor: pointer;
    font-weight: 900;
    min-height: 50px;
    padding: 10px 14px;
  }

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

  #rk-heat-guide .rk-heat-process-panel {
    background: #15384a;
    border: 1px solid #39657a;
    border-radius: 18px;
    margin-top: 17px;
    padding: 24px;
  }

  #rk-heat-guide .rk-heat-process-panel h3 {
    color: #ffffff;
    font-size: 1.42rem;
    line-height: 1.3;
    margin: 0;
  }

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

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

  #rk-heat-guide .rk-heat-process-step {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    min-height: 142px;
    padding: 17px;
  }

  #rk-heat-guide .rk-heat-process-step strong {
    color: #6fe6ef;
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    margin-bottom: 7px;
    text-transform: uppercase;
  }

  #rk-heat-guide .rk-heat-process-step span {
    color: #ffffff;
    display: block;
    font-weight: 900;
    line-height: 1.3;
  }

  #rk-heat-guide .rk-heat-process-step p {
    color: #bfd5dd;
    font-size: 0.84rem;
    line-height: 1.55;
    margin: 8px 0 0;
  }

  #rk-heat-guide .rk-heat-decision {
    background: #f4f9fa;
    border: 1px solid #cbdfe6;
    border-radius: 15px;
    margin-top: 18px;
    padding: 19px;
  }

  #rk-heat-guide .rk-heat-decision strong {
    color: var(--rk-ink) !important;
    display: block;
    font-size: 1.05rem;
  }

  #rk-heat-guide .rk-heat-decision p {
    color: var(--rk-copy) !important;
    margin: 8px 0 0;
  }

  #rk-heat-guide .rk-heat-alert-list {
    color: var(--rk-copy) !important;
    margin: 13px 0 0;
    padding-left: 20px;
  }

  #rk-heat-guide .rk-heat-alert-list li + li {
    margin-top: 7px;
  }

  #rk-heat-guide .rk-heat-meter {
    background: #dfeaed;
    border-radius: 999px;
    height: 17px;
    margin-top: 10px;
    overflow: hidden;
  }

  #rk-heat-guide .rk-heat-meter-fill {
    background: linear-gradient(90deg, var(--rk-green) 0%, var(--rk-yellow) 62%, var(--rk-orange) 100%);
    border-radius: 999px;
    height: 100%;
    min-width: 2px;
    transition: width 0.35s ease;
    width: 0;
  }

  #rk-heat-guide .rk-heat-cost-scenarios {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 18px;
  }

  #rk-heat-guide .rk-heat-cost-scenario {
    background: #f2f7f9;
    border: 1px solid #cfe0e7;
    border-radius: 13px;
    padding: 15px;
  }

  #rk-heat-guide .rk-heat-cost-scenario strong {
    color: #627b8c !important;
    display: block;
    font-size: 0.7rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-heat-guide .rk-heat-cost-scenario span {
    color: var(--rk-ink) !important;
    display: block;
    font-size: 1.1rem;
    font-weight: 900;
    margin-top: 5px;
  }

  #rk-heat-guide .rk-heat-interface-code {
    align-items: center;
    background: var(--rk-navy);
    border: 1px solid #31576a;
    border-radius: 14px;
    color: #ffffff;
    display: flex;
    font-family: Consolas, Monaco, monospace;
    font-size: clamp(1.15rem, 2vw, 1.55rem);
    font-weight: 900;
    justify-content: center;
    min-height: 76px;
    padding: 16px;
    text-align: center;
  }

  #rk-heat-guide .rk-heat-interface-code span {
    color: #71e6ef;
  }

  #rk-heat-guide .rk-heat-measure-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 30px;
  }

  #rk-heat-guide .rk-heat-measure-card {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    padding: 22px;
  }

  #rk-heat-guide .rk-heat-measure-card strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.075em;
    margin-bottom: 9px;
    text-transform: uppercase;
  }

  #rk-heat-guide .rk-heat-measure-card h3 {
    color: var(--rk-ink);
    font-size: 1.08rem;
    line-height: 1.32;
    margin: 0 0 8px;
  }

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

  #rk-heat-guide .rk-heat-confidence {
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 900;
    margin-top: 14px;
    padding: 7px 11px;
  }

  #rk-heat-guide .rk-heat-confidence.is-high {
    background: #ddf7ef;
    color: #11624e;
  }

  #rk-heat-guide .rk-heat-confidence.is-medium {
    background: #fff2cc;
    color: #76530b;
  }

  #rk-heat-guide .rk-heat-confidence.is-low {
    background: #ffebe5;
    color: #8b3423;
  }

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

  #rk-heat-guide .rk-heat-evidence {
    background: #f3f8fa;
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    padding: 17px;
  }

  #rk-heat-guide .rk-heat-evidence h4 {
    color: var(--rk-ink);
    font-size: 0.88rem;
    letter-spacing: 0.05em;
    margin: 0 0 9px;
    text-transform: uppercase;
  }

  #rk-heat-guide .rk-heat-evidence ul {
    color: var(--rk-copy);
    margin: 0;
    padding-left: 18px;
  }

  #rk-heat-guide .rk-heat-evidence li + li {
    margin-top: 6px;
  }

  #rk-heat-guide .rk-heat-workflow {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-top: 30px;
  }

  #rk-heat-guide .rk-heat-workflow-step {
    background: #ffffff;
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    padding: 19px;
    position: relative;
  }

  #rk-heat-guide .rk-heat-workflow-step::after {
    color: var(--rk-cyan-dark);
    content: "→";
    font-size: 1.3rem;
    font-weight: 900;
    position: absolute;
    right: -11px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
  }

  #rk-heat-guide .rk-heat-workflow-step:last-child::after {
    content: "";
  }

  #rk-heat-guide .rk-heat-workflow-step strong {
    color: var(--rk-cyan-dark);
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    margin-bottom: 7px;
    text-transform: uppercase;
  }

  #rk-heat-guide .rk-heat-workflow-step span {
    color: var(--rk-ink);
    display: block;
    font-weight: 900;
    line-height: 1.35;
  }

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

  #rk-heat-guide #rk-heat-procedure .rk-heat-workflow-step {
    align-items: start;
    display: grid;
    gap: 14px;
    grid-template-columns: 42px minmax(0, 1fr);
  }

  #rk-heat-guide #rk-heat-procedure .rk-heat-workflow-step::after {
    content: "";
  }

  #rk-heat-guide #rk-heat-procedure .rk-heat-workflow-step > span {
    align-items: center;
    background: var(--rk-cyan-soft);
    border-radius: 10px;
    color: #076c85;
    display: flex;
    font-size: 0.9rem;
    height: 42px;
    justify-content: center;
  }

  #rk-heat-guide #rk-heat-procedure .rk-heat-workflow-step h3 {
    color: var(--rk-ink);
    font-size: 1.05rem;
    line-height: 1.35;
    margin: 0;
  }

  #rk-heat-guide #rk-heat-procedure .rk-heat-workflow-step p {
    color: var(--rk-copy);
    font-size: 0.88rem;
    line-height: 1.55;
    margin: 7px 0 0;
  }

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

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

    #rk-heat-guide .rk-heat-workflow-step:nth-child(3)::after {
      content: "";
    }

    #rk-heat-guide .rk-heat-result-grid,
    #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));
    }
  }

  @media (max-width: 900px) {
    #rk-heat-guide .rk-heat-term-grid,
    #rk-heat-guide .rk-heat-grid-3 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    #rk-heat-guide .rk-heat-capacity-row {
      grid-template-columns: 165px minmax(0, 1fr) 90px;
    }

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

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

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

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

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

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

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

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

    #rk-heat-guide .rk-heat-grid-2,
    #rk-heat-guide .rk-heat-grid-3,
    #rk-heat-guide .rk-heat-grid-4,
    #rk-heat-guide .rk-heat-term-grid,
    #rk-heat-guide .rk-heat-fields,
    #rk-heat-guide .rk-heat-result-grid,
    #rk-heat-guide .rk-heat-source-grid,
    #rk-heat-guide .rk-heat-author-facts,
    #rk-heat-guide .rk-heat-process-grid,
    #rk-heat-guide .rk-heat-cost-scenarios,
    #rk-heat-guide .rk-heat-measure-grid,
    #rk-heat-guide .rk-heat-evidence-grid,
    #rk-heat-guide .rk-heat-workflow {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heat-guide #rk-heat-procedure .rk-heat-workflow {
      grid-template-columns: minmax(0, 1fr);
    }

    #rk-heat-guide .rk-heat-workflow-step::after,
    #rk-heat-guide .rk-heat-workflow-step:nth-child(3)::after {
      bottom: -15px;
      content: "↓";
      left: 50%;
      right: auto;
      top: auto;
      transform: translateX(-50%);
    }

    #rk-heat-guide .rk-heat-workflow-step:last-child::after {
      content: "";
    }

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

    #rk-heat-guide .rk-heat-calculator,
    #rk-heat-guide .rk-heat-cta {
      border-radius: 17px;
      padding: 20px;
    }

    #rk-heat-guide .rk-heat-stage,
    #rk-heat-guide .rk-heat-result,
    #rk-heat-guide .rk-heat-chart {
      padding: 18px;
    }

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

    #rk-heat-guide .rk-heat-calculate-button,
    #rk-heat-guide .rk-heat-reset-button,
    #rk-heat-guide .rk-heat-cta-button {
      text-align: center;
      width: 100%;
    }

    #rk-heat-guide .rk-heat-capacity-row {
      grid-template-columns: minmax(0, 1fr);
      gap: 6px;
    }

    #rk-heat-guide .rk-heat-capacity-value {
      text-align: left;
    }

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

    #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;
      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;
      white-space: nowrap;
      width: 1px;
    }

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

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

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

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

    #rk-heat-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-heat-guide .rk-heat-author-main {
      padding: 25px 20px;
    }
  }

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

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

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

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

    #rk-heat-guide .rk-heat-shortcuts-label {
      flex: 1 0 100%;
    }

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

    #rk-heat-guide .rk-heat-section-title {
      font-size: 1.88rem;
    }

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

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


/* Dodatki do istniejącego układu kart. Nie używamy schematu z liniami ani strzałkami. */
#rk-heat-guide .rk-heat-path {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 30px;
}
#rk-heat-guide .rk-heat-path-step {
  background: #ffffff;
  border: 1px solid var(--rk-line);
  border-radius: 15px;
  padding: 19px;
}
#rk-heat-guide .rk-heat-path-step strong {
  background: var(--rk-cyan-soft);
  border-radius: 9px;
  color: #075e77;
  display: inline-block;
  font-size: .76rem;
  font-weight: 900;
  margin-bottom: 12px;
  padding: 7px 10px;
}
#rk-heat-guide .rk-heat-path-step h3 {
  color: var(--rk-ink);
  font-size: 1.05rem;
  line-height: 1.3;
  margin: 0 0 8px;
}
#rk-heat-guide .rk-heat-path-step p {
  color: var(--rk-copy);
  font-size: .9rem;
  margin: 0;
}
#rk-heat-guide .rk-heat-reason-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 30px;
}
#rk-heat-guide .rk-heat-reason-card {
  background: #fff;
  border: 1px solid var(--rk-line);
  border-radius: 17px;
  padding: 23px;
}
#rk-heat-guide .rk-heat-reason-card h3 {
  color: var(--rk-ink);
  font-size: 1.16rem;
  line-height: 1.3;
  margin: 0 0 10px;
}
#rk-heat-guide .rk-heat-reason-card p {
  color: var(--rk-copy);
  margin: 9px 0 0;
}
#rk-heat-guide .rk-heat-reason-card .rk-heat-first-check {
  background: #f2f8fa;
  border-radius: 10px;
  color: var(--rk-ink);
  font-size: .91rem;
  margin-top: 15px;
  padding: 12px 14px;
}
#rk-heat-guide .rk-heat-first-check strong { color: var(--rk-ink); }
#rk-heat-guide .rk-heat-analyzer-help {
  background: #1b465b;
  border-radius: 12px;
  color: #e4f0f4;
  font-size: .89rem;
  margin: 15px 0 0;
  padding: 13px 16px;
}
#rk-heat-guide .rk-heat-fields-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
#rk-heat-guide .rk-heat-result-detail {
  background: #f2f7f9;
  border: 1px solid #cfe0e7;
  border-radius: 13px;
  margin-top: 18px;
  padding: 18px;
}
#rk-heat-guide .rk-heat-result-detail h4 {
  color: var(--rk-ink);
  font-size: .92rem;
  letter-spacing: .04em;
  margin: 0 0 8px;
  text-transform: uppercase;
}
#rk-heat-guide .rk-heat-result-detail p,
#rk-heat-guide .rk-heat-result-detail ul { color: var(--rk-copy); margin: 0; }
#rk-heat-guide .rk-heat-result-detail ul { padding-left: 21px; }
#rk-heat-guide .rk-heat-result-detail li + li { margin-top: 7px; }
#rk-heat-guide .rk-heat-jump {
  background: #e5f8fa;
  border: 1px solid #9cdfe8;
  border-radius: 11px;
  color: var(--rk-ink);
  display: inline-block;
  font-weight: 900;
  margin-top: 22px;
  padding: 11px 17px;
  text-decoration: none;
}
#rk-heat-guide .rk-heat-jump:hover { background: #caeff3; color: #075e77; }
#rk-heat-guide .rk-heat-caption {
  color: var(--rk-muted);
  font-size: .82rem;
  margin-top: 14px;
}
#rk-heat-guide .rk-heat-section-subtitle {
  color: var(--rk-ink);
  font-size: clamp(1.26rem, 2.1vw, 1.66rem);
  line-height: 1.3;
  margin: 34px 0 0;
}
#rk-heat-guide .rk-heat-section-dark .rk-heat-section-subtitle { color: #fff; }
@media (max-width: 1050px) {
  #rk-heat-guide .rk-heat-path { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  #rk-heat-guide .rk-heat-path { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 660px) {
  #rk-heat-guide .rk-heat-path,
  #rk-heat-guide .rk-heat-reason-grid,
  #rk-heat-guide .rk-heat-fields-two { grid-template-columns: minmax(0, 1fr); }
  #rk-heat-guide .rk-heat-reason-card { padding: 19px; }
}
</style>

<article id="rk-heat-guide" aria-labelledby="rk-heat-visual-title">
  <div class="rk-heat-shell">
    <header class="rk-heat-hero">
      <span class="rk-heat-kicker">Diagnostyka wodnej podłogówki · poradnik techniczny</span>
      <div class="rk-heat-hero-title" id="rk-heat-visual-title">Ogrzewanie podłogowe nie grzeje? <span>Znajdź miejsce, w którym zatrzymało się ciepło</span></div>
      <p class="rk-heat-hero-lead">Zimny salon, jedna niedogrzana pętla albo wszystkie rotametry na zerze mogą mieć różne przyczyny. Zacznij od ustalenia, czy źródło grzeje, czy rozdzielacz otrzymuje ciepłą wodę i czy właściwe obwody mają przepływ.</p>
      <div class="rk-heat-hero-tags" aria-label="Zakres poradnika">
        <span>12 grup przyczyn</span><span>cały dom lub jeden pokój</span><span>rozdzielacz i rotametry</span><span>analizator ścieżki ciepła</span>
      </div>
      <div class="rk-heat-meta">
        <span>Autor: <strong>Robert Kucharski</strong></span>
        <span>Czas czytania: <strong>około 19 minut</strong></span>
        <span>Opracowanie techniczne: <strong>26 września 2026 r.</strong></span>
      </div>
    </header>

    <nav class="rk-heat-shortcuts" aria-label="Na skróty — sekcje poradnika">
      <span class="rk-heat-shortcuts-label">Na skróty</span>
      <a href="#rk-heat-answer">Szybka odpowiedź</a>
      <a href="#rk-heat-patterns">Gdzie jest problem?</a>
      <a href="#rk-heat-path-section">Ścieżka ciepła</a>
      <a href="#rk-heat-analyzer-section">Analizator</a>
      <a href="#rk-heat-source-section">Przyczyny 1–4</a>
      <a href="#rk-heat-circuit-section">Przyczyny 5–10</a>
      <a href="#rk-heat-output-section">Przyczyny 11–12</a>
      <a href="#rk-heat-steps">7 kroków kontroli</a>
      <a href="#rk-heat-readings">Jak czytać odczyty</a>
      <a href="#rk-heat-normal">Chłodna podłoga</a>
      <a href="#rk-heat-service">Kiedy serwis?</a>
      <a href="#rk-heat-summary">Podsumowanie</a>
      <a href="#rk-heat-sources">Źródła</a>
      <a href="#rk-heat-faq">FAQ</a>
      <a href="#rk-heat-author">Autor</a>
    </nav>

    <section class="rk-heat-section" id="rk-heat-answer">
      <span class="rk-heat-eyebrow">Odpowiedź w 60 sekund</span>
      <h2 class="rk-heat-section-title">Dlaczego ogrzewanie podłogowe nie grzeje?</h2>
      <p class="rk-heat-lead">Najpierw ustal, <strong>czy w ogóle istnieje zapotrzebowanie na grzanie</strong>. Potem sprawdź, czy ciepło dociera do rozdzielacza oraz czy przepływa przez pętlę przypisaną do chłodnego pomieszczenia. Dopiero po tych obserwacjach można sensownie podejrzewać powietrze, zabrudzenie, regulację albo zbyt małą moc podłogi.</p>
      <div class="rk-heat-answer">
        <strong>Najkrótsza ścieżka: pomieszczenie → sterowanie → źródło → rozdzielacz → przepływ pętli.</strong>
        <p>Brak ciepłej wody na zasilaniu wszystkich rozdzielaczy sugeruje inną grupę problemów niż jedna zimna pętla przy działających pozostałych. Pojedyncze zero na rotametrze nie potwierdza zapowietrzenia ani awarii pompy.</p>
      </div>
      <a class="rk-heat-jump" href="#rk-heat-analyzer-section">Przejdź do krótkiej diagnostyki</a>
      <div class="rk-heat-note rk-heat-note-bad"><p><strong>Przerwij samodzielne kontrole,</strong> jeśli zauważysz wyciek przy urządzeniach elektrycznych, gwałtowny spadek ciśnienia, wyciek gorącej wody albo alarm źródła ciepła. Nie rozkręcaj elementów pracującej instalacji.</p></div>
    </section>

    <section class="rk-heat-section rk-heat-section-soft" id="rk-heat-patterns">
      <span class="rk-heat-eyebrow">Zakres objawu skraca drogę do przyczyny</span>
      <h2 class="rk-heat-section-title">Nie grzeje cały dom, jedna kondygnacja czy pojedyncza pętla?</h2>
      <p class="rk-heat-lead">Zapisz, od kiedy występuje problem i co działa prawidłowo. Różnica między domem bez ciepła a jedną chłodną sypialnią jest ważniejsza niż sama informacja „podłoga jest zimna”.</p>
      <div class="rk-heat-table-wrap">
        <table>
          <thead><tr><th>Co obserwujesz?</th><th>Najpierw sprawdź</th><th>Czego to jeszcze nie dowodzi?</th></tr></thead>
          <tbody>
            <tr><td data-label="Co obserwujesz?"><strong>Cały dom nie osiąga zadanej temperatury</strong></td><td data-label="Najpierw sprawdź">Tryb grzania źródła, harmonogram, komunikaty i temperaturę wody wychodzącej na instalację.</td><td data-label="Czego to jeszcze nie dowodzi?">Nie przesądza o wadzie rur ukrytych w posadzce.</td></tr>
            <tr><td data-label="Co obserwujesz?"><strong>Nie grzeje jeden rozdzielacz lub piętro</strong></td><td data-label="Najpierw sprawdź">Ciepło na jego zasilaniu, stan pompy obiegu, zaworów i układu mieszającego.</td><td data-label="Czego to jeszcze nie dowodzi?">Nie oznacza automatycznie, że każda pętla na tej kondygnacji jest zapowietrzona.</td></tr>
            <tr><td data-label="Co obserwujesz?"><strong>Nie grzeje jeden pokój</strong></td><td data-label="Najpierw sprawdź">Żądanie termostatu, przypisany siłownik i odczyt przepływu odpowiedniej pętli.</td><td data-label="Czego to jeszcze nie dowodzi?">Zero na rotametrze może wynikać z prawidłowo zamkniętego obwodu.</td></tr>
            <tr><td data-label="Co obserwujesz?"><strong>Woda płynie, a pomieszczenie pozostaje chłodne</strong></td><td data-label="Najpierw sprawdź">Przepływ wobec projektu, temperaturę zasilania, czas pracy, okładzinę i temperaturę pomieszczenia.</td><td data-label="Czego to jeszcze nie dowodzi?">Sam ciepły przewód przy rozdzielaczu nie potwierdza wymaganej mocy podłogi.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-heat-copy">Porównuj pętle w tym samym cyklu pracy. Jeżeli jeden termostat wyłączył grzanie, a drugi wciąż zgłasza zapotrzebowanie, różne odczyty rotametrów są spodziewane.</p>
    </section>

    <section class="rk-heat-section" id="rk-heat-path-section">
      <span class="rk-heat-eyebrow">Pięć punktów kontrolnych</span>
      <h2 class="rk-heat-section-title">Prześledź drogę ciepła od źródła do pokoju</h2>
      <p class="rk-heat-lead">Ten prosty układ pokazuje, gdzie warto wykonać następną obserwację. Każdy punkt to osobny kafelek, czytelny również na telefonie.</p>
      <div class="rk-heat-path" aria-label="Modułowa ścieżka ciepła: pięć punktów kontroli">
        <div class="rk-heat-path-step"><strong>PUNKT 1</strong><h3>Źródło ciepła</h3><p>Czy naprawdę ogrzewa wodę dla obiegu grzewczego?</p></div>
        <div class="rk-heat-path-step"><strong>PUNKT 2</strong><h3>Sterowanie</h3><p>Czy jest żądanie grzania i właściwy tryb pracy?</p></div>
        <div class="rk-heat-path-step"><strong>PUNKT 3</strong><h3>Rozdzielacz</h3><p>Czy zasilanie dostaje ciepło i czy obieg pracuje?</p></div>
        <div class="rk-heat-path-step"><strong>PUNKT 4</strong><h3>Pętla</h3><p>Czy zawór jest otwarty i występuje przepływ?</p></div>
        <div class="rk-heat-path-step"><strong>PUNKT 5</strong><h3>Pomieszczenie</h3><p>Czy moc podłogi wystarcza do osiągnięcia temperatury?</p></div>
      </div>
      <div class="rk-heat-note rk-heat-note-good"><p><strong>Zasada diagnostyczna:</strong> jeżeli ciepło dociera do punktu 3, nie zaczynaj od wymiany źródła. Jeżeli nie dociera do punktu 3, najpierw wyjaśnij to, zanim ocenisz pojedynczą pętlę.</p></div>
    </section>

    <section class="rk-heat-section rk-heat-section-dark" id="rk-heat-analyzer-section">
      <span class="rk-heat-eyebrow">Jedno narzędzie do całej instalacji</span>
      <h2 class="rk-heat-section-title">Analizator: gdzie zatrzymało się ciepło?</h2>
      <p class="rk-heat-lead">Odpowiedz na podstawie obserwacji przy rzeczywistym żądaniu grzania. Gdy czegoś nie wiesz, pozostaw „Nie sprawdzono”. Wynik wskaże obszar oraz następny bezpieczny krok, bez udawania pewnej diagnozy.</p>
      <div class="rk-heat-calculator" id="rk-heat-analyzer">
        <div class="rk-heat-calculator-head">
          <h3>Przejdź drogę od pokoju do rozdzielacza</h3>
          <p>Nie zmieniaj projektowych nastaw tylko po to, by wypełnić formularz. Pomocne mogą być zdjęcie rozdzielacza i odczyt komunikatów urządzenia.</p>
        </div>
        <form id="rk-heat-form">
          <div class="rk-heat-stage">
            <div class="rk-heat-stage-head"><span class="rk-heat-stage-number">1</span><div><h4>Gdzie i kiedy pojawia się problem?</h4><p>Najpierw oddziel oczekiwanie użytkownika od mierzalnego braku komfortu.</p></div></div>
            <div class="rk-heat-fields rk-heat-fields-two">
              <label class="rk-heat-field"><span>Jaki obszar nie dogrzewa?</span>
                <select id="rk-heat-scope"><option value="unknown">Nie sprawdzono</option><option value="whole">Cały dom</option><option value="manifold">Jedna kondygnacja lub rozdzielacz</option><option value="room">Jeden pokój lub pętla</option></select></label>
              <label class="rk-heat-field"><span>Czy w pokoju osiągnięto temperaturę zadaną?</span>
                <select id="rk-heat-comfort"><option value="unknown">Nie sprawdzono</option><option value="yes">Tak, pomieszczenie jest dogrzane</option><option value="no">Nie, pomieszczenie jest niedogrzane</option></select></label>
              <label class="rk-heat-field"><span>Czy sterowanie aktualnie żąda grzania?</span>
                <select id="rk-heat-demand"><option value="unknown">Nie sprawdzono</option><option value="yes">Tak</option><option value="no">Nie / instalacja w postoju</option></select></label>
            </div>
          </div>
          <div class="rk-heat-stage">
            <div class="rk-heat-stage-head"><span class="rk-heat-stage-number">2</span><div><h4>Źródło, rozdzielacz i obieg</h4><p>Odczytuj wskaźniki lub dostępne termometry. Nie dotykaj gorących elementów.</p></div></div>
            <div class="rk-heat-fields rk-heat-fields-two">
              <label class="rk-heat-field"><span>Czy źródło dostarcza ciepło do obiegu grzewczego?</span>
                <select id="rk-heat-source"><option value="unknown">Nie sprawdzono</option><option value="yes">Tak</option><option value="no">Nie / brak podgrzewania</option><option value="alarm">Źródło zgłasza błąd lub blokadę</option></select></label>
              <label class="rk-heat-field"><span>Czy zasilanie właściwego rozdzielacza jest ciepłe?</span>
                <select id="rk-heat-feed"><option value="unknown">Nie sprawdzono</option><option value="yes">Tak, przy żądaniu grzania</option><option value="no">Nie, pozostaje chłodne</option></select></label>
              <label class="rk-heat-field"><span>Co pokazują rotametry po otwarciu właściwych obwodów?</span>
                <select id="rk-heat-flow"><option value="unknown">Nie sprawdzono / brak wskaźników</option><option value="yes">Przepływ jest widoczny</option><option value="allzero">Wszystkie pokazują zero</option><option value="onezero">Jedna istotna pętla pokazuje zero</option><option value="low">Przepływy są wyraźnie niższe niż w projekcie</option></select></label>
              <label class="rk-heat-field"><span>Jak zachowuje się ciśnienie?</span>
                <select id="rk-heat-pressure"><option value="unknown">Nie sprawdzono</option><option value="stable">Jest stabilne przy porównywalnej temperaturze</option><option value="falling">Spada lub trzeba stale dolewać wody</option></select></label>
            </div>
            <p class="rk-heat-analyzer-help">Jeżeli źródło nie grzeje i rozdzielacz jest chłodny, odczyt rotametrów nie pozwoli jeszcze ocenić mocy podłogi. Narzędzie nada pierwszeństwo wcześniejszemu punktowi problemu.</p>
          </div>
          <div class="rk-heat-calculator-actions">
            <button class="rk-heat-calculate-button" type="submit">Pokaż kolejność dalszych kontroli</button>
            <button class="rk-heat-reset-button" type="button" id="rk-heat-reset">Wyczyść odpowiedzi</button>
          </div>
        </form>
        <div class="rk-heat-result" id="rk-heat-result" aria-live="polite" aria-atomic="false" tabindex="-1">
          <h3 class="rk-heat-result-status" id="rk-heat-status">Wybierz obserwacje z Twojej instalacji</h3>
          <p class="rk-heat-result-intro" id="rk-heat-intro">Wynik pokaże punkt, od którego warto rozpocząć sprawdzanie.</p>
          <div class="rk-heat-result-detail"><h4>Dlaczego zaczynamy tutaj?</h4><p id="rk-heat-why">Zacznij od zakresu problemu i upewnij się, że ogrzewanie ma aktualnie pracować.</p></div>
          <div class="rk-heat-result-detail"><h4>Następne bezpieczne kroki</h4><ul id="rk-heat-next"><li>Odczytaj stan sterowania, źródła i właściwego rozdzielacza.</li></ul></div>
          <div class="rk-heat-result-detail"><h4>Kiedy przekazać sprawę serwisowi?</h4><p id="rk-heat-service-note">Jeżeli pojawia się wyciek, alarm lub brak możliwości bezpiecznego odczytu, nie ingeruj w pracujące urządzenia.</p></div>
          <p class="rk-heat-caption">Analizator nie mierzy przepływów ani temperatur. Nie potwierdza awarii, nie zastępuje instrukcji urządzeń i nie zapisuje odpowiedzi na serwerze.</p>
        </div>
      </div>
      <p class="rk-heat-copy">Jeżeli JavaScript jest niedostępny, skorzystaj z tabeli scenariuszy oraz siedmiu kroków kontroli poniżej. Nie traktuj pustego wyniku jako potwierdzenia sprawności instalacji.</p>
    </section>

    <section class="rk-heat-section" id="rk-heat-source-section">
      <span class="rk-heat-eyebrow">Przyczyny 01–04 · energia i sygnał</span>
      <h2 class="rk-heat-section-title">Źródło i sterowanie: czy obieg ma w ogóle grzać?</h2>
      <p class="rk-heat-lead">Gdy nie działa cały dom, zaczynanie od odpowietrzania losowej pętli wydłuża diagnostykę. Te cztery przyczyny sprawdza się, zanim oceni się rozdzielacz.</p>
      <div class="rk-heat-reason-grid">
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">01</span><h3>Źródło nie dostarcza ciepła</h3><p>Kocioł lub pompa ciepła mogą być wyłączone, zablokowane komunikatem albo pracować w trybie, który nie ogrzewa obiegu. Nie oceniaj pracy wyłącznie po świecącej kontrolce.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> odczytaj tryb, komunikaty i temperaturę zasilania obiegu na urządzeniu.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">02</span><h3>Harmonogram albo krzywa ogranicza temperaturę</h3><p>Tryb letni, obniżenie nocne, ustawienie pogodowe i priorytet innego zadania mogą zmienić pracę ogrzewania. Niska temperatura wody przy łagodnej pogodzie bywa prawidłową reakcją automatyki.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> porównaj żądanie grzania i ustawienia z aktualnymi temperaturami. Zobacz też <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">jak działa krzywa grzewcza</a>.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">03</span><h3>Termostat lub czujnik nie zgłasza potrzeby grzania</h3><p>Pomieszczenie może mieć osiągniętą temperaturę zadaną, aktywny harmonogram postoju albo błędny odczyt czujnika. Wówczas brak przepływu może być normalnym skutkiem zamknięcia strefy.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> sprawdź wskazanie, zadanie i stan wyjścia sterownika. Szczegóły: <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">termostat w ogrzewaniu podłogowym</a>.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">04</span><h3>Siłownik lub zawór nie otwiera pętli</h3><p>Sygnał z termostatu może być poprawny, lecz niewłaściwy siłownik obsługuje pokój, brakuje zasilania listwy albo mechanizm zaworu pozostaje zamknięty. Typ NC i NO oraz czas ruchu zależą od rozwiązania.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> ustal przypisanie obwodu i porównaj żądanie grzania ze stanem siłownika. Zobacz <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">poradnik o siłownikach</a>.</p></article>
      </div>
      <div class="rk-heat-note"><p><strong>Uwaga na pozorną sprzeczność:</strong> termostat może żądać grzania, a rozdzielacz chwilowo jeszcze nie reagować. Termoelektryczny siłownik i ciężka posadzka nie działają natychmiast.</p></div>
    </section>

    <section class="rk-heat-section rk-heat-section-soft" id="rk-heat-circuit-section">
      <span class="rk-heat-eyebrow">Przyczyny 05–10 · obieg i przepływ</span>
      <h2 class="rk-heat-section-title">Rozdzielacz jest chłodny albo pętla nie ma przepływu</h2>
      <p class="rk-heat-lead">Rozpoznaj, czy problem obejmuje zasilanie całego rozdzielacza, wszystkie jego obwody czy pojedynczą pętlę. Ten podział pomaga dobrać kolejność kontroli.</p>
      <div class="rk-heat-reason-grid">
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">05</span><h3>Pompa obiegu nie tłoczy zgodnie z potrzebą</h3><p>Może nie mieć sygnału uruchomienia, zgłaszać błąd albo pracować w niewłaściwym trybie dla układu. Sama informacja, że urządzenie jest zasilone, nie potwierdza przepływu w pętlach.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> sprawdź komunikaty, harmonogram i dostępne odczyty pompy. Szerzej: <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa a podłogówka</a>.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">06</span><h3>Zawór mieszający ogranicza temperaturę zasilania</h3><p>Ciepło może być dostępne przed grupą mieszającą, lecz woda kierowana na rozdzielacz pozostaje zbyt chłodna do aktualnych warunków. W układzie z buforem trzeba sprawdzić także sposób poboru ciepła.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> porównaj temperatury przed mieszaniem i za nim; nie przestawiaj zabezpieczeń temperatury w ciemno. Zobacz <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/">rolę zaworu mieszającego</a>.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">07</span><h3>Zawór odcinający przerywa drogę wody</h3><p>Po serwisie jeden z zaworów przy grupie pompowej, rozdzielaczu lub źródle może pozostać zamknięty. Układ wygląda wtedy jak awaria pompy lub zapowietrzenie.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> porównaj położenie dostępnych zaworów z dokumentacją lub wcześniejszym zdjęciem; nie ruszaj zaworów, których funkcji nie znasz.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">08</span><h3>Ciśnienie spada albo źródło blokuje pracę</h3><p>Utrata wody może spowodować alarm źródła i dopływ powietrza po kolejnych uzupełnieniach. Wartość manometru zależy od wysokości instalacji, położenia naczynia i warunków urządzeń.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> zapisz trend przy porównywalnej temperaturze. Przy częstym dolewaniu szukaj przyczyny ubytku, nie maskuj go wodą.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">09</span><h3>Powietrze blokuje lub zaburza przepływ</h3><p>Bulgotanie, wahania odczytu i niedogrzanie po napełnianiu zwiększają podejrzenie zapowietrzenia. Pojedynczy chłodny pokój albo zero na wskaźniku nie wystarczają do rozpoznania.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> porównaj kilka objawów i historię prac. Szczegółowa ścieżka jest w artykule o <a href="https://projekt-ogrzewania.pl/objawy-zapowietrzenia-ogrzewania-podlogowego/">objawach zapowietrzenia</a>.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">10</span><h3>Filtr, zawór lub element rozdzielacza jest zabrudzony</h3><p>Zanieczyszczenia mogą ograniczyć obieg przed rozdzielaczem albo lokalnie przy jednej pętli. Zabrudzony pływak może także podawać odczyt wymagający weryfikacji.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> ustal, czy brak przepływu dotyczy wszystkich pętli czy jednej. Demontaż i czyszczenie wykonuje się zgodnie z instrukcją po bezpiecznym odcięciu instalacji.</p></article>
      </div>
      <p class="rk-heat-copy">Jeśli chcesz prawidłowo odczytać wskaźnik, skorzystaj z osobnego poradnika: <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr w rozdzielaczu podłogówki</a>. Różne modele mają różną skalę i punkt odczytu; wartość „0” ma sens dopiero w określonych warunkach pracy.</p>
    </section>

    <section class="rk-heat-section" id="rk-heat-output-section">
      <span class="rk-heat-eyebrow">Przyczyny 11–12 · woda płynie, ale pokój jest chłodny</span>
      <h2 class="rk-heat-section-title">Kiedy problem wynika z hydrauliki lub niewystarczającej mocy?</h2>
      <p class="rk-heat-lead">Po wykluczeniu braku żądania, braku ciepła i zamkniętego obwodu sprawdź, czy dostępny przepływ oraz powierzchnia grzewcza odpowiadają potrzebom pokoju. W tym miejscu przydaje się projekt i dokumentacja powykonawcza.</p>
      <div class="rk-heat-reason-grid">
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">11</span><h3>Przepływy nie odpowiadają obliczeniom</h3><p>Zbyt długa lub oporna pętla, niewłaściwy podział obwodów, ustawienia rozdzielacza i dostępny napór pompy wpływają na możliwość uzyskania wymaganego przepływu. Jedna uniwersalna nastawa rotametru dla wszystkich pętli nie rozwiązuje problemu.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> zestaw odczyt pętli z jej wartością projektową i długością. Pomocny będzie poradnik o <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a>.</p></article>
        <article class="rk-heat-reason-card"><span class="rk-heat-card-number">12</span><h3>Podłoga oddaje mniej mocy, niż potrzebuje pomieszczenie</h3><p>Za mała powierzchnia czynna, duży opór okładziny, parametry wody lub błędnie określone straty ciepła mogą sprawić, że pokój nie osiągnie celu mimo przepływu. Samo podnoszenie temperatury zasilania może naruszyć ograniczenia posadzki i okładziny.</p><p class="rk-heat-first-check"><strong>Najpierw:</strong> porównaj projektowe obciążenie cieplne pomieszczenia z mocą przewidzianą dla podłogi oraz sprawdź rzeczywiste wykończenie.</p></article>
      </div>
      <div class="rk-heat-note"><p><strong>Serwis a projekt:</strong> wymiana siłownika może przywrócić działanie zaworu. Nie zwiększy jednak powierzchni grzewczej ani nie usunie oporów wynikających ze zbyt długiego obwodu. Odwrotnie, nowy projekt nie naprawi urządzenia, które właśnie zgłasza błąd.</p></div>
      <aside class="rk-heat-cta" aria-label="Projekt dla planowanej instalacji">
        <h3 class="rk-heat-cta-title">Dopiero planujesz podłogówkę lub przebudowę instalacji?</h3>
        <p>Długości pętli, przepływy, rozstaw rur i moc podłogi warto sprawdzić przed wykonaniem posadzki. Indywidualny projekt łączy obciążenie cieplne pomieszczeń z układem obwodów i danymi do ich regulacji.</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" data-rk-cta="mid">Sprawdź zakres projektu ogrzewania podłogowego</a>
        <small class="rk-heat-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika. Projekt nowej instalacji nie zastępuje serwisu awaryjnego.</small>
      </aside>
    </section>

    <section class="rk-heat-section rk-heat-section-soft" id="rk-heat-steps">
      <span class="rk-heat-eyebrow">Do wykonania przed zmianą nastaw</span>
      <h2 class="rk-heat-section-title">Diagnostyka podłogówki w siedmiu krokach</h2>
      <p class="rk-heat-lead">Zapisuj wyniki po kolei, najlepiej w czasie jednego stabilnego cyklu grzania. Kontrola jest bezinwazyjna: bazuje na wskazaniach, dokumentacji i dostępnych elementach.</p>
      <div class="rk-heat-grid-2">
        <article class="rk-heat-card"><span class="rk-heat-card-number">01</span><h3>Potwierdź niedogrzanie pomieszczenia</h3><p>Porównaj temperaturę rzeczywistą z zadaną, uwzględniając czas od uruchomienia i historię pracy. Nie oceniaj systemu po dotknięciu płytek.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">02</span><h3>Ustal zasięg problemu</h3><p>Zapisz, czy chodzi o dom, rozdzielacz czy jedną pętlę. Sprawdź, czy sąsiednie pomieszczenia otrzymują ciepło w tym samym czasie.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">03</span><h3>Sprawdź źródło i żądanie grzania</h3><p>Odczytaj tryb pracy, komunikaty i dostępne temperatury. Zanotuj, czy termostaty żądają grzania.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">04</span><h3>Sprawdź dopływ ciepła do rozdzielacza</h3><p>Odczytaj dostępne termometry przed grupą mieszającą i na zasilaniu rozdzielacza. Nie używaj dotyku jako precyzyjnego pomiaru.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">05</span><h3>Porównaj siłowniki i przepływy</h3><p>Ustal przypisanie pętli do pokoju, stan zaworów i odczyt rotametrów przy rzeczywistym zapotrzebowaniu. Zrób zdjęcie przed ingerencją.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">06</span><h3>Oceń trend ciśnienia i historię prac</h3><p>Sprawdź, czy ciśnienie pozostaje stabilne przy podobnej temperaturze oraz czy przed problemem były napełnianie, serwis lub zmiana sterowania.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">07</span><h3>Zestaw wynik z dokumentacją</h3><p>Porównaj długości obwodów, nastawy projektowe, temperatury oraz wymagane moce. Brak poprawy po usunięciu prostej przyczyny wymaga pomiarów serwisowych.</p></article>
      </div>
      <div class="rk-heat-note rk-heat-note-good"><p><strong>Przekazując problem instalatorowi,</strong> dołącz zdjęcie rozdzielacza, komunikat urządzenia, przypisanie pętli do pomieszczeń i temperaturę w pokoju. Taki zestaw jest bardziej użyteczny niż samo „podłoga zimna”.</p></div>
    </section>

    <section class="rk-heat-section" id="rk-heat-readings">
      <span class="rk-heat-eyebrow">Odczyt to wskazówka, nie wyrok</span>
      <h2 class="rk-heat-section-title">Jak interpretować zasilanie, powrót i rotametry?</h2>
      <p class="rk-heat-lead">Temperatury i przepływy interpretujemy przy znanym stanie sterowania. Dwa odczyty wykonane w różnych fazach pracy mogą prowadzić do przeciwstawnych wniosków.</p>
      <div class="rk-heat-table-wrap">
        <table>
          <thead><tr><th>Obserwacja</th><th>Co może sugerować?</th><th>Co sprawdzić, zanim uznasz przyczynę?</th></tr></thead>
          <tbody>
            <tr><td data-label="Obserwacja"><strong>Rozdzielacz chłodny, źródło też nie grzeje</strong></td><td data-label="Co może sugerować?">Brak żądania, tryb postoju albo problem ze źródłem.</td><td data-label="Co sprawdzić?">Komunikaty, harmonogram, temperatury i reakcję automatyki.</td></tr>
            <tr><td data-label="Obserwacja"><strong>Źródło ciepłe, rozdzielacz chłodny</strong></td><td data-label="Co może sugerować?">Problem między źródłem a rozdzielaczem.</td><td data-label="Co sprawdzić?">Pompy, zawory, mieszanie, bufor i właściwy tor hydrauliczny.</td></tr>
            <tr><td data-label="Obserwacja"><strong>Jeden rotametr pokazuje zero</strong></td><td data-label="Co może sugerować?">Zamknięty obwód, brak przepływu lub błąd odczytu.</td><td data-label="Co sprawdzić?">Żądanie strefy, siłownik, skalę wskaźnika i sąsiednie pętle.</td></tr>
            <tr><td data-label="Obserwacja"><strong>Wszystkie rotametry pokazują zero</strong></td><td data-label="Co może sugerować?">Brak zapotrzebowania albo wspólny problem z obiegiem.</td><td data-label="Co sprawdzić?">Sterowanie, pompę, odcięcia, ciśnienie i przepływ przed rozdzielaczem.</td></tr>
            <tr><td data-label="Obserwacja"><strong>Zasilanie ciepłe, powrót chłodniejszy</strong></td><td data-label="Co może sugerować?">Podłoga pobiera ciepło albo przepływ jest mały.</td><td data-label="Co sprawdzić?">Przepływ, czas od uruchomienia i stabilność temperatur. Duża różnica sama nie potwierdza zatkania.</td></tr>
          </tbody>
        </table>
      </div>
      <p class="rk-heat-copy">Po pełnym wychłodzeniu jastrychu temperatura powrotu może się zmieniać w trakcie rozgrzewania. Dlatego wyniki porównuje się w czasie, a nie z jedną uniwersalną wartością różnicy temperatur. Więcej o dynamice systemu wyjaśnia tekst <a href="https://projekt-ogrzewania.pl/ile-czasu-nagrzewa-sie-podlogowka/">ile czasu nagrzewa się podłogówka</a>.</p>
      <div class="rk-heat-note rk-heat-note-bad"><p><strong>Nie wykonuj diagnostyki przez podnoszenie temperatury „na próbę”.</strong> Wysoka temperatura może zaszkodzić okładzinie lub przekroczyć dopuszczalne warunki pracy podłogi. Parametry zasilania powinny wynikać z projektu i wymagań systemu.</p></div>
    </section>

    <section class="rk-heat-section rk-heat-section-soft" id="rk-heat-normal">
      <span class="rk-heat-eyebrow">Sytuacja, która często wygląda jak usterka</span>
      <h2 class="rk-heat-section-title">Dlaczego podłoga bywa chłodna w dotyku, chociaż grzeje?</h2>
      <p class="rk-heat-lead">Woda w rurach nie musi stale ogrzewać powierzchni odczuwalnie powyżej temperatury skóry. Przy niewielkim zapotrzebowaniu automatyka może też okresowo zamykać pętle. Liczy się to, czy pomieszczenie utrzymuje zadaną temperaturę.</p>
      <div class="rk-heat-grid-3">
        <article class="rk-heat-card"><span class="rk-heat-card-number">ODCZUCIE</span><h3>Stopa nie jest termometrem</h3><p>Okładziny różnią się odczuciem przy dotyku. Chłodny w odczuciu gres nie dowodzi, że system nie pokrywa strat pomieszczenia.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">POSTÓJ</span><h3>Termostat osiągnął cel</h3><p>Po zamknięciu obwodu rotametr może pokazać zero. Najpierw ustal, czy sterowanie nadal żąda ogrzewania tej strefy.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">CZAS</span><h3>Jastrych ma bezwładność</h3><p>Zmiana temperatury wody nie oznacza natychmiastowej zmiany temperatury pokoju. Porównuj odczyty w sensownym przedziale czasu.</p></article>
      </div>
      <p class="rk-heat-copy">Jeżeli temperatura pomieszczenia jest stale niższa od zadanej, odczucie powierzchni przestaje być najważniejsze. Trzeba wrócić do mocy, przepływów, nastaw i strat ciepła. Pomocny będzie poradnik o <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">temperaturze ogrzewania podłogowego</a>.</p>
    </section>

    <section class="rk-heat-section" id="rk-heat-service">
      <span class="rk-heat-eyebrow">Granice samodzielnej kontroli</span>
      <h2 class="rk-heat-section-title">Kiedy potrzebny jest serwis i co mu przekazać?</h2>
      <p class="rk-heat-lead">Jeśli pojawiają się objawy awaryjne albo podstawowe kontrole nie wyjaśniają braku ciepła, potrzebne są pomiary na miejscu. Właściciel może zebrać dane, ale nie musi rozbierać urządzeń.</p>
      <div class="rk-heat-grid-2">
        <article class="rk-heat-card"><span class="rk-heat-card-number">PILNE</span><h3>Zatrzymaj ingerencję</h3><p>Wyciek przy elektryce, woda z gorącego elementu, szybka utrata ciśnienia lub alarm urządzenia wymagają bezpiecznej reakcji zgodnej z instrukcją i kontaktu z odpowiednim serwisem.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">DO POMIARU</span><h3>Objaw nie ustępuje</h3><p>Gdy źródło pracuje, strefa jest otwarta i problem się utrzymuje, serwis powinien zweryfikować temperatury, przepływy, stan zaworów, pompę i drożność.</p></article>
      </div>
      <h3 class="rk-heat-section-subtitle">Krótka lista danych dla instalatora</h3>
      <ul class="rk-heat-bullets">
        <li>które pomieszczenia i pętle są chłodne oraz od kiedy,</li>
        <li>temperatura zadana i rzeczywista w tych pokojach,</li>
        <li>tryb źródła, komunikaty oraz widoczne wskazania temperatur,</li>
        <li>zdjęcie rozdzielacza wykonane przy żądaniu grzania,</li>
        <li>stan ciśnienia i informacja, czy trzeba było dolewać wody,</li>
        <li>ostatnie prace serwisowe oraz projektowe nastawy, jeśli są dostępne.</li>
      </ul>
      <p class="rk-heat-copy">Harmonogram kontroli i zakres czynności na działającej instalacji omawia oddzielny artykuł: <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">jak często serwisować ogrzewanie podłogowe</a>. Ten poradnik prowadzi przez aktualny problem z brakiem ciepła.</p>
    </section>

    <section class="rk-heat-section rk-heat-final" id="rk-heat-summary">
      <span class="rk-heat-eyebrow">Podsumowanie diagnostyki</span>
      <h2 class="rk-heat-section-title">Najpierw znajdź punkt problemu, potem wybierz naprawę</h2>
      <p class="rk-heat-lead">W jednej instalacji wystarczy przywrócić żądanie grzania. W innej trzeba zbadać pompę lub pojedynczą pętlę. Jeśli przepływ występuje, a pomieszczenie stale nie osiąga celu, potrzebna jest ocena mocy podłogi wobec strat ciepła i obliczeń hydraulicznych.</p>
      <div class="rk-heat-grid-3">
        <article class="rk-heat-card"><span class="rk-heat-card-number">ŹRÓDŁO</span><h3>Nie ma ciepła u początku</h3><p>Sprawdź sterowanie i źródło, zanim oceniasz rury w podłodze.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">OBIEG</span><h3>Ciepło nie dociera do pętli</h3><p>Ustal stan pompy, mieszania, zaworów, siłownika i przepływu.</p></article>
        <article class="rk-heat-card"><span class="rk-heat-card-number">MOC</span><h3>Woda płynie, a pokój zimny</h3><p>Porównaj obliczenia, okładzinę, długości pętli i nastawy.</p></article>
      </div>
      <aside class="rk-heat-cta" aria-label="Projekt podłogówki przed montażem">
        <h3 class="rk-heat-cta-title">Planujesz nową instalację? Policz pętle przed wykonaniem posadzki</h3>
        <p>Projekt określi wymaganą moc pomieszczeń, rozstaw i długość obwodów, przepływy, opory oraz parametry potrzebne do późniejszej regulacji. Dzięki temu instalator i inwestor mają punkt odniesienia przy odbiorze.</p>
        <a class="rk-heat-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" data-rk-cta="final">Zobacz indywidualny projekt ogrzewania podłogowego</a>
        <small class="rk-heat-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora artykułu. W przypadku awarii istniejącego systemu najpierw potrzebna jest diagnostyka i serwis.</small>
      </aside>
    </section>

    <section class="rk-heat-section" id="rk-heat-sources">
      <span class="rk-heat-eyebrow">Podstawa techniczna</span>
      <h2 class="rk-heat-section-title">Źródła oficjalne i zakres poradnika</h2>
      <p class="rk-heat-lead">Dokumenty poniżej określają podstawy wyznaczania mocy, instalowania systemów oraz oceny obciążenia cieplnego. Siedem kroków kontroli i analizator są autorskim uporządkowaniem obserwacji; nie stanowią procedury narzuconej przez normę.</p>
      <div class="rk-heat-source-grid">
        <article class="rk-heat-source-card"><a href="https://sklep.pkn.pl/pn-en-1264-2-2021-10e.html" target="_blank" rel="nofollow noopener noreferrer">PKN: PN-EN 1264-2:2021-10</a><p>Oficjalna karta normy o określaniu mocy cieplnej wodnego ogrzewania podłogowego.</p></article>
        <article class="rk-heat-source-card"><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 części dotyczącej instalowania wbudowanych wodnych systemów płaszczyznowych.</p></article>
        <article class="rk-heat-source-card"><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 normy dotyczącej metody obliczania projektowego obciążenia cieplnego.</p></article>
        <article class="rk-heat-source-card"><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</a><p>Oficjalna karta wytycznych dotyczących ograniczania powstawania osadów i korozji po stronie wody instalacyjnej.</p></article>
      </div>
      <div class="rk-heat-responsibility"><p><strong>Zakres odpowiedzialności:</strong> poradnik pomaga ustalić sensowną kolejność obserwacji. Nie rozpoznaje zdalnie awarii, nie wyznacza jednego ciśnienia ani jednej temperatury właściwych dla wszystkich instalacji, nie zastępuje instrukcji urządzeń, projektu i pomiarów wykonanych na miejscu. Usterki urządzeń oraz elementów pod napięciem należy pozostawić właściwemu serwisowi.</p></div>
    </section>

    <section class="rk-heat-section rk-heat-section-soft" id="rk-heat-faq">
      <span class="rk-heat-eyebrow">Pytania z praktyki</span>
      <h2 class="rk-heat-section-title">FAQ: ogrzewanie podłogowe nie grzeje</h2>
      <div class="rk-heat-faq">
        <details><summary>Dlaczego podłogówka nie grzeje, chociaż piec lub pompa ciepła pracuje?</summary><div class="rk-heat-faq-answer"><p>Pracujące źródło nie potwierdza, że ciepło trafia do właściwego rozdzielacza. Sprawdź żądanie grzania, temperaturę obiegu, pompę, zawory i układ mieszający. Jeżeli rozdzielacz jest ciepły, przejdź do stanu siłowników i przepływów pętli.</p></div></details>
        <details><summary>Dlaczego jeden pokój ma zimną podłogę, a pozostałe grzeją?</summary><div class="rk-heat-faq-answer"><p>Możliwy jest brak żądania z termostatu, zamknięty siłownik lub zawór, powietrze, zabrudzenie, mały przepływ albo zbyt mała moc tej strefy. Najpierw ustal przypisanie pętli do pokoju i porównaj ją z działającymi obwodami w tym samym cyklu grzania.</p></div></details>
        <details><summary>Co oznacza zero na jednym rotametrze?</summary><div class="rk-heat-faq-answer"><p>Przy zamkniętej strefie może być stanem prawidłowym. Przy otwartym obwodzie wymaga kontroli zaworu, siłownika, odczytu wskaźnika, obecności powietrza i drożności. Samo zero nie potwierdza jednej konkretnej awarii.</p></div></details>
        <details><summary>Dlaczego wszystkie rotametry wskazują zero?</summary><div class="rk-heat-faq-answer"><p>Sprawdź, czy pomieszczenia w tej chwili żądają grzania. Następnie skontroluj pracę pompy, wspólne zawory odcinające, zasilanie rozdzielacza, ciśnienie oraz stan sterowania. Wszystkie zera nie dowodzą, że wszystkie pętle są zapowietrzone.</p></div></details>
        <details><summary>Rozdzielacz jest ciepły, lecz podłoga nie dogrzewa. Co sprawdzić?</summary><div class="rk-heat-faq-answer"><p>Porównaj przepływy obwodów z projektem, temperaturę zasilania, czas pracy i temperaturę pokoju. Jeśli woda płynie, a zadana temperatura nie jest osiągana, trzeba ocenić moc możliwą do oddania przez powierzchnię podłogi względem strat ciepła pomieszczenia.</p></div></details>
        <details><summary>Czy chłodny powrót zawsze oznacza zatkaną pętlę?</summary><div class="rk-heat-faq-answer"><p>Nie. Podczas rozgrzewania zimnej posadzki powrót może być chłodniejszy, ponieważ podłoga intensywnie pobiera ciepło. Wynik należy zestawić z przepływem i temperaturami mierzonymi w stabilnych warunkach.</p></div></details>
        <details><summary>Czy trzeba od razu odpowietrzyć wszystkie pętle?</summary><div class="rk-heat-faq-answer"><p>Nie ma takiej zasady. Najpierw potwierdź zapotrzebowanie, otwarcie obwodu, zasilanie rozdzielacza i inne objawy wskazujące na powietrze. Przypadkowa ingerencja w sprawne obwody może zmienić nastawy i utrudnić diagnozę.</p></div></details>
        <details><summary>Dlaczego podłoga jest chłodna w dotyku, ale termostat pokazuje temperaturę zadaną?</summary><div class="rk-heat-faq-answer"><p>Przy osiągniętej temperaturze pomieszczenia sterowanie może ograniczyć lub zamknąć przepływ. Odczucie zależy również od okładziny oraz aktualnego zapotrzebowania na ciepło. Sam brak wrażenia ciepłej powierzchni nie oznacza usterki.</p></div></details>
        <details><summary>Czy można zwiększyć temperaturę zasilania, aby szybciej znaleźć usterkę?</summary><div class="rk-heat-faq-answer"><p>Nie traktuj tego jako uniwersalnego testu. Wyższa temperatura może naruszyć ograniczenia wykończenia i systemu, a jednocześnie zamaskować problem z przepływem lub zbyt małą powierzchnią czynną. Porównaj odczyty z projektem i instrukcjami.</p></div></details>
        <details><summary>Czy nowy projekt naprawi instalację, która teraz nie grzeje?</summary><div class="rk-heat-faq-answer"><p>Projekt planowanej instalacji nie zastępuje serwisu awaryjnego. Jeśli istniejąca instalacja ma usterkę, potrzebne są oględziny i pomiary. Obliczenia są szczególnie przydatne przy przebudowie albo wtedy, gdy po usunięciu usterek pomieszczenia nadal nie osiągają wymaganej temperatury.</p></div></details>
      </div>
    </section>

    <section class="rk-heat-author" id="rk-heat-author">
      <span class="rk-heat-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-heat-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-heat-author-layout">
        <aside class="rk-heat-author-side">
          <div class="rk-heat-author-photo"><img fetchpriority="high" 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="eager" decoding="async"></div>
          <div class="rk-heat-author-name">Robert Kucharski</div>
          <p class="rk-heat-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-heat-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-heat-author-main">
          <div class="rk-heat-author-quote">„Gdy podłogówka nie grzeje, najpierw sprawdzam, dokąd dociera ciepło i czy płynie przez właściwy obwód. Ten sam objaw może wynikać ze sterowania, pompy, zaworu albo zbyt małej mocy podłogi.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego oraz obliczenia cieplne i hydrauliczne instalacji. W poradnikach łączy obserwacje możliwe do wykonania przez właściciela z danymi, które wymagają projektu lub pomiarów serwisowych.</p>
          <p>W tym artykule odróżnia usterkę istniejącego systemu od ograniczeń wynikających z podziału pętli, przepływów i dostępnej powierzchni grzewczej. Opisane kontrole nie zastępują dokumentacji konkretnego urządzenia ani oględzin na miejscu.</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>.</p>
          <p><a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe poradniki Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-heat-author-facts">
            <div class="rk-heat-author-fact"><strong>Zakres</strong>podłogówka, bilanse cieplne, hydraulika i regulacja</div>
            <div class="rk-heat-author-fact"><strong>Metoda</strong>obserwacja, dokumentacja, pomiary i obliczenia</div>
            <div class="rk-heat-author-fact"><strong>Opracowanie</strong>26 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",
      "worksFor": [
        { "@id": "https://projekt-ogrzewania.pl/#organization" },
        { "@id": "https://remont.biz.pl/#organization" },
        { "@id": "https://sobir.pl/#organization" }
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "diagnostyka instalacji grzewczych",
        "hydraulika pętli podłogowych",
        "obliczenia strat ciepła",
        "równoważenie hydrauliczne"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#webpage",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/",
      "name": "Ogrzewanie podłogowe nie grzeje – 12 przyczyn i diagnostyka krok po kroku",
      "description": "Podłogówka nie grzeje w całym domu czy tylko w jednym pokoju? Sprawdź źródło, rozdzielacz i przepływy. Przejdź diagnostykę krok po kroku.",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "breadcrumb": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#breadcrumb" },
      "inLanguage": "pl-PL",
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#article" }
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#article",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#webpage" },
      "headline": "Ogrzewanie podłogowe nie grzeje – 12 przyczyn i diagnostyka krok po kroku",
      "description": "Praktyczna diagnostyka wodnego ogrzewania podłogowego: źródło ciepła, termostaty, siłowniki, pompa, rozdzielacz, przepływy pętli i moc podłogi.",
      "author": { "@id": "https://projekt-ogrzewania.pl/#robert-kucharski" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "inLanguage": "pl-PL",
      "about": [
        "ogrzewanie podłogowe nie grzeje",
        "jedna pętla podłogówki nie grzeje",
        "diagnostyka rozdzielacza",
        "brak przepływu przez pętlę",
        "zbyt mała moc ogrzewania podłogowego"
      ],
      "keywords": "ogrzewanie podłogowe nie grzeje, podłogówka nie grzeje, jedna pętla nie grzeje, zimna podłoga, rozdzielacz ciepły podłoga zimna, rotametr zero",
      "isAccessibleForFree": true,
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#analyzer" },
        { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#howto" },
        { "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#faq-schema" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#analyzer",
      "name": "Analizator ścieżki ciepła w ogrzewaniu podłogowym",
      "url": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#rk-heat-analyzer-section",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Dowolny system z nowoczesną przeglądarką internetową",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "description": "Narzędzie edukacyjne porządkujące obserwacje od źródła i sterowania przez rozdzielacz oraz pętlę do temperatury pomieszczenia, bez stawiania diagnozy technicznej."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#howto",
      "name": "Jak sprawdzić, dlaczego wodne ogrzewanie podłogowe nie grzeje",
      "description": "Siedem bezinwazyjnych kroków zebrania obserwacji przed diagnozą lub wezwaniem serwisu.",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Potwierdź niedogrzanie pomieszczenia", "text": "Porównaj temperaturę rzeczywistą z zadaną i zapisz czas od uruchomienia." },
        { "@type": "HowToStep", "position": 2, "name": "Ustal zasięg problemu", "text": "Sprawdź, czy problem dotyczy domu, rozdzielacza, pokoju czy jednej pętli." },
        { "@type": "HowToStep", "position": 3, "name": "Sprawdź źródło i żądanie grzania", "text": "Zapisz tryb, komunikaty i temperatury źródła oraz stan termostatów." },
        { "@type": "HowToStep", "position": 4, "name": "Sprawdź dopływ ciepła do rozdzielacza", "text": "Porównaj dostępne wskazania temperatur przed grupą mieszającą i na zasilaniu rozdzielacza." },
        { "@type": "HowToStep", "position": 5, "name": "Porównaj siłowniki i przepływy", "text": "Ustal przypisanie pętli, stan siłownika i odczyt rotametrów przy żądaniu grzania." },
        { "@type": "HowToStep", "position": 6, "name": "Oceń ciśnienie i historię prac", "text": "Zapisz trend ciśnienia oraz niedawne napełnianie, serwis lub zmiany sterowania." },
        { "@type": "HowToStep", "position": 7, "name": "Zestaw odczyty z projektem", "text": "Porównaj długości pętli, projektowe nastawy, wymagane moce i temperatury." }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/#faq-schema",
      "mainEntity": [
        { "@type": "Question", "name": "Dlaczego podłogówka nie grzeje, chociaż piec lub pompa ciepła pracuje?", "acceptedAnswer": { "@type": "Answer", "text": "Pracujące źródło nie potwierdza, że ciepło trafia do właściwego rozdzielacza. Sprawdź żądanie grzania, temperaturę obiegu, pompę, zawory i układ mieszający. Jeżeli rozdzielacz jest ciepły, przejdź do stanu siłowników i przepływów pętli." } },
        { "@type": "Question", "name": "Dlaczego jeden pokój ma zimną podłogę, a pozostałe grzeją?", "acceptedAnswer": { "@type": "Answer", "text": "Możliwy jest brak żądania z termostatu, zamknięty siłownik lub zawór, powietrze, zabrudzenie, mały przepływ albo zbyt mała moc tej strefy. Najpierw ustal przypisanie pętli do pokoju i porównaj ją z działającymi obwodami w tym samym cyklu grzania." } },
        { "@type": "Question", "name": "Co oznacza zero na jednym rotametrze?", "acceptedAnswer": { "@type": "Answer", "text": "Przy zamkniętej strefie może być stanem prawidłowym. Przy otwartym obwodzie wymaga kontroli zaworu, siłownika, odczytu wskaźnika, obecności powietrza i drożności. Samo zero nie potwierdza jednej konkretnej awarii." } },
        { "@type": "Question", "name": "Dlaczego wszystkie rotametry wskazują zero?", "acceptedAnswer": { "@type": "Answer", "text": "Sprawdź, czy pomieszczenia w tej chwili żądają grzania. Następnie skontroluj pracę pompy, wspólne zawory odcinające, zasilanie rozdzielacza, ciśnienie oraz stan sterowania. Wszystkie zera nie dowodzą, że wszystkie pętle są zapowietrzone." } },
        { "@type": "Question", "name": "Rozdzielacz jest ciepły, lecz podłoga nie dogrzewa. Co sprawdzić?", "acceptedAnswer": { "@type": "Answer", "text": "Porównaj przepływy obwodów z projektem, temperaturę zasilania, czas pracy i temperaturę pokoju. Jeśli woda płynie, a zadana temperatura nie jest osiągana, trzeba ocenić moc możliwą do oddania przez powierzchnię podłogi względem strat ciepła pomieszczenia." } },
        { "@type": "Question", "name": "Czy chłodny powrót zawsze oznacza zatkaną pętlę?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Podczas rozgrzewania zimnej posadzki powrót może być chłodniejszy, ponieważ podłoga intensywnie pobiera ciepło. Wynik należy zestawić z przepływem i temperaturami mierzonymi w stabilnych warunkach." } },
        { "@type": "Question", "name": "Czy trzeba od razu odpowietrzyć wszystkie pętle?", "acceptedAnswer": { "@type": "Answer", "text": "Nie ma takiej zasady. Najpierw potwierdź zapotrzebowanie, otwarcie obwodu, zasilanie rozdzielacza i inne objawy wskazujące na powietrze. Przypadkowa ingerencja w sprawne obwody może zmienić nastawy i utrudnić diagnozę." } },
        { "@type": "Question", "name": "Dlaczego podłoga jest chłodna w dotyku, ale termostat pokazuje temperaturę zadaną?", "acceptedAnswer": { "@type": "Answer", "text": "Przy osiągniętej temperaturze pomieszczenia sterowanie może ograniczyć lub zamknąć przepływ. Odczucie zależy również od okładziny oraz aktualnego zapotrzebowania na ciepło. Sam brak wrażenia ciepłej powierzchni nie oznacza usterki." } },
        { "@type": "Question", "name": "Czy można zwiększyć temperaturę zasilania, aby szybciej znaleźć usterkę?", "acceptedAnswer": { "@type": "Answer", "text": "Nie traktuj tego jako uniwersalnego testu. Wyższa temperatura może naruszyć ograniczenia wykończenia i systemu, a jednocześnie zamaskować problem z przepływem lub zbyt małą powierzchnią czynną. Porównaj odczyty z projektem i instrukcjami." } },
        { "@type": "Question", "name": "Czy nowy projekt naprawi instalację, która teraz nie grzeje?", "acceptedAnswer": { "@type": "Answer", "text": "Projekt planowanej instalacji nie zastępuje serwisu awaryjnego. Jeśli istniejąca instalacja ma usterkę, potrzebne są oględziny i pomiary. Obliczenia są szczególnie przydatne przy przebudowie albo wtedy, gdy po usunięciu usterek pomieszczenia nadal nie osiągają wymaganej temperatury." } }
      ]
    }
  ]
}
</script>

<script>
(function () {
  "use strict";
  var guide = document.getElementById("rk-heat-guide");
  if (!guide || guide.dataset.rkReady === "1") { return; }
  guide.dataset.rkReady = "1";

  var form = guide.querySelector("#rk-heat-form");
  var box = guide.querySelector("#rk-heat-result");
  var status = guide.querySelector("#rk-heat-status");
  var intro = guide.querySelector("#rk-heat-intro");
  var why = guide.querySelector("#rk-heat-why");
  var next = guide.querySelector("#rk-heat-next");
  var service = guide.querySelector("#rk-heat-service-note");

  function value(id) { return guide.querySelector("#" + id).value; }
  function render(title, summary, reason, steps, professional, severity) {
    status.textContent = title;
    intro.textContent = summary;
    why.textContent = reason;
    service.textContent = professional;
    next.textContent = "";
    steps.forEach(function (step) {
      var li = document.createElement("li");
      li.textContent = step;
      next.appendChild(li);
    });
    box.classList.remove("is-good", "is-stop");
    if (severity === "good") { box.classList.add("is-good"); }
    if (severity === "stop") { box.classList.add("is-stop"); }
  }

  function analyze(event) {
    if (event) { event.preventDefault(); }
    var scope = value("rk-heat-scope");
    var comfort = value("rk-heat-comfort");
    var demand = value("rk-heat-demand");
    var source = value("rk-heat-source");
    var feed = value("rk-heat-feed");
    var flow = value("rk-heat-flow");
    var pressure = value("rk-heat-pressure");

    if (pressure === "falling") {
      render("Najpierw wyjaśnij spadek ciśnienia",
        "Częsta potrzeba dopuszczania wody lub spadek ciśnienia wymaga kontroli przyczyny.",
        "Ubytek może wpływać na pracę źródła oraz powracanie powietrza. Formularz nie lokalizuje przecieku i nie zna wymaganego ciśnienia Twojego układu.",
        ["Zapisz odczyt i czas pomiaru przy porównywalnej temperaturze.", "Sprawdź widoczne połączenia bez rozkręcania armatury.", "Przekaż obserwacje serwisowi; nie maskuj objawu kolejnym dolewaniem."],
        "Szybki spadek, ślady wycieku, mokra instalacja elektryczna albo alarm źródła: wstrzymaj ingerencję i wezwij odpowiedni serwis.", "stop");
    } else if (source === "alarm") {
      render("Zacznij od komunikatu źródła ciepła",
        "Blokada urządzenia wymaga postępowania według jego dokumentacji.",
        "Bez usunięcia przyczyny blokady dalsza analiza pętli nie pokaże, czy są sprawne.",
        ["Zapisz dokładny kod błędu i moment jego wystąpienia.", "Sprawdź bezinwazyjnie tryb pracy i odczyty dostępne na panelu.", "Przekaż kod autoryzowanemu lub właściwemu serwisowi źródła."],
        "Nie obchodź zabezpieczeń kotła ani pompy ciepła. Przy wodzie obok elektryki zakończ kontrole.", "stop");
    } else if (comfort === "yes") {
      render("Pomieszczenie osiąga temperaturę zadaną",
        "Chłodne odczucie podłogi nie musi oznaczać usterki.",
        "Po osiągnięciu celu sterowanie może ograniczyć przepływ. Reakcja okładziny i bezwładność podłogi wpływają na odczucie.",
        ["Obserwuj temperaturę w pokoju w kolejnych godzinach.", "Sprawdź, czy przepływ pojawia się, kiedy pokój rzeczywiście wymaga grzania.", "Jeśli pozostałe pomieszczenia nie osiągają celu, oceń je osobno."],
        "Serwis jest potrzebny, gdy występują równocześnie alarmy, wycieki, hałas lub niestabilne ciśnienie.", "good");
    } else if (demand === "no") {
      render("Najpierw sprawdź sterowanie strefy",
        "Bez żądania ogrzewania brak przepływu może być normalnym stanem.",
        "Harmonogram, osiągnięta temperatura, czujnik lub tryb letni mogą wstrzymywać otwarcie zaworu.",
        ["Porównaj temperaturę zadaną i odczytaną.", "Sprawdź bieżący tryb oraz harmonogram.", "Dopiero po rzeczywistym żądaniu ponownie oceń źródło i rotametry."],
        "Jeśli sterownik powinien wysłać sygnał, ale nie reaguje, serwis powinien sprawdzić układ elektryczny i automatykę.", "check");
    } else if (source === "no") {
      render("Ciepło nie powstaje w źródle",
        "Zacznij od obiegu źródła i warunków jego uruchomienia.",
        "Bez ciepłej wody na wejściu instalacji temperatura posadzki nie pozwala ocenić drożności pętli.",
        ["Sprawdź tryb pracy, komunikaty i żądanie grzania na sterowniku.", "Zapisz temperatury zasilania dostępne na panelu.", "Jeśli źródło powinno grzać, przekaż wyniki jego serwisowi."],
        "Urządzeń gazowych i elektrycznych nie otwieraj samodzielnie.", "check");
    } else if (feed === "no" && source === "yes") {
      render("Sprawdź drogę między źródłem a rozdzielaczem",
        "Źródło dostarcza ciepło, ale nie dociera ono do właściwego rozdzielacza.",
        "Przyczyna może leżeć w pracy pompy, zaworach, mieszaniu, buforze albo sterowaniu obiegu.",
        ["Porównaj odczyty temperatur przed mieszaniem i na zasilaniu rozdzielacza.", "Sprawdź dostępne komunikaty pompy oraz położenia opisanych zaworów.", "Zapisz, czy problem dotyczy obu rozdzielaczy czy jednego."],
        "Jeżeli stan drogi hydraulicznej nie wynika z dokumentacji, zleć kontrolę instalatorowi.", "check");
    } else if (flow === "allzero" && demand === "yes") {
      render("Brak widocznego przepływu na całym rozdzielaczu",
        "Najpierw sprawdź wspólne elementy obiegu, a potem poszczególne pętle.",
        "Wszystkie zera mogą wiązać się z pompą, zaworami odcinającymi, sterowaniem lub odczytem; nie wskazują automatycznie na powietrze we wszystkich pętlach.",
        ["Potwierdź, że siłowniki powinny być otwarte i miały czas zareagować.", "Sprawdź komunikaty pompy, zasilanie rozdzielacza i dostępne zawory.", "Zrób zdjęcie wskaźników w trakcie rzeczywistego grzania."],
        "Gdy mimo żądania i ciepłego zasilania nie ma przepływu, serwis powinien wykonać pomiary obiegu.", "check");
    } else if (flow === "onezero" && demand === "yes") {
      render("Problem może dotyczyć jednej pętli",
        "Porównaj tę pętlę z obwodami, które w tym samym czasie grzeją.",
        "Możliwe są zamknięty zawór, niewłaściwy siłownik, powietrze, zabrudzony wskaźnik lub lokalny opór. Sam odczyt nie odróżnia ich od siebie.",
        ["Ustal numer pętli i pomieszczenie, do którego należy.", "Porównaj żądanie termostatu ze stanem jej siłownika.", "Zapisz, czy pojawiły się dźwięki lub problem wystąpił po napełnianiu."],
        "Jeżeli prawidłowo otwarta pętla nadal nie ma przepływu, serwis powinien zbadać drożność i odpowietrzenie.", "check");
    } else if (flow === "low" && demand === "yes") {
      render("Porównaj przepływy z projektem",
        "Małe odczyty wymagają odniesienia do projektowych wartości pętli.",
        "Nastawy, filtr, parametry pompy i opór najtrudniejszej drogi mogą ograniczać przepływ. Mała liczba na rotametrze nie jest zawsze błędem.",
        ["Odszukaj tabelę wymaganych przepływów obwodów.", "Zapisz wskazania podczas stabilnej pracy oraz stan wszystkich stref.", "Przekaż długości pętli i odczyty do oceny hydraulicznej."],
        "Nie zmieniaj wszystkich nastaw rotametrów ani biegu pompy bez rozpoznania przyczyny.", "check");
    } else if (flow === "yes" && comfort === "no" && demand === "yes") {
      render("Przepływ jest widoczny, lecz pokój nie osiąga celu",
        "Następny krok to porównanie mocy, temperatury wody i strat pomieszczenia.",
        "Sama obecność przepływu nie gwarantuje odpowiedniej emisji z podłogi. Znaczenie mają rozstaw, powierzchnia czynna, okładzina i temperatura zasilania.",
        ["Sprawdź, jak długo ogrzewanie działało w stabilnych warunkach.", "Porównaj temperatury zasilania i powrotu oraz wartość przepływu z projektem.", "Zweryfikuj rzeczywistą okładzinę i projektowe obciążenie pokoju."],
        "Jeżeli przepływ i sterowanie są poprawne, a pomieszczenie nadal nie osiąga celu, potrzebna jest ocena cieplna i hydrauliczna.", "check");
    } else if (scope === "unknown" || comfort === "unknown" || demand === "unknown") {
      render("Zbierz podstawowe obserwacje",
        "Zasięg problemu, temperatura pokoju i żądanie grzania mają pierwszeństwo przed oceną pętli.",
        "Bez tych trzech danych nie da się odróżnić usterki od normalnego postoju sterowania.",
        ["Ustal, czy nie grzeje cały dom czy jedno pomieszczenie.", "Porównaj temperaturę zadaną i rzeczywistą.", "Sprawdź, czy sterowanie zgłasza aktualne żądanie grzania."],
        "Jeśli nie możesz bezpiecznie uzyskać odczytów, przekaż obserwacje serwisowi.", "check");
    } else {
      render("Potrzebne są kolejne odczyty przy pracy instalacji",
        "Dotychczasowe odpowiedzi nie wskazują jednego punktu, w którym zatrzymuje się ciepło.",
        "Nieznane temperatury źródła, rozdzielacza lub przepływy mogą ukrywać przyczynę. Unikaj wymiany części na podstawie przypuszczeń.",
        ["Sprawdź temperaturę wody wychodzącej ze źródła.", "Sprawdź temperaturę zasilania odpowiedniego rozdzielacza.", "Zapisz odczyty przepływów oraz czas od uruchomienia."],
        "Jeśli problem się utrzymuje po zebraniu danych, poproś o diagnostykę na miejscu.", "check");
    }
    box.focus({ preventScroll: true });
  }

  form.addEventListener("submit", analyze);
  guide.querySelector("#rk-heat-reset").addEventListener("click", function () {
    form.reset();
    render("Wybierz obserwacje z Twojej instalacji",
      "Wynik pokaże punkt, od którego warto rozpocząć sprawdzanie.",
      "Zacznij od zakresu problemu i upewnij się, że ogrzewanie ma aktualnie pracować.",
      ["Odczytaj stan sterowania, źródła i właściwego rozdzielacza."],
      "Jeżeli pojawia się wyciek, alarm lub brak możliwości bezpiecznego odczytu, nie ingeruj w pracujące urządzenia.",
      "check");
  });
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/">Ogrzewanie podłogowe nie grzeje – 12 przyczyn i diagnostyka krok po kroku.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-nie-grzeje/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</title>
		<link>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Mon, 07 Sep 2026 11:18:34 +0000</pubDate>
				<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Hydraulika instalacji]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Obliczenia cieplne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Projekt ogrzewania]]></category>
		<category><![CDATA[Projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sztuczna inteligencja]]></category>
		<category><![CDATA[ai hvac]]></category>
		<category><![CDATA[chatgpt ogrzewanie podłogowe]]></category>
		<category><![CDATA[długość pętli ogrzewania podłogowego]]></category>
		<category><![CDATA[dobór pompy obiegowej]]></category>
		<category><![CDATA[obliczanie strat ciepła]]></category>
		<category><![CDATA[opory hydrauliczne podłogówki]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego ai]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego z chatgpt]]></category>
		<category><![CDATA[projekt podłogówki online]]></category>
		<category><![CDATA[projekt podłogówki samemu]]></category>
		<category><![CDATA[przepływ w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[rozstaw rur ogrzewania podłogowego]]></category>
		<category><![CDATA[sztuczna inteligencja w hvac]]></category>
		<category><![CDATA[weryfikacja projektu ogrzewania podłogowego]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=7493</guid>

					<description><![CDATA[<p>AI + HVAC • analiza techniczna 2026 Projekt wygląda profesjonalnie. Teraz sprawdź, czy liczby naprawdę się spinają. ChatGPT może uporządkować dane, objaśnić wzory i przygotować logicznie brzmiącą koncepcję. Nie oznacza to jeszcze, że podłoga pokryje straty ciepła, pętle dadzą się wyregulować, a pompa obsłuży krytyczny obieg. Czytanie: około 28 minut Interaktywny audyt projektu AI Aktualizacja:&#8230;&#160;<a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/" rel="bookmark">Dowiedz się więcej &#187;<span class="screen-reader-text">Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</span></a></p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/">Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-ai-floor-guide {
    --rk-dark: #102536;
    --rk-navy: #14384d;
    --rk-blue: #078fbe;
    --rk-cyan: #28c9da;
    --rk-cyan-soft: #e9fbff;
    --rk-orange: #ff7438;
    --rk-orange-soft: #fff2ec;
    --rk-green: #16876d;
    --rk-green-soft: #eaf8f3;
    --rk-yellow: #e7ad2f;
    --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.76;
  }

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

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

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

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

  #rk-ai-floor-guide summary,
  #rk-ai-floor-guide a {
    -webkit-tap-highlight-color: transparent;
  }

  #rk-ai-floor-guide h2,
  #rk-ai-floor-guide h3,
  #rk-ai-floor-guide h4,
  #rk-ai-floor-guide p,
  #rk-ai-floor-guide ul,
  #rk-ai-floor-guide ol,
  #rk-ai-floor-guide blockquote {
    margin-top: 0;
  }

  #rk-ai-floor-guide h2,
  #rk-ai-floor-guide h3,
  #rk-ai-floor-guide h4 {
    color: var(--rk-dark);
    line-height: 1.18;
    letter-spacing: -0.025em;
  }

  #rk-ai-floor-guide h2 {
    margin-bottom: 22px;
    font-size: clamp(30px, 4vw, 48px);
    scroll-margin-top: 30px;
  }

  #rk-ai-floor-guide h3 {
    margin-bottom: 12px;
    font-size: clamp(22px, 2.4vw, 29px);
  }

  #rk-ai-floor-guide h4 {
    margin-bottom: 9px;
    font-size: 20px;
  }

  #rk-ai-floor-guide p:last-child,
  #rk-ai-floor-guide ul:last-child,
  #rk-ai-floor-guide ol:last-child {
    margin-bottom: 0;
  }

  #rk-ai-floor-guide .rk-ai-shell {
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    background: var(--rk-white);
    box-shadow: 0 28px 80px rgba(16, 37, 54, 0.11);
  }

  #rk-ai-floor-guide .rk-ai-hero {
    position: relative;
    overflow: hidden;
    padding: 62px 58px 54px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 88% 15%, rgba(40, 201, 218, 0.26), transparent 28%),
      radial-gradient(circle at 78% 105%, rgba(255, 116, 56, 0.27), transparent 34%),
      linear-gradient(135deg, #0f2637 0%, #123f55 64%, #174c5c 100%);
  }

  #rk-ai-floor-guide .rk-ai-hero::after {
    content: "AI";
    position: absolute;
    right: -20px;
    top: -62px;
    color: rgba(255, 255, 255, 0.045);
    font-size: 260px;
    font-weight: 1000;
    line-height: 1;
    letter-spacing: -0.12em;
    transform: rotate(-7deg);
  }

  #rk-ai-floor-guide .rk-ai-hero-inner {
    position: relative;
    z-index: 1;
    max-width: 940px;
  }

  #rk-ai-floor-guide .rk-ai-eyebrow,
  #rk-ai-floor-guide .rk-ai-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 0.11em;
    text-transform: uppercase;
  }

  #rk-ai-floor-guide .rk-ai-eyebrow {
    color: #91f4ff;
  }

  #rk-ai-floor-guide .rk-ai-eyebrow b {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--rk-orange);
    box-shadow: 0 0 0 7px rgba(255, 116, 56, 0.14);
  }

  #rk-ai-floor-guide .rk-ai-hero-title {
    max-width: 910px;
    margin-bottom: 20px;
    color: var(--rk-white);
    font-size: clamp(38px, 6vw, 68px);
    font-weight: 950;
    line-height: 1.02;
    letter-spacing: -0.05em;
  }

  #rk-ai-floor-guide .rk-ai-hero-lead {
    max-width: 850px;
    margin-bottom: 26px;
    color: #dcecf2;
    font-size: clamp(19px, 2.3vw, 24px);
    line-height: 1.55;
  }

  #rk-ai-floor-guide .rk-ai-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  #rk-ai-floor-guide .rk-ai-meta span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 999px;
    color: #e7f7fa;
    background: rgba(255, 255, 255, 0.07);
    font-size: 13px;
    font-weight: 750;
  }

  #rk-ai-floor-guide .rk-ai-meta i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rk-cyan);
  }

  #rk-ai-floor-guide .rk-ai-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 24px 32px;
    border-bottom: 1px solid var(--rk-line);
    background: var(--rk-white);
  }

  #rk-ai-floor-guide .rk-ai-nav strong {
    display: block;
    width: 100%;
    margin-bottom: 2px;
    color: var(--rk-muted);
    font-size: 12px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  #rk-ai-floor-guide .rk-ai-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 15px;
    border-radius: 999px;
    color: var(--rk-dark);
    background: var(--rk-soft);
    font-size: 14px;
    font-weight: 850;
    line-height: 1.25;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease;
  }

  #rk-ai-floor-guide .rk-ai-nav a:hover,
  #rk-ai-floor-guide .rk-ai-nav a:focus-visible {
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-1px);
    outline: none;
  }

  #rk-ai-floor-guide .rk-ai-section {
    padding: 64px 58px;
    border-bottom: 1px solid var(--rk-line);
  }

  #rk-ai-floor-guide .rk-ai-section:nth-of-type(even) {
    background: #fbfdfe;
  }

  #rk-ai-floor-guide .rk-ai-intro {
    max-width: 950px;
    margin-bottom: 30px;
    color: var(--rk-text);
    font-size: 20px;
  }

  #rk-ai-floor-guide .rk-ai-answer {
    display: grid;
    grid-template-columns: 1.45fr 0.8fr;
    overflow: hidden;
    margin: 30px 0;
    border: 1px solid var(--rk-line);
    border-radius: 22px;
  }

  #rk-ai-floor-guide .rk-ai-answer-main,
  #rk-ai-floor-guide .rk-ai-answer-side {
    padding: 28px;
  }

  #rk-ai-floor-guide .rk-ai-answer-main {
    background: var(--rk-cyan-soft);
  }

  #rk-ai-floor-guide .rk-ai-answer-side {
    color: var(--rk-white);
    background: var(--rk-navy);
  }

  #rk-ai-floor-guide .rk-ai-answer-side h3 {
    color: var(--rk-white);
  }

  #rk-ai-floor-guide .rk-ai-answer-side p {
    color: #dcebf0;
  }

  #rk-ai-floor-guide .rk-ai-formula {
    margin: 28px 0;
    padding: 25px 28px;
    border-left: 6px solid var(--rk-cyan);
    border-radius: 0 18px 18px 0;
    background: var(--rk-dark);
    color: var(--rk-white);
  }

  #rk-ai-floor-guide .rk-ai-formula strong {
    display: block;
    margin-bottom: 8px;
    color: #8ff5ff;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: clamp(21px, 3vw, 31px);
    letter-spacing: -0.03em;
  }

  #rk-ai-floor-guide .rk-ai-formula span {
    color: #d9e8ed;
    font-size: 15px;
  }

  #rk-ai-floor-guide .rk-ai-grid-2,
  #rk-ai-floor-guide .rk-ai-grid-3,
  #rk-ai-floor-guide .rk-ai-grid-4 {
    display: grid;
    gap: 18px;
    margin: 28px 0;
  }

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

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

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

  #rk-ai-floor-guide .rk-ai-card,
  #rk-ai-floor-guide .rk-ai-error,
  #rk-ai-floor-guide .rk-ai-step,
  #rk-ai-floor-guide .rk-ai-check {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    box-shadow: 0 10px 28px rgba(16, 37, 54, 0.05);
  }

  #rk-ai-floor-guide .rk-ai-card-number,
  #rk-ai-floor-guide .rk-ai-error b,
  #rk-ai-floor-guide .rk-ai-check b {
    display: inline-flex;
    margin-bottom: 14px;
    color: var(--rk-blue);
    font-size: 12px;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
  }

  #rk-ai-floor-guide .rk-ai-card h3,
  #rk-ai-floor-guide .rk-ai-error h3,
  #rk-ai-floor-guide .rk-ai-step h3,
  #rk-ai-floor-guide .rk-ai-check h3 {
    font-size: 22px;
  }

  #rk-ai-floor-guide .rk-ai-card p,
  #rk-ai-floor-guide .rk-ai-error p,
  #rk-ai-floor-guide .rk-ai-step p,
  #rk-ai-floor-guide .rk-ai-check p {
    color: var(--rk-text);
    font-size: 16px;
  }

  #rk-ai-floor-guide .rk-ai-check {
    border-top: 5px solid var(--rk-cyan);
  }

  #rk-ai-floor-guide .rk-ai-check:nth-child(2n) {
    border-top-color: var(--rk-green);
  }

  #rk-ai-floor-guide .rk-ai-check:nth-child(3n) {
    border-top-color: var(--rk-orange);
  }

  #rk-ai-floor-guide .rk-ai-check:nth-child(4n) {
    border-top-color: var(--rk-purple);
  }

  #rk-ai-floor-guide .rk-ai-callout {
    margin: 28px 0;
    padding: 24px 26px;
    border: 1px solid #eed68d;
    border-radius: 18px;
    background: var(--rk-yellow-soft);
  }

  #rk-ai-floor-guide .rk-ai-callout strong {
    display: block;
    margin-bottom: 7px;
    color: #78550b;
    font-size: 18px;
  }

  #rk-ai-floor-guide .rk-ai-callout p {
    color: #6f5a25;
  }

  #rk-ai-floor-guide .rk-ai-quote {
    position: relative;
    margin: 28px 0;
    padding: 28px 28px 28px 78px;
    border: 0;
    border-radius: 18px;
    background: var(--rk-purple-soft);
  }

  #rk-ai-floor-guide .rk-ai-quote::before {
    content: "„";
    position: absolute;
    left: 24px;
    top: 0;
    color: var(--rk-purple);
    font-family: Georgia, serif;
    font-size: 80px;
    line-height: 1;
  }

  #rk-ai-floor-guide .rk-ai-quote p {
    color: #342b70;
    font-size: 19px;
    font-weight: 750;
  }

  #rk-ai-floor-guide .rk-ai-table-wrap {
    margin: 30px 0;
  }

  #rk-ai-floor-guide .rk-ai-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-white);
    font-size: 15px;
  }

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

  #rk-ai-floor-guide .rk-ai-table th:last-child,
  #rk-ai-floor-guide .rk-ai-table td:last-child {
    border-right: 0;
  }

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

  #rk-ai-floor-guide .rk-ai-table thead th {
    color: var(--rk-white);
    background: var(--rk-navy);
    font-size: 13px;
    letter-spacing: 0.035em;
  }

  #rk-ai-floor-guide .rk-ai-table tbody tr:nth-child(even) td {
    background: var(--rk-soft);
  }

  #rk-ai-floor-guide .rk-ai-table-caption {
    margin-top: 10px;
    color: var(--rk-muted);
    font-size: 13px;
  }

  #rk-ai-floor-guide .rk-ai-tool {
    overflow: hidden;
    margin-top: 30px;
    border-radius: 24px;
    color: var(--rk-white);
    background: var(--rk-dark);
    box-shadow: 0 24px 65px rgba(16, 37, 54, 0.18);
  }

  #rk-ai-floor-guide .rk-ai-tool-head {
    padding: 34px 36px 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    background:
      radial-gradient(circle at 93% 15%, rgba(40, 201, 218, 0.2), transparent 25%),
      linear-gradient(135deg, #123146, #16485a);
  }

  #rk-ai-floor-guide .rk-ai-tool-head h3 {
    margin-bottom: 10px;
    color: var(--rk-white);
    font-size: clamp(27px, 4vw, 40px);
  }

  #rk-ai-floor-guide .rk-ai-tool-head p {
    max-width: 900px;
    color: #d7e9ef;
  }

  #rk-ai-floor-guide .rk-ai-tool-body {
    display: grid;
    gap: 20px;
    padding: 28px;
  }

  #rk-ai-floor-guide .rk-ai-tool-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
  }

  #rk-ai-floor-guide .rk-ai-tool-row.rk-ai-analysis-stack {
    grid-template-columns: 1fr;
  }

  #rk-ai-floor-guide .rk-ai-tool-panel {
    min-width: 0;
    padding: 24px;
    border: 1px solid rgba(160, 213, 228, 0.25);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.045);
  }

  #rk-ai-floor-guide .rk-ai-tool-panel h4 {
    margin-bottom: 8px;
    color: var(--rk-white);
    font-size: 22px;
  }

  #rk-ai-floor-guide .rk-ai-tool-panel > p {
    margin-bottom: 18px;
    color: #bfd5de;
    font-size: 14px;
  }

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

  #rk-ai-floor-guide .rk-ai-field {
    min-width: 0;
  }

  #rk-ai-floor-guide .rk-ai-field.is-wide {
    grid-column: 1 / -1;
  }

  #rk-ai-floor-guide .rk-ai-field label {
    display: block;
    margin-bottom: 7px;
    color: #e8f6f9;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
  }

  #rk-ai-floor-guide .rk-ai-field input,
  #rk-ai-floor-guide .rk-ai-field select {
    width: 100%;
    height: 48px;
    padding: 10px 12px;
    border: 1px solid #b8ccd4;
    border-radius: 9px;
    color: var(--rk-dark);
    background: var(--rk-white);
    outline: none;
  }

  #rk-ai-floor-guide .rk-ai-field input:focus,
  #rk-ai-floor-guide .rk-ai-field select:focus {
    border-color: var(--rk-cyan);
    box-shadow: 0 0 0 4px rgba(40, 201, 218, 0.15);
  }

  #rk-ai-floor-guide .rk-ai-field small {
    display: block;
    margin-top: 6px;
    color: #9fb8c3;
    font-size: 11px;
    line-height: 1.4;
  }

  #rk-ai-floor-guide .rk-ai-audit-summary {
    display: grid;
    grid-template-columns: minmax(230px, 0.7fr) minmax(0, 1.3fr);
    gap: 18px;
    align-items: stretch;
  }

  #rk-ai-floor-guide .rk-ai-score-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 240px;
    padding: 28px;
    border: 1px solid rgba(160, 213, 228, 0.25);
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.045);
    text-align: center;
  }

  #rk-ai-floor-guide .rk-ai-score-ring {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 132px;
    height: 132px;
    border-radius: 50%;
    background: conic-gradient(var(--rk-score-color, var(--rk-cyan)) 0deg, var(--rk-score-color, var(--rk-cyan)) var(--rk-score-angle, 0deg), rgba(255, 255, 255, 0.12) var(--rk-score-angle, 0deg));
    box-shadow: inset 0 0 0 12px rgba(16, 37, 54, 0.96);
  }

  #rk-ai-floor-guide .rk-ai-score-ring strong {
    color: var(--rk-white);
    font-size: 34px;
    line-height: 1;
  }

  #rk-ai-floor-guide .rk-ai-score-label {
    margin-top: 16px;
    color: #9fb8c3;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  #rk-ai-floor-guide .rk-ai-verdict {
    margin-top: 7px;
    color: #79efc7;
    font-size: 21px;
    font-weight: 950;
    line-height: 1.2;
  }

  #rk-ai-floor-guide .rk-ai-verdict.is-warning {
    color: #ffd26d;
  }

  #rk-ai-floor-guide .rk-ai-verdict.is-danger {
    color: #ff968a;
  }

  #rk-ai-floor-guide .rk-ai-results {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
  }

  #rk-ai-floor-guide .rk-ai-result {
    min-width: 0;
    padding: 15px;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 13px;
    background: rgba(4, 22, 34, 0.35);
  }

  #rk-ai-floor-guide .rk-ai-result span {
    display: block;
    margin-bottom: 5px;
    color: #9eb7c1;
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.045em;
    text-transform: uppercase;
  }

  #rk-ai-floor-guide .rk-ai-result strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--rk-white);
    font-size: clamp(19px, 2.6vw, 27px);
    line-height: 1.1;
  }

  #rk-ai-floor-guide .rk-ai-result small {
    display: block;
    margin-top: 5px;
    color: #8fa8b3;
    font-size: 10px;
  }

  #rk-ai-floor-guide .rk-ai-result.is-accent strong {
    color: #75edf8;
  }

  #rk-ai-floor-guide .rk-ai-chart-wrap {
    overflow: hidden;
    border: 1px solid rgba(160, 213, 228, 0.2);
    border-radius: 14px;
    background: #f8fbfc;
  }

  #rk-ai-floor-guide .rk-ai-chart {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 760 / 330;
  }

  #rk-ai-floor-guide .rk-ai-chart-caption {
    padding: 12px 16px 15px;
    border-top: 1px solid var(--rk-line);
    color: var(--rk-dark);
    font-size: 11px;
    font-weight: 750;
  }

  #rk-ai-floor-guide .rk-ai-diagnostics {
    display: grid;
    gap: 9px;
  }

  #rk-ai-floor-guide .rk-ai-diagnostic {
    padding: 13px 14px;
    border-left: 4px solid var(--rk-cyan);
    border-radius: 0 10px 10px 0;
    color: #d7e9ef;
    background: rgba(40, 201, 218, 0.08);
    font-size: 13px;
  }

  #rk-ai-floor-guide .rk-ai-diagnostic.is-good {
    border-left-color: #55d9ae;
    background: rgba(22, 135, 109, 0.13);
  }

  #rk-ai-floor-guide .rk-ai-diagnostic.is-warning {
    border-left-color: var(--rk-yellow);
    background: rgba(231, 173, 47, 0.1);
  }

  #rk-ai-floor-guide .rk-ai-diagnostic.is-danger {
    border-left-color: #ff7669;
    background: rgba(217, 75, 61, 0.12);
  }

  #rk-ai-floor-guide .rk-ai-tool-note {
    margin: 0;
    padding: 0 28px 28px;
    color: #9fb6c0;
    font-size: 12px;
  }

  #rk-ai-floor-guide .rk-ai-mid-cta,
  #rk-ai-floor-guide .rk-ai-final-cta {
    position: relative;
    overflow: hidden;
    margin: 0;
    padding: 46px 58px;
    color: var(--rk-white);
    background:
      radial-gradient(circle at 92% 20%, rgba(255, 116, 56, 0.25), transparent 27%),
      linear-gradient(135deg, #12384d, #0f2b3e);
  }

  #rk-ai-floor-guide .rk-ai-mid-cta h3,
  #rk-ai-floor-guide .rk-ai-final-cta .rk-ai-cta-title {
    max-width: 840px;
    margin-bottom: 14px;
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.12;
  }

  #rk-ai-floor-guide .rk-ai-mid-cta p,
  #rk-ai-floor-guide .rk-ai-final-cta p {
    max-width: 910px;
    color: #d9e9ee;
  }

  #rk-ai-floor-guide .rk-ai-cta-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    margin-top: 18px;
    padding: 14px 23px;
    border-radius: 10px;
    color: var(--rk-white);
    background: var(--rk-orange);
    box-shadow: 0 12px 28px rgba(255, 116, 56, 0.27);
    font-size: 16px;
    font-weight: 950;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    transition: transform 0.18s ease, background 0.18s ease;
  }

  #rk-ai-floor-guide .rk-ai-cta-button:hover,
  #rk-ai-floor-guide .rk-ai-cta-button:focus-visible {
    color: var(--rk-white);
    background: #ef5f27;
    transform: translateY(-2px);
    outline: none;
  }

  #rk-ai-floor-guide .rk-ai-disclosure {
    display: block;
    max-width: 790px;
    margin-top: 12px;
    color: #9fb7c0;
    font-size: 11px;
  }

  #rk-ai-floor-guide .rk-ai-example {
    margin: 28px 0;
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: linear-gradient(135deg, var(--rk-cyan-soft), var(--rk-white));
  }

  #rk-ai-floor-guide .rk-ai-example h3 {
    font-size: 24px;
  }

  #rk-ai-floor-guide .rk-ai-example-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
  }

  #rk-ai-floor-guide .rk-ai-example-stat {
    padding: 15px;
    border-radius: 12px;
    background: var(--rk-white);
  }

  #rk-ai-floor-guide .rk-ai-example-stat span {
    display: block;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-ai-floor-guide .rk-ai-example-stat strong {
    display: block;
    margin-top: 4px;
    color: var(--rk-dark);
    font-size: 22px;
  }

  #rk-ai-floor-guide .rk-ai-error {
    border-top: 5px solid var(--rk-red);
    background: linear-gradient(180deg, var(--rk-red-soft), var(--rk-white) 56%);
  }

  #rk-ai-floor-guide .rk-ai-error b {
    color: var(--rk-red);
  }

  #rk-ai-floor-guide .rk-ai-steps {
    display: grid;
    gap: 14px;
    margin: 28px 0;
    counter-reset: rk-ai-step;
  }

  #rk-ai-floor-guide .rk-ai-step {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    counter-increment: rk-ai-step;
  }

  #rk-ai-floor-guide .rk-ai-step::before {
    content: counter(rk-ai-step);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 15px;
    color: var(--rk-white);
    background: var(--rk-blue);
    font-size: 19px;
    font-weight: 950;
  }

  #rk-ai-floor-guide .rk-ai-faq {
    display: grid;
    gap: 12px;
    margin-top: 28px;
  }

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

  #rk-ai-floor-guide .rk-ai-faq summary {
    position: relative;
    padding: 19px 52px 19px 20px;
    color: var(--rk-dark);
    cursor: pointer;
    font-weight: 900;
    line-height: 1.4;
    list-style: none;
  }

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

  #rk-ai-floor-guide .rk-ai-faq summary::after {
    content: "+";
    position: absolute;
    right: 18px;
    top: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    color: var(--rk-white);
    background: var(--rk-blue);
    transform: translateY(-50%);
  }

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

  #rk-ai-floor-guide .rk-ai-faq-answer {
    padding: 0 20px 20px;
    color: var(--rk-text);
  }

  #rk-ai-floor-guide .rk-ai-source-box {
    padding: 26px;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    background: var(--rk-soft);
  }

  #rk-ai-floor-guide .rk-ai-source-box li + li {
    margin-top: 9px;
  }

  #rk-ai-floor-guide .rk-ai-update {
    margin-top: 16px;
    color: var(--rk-muted);
    font-size: 13px;
    font-weight: 800;
  }

  #rk-ai-floor-guide .rk-ai-author {
    margin: 42px 58px;
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    background: var(--rk-white);
    box-shadow: 0 16px 45px rgba(16, 37, 54, 0.08);
  }

  #rk-ai-floor-guide .rk-ai-author > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
  }

  #rk-ai-floor-guide .rk-ai-author-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 30px;
    color: var(--rk-white);
    background: linear-gradient(135deg, var(--rk-dark), var(--rk-navy));
  }

  #rk-ai-floor-guide .rk-ai-author-title {
    color: var(--rk-white);
    font-size: clamp(28px, 4vw, 40px);
    font-weight: 950;
    line-height: 1.1;
  }

  #rk-ai-floor-guide .rk-ai-author-head p {
    margin: 7px 0 0;
    color: #cfe2e8;
    font-size: 14px;
  }

  #rk-ai-floor-guide .rk-ai-author-mark {
    padding: 8px 11px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    color: #8df2fc;
    font-size: 11px;
    font-weight: 950;
    letter-spacing: 0.08em;
  }

  #rk-ai-floor-guide .rk-ai-author-layout {
    display: grid;
    grid-template-columns: 290px minmax(0, 1fr);
  }

  #rk-ai-floor-guide .rk-ai-author-side {
    padding: 28px;
    border-right: 1px solid var(--rk-line);
    background: var(--rk-soft);
    text-align: center;
  }

  #rk-ai-floor-guide .rk-ai-author-photo {
    width: 150px;
    height: 150px;
    margin: 0 auto 17px;
    overflow: hidden;
    border: 6px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 10px 30px rgba(16, 37, 54, 0.16);
  }

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

  #rk-ai-floor-guide .rk-ai-author-name {
    color: var(--rk-dark);
    font-size: 22px;
    font-weight: 950;
  }

  #rk-ai-floor-guide .rk-ai-author-role {
    margin-top: 6px;
    color: var(--rk-text);
    font-size: 13px;
  }

  #rk-ai-floor-guide .rk-ai-author-social-label {
    margin-top: 20px;
    color: var(--rk-muted);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
  }

  #rk-ai-floor-guide .rk-ai-author-social {
    display: flex;
    justify-content: center;
    gap: 9px;
    margin-top: 10px;
  }

  #rk-ai-floor-guide .rk-ai-author-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    color: var(--rk-white);
    background: var(--rk-navy);
  }

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

  #rk-ai-floor-guide .rk-ai-author-main {
    padding: 30px;
  }

  #rk-ai-floor-guide .rk-ai-author-quote {
    position: relative;
    margin-bottom: 22px;
    padding: 25px 25px 25px 68px;
    border: 0;
    border-radius: 16px;
    background: var(--rk-cyan-soft);
  }

  #rk-ai-floor-guide .rk-ai-author-quote::before {
    content: "„";
    position: absolute;
    left: 22px;
    top: 1px;
    color: var(--rk-blue);
    font-family: Georgia, serif;
    font-size: 76px;
    line-height: 1;
  }

  #rk-ai-floor-guide .rk-ai-author-quote p {
    color: var(--rk-dark);
    font-size: 18px;
    font-weight: 750;
  }

  #rk-ai-floor-guide .rk-ai-author-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    overflow: hidden;
    border: 1px solid var(--rk-line);
    border-radius: 13px 13px 0 0;
  }

  #rk-ai-floor-guide .rk-ai-author-tab {
    padding: 12px 10px;
    border-right: 1px solid var(--rk-line);
    color: var(--rk-dark);
    background: var(--rk-soft);
    cursor: pointer;
    font-size: 13px;
    font-weight: 900;
    text-align: center;
  }

  #rk-ai-floor-guide .rk-ai-author-tab:last-child {
    border-right: 0;
  }

  #rk-ai-floor-guide .rk-ai-author-panel {
    display: none;
    padding: 20px;
    border: 1px solid var(--rk-line);
    border-top: 0;
    border-radius: 0 0 13px 13px;
    color: var(--rk-text);
    font-size: 15px;
  }

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

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

  #rk-ai-floor-guide .rk-ai-site-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 13px;
  }

  #rk-ai-floor-guide .rk-ai-site-links a {
    padding: 7px 10px;
    border-radius: 8px;
    background: var(--rk-soft);
    font-size: 12px;
    font-weight: 850;
    text-decoration: none;
  }

  @media (max-width: 980px) {
    #rk-ai-floor-guide .rk-ai-author-layout,
    #rk-ai-floor-guide .rk-ai-audit-summary {
      grid-template-columns: 1fr;
    }

    #rk-ai-floor-guide .rk-ai-author-side {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-ai-floor-guide .rk-ai-grid-4,
    #rk-ai-floor-guide .rk-ai-example-grid,
    #rk-ai-floor-guide .rk-ai-results {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 760px) {
    #rk-ai-floor-guide {
      margin: 0 auto 45px;
      font-size: 17px;
    }

    #rk-ai-floor-guide .rk-ai-shell {
      border-right: 0;
      border-left: 0;
      border-radius: 0;
    }

    #rk-ai-floor-guide .rk-ai-hero,
    #rk-ai-floor-guide .rk-ai-section,
    #rk-ai-floor-guide .rk-ai-mid-cta,
    #rk-ai-floor-guide .rk-ai-final-cta {
      padding: 42px 20px;
    }

    #rk-ai-floor-guide .rk-ai-hero-title {
      font-size: clamp(36px, 12vw, 53px);
    }

    #rk-ai-floor-guide .rk-ai-hero::after {
      right: -20px;
      top: -15px;
      font-size: 150px;
    }

    #rk-ai-floor-guide .rk-ai-nav {
      gap: 8px;
      padding: 18px 16px;
    }

    #rk-ai-floor-guide .rk-ai-nav a {
      flex: 1 1 calc(50% - 8px);
      justify-content: center;
      min-width: 0;
      padding: 9px 10px;
      border-radius: 12px;
      font-size: 12px;
      text-align: center;
    }

    #rk-ai-floor-guide .rk-ai-answer,
    #rk-ai-floor-guide .rk-ai-grid-2,
    #rk-ai-floor-guide .rk-ai-grid-3,
    #rk-ai-floor-guide .rk-ai-grid-4,
    #rk-ai-floor-guide .rk-ai-example-grid,
    #rk-ai-floor-guide .rk-ai-tool-row,
    #rk-ai-floor-guide .rk-ai-fields,
    #rk-ai-floor-guide .rk-ai-results {
      grid-template-columns: 1fr;
    }

    #rk-ai-floor-guide .rk-ai-tool-head {
      padding: 28px 20px 24px;
    }

    #rk-ai-floor-guide .rk-ai-tool-body {
      padding: 16px;
    }

    #rk-ai-floor-guide .rk-ai-tool-panel {
      padding: 19px;
    }

    #rk-ai-floor-guide .rk-ai-field.is-wide {
      grid-column: auto;
    }

    #rk-ai-floor-guide .rk-ai-tool-note {
      padding: 0 18px 22px;
    }

    #rk-ai-floor-guide .rk-ai-chart {
      min-height: 300px;
      aspect-ratio: 420 / 360;
    }

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

    #rk-ai-floor-guide .rk-ai-table {
      overflow: visible;
      border: 0;
      background: transparent;
    }

    #rk-ai-floor-guide .rk-ai-table thead {
      position: absolute;
      width: 1px;
      height: 1px;
      overflow: hidden;
      clip: rect(0 0 0 0);
      white-space: nowrap;
    }

    #rk-ai-floor-guide .rk-ai-table tr {
      overflow: hidden;
      margin-bottom: 14px;
      border: 1px solid var(--rk-line);
      border-radius: 14px;
      background: var(--rk-white);
      box-shadow: 0 8px 22px rgba(16, 37, 54, 0.05);
    }

    #rk-ai-floor-guide .rk-ai-table td,
    #rk-ai-floor-guide .rk-ai-table tbody tr:nth-child(even) td {
      display: grid;
      grid-template-columns: minmax(105px, 0.85fr) minmax(0, 1.15fr);
      gap: 12px;
      padding: 12px 14px;
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
      background: var(--rk-white);
      overflow-wrap: anywhere;
    }

    #rk-ai-floor-guide .rk-ai-table td::before {
      content: attr(data-label);
      color: var(--rk-muted);
      font-size: 10px;
      font-weight: 950;
      letter-spacing: 0.055em;
      text-transform: uppercase;
    }

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

    #rk-ai-floor-guide .rk-ai-step {
      grid-template-columns: 42px minmax(0, 1fr);
      gap: 13px;
      padding: 17px;
    }

    #rk-ai-floor-guide .rk-ai-step::before {
      width: 40px;
      height: 40px;
      border-radius: 12px;
    }

    #rk-ai-floor-guide .rk-ai-quote {
      padding: 68px 20px 22px;
    }

    #rk-ai-floor-guide .rk-ai-author {
      margin: 30px 16px;
    }

    #rk-ai-floor-guide .rk-ai-author-head {
      display: block;
      padding: 25px 22px;
    }

    #rk-ai-floor-guide .rk-ai-author-mark {
      display: inline-flex;
      margin-top: 17px;
    }

    #rk-ai-floor-guide .rk-ai-author-main {
      padding: 24px 18px;
    }

    #rk-ai-floor-guide .rk-ai-author-quote {
      padding: 65px 20px 22px;
    }

    #rk-ai-floor-guide .rk-ai-author-tabs {
      grid-template-columns: 1fr;
    }

    #rk-ai-floor-guide .rk-ai-author-tab {
      border-right: 0;
      border-bottom: 1px solid var(--rk-line);
    }

    #rk-ai-floor-guide .rk-ai-cta-button {
      width: 100%;
    }
  }

  @media (max-width: 410px) {
    #rk-ai-floor-guide .rk-ai-nav a {
      flex-basis: 100%;
    }

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

  @media (prefers-reduced-motion: reduce) {
    #rk-ai-floor-guide *,
    #rk-ai-floor-guide *::before,
    #rk-ai-floor-guide *::after {
      scroll-behavior: auto !important;
      transition: none !important;
      animation: none !important;
    }
  }
</style>

<article id="rk-ai-floor-guide" aria-label="Projekt ogrzewania podłogowego z ChatGPT i AI — techniczna weryfikacja">
  <div class="rk-ai-shell">
    <header class="rk-ai-hero">
      <div class="rk-ai-hero-inner">
        <span class="rk-ai-eyebrow"><b aria-hidden="true"></b> AI + HVAC • analiza techniczna 2026</span>
        <div class="rk-ai-hero-title">Projekt wygląda profesjonalnie. Teraz sprawdź, czy liczby naprawdę się spinają.</div>
        <p class="rk-ai-hero-lead">ChatGPT może uporządkować dane, objaśnić wzory i przygotować logicznie brzmiącą koncepcję. Nie oznacza to jeszcze, że podłoga pokryje straty ciepła, pętle dadzą się wyregulować, a pompa obsłuży krytyczny obieg.</p>
        <div class="rk-ai-meta">
          <span><i aria-hidden="true"></i> Czytanie: około 28 minut</span>
          <span><i aria-hidden="true"></i> Interaktywny audyt projektu AI</span>
          <span><i aria-hidden="true"></i> Aktualizacja: 7 września 2026 r.</span>
        </div>
      </div>
    </header>

    <nav class="rk-ai-nav" aria-label="Spis treści artykułu">
      <strong>Na skróty — wszystkie główne części analizy</strong>
      <a href="#rk-ai-answer">Szybka odpowiedź</a>
      <a href="#rk-ai-can">Co AI potrafi?</a>
      <a href="#rk-ai-risk">Skąd biorą się błędy?</a>
      <a href="#rk-ai-prompt">Dlaczego prompt nie wystarcza?</a>
      <a href="#rk-ai-project">Co zawiera projekt?</a>
      <a href="#rk-ai-inputs">Dane wejściowe</a>
      <a href="#rk-ai-heat-load">Straty ciepła</a>
      <a href="#rk-ai-output">Moc i temperatura podłogi</a>
      <a href="#rk-ai-spacing">Rozstaw i powierzchnia</a>
      <a href="#rk-ai-loops">Długości pętli</a>
      <a href="#rk-ai-flow">Przepływy i ΔT</a>
      <a href="#rk-ai-pressure">Opory i pompa</a>
      <a href="#rk-ai-main">Rozdzielacze i magistrala</a>
      <a href="#rk-ai-source">Źródło ciepła</a>
      <a href="#rk-ai-audit">Audyt projektu AI</a>
      <a href="#rk-ai-read-result">Jak czytać wynik?</a>
      <a href="#rk-ai-case">Przykład domu 145 m²</a>
      <a href="#rk-ai-comparison">AI a algorytm i projektant</a>
      <a href="#rk-ai-workflow">Bezpieczna praca z AI</a>
      <a href="#rk-ai-docs">Dokumenty do sprawdzenia</a>
      <a href="#rk-ai-red-flags">10 czerwonych flag</a>
      <a href="#rk-ai-checklist">Checklista przed wylewką</a>
      <a href="#rk-ai-faq">FAQ</a>
      <a href="#rk-ai-sources">Źródła</a>
    </nav>

    <main>
      <section class="rk-ai-section" id="rk-ai-answer">
        <span class="rk-ai-kicker">Odpowiedź w 60 sekund</span>
        <h2>Czy ChatGPT może zaprojektować ogrzewanie podłogowe?</h2>
        <p class="rk-ai-intro"><strong>ChatGPT może pomóc przygotować koncepcję i przeanalizować przekazane liczby, ale sama odpowiedź modelu nie jest dowodem poprawności <a href="https://projekt-ogrzewania.pl/czy-do-ogrzewania-podlogowego-potrzebny-jest-projekt/">projektu ogrzewania podłogowego</a>.</strong> Wiarygodna dokumentacja wymaga danych konkretnego budynku, obliczeń dla pomieszczeń, kontroli mocy podłogi, temperatur powierzchni, długości i przepływów pętli, strat ciśnienia, magistrali, pompy oraz źródła ciepła.</p>

        <div class="rk-ai-answer">
          <div class="rk-ai-answer-main">
            <h3>Tak — jako pomocnik</h3>
            <p>AI dobrze porządkuje założenia, tworzy checklisty, tłumaczy zależności, porównuje warianty i może wskazać brakujące pozycje w tabeli. Jeżeli otrzyma poprawne dane oraz właściwy model obliczeniowy, przyspiesza analizę.</p>
          </div>
          <div class="rk-ai-answer-side">
            <h3>Nie — jako samoweryfikujący projektant</h3>
            <p>Model może uzupełnić brakujące dane wartościami, które brzmią rozsądnie. Nie ma fizycznego kontaktu z budynkiem i nie wie, czy rzut, przegrody, okładziny i parametry źródła odpowiadają rzeczywistości.</p>
          </div>
        </div>

        <div class="rk-ai-formula" aria-label="Najważniejsza zasada weryfikacji projektu AI">
          <strong>przekonująca odpowiedź ≠ sprawdzony projekt</strong>
          <span>O jakości dokumentacji decyduje możliwość prześledzenia danych wejściowych, metody, jednostek, obliczeń i wyników — nie płynność języka ani estetyka rysunku.</span>
        </div>

        <div class="rk-ai-table-wrap">
          <table class="rk-ai-table">
            <thead><tr><th>Materiał od AI</th><th>Co może dać?</th><th>Co trzeba potwierdzić?</th><th>Decyzja wykonawcza</th></tr></thead>
            <tbody>
              <tr><td data-label="Materiał"><strong>Opis tekstowy</strong></td><td data-label="Korzyść">Logikę kolejnych etapów i listę parametrów.</td><td data-label="Weryfikacja">Źródło każdej liczby, jednostkę i kompletność danych.</td><td data-label="Decyzja">Nie układać rur tylko z opisu.</td></tr>
              <tr><td data-label="Materiał"><strong>Tabela pętli</strong></td><td data-label="Korzyść">Wstępne długości, rozstawy i przepływy.</td><td data-label="Weryfikacja">Moc przypisaną do obiegu, ΔT, średnicę i opór hydrauliczny.</td><td data-label="Decyzja">Sprawdzić każdą pętlę, nie tylko sumę.</td></tr>
              <tr><td data-label="Materiał"><strong>Rysunek na rzucie</strong></td><td data-label="Korzyść">Poglądowy podział pól i przebiegów.</td><td data-label="Weryfikacja">Skalę, strefy bez rur, dobiegi, dylatacje i liczbę metrów.</td><td data-label="Decyzja">Nie traktować wizualizacji jak CAD.</td></tr>
              <tr><td data-label="Materiał"><strong>Podsumowanie mocy</strong></td><td data-label="Korzyść">Szybką orientację w bilansie.</td><td data-label="Weryfikacja">Obciążenia pomieszczeń i moc możliwą do oddania przez podłogę.</td><td data-label="Decyzja">Porównać stronę potrzeb z możliwościami systemu.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-ai-section" id="rk-ai-can">
        <span class="rk-ai-kicker">Użyteczne zastosowania bez udawania pewności</span>
        <h2>Co ChatGPT i inne modele AI potrafią zrobić dobrze?</h2>
        <p class="rk-ai-intro">Najwięcej korzyści pojawia się wtedy, gdy AI pracuje na jawnych danych i ma wykonać zadanie, którego wynik można później niezależnie sprawdzić.</p>
        <div class="rk-ai-grid-4">
          <article class="rk-ai-card"><span class="rk-ai-card-number">01 • Dane</span><h3>Porządkowanie założeń</h3><p>Może zamienić luźny opis domu w listę brakujących informacji: lokalizacja, warstwy, stolarka, temperatury, okładziny, źródło i rzuty.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">02 • Nauka</span><h3>Wyjaśnianie zależności</h3><p>Potrafi wytłumaczyć, dlaczego rozstaw rur nie wynika wyłącznie z metrażu, a przepływ musi odpowiadać mocy i różnicy temperatur.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">03 • Kontrola</span><h3>Szukanie niespójności</h3><p>W tabeli może zauważyć brak jednostki, odwróconą temperaturę zasilania i powrotu, pętlę 140 m albo sumę przepływów niezgodną z bilansem.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">04 • Warianty</span><h3>Porównywanie scenariuszy</h3><p>Może zestawić skutki zmiany ΔT, liczby obiegów, rozstawu lub średnicy — pod warunkiem użycia jawnych wzorów i właściwych danych.</p></article>
        </div>
        <p>Aktualne narzędzia AI mogą analizować pliki, obrazy i tabele, lecz dostępność funkcji zależy od używanego produktu i trybu. Sam fakt odczytania rzutu nie potwierdza jego skali, wszystkich wymiarów ani zgodności modelu z dokumentacją budynku.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-risk">
        <span class="rk-ai-kicker">Najgroźniejszy błąd nie musi wyglądać jak błąd</span>
        <h2>Dlaczego odpowiedź AI może być logiczna i jednocześnie błędna?</h2>
        <p class="rk-ai-intro">Model językowy tworzy odpowiedź na podstawie wzorców i przekazanego kontekstu. Gdy brakuje danych, może nie zatrzymać obliczeń, lecz uzupełnić lukę prawdopodobnie brzmiącym założeniem. W dokumentacji technicznej to szczególnie niebezpieczne, bo wynik bywa spójny językowo i estetyczny.</p>

        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Brak danych</span><h3>Założenie staje się „faktem”</h3><p>Jeżeli nie podasz Uw okien, infiltracji albo <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/">temperatury projektowej</a>, AI może przyjąć wartości typowe bez wyraźnego zaznaczenia ich wpływu na wynik.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Zła metoda</span><h3>Poprawna arytmetyka nie wystarczy</h3><p>Kalkulator może bezbłędnie mnożyć liczby, a mimo to liczyć podłogę na gruncie jak zwykłą ścianę lub dobierać rozstaw z powierzchni domu.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Brak sprzężenia</span><h3>Jedna zmiana psuje kilka wyników</h3><p>Zmiana rozstawu zmienia długość rur, liczbę pętli, moc i hydraulikę. Odpowiedź punktowa może nie przeliczyć całego systemu.</p></article>
        </div>

        <div class="rk-ai-callout">
          <strong>NIST nazywa to ryzykiem konfabulacji</strong>
          <p>Profil ryzyka generatywnej AI wskazuje na możliwość tworzenia fałszywych lub błędnych treści podanych w sposób przekonujący. Dlatego wynik wpływający na zakup materiałów i nieodwracalne prace powinien mieć ślad obliczeniowy oraz niezależną kontrolę.</p>
        </div>

        <blockquote class="rk-ai-quote"><p>Najbardziej niebezpieczna odpowiedź nie brzmi „nie wiem”. Brzmi: „dla domu 145 m² zastosuj rozstaw 15 cm, 12 pętli i zasilanie 35°C” — mimo że model nie zna strat żadnego pomieszczenia.</p></blockquote>
      </section>

      <section class="rk-ai-section" id="rk-ai-prompt">
        <span class="rk-ai-kicker">Metraż i źródło ciepła to nie projekt</span>
        <h2>Dlaczego prompt „dom 145 m², pompa ciepła, zaprojektuj podłogówkę” nie wystarcza?</h2>
        <p class="rk-ai-intro">Taki prompt może wygenerować orientacyjny opis, ale nie zawiera danych pozwalających obliczyć, ile ciepła traci salon, łazienka czy sypialnia i czy dostępna podłoga może te straty pokryć.</p>

        <div class="rk-ai-example">
          <h3>AI otrzymało trzy informacje</h3>
          <p><strong>Dom 145 m² • pompa ciepła • ogrzewanie podłogowe.</strong> Na tej podstawie może przywołać często spotykane rozstawy, temperatury i długości. Nie zna jednak bryły, lokalizacji, izolacji, stolarki, wentylacji, okładzin, mebli stałych ani położenia rozdzielaczy.</p>
          <div class="rk-ai-example-grid">
            <div class="rk-ai-example-stat"><span>Znamy</span><strong>145 m²</strong></div>
            <div class="rk-ai-example-stat"><span>Znamy</span><strong>pompę ciepła</strong></div>
            <div class="rk-ai-example-stat"><span>Nie znamy</span><strong>W na pokój</strong></div>
            <div class="rk-ai-example-stat"><span>Nie znamy</span><strong>hydrauliki</strong></div>
          </div>
        </div>

        <div class="rk-ai-grid-2">
          <article class="rk-ai-error"><b>Brak 01</b><h3>Warunki obliczeniowe</h3><p>Nie ma lokalizacji, projektowej temperatury zewnętrznej, temperatur wewnętrznych ani sposobu użytkowania stref.</p></article>
          <article class="rk-ai-error"><b>Brak 02</b><h3>Parametry przegród</h3><p>Nie ma geometrii netto, warstw ścian, dachu i podłogi, współczynników okien, drzwi ani mostków.</p></article>
          <article class="rk-ai-error"><b>Brak 03</b><h3>Wentylacja i infiltracja</h3><p>Nie wiadomo, jakie strumienie powietrza przyjąć, jak działa rekuperacja i jaka część strat wynika z nieszczelności.</p></article>
          <article class="rk-ai-error"><b>Brak 04</b><h3>Warstwy nad rurą</h3><p>Nie znamy jastrychu, okładziny, <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">oporu cieplnego podłogi</a> ani maksymalnych temperatur dopuszczonych przez producenta.</p></article>
          <article class="rk-ai-error"><b>Brak 05</b><h3>Powierzchnia czynna</h3><p>Metraż pomieszczenia nie mówi, ile podłogi pozostaje po wyłączeniu zabudowy stałej, brodzika, wanny i <a href="https://projekt-ogrzewania.pl/gdzie-nie-ukladac-ogrzewania-podlogowego/">stref bez rur</a>.</p></article>
          <article class="rk-ai-error"><b>Brak 06</b><h3>Geometria instalacji</h3><p>Nie ma lokalizacji rozdzielaczy, długości dobiegów, kondygnacji, dylatacji, magistral ani dostępnego budżetu ciśnienia.</p></article>
        </div>
        <p>Pełny artykuł o konstruowaniu promptu powinien pozostać osobną częścią klastra. Tutaj najważniejsza zasada brzmi: <strong>najpierw zbierz dane projektowe, dopiero później pytaj AI o obliczenia i zawsze wymagaj pokazania założeń.</strong></p>
      </section>

      <section class="rk-ai-section" id="rk-ai-project">
        <span class="rk-ai-kicker">Rysunek pętli jest dopiero jedną warstwą dokumentacji</span>
        <h2>Co powinien zawierać profesjonalny projekt ogrzewania podłogowego?</h2>
        <p class="rk-ai-intro">Dokumentacja wykonawcza powinna łączyć część cieplną, emisyjną, hydrauliczną i graficzną. Każda liczba na rzucie musi wynikać z wcześniejszego etapu i dać się odtworzyć.</p>
        <div class="rk-ai-grid-4">
          <article class="rk-ai-check"><b>01 • OZC</b><h3>Obciążenia pomieszczeń</h3><p>Waty dla każdej strefy przy jawnych temperaturach i parametrach budynku.</p></article>
          <article class="rk-ai-check"><b>02 • Emisja</b><h3>Moc z czynnej podłogi</h3><p>Kontrola W/m², okładziny, temperatury powierzchni i parametrów wody.</p></article>
          <article class="rk-ai-check"><b>03 • Rzut</b><h3>Trasy i rozstawy</h3><p><a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">Pętle w skali</a>, strefy bez rur, dobiegi, dylatacje i przypisanie do rozdzielaczy.</p></article>
          <article class="rk-ai-check"><b>04 • Długości</b><h3>Pełne metry obiegów</h3><p>Pole grzewcze razem z zasilaniem i powrotem od rozdzielacza.</p></article>
          <article class="rk-ai-check"><b>05 • Przepływy</b><h3>Nastawy każdej pętli</h3><p>Przepływ wynikający z mocy przypisanej do obiegu i projektowego ΔT.</p></article>
          <article class="rk-ai-check"><b>06 • Opory</b><h3>Krytyczna droga</h3><p>Strata ciśnienia pętli, przyłączy, rozdzielacza i magistrali.</p></article>
          <article class="rk-ai-check"><b>07 • Zasilanie</b><h3>Rozdzielacze i magistrale</h3><p>Lokalizacje, liczba sekcji, przepływy sumaryczne, średnice i prędkości.</p></article>
          <article class="rk-ai-check"><b>08 • Źródło</b><h3>Bilans całego układu</h3><p>Moc źródła w warunkach projektowych, punkt pracy pompy i sposób sterowania.</p></article>
        </div>
        <p>Zobacz także szczegółowy przewodnik: <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">jak powinien wyglądać profesjonalny projekt ogrzewania podłogowego</a>.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-inputs">
        <span class="rk-ai-kicker">AI nie naprawi danych, których nigdy nie otrzymało</span>
        <h2>Jakie dane wejściowe są potrzebne do projektu podłogówki?</h2>
        <p class="rk-ai-intro">Dane muszą opisywać stan, który rzeczywiście zostanie wykonany. Jeżeli inwestor zmieni okna, izolację, wentylację albo okładzinę po wykonaniu obliczeń, projekt trzeba ponownie sprawdzić.</p>
        <div class="rk-ai-table-wrap">
          <table class="rk-ai-table">
            <thead><tr><th>Grupa danych</th><th>Co jest potrzebne?</th><th>Do czego służy?</th><th>Typowy błąd AI</th></tr></thead>
            <tbody>
              <tr><td data-label="Grupa"><strong>Geometria</strong></td><td data-label="Dane">Rzuty z wymiarami, wysokości, przekroje, orientacja i podział stref.</td><td data-label="Zastosowanie">Powierzchnie przegród, kubatury, podłoga czynna i trasy rur.</td><td data-label="Błąd">Odczyt wymiaru ze zdjęcia bez potwierdzenia skali.</td></tr>
              <tr><td data-label="Grupa"><strong>Przegrody</strong></td><td data-label="Dane">Warstwy ścian, dachu, stropu i podłogi; izolacja; mostki.</td><td data-label="Zastosowanie">Straty przez przenikanie i warunki pod systemem.</td><td data-label="Błąd">Przyjęcie U z samej nazwy materiału.</td></tr>
              <tr><td data-label="Grupa"><strong>Stolarka</strong></td><td data-label="Dane">Wymiary, Uw okien, Ud drzwi, sposób montażu.</td><td data-label="Zastosowanie">Bilans pomieszczeń z <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">dużymi przeszkleniami</a>.</td><td data-label="Błąd">Pomylenie Uw całego okna z Ug szyby.</td></tr>
              <tr><td data-label="Grupa"><strong>Powietrze</strong></td><td data-label="Dane">System wentylacji, strumienie, odzysk, infiltracja.</td><td data-label="Zastosowanie">Projektowe straty wentylacyjne.</td><td data-label="Błąd">Odjęcie deklarowanych 90% od wszystkich strat powietrza.</td></tr>
              <tr><td data-label="Grupa"><strong>Podłoga</strong></td><td data-label="Dane">Jastrych, okładzina, opór, strefy bez rur, dylatacje.</td><td data-label="Zastosowanie">Moc powierzchniowa i temperatura powierzchni.</td><td data-label="Błąd">Policzenie mocy z całej powierzchni pokoju.</td></tr>
              <tr><td data-label="Grupa"><strong>Instalacja</strong></td><td data-label="Dane">Rura, rozdzielacze, źródło, parametry wody i magistrale.</td><td data-label="Zastosowanie">Długości, przepływy, opory, pompa i bilans.</td><td data-label="Błąd">Dobór pompy tylko z całkowitej długości rur.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-ai-section" id="rk-ai-heat-load">
        <span class="rk-ai-kicker">Najpierw potrzeby każdego pomieszczenia</span>
        <h2>Czy AI policzy straty ciepła budynku i pomieszczeń?</h2>
        <p class="rk-ai-intro">Może wykonać działania na przekazanych danych, ale trzeba oddzielić umiejętność liczenia od poprawności modelu. Projekt podłogówki potrzebuje wyników dla pomieszczeń, nie tylko jednej liczby w kW dla całego domu.</p>
        <div class="rk-ai-formula" aria-label="Uproszczona struktura projektowego obciążenia cieplnego">
          <strong>Φ<sub>pom</sub> ≈ Φ<sub>przenikanie</sub> + Φ<sub>mostki</sub> + Φ<sub>wentylacja</sub></strong>
          <span>Pełna metodyka zależy od warunków i przyjętego standardu obliczeń. Wynik w W jest mocą projektową, a nie rocznym zużyciem energii w kWh.</span>
        </div>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Przenikanie</span><h3>Powierzchnie netto i U</h3><p>Ściany liczy się bez okien liczonych osobno. Podłoga na gruncie wymaga właściwej metody, a nie arbitralnej różnicy temperatur.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Mostki</span><h3>ψ razy długość</h3><p>Nie należy automatycznie doliczać 20% do każdej bryły. Współczynniki i długości wynikają z detali lub przyjętej metody uproszczonej.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Powietrze</span><h3>Strumień projektowy</h3><p>Wentylacja mechaniczna nie usuwa infiltracji, a deklarowana sprawność centrali nie jest prostym rabatem od wszystkich strat.</p></article>
        </div>
        <p>Metodykę i przykład jednego pomieszczenia omawia osobny artykuł: <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła w budynku</a>. Norma EN 12831-1 opisuje <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektową moc</a> potrzebną do utrzymania temperatury wewnętrznej przy projektowych warunkach zewnętrznych — dlatego temperatura lokalizacji i funkcja pomieszczenia nie mogą być zgadywane.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-output">
        <span class="rk-ai-kicker">Waty z podłogi muszą spotkać się z watami strat</span>
        <h2>Jak sprawdzić moc podłogi i temperaturę jej powierzchni?</h2>
        <p class="rk-ai-intro">Obciążenie pomieszczenia trzeba odnieść do powierzchni, która rzeczywiście może grzać. Dopiero potem sprawdza się, czy konstrukcja podłogi przy danej temperaturze wody i okładzinie osiągnie wymaganą moc bez przekroczenia temperatury powierzchni.</p>
        <div class="rk-ai-formula" aria-label="Wymagana moc jednostkowa ogrzewania podłogowego">
          <strong>q<sub>wym</sub> = Φ<sub>pomieszczenia</sub> ÷ A<sub>czynna</sub></strong>
          <span>Jeżeli pokój traci 1200 W, a rury mogą znaleźć się na 16 m², wymagana średnia moc czynnej podłogi wynosi 75 W/m² — nie 60 W/m² wynikające z całych 20 m² pokoju.</span>
        </div>
        <div class="rk-ai-table-wrap">
          <table class="rk-ai-table">
            <thead><tr><th>Kontrola</th><th>Co wpływa na wynik?</th><th>Czego nie wolno robić?</th><th>Wynik w projekcie</th></tr></thead>
            <tbody>
              <tr><td data-label="Kontrola"><strong>Moc</strong></td><td data-label="Wpływ">Temperatura wody, rozstaw, jastrych, okładzina i powierzchnia czynna.</td><td data-label="Zakaz">Przypisać jednej mocy do rozstawu bez warstw podłogi.</td><td data-label="Wynik">W/m² oraz suma W dla strefy.</td></tr>
              <tr><td data-label="Kontrola"><strong>Temperatura powierzchni</strong></td><td data-label="Wpływ">Moc, temperatura pomieszczenia i konstrukcja systemu.</td><td data-label="Zakaz">Założyć, że gęstsza rura zawsze rozwiąże duże straty.</td><td data-label="Wynik">Najwyższa temperatura w analizowanej strefie.</td></tr>
              <tr><td data-label="Kontrola"><strong>Okładzina</strong></td><td data-label="Wpływ">Opór cieplny płytki, panelu, drewna, podkładu i kleju.</td><td data-label="Zakaz">Użyć identycznej charakterystyki dla płytki i grubej deski.</td><td data-label="Wynik">Przyjęty R<sub>λ,B</sub> i ograniczenia producenta.</td></tr>
            </tbody>
          </table>
        </div>
        <div class="rk-ai-callout"><strong>Temperaturę powierzchni kontroluje się strefowo</strong><p>W praktyce projektowej sprawdza się między innymi wartości graniczne około 29°C w strefie stałego przebywania, 33°C w łazience i 35°C w strefie brzegowej. Nie są to trzy zamienne liczby — najpierw trzeba prawidłowo zakwalifikować powierzchnię.</p></div>
        <p>Zakres obliczeń mocy i wymiarowania wodnych systemów płaszczyznowych opisują między innymi <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">seria PN-EN 1264</a> oraz ISO 11855-2 i ISO 11855-3. Sama odpowiedź modelu AI nie potwierdza zgodności z tymi zasadami — projekt musi pokazać dane, założenia i wyniki, które można niezależnie sprawdzić.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-spacing">
        <span class="rk-ai-kicker">Rozstaw jest wynikiem, a nie pierwszą decyzją</span>
        <h2>Czy AI może dobrać rozstaw rur 10, 15 lub 20 cm?</h2>
        <p class="rk-ai-intro">Może porównać warianty, ale nie powinno wybierać rozstawu z samego metrażu albo rodzaju źródła ciepła. Rozstaw wynika z wymaganej mocy, konstrukcji podłogi, temperatury wody, powierzchni czynnej i ograniczeń hydraulicznych.</p>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">10 cm</span><h3>Więcej rury w polu</h3><p>Może obniżyć wymaganą temperaturę wody lub pomóc w strefie o większej mocy, ale zwiększa metry rur i może wymagać większej liczby pętli.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">15 cm</span><h3>Częsty punkt wyjścia</h3><p>Nie jest uniwersalnym standardem dla całego domu. Dwa pokoje z tym samym rozstawem mogą mieć inne moce z powodu okładziny i temperatury.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">20 cm</span><h3>Mniej rury, inna charakterystyka</h3><p>Może być wystarczający przy małym obciążeniu, ale wymaga sprawdzenia mocy, temperatury powierzchni i równomierności oddawania ciepła.</p></article>
        </div>
        <p>Pełną analizę zależności znajdziesz w poradniku <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur w ogrzewaniu podłogowym — 10 czy 15 cm</a>.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-loops">
        <span class="rk-ai-kicker">Długość jest sygnałem, hydraulika wydaje werdykt</span>
        <h2>Jak sprawdzić długości pętli wygenerowane przez ChatGPT?</h2>
        <p class="rk-ai-intro">Dla rury 16×2 mm wartość około 80–100 m jest praktycznym punktem kontrolnym, a nie samodzielnym dowodem poprawności. Do długości pola trzeba doliczyć pełny dobieg zasilający i powrotny od rozdzielacza.</p>
        <div class="rk-ai-formula" aria-label="Szacowanie całkowitej długości rur">
          <strong>L<sub>całk</sub> ≈ A<sub>czynna</sub> ÷ s × k + 2d</strong>
          <span>s to rozstaw w metrach, k uwzględnia geometrię i zawroty, a d jest odległością pola od rozdzielacza. Ostateczną długość potwierdza rysunek wykonany w skali.</span>
        </div>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Pole</span><h3>Metry wynikające z rozstawu</h3><p>Zmiana z 15 na 10 cm zwiększa długość rury przypadającą na tę samą powierzchnię i może wymusić inny podział.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Dobiegi</span><h3>Każda pętla ma dwie drogi</h3><p>Rozdzielacz oddalony o 6 m dodaje około 12 m do każdej pętli, a nie 12 m do całej kondygnacji.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Przepływ</span><h3>Ten sam metr nie zawsze ma ten sam opór</h3><p>Pętla o większym przepływie może mieć wyższą stratę ciśnienia mimo tej samej długości i średnicy.</p></article>
        </div>
        <p>Do kontroli użyj kalkulatora w artykule <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>
      </section>

      <section class="rk-ai-section" id="rk-ai-flow">
        <span class="rk-ai-kicker">Rotametr nie jest pokrętłem „więcej ciepła”</span>
        <h2>Jak AI powinno obliczyć przepływy i różnicę temperatur ΔT?</h2>
        <p class="rk-ai-intro">Przepływ obiegu wynika z mocy, którą ma przenieść woda, i z przyjętej <a href="https://projekt-ogrzewania.pl/spadek-temperatury-%ce%b4t-roznica-miedzy-temperatura-zasilania-a-powrotu/">różnicy temperatur zasilania oraz powrotu</a>. Nie ustawia się wszystkich pętli na 2 l/min tylko dlatego, że brzmi to typowo.</p>
        <div class="rk-ai-formula" aria-label="Przepływ wody dla zadanej mocy i różnicy temperatur">
          <strong>V̇ [l/h] ≈ Φ [W] ÷ (1,163 × ΔT [K])</strong>
          <span>Dla 800 W i ΔT = 6 K otrzymujemy około 115 l/h, czyli 1,92 l/min. Wynik trzeba następnie sprawdzić hydraulicznie dla konkretnej rury i długości.</span>
        </div>
        <div class="rk-ai-table-wrap">
          <table class="rk-ai-table">
            <thead><tr><th>Wielkość</th><th>Skąd ją wziąć?</th><th>Co zmienia?</th><th>Kontrola</th></tr></thead>
            <tbody>
              <tr><td data-label="Wielkość"><strong>Moc pętli Φ</strong></td><td data-label="Źródło">Z obciążenia obsługiwanej części pomieszczenia.</td><td data-label="Wpływ">Wymagany przepływ i zdolność pokrycia strat.</td><td data-label="Kontrola">Suma mocy pętli powinna odpowiadać modelowi emisji.</td></tr>
              <tr><td data-label="Wielkość"><strong>ΔT</strong></td><td data-label="Źródło">Z przyjętych parametrów zasilania i powrotu.</td><td data-label="Wpływ">Przepływ, średnią temperaturę wody i moc podłogi.</td><td data-label="Kontrola">Nie może być dopisane niezależnie w dwóch tabelach.</td></tr>
              <tr><td data-label="Wielkość"><strong>V̇ pętli</strong></td><td data-label="Źródło">Z mocy i ΔT.</td><td data-label="Wpływ">Prędkość oraz stratę ciśnienia.</td><td data-label="Kontrola">Porównać z <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">zakresem rotametru</a> i obliczeniami rury.</td></tr>
            </tbody>
          </table>
        </div>
      </section>

      <section class="rk-ai-section" id="rk-ai-pressure">
        <span class="rk-ai-kicker">Pompa pracuje przeciwko jednej krytycznej drodze</span>
        <h2>Dlaczego projekt AI musi zawierać straty ciśnienia i dobór pompy?</h2>
        <p class="rk-ai-intro">Suma metrów wszystkich pętli nie jest wysokością podnoszenia pompy. W układzie równoległym sprawdza się drogę o największym wymaganym oporze: pętlę, rozdzielacz, przyłącza, armaturę oraz wspólną magistralę.</p>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Pętla</span><h3>Przepływ i średnica wewnętrzna</h3><p>Opór rośnie z długością i bardzo silnie z prędkością. Sama nazwa rury 16 mm nie podaje rzeczywistej średnicy wewnętrznej.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Droga wspólna</span><h3>Magistrala i armatura</h3><p>Przepływ sumaryczny przechodzi przez zasilanie, powrót, zawory, separator, bufor lub wymiennik — zależnie od schematu.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Punkt pracy</span><h3>Q i H jednocześnie</h3><p>Pompa musi dostarczyć <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">wymagany przepływ całkowity przy wysokości podnoszenia</a> odpowiadającej krytycznej drodze, a nie jedną z tych wartości osobno.</p></article>
        </div>
        <div class="rk-ai-callout"><strong>Dławienie nie tworzy dodatkowego ciśnienia</strong><p>Rotametry i zawory służą do zrównoważenia obiegów. Nie naprawią pętli, której wymagany przepływ powoduje opór przekraczający dostępny budżet ciśnienia.</p></div>
      </section>

      <section class="rk-ai-section" id="rk-ai-main">
        <span class="rk-ai-kicker">Prawidłowe pętle mogą być zasilane źle dobraną magistralą</span>
        <h2>Czy AI dobierze rozdzielacze i średnicę rury zasilającej?</h2>
        <p class="rk-ai-intro"><a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">Liczba sekcji rozdzielacza</a> wynika z rzeczywistego podziału pętli. Średnica magistrali zależy od sumarycznego przepływu, długości trasy, materiału, armatury i dostępnego ciśnienia.</p>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Sekcje</span><h3>Jedno wyjście na jedną pętlę</h3><p>Rezerwa może być rozsądna, ale nie wolno łączyć dwóch pętli do jednego wyjścia tylko po to, aby zmieścić się w mniejszym rozdzielaczu.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Prędkość</span><h3>Kontrola przepływu w przewodzie</h3><p>W instalacjach projektowych często dąży się do zakresu około 0,15–0,60 m/s, sprawdzając jednocześnie opory i warunki pracy całego układu.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Długość</span><h3>Zasilanie i powrót</h3><p>Do obliczeń oporu należy wprowadzić pełną długość hydrauliczną, a nie odległość mierzoną w jedną stronę na rzucie.</p></article>
        </div>
        <p>Szczegółowe obliczenia rozwija poradnik o tym, <a href="https://projekt-ogrzewania.pl/jaka-srednica-rury-zasilajacej-rozdzielacz-w-ukladzie-ogrzewania-podlogowego-kalkulator/">jaka średnica rury powinna zasilać rozdzielacz podłogówki</a>.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-source">
        <span class="rk-ai-kicker">Nazwa urządzenia nie jest jego mocą w punkcie projektowym</span>
        <h2>Jak sprawdzić bilans podłogówki z pompą ciepła lub kotłem?</h2>
        <p class="rk-ai-intro">Źródło ma pokryć projektowe potrzeby budynku przy określonych warunkach, a instalacja odbiorcza ma odebrać i rozprowadzić tę moc przy założonych temperaturach oraz przepływach.</p>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Pompa ciepła</span><h3>Moc zależy od temperatur</h3><p>Porównuje się <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">moc urządzenia</a> przy właściwej temperaturze zewnętrznej i zasilaniu instalacji, a nie wyłącznie liczbę z nazwy modelu.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Kocioł</span><h3>Liczy się także moc minimalna</h3><p>Moc maksymalna może pokrywać mróz, lecz w sezonie przejściowym ważna jest modulacja i sposób współpracy z małym chwilowym odbiorem.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Układ</span><h3>Hydraulika łączy źródło z odbiornikami</h3><p><a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">Bufor</a>, <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło</a>, pompy i zawory muszą wynikać ze schematu oraz wymagań producenta, a nie z uniwersalnej odpowiedzi AI.</p></article>
        </div>
        <p><strong>Bilans ogrzewania pomieszczeń nie jest automatycznie doborem przygotowania CWU.</strong> Jeżeli AI dodaje arbitralne 20–30% do mocy, poproś o wyjaśnienie strategii pracy, priorytetu CWU i danych urządzenia.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-audit">
        <span class="rk-ai-kicker">Narzędzie przesiewowe przed zakupem materiałów</span>
        <h2>Sprawdź projekt ogrzewania podłogowego wygenerowany przez AI</h2>
        <p class="rk-ai-intro">Wpisz liczby z otrzymanej dokumentacji. Analizator sprawdzi ich podstawową spójność, policzy wymagane W/m², przepływ, orientacyjną długość rur, prędkości i przybliżoną stratę krytycznej drogi. Brak konkretnej pozycji zaznacz jako „nie wiem” — to również ważny wynik audytu.</p>

        <div class="rk-ai-tool" id="rk-ai-tool">
          <div class="rk-ai-tool-head">
            <h3>Audyt spójności projektu AI: ciepło, podłoga, hydraulika i źródło</h3>
            <p>Domyślne dane opisują przykładowy dom 145 m². Zastąp je wartościami z własnego projektu. Zielony wynik oznacza brak oczywistej sprzeczności w tym uproszczonym badaniu — nie zatwierdzenie projektu.</p>
          </div>

          <div class="rk-ai-tool-body">
            <div class="rk-ai-tool-row">
              <div class="rk-ai-tool-panel">
                <h4>1. Budynek i obciążenie cieplne</h4>
                <p>Wpisz wynik dla ogrzewania pomieszczeń przy projektowych warunkach, nie roczne kWh ani moc z etykiety źródła.</p>
                <div class="rk-ai-fields">
                  <div class="rk-ai-field"><label for="rk-ai-area">Powierzchnia ogrzewana [m²]</label><input id="rk-ai-area" type="number" min="10" max="2000" step="1" value="145" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-active-area">Łączna powierzchnia czynna [m²]</label><input id="rk-ai-active-area" type="number" min="1" max="2000" step="1" value="115" inputmode="decimal"><small>Bez stałej zabudowy i stref, w których nie wolno ułożyć rur.</small></div>
                  <div class="rk-ai-field"><label for="rk-ai-load">Projektowe obciążenie budynku [kW]</label><input id="rk-ai-load" type="number" min="0.1" max="500" step="0.1" value="6.4" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-outdoor">Temperatura zewnętrzna obliczeniowa [°C]</label><input id="rk-ai-outdoor" type="number" min="-40" max="10" step="1" value="-20" inputmode="decimal"></div>
                  <div class="rk-ai-field is-wide"><label for="rk-ai-room-loads">Czy projekt zawiera obciążenie cieplne każdego pomieszczenia?</label><select id="rk-ai-room-loads"><option value="yes">Tak — tabela W dla każdego pomieszczenia</option><option value="unknown">Nie wiem / widzę tylko sumę budynku</option><option value="no">Nie — wartości nie zostały pokazane</option></select></div>
                </div>
              </div>

              <div class="rk-ai-tool-panel">
                <h4>2. Emisja podłogi</h4>
                <p>Sprawdź parametry wody, najbardziej obciążoną strefę i warstwy nad rurą.</p>
                <div class="rk-ai-fields">
                  <div class="rk-ai-field"><label for="rk-ai-supply">Temperatura zasilania [°C]</label><input id="rk-ai-supply" type="number" min="20" max="70" step="0.1" value="35" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-return">Temperatura powrotu [°C]</label><input id="rk-ai-return" type="number" min="15" max="65" step="0.1" value="29" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-spacing-input">Dominujący rozstaw rur [cm]</label><input id="rk-ai-spacing-input" type="number" min="5" max="40" step="1" value="15" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-cover-r">Najwyższy opór okładziny [m²K/W]</label><input id="rk-ai-cover-r" type="number" min="0" max="1" step="0.01" value="0.10" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-zone">Strefa z najwyższą temperaturą</label><select id="rk-ai-zone"><option value="occupied">Strefa stałego przebywania</option><option value="bathroom">Łazienka</option><option value="peripheral">Strefa brzegowa</option></select></div>
                  <div class="rk-ai-field"><label for="rk-ai-surface-temp">Najwyższa temperatura powierzchni [°C]</label><input id="rk-ai-surface-temp" type="number" min="15" max="50" step="0.1" value="28.5" inputmode="decimal"></div>
                  <div class="rk-ai-field is-wide"><label for="rk-ai-surface-check">Czy dokumentacja pokazuje obliczenie mocy i temperatury powierzchni?</label><select id="rk-ai-surface-check"><option value="yes">Tak — dla pomieszczeń / stref</option><option value="unknown">Nie wiem / jest tylko rozstaw</option><option value="no">Nie — brak takiej kontroli</option></select></div>
                </div>
              </div>
            </div>

            <div class="rk-ai-tool-row">
              <div class="rk-ai-tool-panel">
                <h4>3. Pętle i hydraulika</h4>
                <p>Podaj długości razem z dobiegami. Średnica wewnętrzna wynika z wybranego wymiaru rury.</p>
                <div class="rk-ai-fields">
                  <div class="rk-ai-field"><label for="rk-ai-pipe">Rura pętli</label><select id="rk-ai-pipe"><option value="16x2">16×2,0 mm — średnica wewn. 12 mm</option><option value="17x2">17×2,0 mm — średnica wewn. 13 mm</option><option value="20x2">20×2,0 mm — średnica wewn. 16 mm</option></select></div>
                  <div class="rk-ai-field"><label for="rk-ai-loop-count">Liczba pętli</label><input id="rk-ai-loop-count" type="number" min="1" max="300" step="1" value="12" inputmode="numeric"></div>
                  <div class="rk-ai-field"><label for="rk-ai-longest-loop">Najdłuższa pętla z dobiegami [m]</label><input id="rk-ai-longest-loop" type="number" min="5" max="500" step="1" value="96" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-approach">Średni dobieg w jedną stronę [m/pętlę]</label><input id="rk-ai-approach" type="number" min="0" max="100" step="0.5" value="4" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-main-diameter">Średnica wewnętrzna magistrali [mm]</label><select id="rk-ai-main-diameter"><option value="20">20 mm</option><option value="25" selected="">25 mm</option><option value="32">32 mm</option><option value="35">35 mm</option></select></div>
                  <div class="rk-ai-field"><label for="rk-ai-main-length">Magistrala zasilanie + powrót [m]</label><input id="rk-ai-main-length" type="number" min="1" max="1000" step="1" value="24" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-pump-head">Dostępne ciśnienie pompy dla obiegu [kPa]</label><input id="rk-ai-pump-head" type="number" min="1" max="500" step="1" value="25" inputmode="decimal"></div>
                  <div class="rk-ai-field"><label for="rk-ai-hydraulic-check">Czy projekt zawiera przepływ i opór każdej pętli?</label><select id="rk-ai-hydraulic-check"><option value="yes">Tak — l/min oraz kPa dla pętli</option><option value="unknown">Nie wiem / są tylko długości</option><option value="no">Nie — brak obliczeń hydraulicznych</option></select></div>
                </div>
              </div>

              <div class="rk-ai-tool-panel">
                <h4>4. Źródło ciepła i dane producenta</h4>
                <p>Porównuj moc urządzenia w odpowiednim punkcie pracy, szczególnie dla pompy ciepła.</p>
                <div class="rk-ai-fields">
                  <div class="rk-ai-field"><label for="rk-ai-source-type">Źródło ciepła</label><select id="rk-ai-source-type"><option value="heat-pump">Pompa ciepła</option><option value="gas">Kocioł gazowy</option><option value="pellet">Kocioł na pellet</option><option value="network">Sieć ciepłownicza / inne</option></select></div>
                  <div class="rk-ai-field"><label for="rk-ai-source-power">Dostępna moc przy warunkach projektowych [kW]</label><input id="rk-ai-source-power" type="number" min="0.1" max="1000" step="0.1" value="7.0" inputmode="decimal"></div>
                  <div class="rk-ai-field is-wide"><label for="rk-ai-source-data">Czy moc pochodzi z dokumentacji urządzenia dla przyjętych temperatur?</label><select id="rk-ai-source-data"><option value="yes">Tak — sprawdzony punkt pracy producenta</option><option value="unknown">Nie wiem / wpisano moc z nazwy modelu</option><option value="no">Nie — to wartość orientacyjna</option></select></div>
                  <div class="rk-ai-field is-wide"><label for="rk-ai-drawing-scale">Czy rzut pętli ma skalę, wymiary, rozdzielacze i strefy bez rur?</label><select id="rk-ai-drawing-scale"><option value="yes">Tak — rysunek wykonawczy jest zwymiarowany</option><option value="unknown">Nie wiem / jest tylko grafika</option><option value="no">Nie — mam wyłącznie opis lub wizualizację</option></select></div>
                </div>
                <div class="rk-ai-callout" style="margin-bottom:0;background:rgba(231,173,47,.12);border-color:rgba(231,173,47,.35)"><strong style="color:#ffd26d">Nie wpisuj mocy grzałki jako mocy sprężarki</strong><p style="color:#d9e8ed">W pompie ciepła sprawdź, jaka moc jest dostępna przy projektowej temperaturze zewnętrznej i wymaganej temperaturze wody. Strategię biwalentną oceniaj osobno.</p></div>
              </div>
            </div>

            <div class="rk-ai-audit-summary" aria-live="polite">
              <div class="rk-ai-score-box">
                <div class="rk-ai-score-ring" id="rk-ai-score-ring"><strong id="rk-ai-score">0/100</strong></div>
                <div class="rk-ai-score-label">kompletność i spójność kontroli</div>
                <div class="rk-ai-verdict" id="rk-ai-verdict">Obliczanie…</div>
              </div>
              <div class="rk-ai-results">
                <div class="rk-ai-result is-accent"><span>Obciążenie czynnej podłogi</span><strong id="rk-ai-result-q">—</strong><small>średnia dla całego budynku, nie dla najgorszego pokoju</small></div>
                <div class="rk-ai-result is-accent"><span>Wymagany przepływ całkowity</span><strong id="rk-ai-result-flow">—</strong><small>dla wody i wpisanego ΔT</small></div>
                <div class="rk-ai-result"><span>Średni przepływ pętli</span><strong id="rk-ai-result-loop-flow">—</strong><small>orientacyjnie przy równym podziale mocy</small></div>
                <div class="rk-ai-result"><span>Szacowane rury w polach</span><strong id="rk-ai-result-pipe-total">—</strong><small>bez dokładnego trasowania CAD</small></div>
                <div class="rk-ai-result"><span>Szacowana średnia pętla</span><strong id="rk-ai-result-average-loop">—</strong><small>pole + przeciętny dobieg</small></div>
                <div class="rk-ai-result"><span>Prędkość w pętli</span><strong id="rk-ai-result-loop-velocity">—</strong><small>dla średniego przepływu</small></div>
                <div class="rk-ai-result"><span>Prędkość w magistrali</span><strong id="rk-ai-result-main-velocity">—</strong><small>dla przepływu sumarycznego</small></div>
                <div class="rk-ai-result"><span>Szacowana krytyczna Δp</span><strong id="rk-ai-result-pressure">—</strong><small>pętla + magistrala + rezerwa armatury</small></div>
                <div class="rk-ai-result"><span>Rezerwa mocy źródła</span><strong id="rk-ai-result-source">—</strong><small>tylko ogrzewanie pomieszczeń</small></div>
              </div>
            </div>

            <div class="rk-ai-tool-row rk-ai-analysis-stack">
              <div class="rk-ai-tool-panel">
                <h4>Mapa czterech obszarów projektu</h4>
                <p>Długość belki pokazuje kompletność i wstępną spójność wpisanych danych w danym obszarze.</p>
                <div class="rk-ai-chart-wrap">
                  <svg id="rk-ai-chart" class="rk-ai-chart" viewBox="0 0 760 330" role="img" aria-labelledby="rk-ai-chart-title rk-ai-chart-desc"></svg>
                  <div class="rk-ai-chart-caption">Wynik 100 nie oznacza zgodności z normą. Oznacza jedynie, że narzędzie nie wykryło braków i sprzeczności objętych tym formularzem.</div>
                </div>
              </div>
              <div class="rk-ai-tool-panel">
                <h4>Diagnostyka — co sprawdzić przed wykonaniem?</h4>
                <p>Lista aktualizuje się po każdej zmianie wartości.</p>
                <div class="rk-ai-diagnostics" id="rk-ai-diagnostics"></div>
              </div>
            </div>
          </div>
          <p class="rk-ai-tool-note">Model hydrauliczny wykorzystuje uproszczone równanie Darcy’ego-Weisbacha dla wody o orientacyjnych właściwościach w temperaturze pracy oraz rezerwę na elementy miejscowe. Nie zastępuje charakterystyk konkretnej rury, rozdzielacza, zaworów ani obliczenia rzeczywistej krytycznej drogi. Średnie obciążenie i średni przepływ nie wykrywają najtrudniejszego pomieszczenia.</p>
        </div>
      </section>

      <aside class="rk-ai-mid-cta" aria-label="Weryfikacja projektu ogrzewania podłogowego wygenerowanego przez AI">
        <span class="rk-ai-kicker" style="color:#83f1fb">Analizator znalazł sygnał ostrzegawczy albo nie masz wszystkich danych?</span>
        <h3>Prześlij projekt z ChatGPT lub innego AI, zanim na jego podstawie zamówisz rury</h3>
        <p>Sprawdzimy projekt w odniesieniu do rzeczywistego zapotrzebowania pomieszczeń, powierzchni czynnych, temperatur podłogi, długości pętli, przepływów, oporów hydraulicznych, magistrali i źródła ciepła. Jeżeli masz tylko opis, tabelę albo rysunek, najpierw ustalimy, czego brakuje do wykonania dokumentacji.</p>
        <a class="rk-ai-cta-button rk-ai-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt lub weryfikację obliczeń</a>
        <small class="rk-ai-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
      </aside>

      <section class="rk-ai-section" id="rk-ai-read-result">
        <span class="rk-ai-kicker">Kolor nie zatwierdza instalacji</span>
        <h2>Jak prawidłowo czytać wynik audytu projektu AI?</h2>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Zielony</span><h3>Brak oczywistej sprzeczności</h3><p>Wpisane dane przechodzą zastosowane kontrole, a dokumentacja deklaruje podstawowe obliczenia. Nadal trzeba sprawdzić pomieszczenia, rysunek, charakterystyki i rzeczywistą hydraulikę.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Pomarańczowy</span><h3>Braki lub wartości graniczne</h3><p>Projekt może być poprawny, ale nie da się tego ocenić z dostarczonych danych albo część parametrów wymaga ponownego przeliczenia.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Czerwony</span><h3>Poważna luka albo niespójność</h3><p>Występuje sygnał, którego nie należy ignorować przed zakupem i wylewką: brak obciążeń pomieszczeń, zbyt długa pętla, niewystarczająca moc źródła lub przekroczony budżet ciśnienia.</p></article>
        </div>
        <p><strong>Najważniejsze ograniczenie:</strong> analizator używa średnich dla całego budynku. Łazienka o małej powierzchni czynnej może nie pokrywać strat, nawet gdy średni wynik domu wygląda bardzo dobrze. Ostateczna weryfikacja zawsze schodzi do poziomu pomieszczenia i pętli.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-case">
        <span class="rk-ai-kicker">Ten sam dom — dwa zupełnie różne poziomy odpowiedzi</span>
        <h2>Przykład: dom 145 m² i projekt podłogówki z ChatGPT</h2>
        <p class="rk-ai-intro">Załóżmy, że AI proponuje 12 pętli rury 16×2 mm, rozstaw 15 cm, zasilanie 35°C i najdłuższy obieg 96 m. Zestaw brzmi wiarygodnie, ale bez kolejnych danych nie wiadomo, czy jest poprawny.</p>
        <div class="rk-ai-example">
          <h3>Warstwa pierwsza: odpowiedź orientacyjna</h3>
          <p>„Dla domu 145 m² zastosuj około 12 pętli, rozstaw 15 cm i temperaturę zasilania 35°C.” To może być rozsądny szkic rozmowy, ale nie zawiera dowodu, że każde pomieszczenie osiągnie wymaganą temperaturę.</p>
          <div class="rk-ai-example-grid">
            <div class="rk-ai-example-stat"><span>Dom</span><strong>145 m²</strong></div>
            <div class="rk-ai-example-stat"><span>Pętle</span><strong>12 szt.</strong></div>
            <div class="rk-ai-example-stat"><span>Rozstaw</span><strong>15 cm</strong></div>
            <div class="rk-ai-example-stat"><span>Zasilanie</span><strong>35°C</strong></div>
          </div>
        </div>
        <div class="rk-ai-example">
          <h3>Warstwa druga: projekt możliwy do weryfikacji</h3>
          <p>Do tych czterech liczb dochodzą: obciążenie 6,4 kW przy właściwej temperaturze zewnętrznej, tabela strat każdego pokoju, 115 m² powierzchni czynnej, warstwy podłogi, moc i temperatura powierzchni, przepływ około 0,92 m³/h przy ΔT 6 K, opory pętli, magistrala, punkt pracy pompy oraz moc źródła w tych warunkach.</p>
          <div class="rk-ai-example-grid">
            <div class="rk-ai-example-stat"><span>Obciążenie</span><strong>6,4 kW</strong></div>
            <div class="rk-ai-example-stat"><span>Podłoga czynna</span><strong>115 m²</strong></div>
            <div class="rk-ai-example-stat"><span>ΔT wody</span><strong>6 K</strong></div>
            <div class="rk-ai-example-stat"><span>Przepływ</span><strong>≈ 0,92 m³/h</strong></div>
          </div>
        </div>
        <p>Dopiero druga warstwa pozwala zadać sensowne pytania: czy 96 m jest najtrudniejszą pętlą, jaki przepływ ma ten konkretny obieg, czy łazienka pokrywa straty i czy pompa daje wymagane Q przy wymaganym H.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-comparison">
        <span class="rk-ai-kicker">Trzy narzędzia, trzy różne role</span>
        <h2>Model językowy, algorytm obliczeniowy i projektant — czym się różnią?</h2>
        <div class="rk-ai-table-wrap">
          <table class="rk-ai-table">
            <thead><tr><th>Cecha</th><th>ChatGPT / model językowy</th><th>Program obliczeniowy</th><th>Projektant HVAC</th></tr></thead>
            <tbody>
              <tr><td data-label="Cecha"><strong>Główna rola</strong></td><td data-label="Model AI">Rozmowa, synteza, wyjaśnianie, praca na treści i danych.</td><td data-label="Algorytm">Powtarzalne obliczenia według zaimplementowanego modelu.</td><td data-label="Projektant">Dobór metody, założeń i rozwiązań dla konkretnego budynku.</td></tr>
              <tr><td data-label="Cecha"><strong>Brakujące dane</strong></td><td data-label="Model AI">Może je wskazać, ale może też niejawnie założyć.</td><td data-label="Algorytm">Zwykle wymaga pola albo używa jawnej wartości domyślnej.</td><td data-label="Projektant">Weryfikuje dokumentację i dopytuje o stan planowany.</td></tr>
              <tr><td data-label="Cecha"><strong>Geometria</strong></td><td data-label="Model AI">Może interpretować obraz, lecz wymaga kontroli skali i wymiarów.</td><td data-label="Algorytm">Liczy na wprowadzonym modelu CAD/BIM lub tabeli.</td><td data-label="Projektant">Koordynuje rzut z architekturą i wykonaniem.</td></tr>
              <tr><td data-label="Cecha"><strong>Odpowiedzialność za wynik</strong></td><td data-label="Model AI">Nie ogląda budowy i nie potwierdza zgodności stanu rzeczywistego.</td><td data-label="Algorytm">Wynik zależy od implementacji i danych wejściowych.</td><td data-label="Projektant">Ocenia wynik, dokumentuje decyzje i reaguje na kolizje.</td></tr>
              <tr><td data-label="Cecha"><strong>Najlepsze użycie</strong></td><td data-label="Model AI">Pomoc w przygotowaniu danych i kontroli pytań.</td><td data-label="Algorytm"><a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">OZC, emisja, hydraulika i wariantowanie</a>.</td><td data-label="Projektant">Połączenie wszystkich części w wykonalną dokumentację.</td></tr>
            </tbody>
          </table>
        </div>
        <p><strong>Najmocniejszy układ nie polega na wyborze „AI albo człowiek”.</strong> Polega na wykorzystaniu AI do porządkowania i kontroli, algorytmów do obliczeń oraz doświadczenia projektowego do weryfikacji danych, wyjątków i wykonania.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-workflow">
        <span class="rk-ai-kicker">AI ma ujawniać niepewność, a nie ją maskować</span>
        <h2>Jak bezpiecznie używać ChatGPT przy projektowaniu podłogówki?</h2>
        <div class="rk-ai-steps">
          <article class="rk-ai-step"><div><h3>Zacznij od kompletnej listy danych</h3><p>Poproś AI o checklistę, ale porównaj ją z dokumentacją techniczną budynku i zakresem profesjonalnego projektu.</p></div></article>
          <article class="rk-ai-step"><div><h3>Oddziel dane od założeń</h3><p>Każda wartość powinna mieć status: z projektu, z dokumentacji produktu, zmierzona, obliczona albo przyjęta do potwierdzenia.</p></div></article>
          <article class="rk-ai-step"><div><h3>Wymagaj jednostek i wzorów</h3><p>Nie przyjmuj tabeli z samymi liczbami. Poproś o równanie, podstawienie, wynik pośredni i kontrolę wymiarową.</p></div></article>
          <article class="rk-ai-step"><div><h3>Każ obliczać pomieszczenia osobno</h3><p>Suma budynku nie pokaże, że łazienka albo salon z przeszkleniami jest krytyczny dla temperatury zasilania.</p></div></article>
          <article class="rk-ai-step"><div><h3>Po każdej zmianie przelicz cały łańcuch</h3><p>Zmiana rozstawu, okładziny, temperatury lub liczby pętli wpływa jednocześnie na emisję, długości, przepływy i opory.</p></div></article>
          <article class="rk-ai-step"><div><h3>Porównaj wynik z dokumentacją producentów</h3><p>Sprawdź opór okładziny, wymiary rur, zakres rotametrów, charakterystykę pompy i moc źródła w odpowiednim punkcie pracy.</p></div></article>
          <article class="rk-ai-step"><div><h3>Wykonaj niezależną kontrolę</h3><p>Najlepiej użyć innej metody obliczeniowej i sprawdzić wartości skrajne, a nie tylko poprosić ten sam model: „czy na pewno?”.</p></div></article>
          <article class="rk-ai-step"><div><h3>Zamknij projekt przed zakupem i wylewką</h3><p>Po wykonaniu <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">jastrychu</a> zmiana rozstawu, podziału pętli lub lokalizacji rozdzielacza staje się kosztowna albo niemożliwa.</p></div></article>
        </div>
      </section>

      <section class="rk-ai-section" id="rk-ai-docs">
        <span class="rk-ai-kicker">Weryfikuj liczby u ich źródła</span>
        <h2>Jakie dokumenty trzeba sprawdzić poza odpowiedzią AI?</h2>
        <div class="rk-ai-grid-3">
          <article class="rk-ai-card"><span class="rk-ai-card-number">Budynek</span><h3>Projekt i stan planowany</h3><p>Rzuty, przekroje, zestawienie stolarki, charakterystyka przegród, wentylacja oraz wszystkie zmiany wprowadzone przez inwestora.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Podłoga</span><h3>Karty systemu i okładziny</h3><p>Opór cieplny, dopuszczalne temperatury, konstrukcja jastrychu, dylatacje i wymagania montażowe producentów.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Hydraulika</span><h3>Charakterystyki elementów</h3><p>Średnice wewnętrzne rur, wykresy strat, zakresy przepływomierzy, Kv zaworów i charakterystyka Q–H pompy.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Źródło</span><h3>Tabele punktów pracy</h3><p>Moc i sprawność przy temperaturze zewnętrznej oraz zasilaniu, zakres modulacji, przepływ minimalny i wymagania schematu.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Obliczenia</span><h3>Raporty z wynikami pośrednimi</h3><p>Założenia, temperatury, U, powierzchnie, strumienie powietrza, moce pomieszczeń, emisja, pętle, przepływy i opory.</p></article>
          <article class="rk-ai-card"><span class="rk-ai-card-number">Wykonanie</span><h3>Rysunek i protokoły</h3><p>Rzut w skali, opisy obiegów, <a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/">próba szczelności</a>, zdjęcia przed zakryciem, pomiary przepływów i ustawienia uruchomieniowe.</p></article>
        </div>
      </section>

      <section class="rk-ai-section" id="rk-ai-red-flags">
        <span class="rk-ai-kicker">Dziesięć sygnałów, przy których trzeba zatrzymać wykonanie</span>
        <h2>10 błędów i czerwonych flag w projekcie podłogówki z AI</h2>
        <div class="rk-ai-grid-2">
          <article class="rk-ai-error"><b>01</b><h3>Jeden wynik W/m² dla całego domu</h3><p>Brak strat pomieszczeń uniemożliwia poprawny dobór mocy i rozstawu dla każdej strefy.</p></article>
          <article class="rk-ai-error"><b>02</b><h3>Rozstaw dobrany tylko z metrażu</h3><p>Nie uwzględnia powierzchni czynnej, okładziny, temperatury i różnic między pomieszczeniami.</p></article>
          <article class="rk-ai-error"><b>03</b><h3>Brak temperatury powierzchni</h3><p>Nie wiadomo, czy wymagana moc nie prowadzi do przekroczenia warunków komfortu lub ograniczeń podłogi.</p></article>
          <article class="rk-ai-error"><b>04</b><h3>Każda pętla ma identyczny przepływ</h3><p>Przepływ powinien wynikać z mocy przypisanej do obiegu oraz ΔT, a nie z jednej uniwersalnej nastawy.</p></article>
          <article class="rk-ai-error"><b>05</b><h3>Pętla 16×2 mm ma 120–150 m</h3><p>Taką długość trzeba szczególnie sprawdzić pod kątem przepływu, oporu i dostępnego ciśnienia — przed wylewką.</p></article>
          <article class="rk-ai-error"><b>06</b><h3>Dobiegi nie są wliczone</h3><p>Długości w tabeli obejmują tylko pole grzewcze, więc rzeczywiste pętle i ilość rury będą większe.</p></article>
          <article class="rk-ai-error"><b>07</b><h3>Pompa dobrana z sumy metrów rur</h3><p>Brakuje przepływu całkowitego i straty ciśnienia krytycznej drogi przy tym przepływie.</p></article>
          <article class="rk-ai-error"><b>08</b><h3>Magistrala bez przepływu i oporu</h3><p>Średnica pojawia się jako „typowa”, ale nie ma prędkości, pełnej długości ani wpływu armatury.</p></article>
          <article class="rk-ai-error"><b>09</b><h3>Moc pompy ciepła wzięta z nazwy</h3><p>Nie pokazano mocy przy projektowej temperaturze zewnętrznej i wymaganej temperaturze zasilania.</p></article>
          <article class="rk-ai-error"><b>10</b><h3>AI potwierdza samo siebie</h3><p>Pytanie „czy jesteś pewien?” nie jest niezależną weryfikacją danych, metody, rysunku i wyników.</p></article>
        </div>
        <p>Każdy z tych problemów zasługuje na osobne rozwinięcie. W tym pillarze tworzą mapę kontroli, natomiast szczegółowy artykuł o błędach AI powinien przejąć frazy listowe i case’y z konkretnymi odpowiedziami modeli.</p>
      </section>

      <section class="rk-ai-section" id="rk-ai-checklist">
        <span class="rk-ai-kicker">Ostatnia kontrola przed zakryciem rur</span>
        <h2>Checklista: co potwierdzić przed wykonaniem wylewki?</h2>
        <div class="rk-ai-steps">
          <article class="rk-ai-step"><div><h3>Warunki i obciążenia pomieszczeń</h3><p>W projekcie są temperatury obliczeniowe, opis przegród, wentylacji oraz wynik w W dla każdej strefy.</p></div></article>
          <article class="rk-ai-step"><div><h3>Powierzchnie czynne i okładziny</h3><p>Wyłączono stałą zabudowę, uwzględniono różne opory podłóg i ograniczenia temperatury.</p></div></article>
          <article class="rk-ai-step"><div><h3>Moc systemu w każdym pomieszczeniu</h3><p>Wymagane W/m² porównano z możliwą mocą przy wybranych temperaturach, rozstawie i konstrukcji.</p></div></article>
          <article class="rk-ai-step"><div><h3>Rzut wykonawczy w skali</h3><p>Widać pętle, rozstawy, rozdzielacze, dobiegi, <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">dylatacje</a>, strefy bez rur oraz opisy obiegów.</p></div></article>
          <article class="rk-ai-step"><div><h3>Długość każdej pętli</h3><p>Tabela obejmuje pole, zasilanie i powrót, a wynik jest zgodny z rzeczywistym trasowaniem na rzucie.</p></div></article>
          <article class="rk-ai-step"><div><h3>Przepływ i strata ciśnienia</h3><p>Każdy obieg ma wymaganą nastawę oraz opór policzony dla własnej mocy, długości i średnicy.</p></div></article>
          <article class="rk-ai-step"><div><h3>Magistrala i punkt pracy pompy</h3><p>Przepływ sumaryczny, prędkości i krytyczna droga mieszczą się w możliwościach układu.</p></div></article>
          <article class="rk-ai-step"><div><h3>Źródło i schemat</h3><p>Moc źródła potwierdzono w warunkach projektowych, a wymagania przepływu, bufora, sprzęgła i sterowania są skoordynowane.</p></div></article>
          <article class="rk-ai-step"><div><h3>Zmiany wykonawcze</h3><p>Każdą zmianę rozstawu, długości, rozdzielacza, okładziny lub źródła przeliczono przed ułożeniem jastrychu.</p></div></article>
          <article class="rk-ai-step"><div><h3>Próba, opis i zdjęcia</h3><p>Instalacja przeszła próbę szczelności, obiegi są opisane, a przebieg rur udokumentowany przed zakryciem.</p></div></article>
        </div>
      </section>

      <section class="rk-ai-section" id="rk-ai-faq">
        <span class="rk-ai-kicker">Najczęstsze pytania inwestorów</span>
        <h2>FAQ — projekt ogrzewania podłogowego z ChatGPT i AI</h2>
        <div class="rk-ai-faq">
          <details><summary>Czy ChatGPT potrafi zrobić kompletny projekt ogrzewania podłogowego?</summary><div class="rk-ai-faq-answer"><p>Może przygotować opis, tabele, obliczenia pomocnicze i poglądowy układ, jeśli otrzyma dane. Kompletna dokumentacja wymaga jednak zweryfikowanych obciążeń cieplnych pomieszczeń, modelu mocy podłogi, hydrauliki, rysunku w skali oraz kontroli źródła i wykonania. Sam wydruk odpowiedzi nie potwierdza tych elementów.</p></div></details>
          <details><summary>Czy projekt podłogówki wygenerowany przez AI jest bezpieczny do wykonania?</summary><div class="rk-ai-faq-answer"><p>Nie można tego stwierdzić na podstawie pochodzenia dokumentu ani jego wyglądu. Trzeba sprawdzić dane wejściowe, metodę, jednostki, obciążenia pomieszczeń, moc i temperaturę podłogi, długości, przepływy, opory, magistrale, pompę oraz źródło ciepła.</p></div></details>
          <details><summary>Jakie pliki można przekazać ChatGPT do analizy podłogówki?</summary><div class="rk-ai-faq-answer"><p>Zależnie od dostępnych funkcji mogą to być rzuty, zestawienia i tabele. Wymiary i skala odczytane z obrazu muszą zostać potwierdzone z dokumentacją, a dane wrażliwe warto usunąć. Analiza pliku nie oznacza automatycznego wykonania modelu CAD ani obliczeń normowych.</p></div></details>
          <details><summary>Czy AI może obliczyć straty ciepła według PN-EN 12831?</summary><div class="rk-ai-faq-answer"><p>AI może wykonywać działania i pomagać opisać metodę, ale użytkownik musi mieć dostęp do właściwych danych oraz legalnego tekstu stosowanego standardu. Należy potwierdzić krajowe warunki, temperatury, wentylację, infiltrację, mostki i wyniki dla pomieszczeń. Sama deklaracja „policzone według normy” nie jest raportem obliczeniowym.</p></div></details>
          <details><summary>Czy rozstaw 10 albo 15 cm podany przez ChatGPT może być poprawny?</summary><div class="rk-ai-faq-answer"><p>Może, ale liczba musi wynikać z obciążenia danego pomieszczenia, powierzchni czynnej, parametrów wody, jastrychu, oporu okładziny i ograniczeń temperatury. Ten sam rozstaw nie musi być właściwy dla wszystkich stref domu.</p></div></details>
          <details><summary>Czy pętla 120 m z rury 16×2 mm zawsze jest błędem?</summary><div class="rk-ai-faq-answer"><p>Nie należy oceniać długości bez przepływu, średnicy wewnętrznej i dostępnego ciśnienia, ale 120 m wyraźnie przekracza typowy punkt kontrolny 80–100 m dla rury 16×2 mm. Przed wylewką trzeba policzyć opór pętli i rozważyć inny podział pola.</p></div></details>
          <details><summary>Jak sprawdzić przepływy podane przez AI?</summary><div class="rk-ai-faq-answer"><p>Dla każdej pętli potrzebna jest przypisana moc i projektowe ΔT. Dla wody przepływ w l/h można orientacyjnie policzyć jako moc w W podzieloną przez 1,163 i ΔT. Następnie sprawdza się prędkość, stratę ciśnienia, zakres rotametru i sumę przepływów.</p></div></details>
          <details><summary>Czy zielony wynik analizatora oznacza, że projekt jest poprawny?</summary><div class="rk-ai-faq-answer"><p>Nie. Oznacza tylko, że wpisane wartości nie ujawniły oczywistych braków i sprzeczności objętych narzędziem. Analizator nie zna rozkładu strat pomieszczeń, pełnego trasowania, wszystkich oporów miejscowych ani charakterystyk konkretnych produktów.</p></div></details>
          <details><summary>Czy można używać AI do zaprojektowania podłogówki samemu?</summary><div class="rk-ai-faq-answer"><p>AI jest wartościowym pomocnikiem przy zbieraniu danych, nauce i kontrolowaniu tabel. Nie powinno być jedynym źródłem decyzji o pracach, których po wylewce nie da się łatwo zmienić. Wyniki trzeba niezależnie zweryfikować przed zakupem i wykonaniem.</p></div></details>
          <details><summary>Co przesłać do weryfikacji projektu wygenerowanego przez ChatGPT?</summary><div class="rk-ai-faq-answer"><p>Prześlij rzuty z wymiarami, pełną odpowiedź lub plik AI, opis przegród i wentylacji, zestawienie stolarki, źródło ciepła, warstwy i okładziny podłogi oraz wszystkie otrzymane tabele pętli, przepływów i oporów. Brakujące dane można następnie uporządkować w ankiecie projektowej.</p></div></details>
        </div>
      </section>

      <section class="rk-ai-section" id="rk-ai-sources">
        <span class="rk-ai-kicker">Źródła techniczne i zarządzanie ryzykiem AI</span>
        <h2>Podstawa merytoryczna opracowania</h2>
        <div class="rk-ai-source-box">
          <ul>
            <li><a href="https://www.nist.gov/publications/artificial-intelligence-risk-management-framework-generative-artificial-intelligence" target="_blank" rel="nofollow noopener noreferrer">NIST AI 600-1 — Generative Artificial Intelligence Profile</a>, profil ryzyk generatywnej AI, w tym ryzyka tworzenia przekonująco podanych błędnych treści.</li>
            <li><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 — BS EN 12831-1:2017</a>, zakres metody wyznaczania projektowego obciążenia cieplnego pomieszczeń, części budynku i całych budynków.</li>
            <li><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021</a>, procedury wyznaczania mocy wodnych systemów ogrzewania i chłodzenia płaszczyznowego oraz wyników związanych z temperaturą powierzchni.</li>
            <li><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021</a>, projektowanie i wymiarowanie wbudowanych systemów ogrzewania i chłodzenia płaszczyznowego.</li>
          </ul>
          <p>Normy mogą być chronione prawem autorskim i odpłatne. Artykuł opisuje strukturę kontroli, ale nie zastępuje pełnego tekstu norm, krajowych załączników, dokumentacji producentów ani indywidualnego opracowania technicznego.</p>
        </div>
        <div class="rk-ai-update">Ostatnia aktualizacja merytoryczna: 7 września 2026 r.</div>
      </section>
    </main>

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

      <header class="rk-ai-author-head">
        <div><span class="rk-ai-kicker" style="color:#83f1fb">Autor opracowania</span><div class="rk-ai-author-title">Robert Kucharski</div><p>Projektant instalacji sanitarnych • specjalista HVAC i ogrzewania podłogowego</p></div>
        <span class="rk-ai-author-mark">AI • OBLICZENIA • PODŁOGÓWKA</span>
      </header>

      <div class="rk-ai-author-layout">
        <aside class="rk-ai-author-side">
          <div class="rk-ai-author-photo"><img src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski — projektant ogrzewania podłogowego" width="600" height="600" loading="lazy" decoding="async"></div>
          <div class="rk-ai-author-name">Robert Kucharski</div>
          <div class="rk-ai-author-role">Projektant instalacji sanitarnych<br>Specjalista HVAC i ogrzewania podłogowego</div>
          <div class="rk-ai-author-social-label">Znajdziesz mnie również:</div>
          <div class="rk-ai-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 me" aria-label="Robert Kucharski na LinkedIn" title="LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5.2 7.7H1.6V22h3.6V7.7ZM3.4 2A2.1 2.1 0 1 0 3.4 6.2 2.1 2.1 0 0 0 3.4 2ZM22.4 13.8c0-4.3-2.3-6.3-5.4-6.3a4.7 4.7 0 0 0-4.2 2.3V7.7H9.2V22h3.6v-7.1c0-1.9.4-3.7 2.7-3.7 2.3 0 2.3 2.1 2.3 3.8v7h3.6l1-8.2Z"></path></svg></a>
            <a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Projekt-Ogrzewania.pl na Facebooku" title="Facebook"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M14.2 22v-9h3l.5-3.5h-3.5V7.3c0-1 .3-1.7 1.8-1.7h1.9V2.5c-.3 0-1.5-.1-2.8-.1-2.8 0-4.7 1.7-4.7 4.8v2.3H7.2V13h3.2v9h3.8Z"></path></svg></a>
            <a href="https://x.com/Projekt_HVAC" target="_blank" rel="nofollow noopener noreferrer me" aria-label="Projekt HVAC w serwisie X" title="X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.9 2H22l-6.8 7.8L23.2 22H17l-4.9-6.4L6.5 22H3.3l7.3-8.4L2.8 2h6.4l4.4 5.8L18.9 2Zm-1.1 17.8h1.7L8.3 4.1H6.5l11.3 15.7Z"></path></svg></a>
          </div>
        </aside>

        <div class="rk-ai-author-main">
          <blockquote class="rk-ai-author-quote"><p>„AI może skrócić drogę od pytania do analizy, ale nie może skrócić fizyki. Jeżeli nie potrafimy wskazać, skąd wzięła się moc, przepływ i opór pętli, mamy sugestię — nie projekt.”</p></blockquote>
          <div class="rk-ai-author-tabs" role="tablist" aria-label="Informacje o autorze">
            <label class="rk-ai-author-tab" for="rk-ai-author-about">O autorze</label>
            <label class="rk-ai-author-tab" for="rk-ai-author-exp">Doświadczenie</label>
            <label class="rk-ai-author-tab" for="rk-ai-author-sites">Portale</label>
          </div>
          <div class="rk-ai-author-panel rk-ai-author-panel-about"><p>Projektuję wodne ogrzewanie podłogowe, łącząc obliczenia strat ciepła z doborem temperatur, rozstawów, przepływów, długości pętli, strat ciśnienia i nastaw rozdzielaczy.</p></div>
          <div class="rk-ai-author-panel rk-ai-author-panel-exp"><p>Weryfikuję cały łańcuch decyzji: od parametrów przegród i obciążenia pomieszczeń przez możliwości czynnej podłogi po hydraulikę, źródło ciepła i dokumentację dla wykonawcy. Narzędzia AI wykorzystuję jako wsparcie analizy, nie zamiennik danych i odpowiedzialności projektowej.</p></div>
          <div class="rk-ai-author-panel rk-ai-author-panel-sites"><p>Jestem właścicielem trzech serwisów branżowych. Powiązanie portali podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p><div class="rk-ai-site-links"><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>
      </div>
    </section>

    <section class="rk-ai-final-cta" aria-label="Indywidualny projekt ogrzewania podłogowego z obliczeniami">
      <span class="rk-ai-kicker" style="color:#83f1fb">Niech AI pomoże zadać pytania. Wylewkę wykonaj według sprawdzonych liczb.</span>
      <div class="rk-ai-cta-title">Otrzymaj projekt podłogówki z obliczeniami cieplnymi i hydraulicznymi</div>
      <p>Dokumentacja obejmuje obciążenia pomieszczeń, kontrolę mocy podłogi, temperaturę zasilania i powrotu, układ oraz długości pętli, przepływy, opory, rozdzielacze i zestawienie materiałów. Po zakupie otrzymasz ankietę oraz możliwość przesłania rzutów budynku.</p>
      <a class="rk-ai-cta-button rk-ai-sales-cta" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a>
      <small class="rk-ai-disclosure">Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl — serwisu należącego do autora artykułu.</small>
    </section>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#article",
      "url": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/",
      "headline": "Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?",
      "description": "Techniczna analiza projektowania ogrzewania podłogowego z ChatGPT i AI z interaktywnym audytem obciążenia cieplnego, emisji podłogi, pętli, przepływów, hydrauliki i źródła ciepła.",
      "inLanguage": "pl-PL",
      "datePublished": "2026-09-07",
      "dateModified": "2026-09-07",
      "proficiencyLevel": "Beginner",
      "mainEntityOfPage": {"@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#webpage"},
      "author": {"@id": "https://projekt-ogrzewania.pl/#robert-kucharski"},
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "about": [
        {"@type": "Thing", "name": "Projekt ogrzewania podłogowego z ChatGPT"},
        {"@type": "Thing", "name": "Sztuczna inteligencja w HVAC"},
        {"@type": "Thing", "name": "Weryfikacja projektu ogrzewania podłogowego"},
        {"@type": "Thing", "name": "Obliczenia hydrauliczne podłogówki"}
      ],
      "keywords": [
        "projekt ogrzewania podłogowego z ChatGPT",
        "projekt ogrzewania podłogowego AI",
        "ChatGPT ogrzewanie podłogowe",
        "czy ChatGPT zrobi projekt podłogówki",
        "jak sprawdzić projekt ogrzewania podłogowego",
        "AI HVAC"
      ],
      "citation": [
        "https://www.nist.gov/publications/artificial-intelligence-risk-management-framework-generative-artificial-intelligence",
        "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/74684.html"
      ],
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"}
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#webpage",
      "url": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/",
      "name": "Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?",
      "description": "ChatGPT przygotował projekt podłogówki? Sprawdź straty ciepła, moc podłogi, pętle, przepływy i hydraulikę przed wylewką.",
      "inLanguage": "pl-PL",
      "datePublished": "2026-09-07",
      "dateModified": "2026-09-07",
      "isPartOf": {"@id": "https://projekt-ogrzewania.pl/#website"},
      "breadcrumb": {"@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#breadcrumb"},
      "mainEntity": [
        {"@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#application"},
        {"@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#howto"},
        {"@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#faq"}
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#breadcrumb",
      "itemListElement": [
        {"@type": "ListItem", "position": 1, "name": "Strona główna", "item": "https://projekt-ogrzewania.pl/"},
        {"@type": "ListItem", "position": 2, "name": "Ogrzewanie podłogowe", "item": "https://projekt-ogrzewania.pl/category/ogrzewanie-podlogowe/"},
        {"@type": "ListItem", "position": 3, "name": "Projekt ogrzewania podłogowego z ChatGPT i AI", "item": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/"}
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#application",
      "name": "Audyt projektu ogrzewania podłogowego wygenerowanego przez AI",
      "url": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#rk-ai-audit",
      "applicationCategory": "EducationalApplication",
      "operatingSystem": "Dowolny system z przeglądarką internetową",
      "browserRequirements": "Obsługa JavaScript",
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "description": "Narzędzie przesiewowo sprawdza kompletność i spójność danych cieplnych, parametrów podłogi, długości pętli, przepływów, prędkości, strat ciśnienia, magistrali i mocy źródła ciepła."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#howto",
      "name": "Jak bezpiecznie zweryfikować projekt ogrzewania podłogowego z AI?",
      "description": "Osiem etapów od zebrania danych po niezależną kontrolę i zamknięcie dokumentacji przed wylewką.",
      "inLanguage": "pl-PL",
      "step": [
        {"@type": "HowToStep", "position": 1, "name": "Zbierz komplet danych", "text": "Przygotuj rzuty, parametry przegród, stolarki, wentylacji, źródła ciepła i warstw podłogi."},
        {"@type": "HowToStep", "position": 2, "name": "Oddziel fakty od założeń", "text": "Oznacz, które wartości pochodzą z projektu i dokumentacji, a które są tylko założeniem do potwierdzenia."},
        {"@type": "HowToStep", "position": 3, "name": "Sprawdź obciążenia pomieszczeń", "text": "Potwierdź straty ciepła w watach dla każdej strefy przy właściwych warunkach projektowych."},
        {"@type": "HowToStep", "position": 4, "name": "Sprawdź możliwości podłogi", "text": "Porównaj wymaganą moc z powierzchnią czynną, temperaturą wody, rozstawem, okładziną i temperaturą powierzchni."},
        {"@type": "HowToStep", "position": 5, "name": "Zweryfikuj pętle i przepływy", "text": "Skontroluj pełne długości z dobiegami oraz przepływy wynikające z mocy każdej pętli i różnicy temperatur."},
        {"@type": "HowToStep", "position": 6, "name": "Policz krytyczną drogę hydrauliczną", "text": "Uwzględnij pętlę, rozdzielacz, przyłącza, armaturę i magistralę przy wymaganym przepływie."},
        {"@type": "HowToStep", "position": 7, "name": "Sprawdź źródło ciepła", "text": "Porównaj obciążenie z mocą źródła w odpowiednim punkcie pracy i skoordynuj schemat hydrauliczny."},
        {"@type": "HowToStep", "position": 8, "name": "Wykonaj niezależną kontrolę przed wylewką", "text": "Porównaj wyniki inną metodą, usuń niespójności i zatwierdź rysunek wykonawczy przed zakryciem rur."}
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai/#faq",
      "inLanguage": "pl-PL",
      "mainEntity": [
        {"@type": "Question", "name": "Czy ChatGPT potrafi zrobić kompletny projekt ogrzewania podłogowego?", "acceptedAnswer": {"@type": "Answer", "text": "Może przygotować opis, tabele, obliczenia pomocnicze i poglądowy układ, jeśli otrzyma dane. Kompletna dokumentacja wymaga zweryfikowanych obciążeń cieplnych pomieszczeń, modelu mocy podłogi, hydrauliki, rysunku w skali oraz kontroli źródła i wykonania."}},
        {"@type": "Question", "name": "Czy projekt podłogówki wygenerowany przez AI jest bezpieczny do wykonania?", "acceptedAnswer": {"@type": "Answer", "text": "Nie można tego stwierdzić na podstawie pochodzenia dokumentu ani jego wyglądu. Trzeba sprawdzić dane wejściowe, metodę, jednostki, obciążenia pomieszczeń, moc i temperaturę podłogi, długości, przepływy, opory, magistrale, pompę oraz źródło ciepła."}},
        {"@type": "Question", "name": "Jakie pliki można przekazać ChatGPT do analizy podłogówki?", "acceptedAnswer": {"@type": "Answer", "text": "Zależnie od dostępnych funkcji mogą to być rzuty, zestawienia i tabele. Wymiary oraz skala odczytane z obrazu muszą zostać potwierdzone z dokumentacją, a analiza pliku nie oznacza automatycznego wykonania modelu CAD ani obliczeń normowych."}},
        {"@type": "Question", "name": "Czy AI może obliczyć straty ciepła według PN-EN 12831?", "acceptedAnswer": {"@type": "Answer", "text": "AI może wykonywać działania i pomagać opisać metodę, ale trzeba potwierdzić dane, krajowe warunki, temperatury, wentylację, infiltrację, mostki oraz wyniki dla pomieszczeń. Sama deklaracja obliczenia według normy nie jest raportem obliczeniowym."}},
        {"@type": "Question", "name": "Czy rozstaw 10 albo 15 cm podany przez ChatGPT może być poprawny?", "acceptedAnswer": {"@type": "Answer", "text": "Może, ale liczba musi wynikać z obciążenia pomieszczenia, powierzchni czynnej, parametrów wody, jastrychu, oporu okładziny i ograniczeń temperatury. Ten sam rozstaw nie musi być właściwy dla wszystkich stref domu."}},
        {"@type": "Question", "name": "Czy pętla 120 m z rury 16 na 2 mm zawsze jest błędem?", "acceptedAnswer": {"@type": "Answer", "text": "Długości nie ocenia się bez przepływu, średnicy wewnętrznej i dostępnego ciśnienia, ale 120 m przekracza typowy punkt kontrolny 80–100 m dla rury 16 na 2 mm. Przed wylewką trzeba policzyć opór i rozważyć inny podział."}},
        {"@type": "Question", "name": "Jak sprawdzić przepływy podane przez AI?", "acceptedAnswer": {"@type": "Answer", "text": "Dla każdej pętli potrzebna jest przypisana moc i projektowa różnica temperatur. Dla wody przepływ w litrach na godzinę można orientacyjnie policzyć jako moc w watach podzieloną przez 1,163 oraz różnicę temperatur, a potem sprawdzić prędkość i opór."}},
        {"@type": "Question", "name": "Czy zielony wynik analizatora oznacza, że projekt jest poprawny?", "acceptedAnswer": {"@type": "Answer", "text": "Nie. Oznacza tylko, że wpisane wartości nie ujawniły oczywistych braków i sprzeczności objętych narzędziem. Analizator nie zna rozkładu strat pomieszczeń, pełnego trasowania ani charakterystyk konkretnych produktów."}},
        {"@type": "Question", "name": "Czy można używać AI do zaprojektowania podłogówki samemu?", "acceptedAnswer": {"@type": "Answer", "text": "AI jest wartościowym pomocnikiem przy zbieraniu danych, nauce i kontrolowaniu tabel, ale nie powinno być jedynym źródłem decyzji o pracach, których po wylewce nie da się łatwo zmienić. Wyniki trzeba niezależnie zweryfikować."}},
        {"@type": "Question", "name": "Co przesłać do weryfikacji projektu wygenerowanego przez ChatGPT?", "acceptedAnswer": {"@type": "Answer", "text": "Prześlij rzuty z wymiarami, pełną odpowiedź lub plik AI, opis przegród i wentylacji, zestawienie stolarki, źródło ciepła, warstwy i okładziny podłogi oraz wszystkie tabele pętli, przepływów i oporów."}}
      ]
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#robert-kucharski",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/robert-kucharski/",
      "jobTitle": "Projektant instalacji sanitarnych, specjalista HVAC i ogrzewania podłogowego",
      "worksFor": {"@id": "https://projekt-ogrzewania.pl/#organization"},
      "affiliation": [
        {"@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": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt-Ogrzewania.pl",
      "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.pl",
      "inLanguage": "pl-PL",
      "publisher": {"@id": "https://projekt-ogrzewania.pl/#organization"}
    }
  ]
}
</script>

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

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

  var byId = function (id) {
    return document.getElementById(id);
  };

  var readNumber = function (id, fallback, minimum, maximum) {
    var field = byId(id);
    var value = parseFloat(field.value);
    if (!Number.isFinite(value)) {
      return fallback;
    }
    return Math.min(maximum, Math.max(minimum, value));
  };

  var format = function (value, digits) {
    return Number(value).toLocaleString("pl-PL", {
      minimumFractionDigits: digits,
      maximumFractionDigits: digits
    });
  };

  var setText = function (id, value) {
    var element = byId(id);
    if (element) {
      element.textContent = value;
    }
  };

  var svgNamespace = "http://www.w3.org/2000/svg";

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

  var pipeData = {
    "16x2": {inner: 12, limit: 100, label: "16×2,0 mm"},
    "17x2": {inner: 13, limit: 110, label: "17×2,0 mm"},
    "20x2": {inner: 16, limit: 120, label: "20×2,0 mm"}
  };

  var optionScore = function (value, yesScore, unknownScore) {
    if (value === "yes") {
      return yesScore;
    }
    if (value === "unknown") {
      return unknownScore;
    }
    return 0;
  };

  var flowVelocity = function (flowM3h, diameterMm) {
    var diameter = diameterMm / 1000;
    var section = Math.PI * diameter * diameter / 4;
    if (section <= 0) {
      return 0;
    }
    return flowM3h / 3600 / section;
  };

  var pressureDrop = function (lengthM, flowM3h, diameterMm, extraFactor) {
    var diameter = diameterMm / 1000;
    var velocity = flowVelocity(flowM3h, diameterMm);
    var density = 994;
    var viscosity = 0.00072;
    var reynolds = density * velocity * diameter / viscosity;
    var friction;

    if (reynolds <= 0) {
      return 0;
    }
    if (reynolds < 2300) {
      friction = 64 / reynolds;
    } else {
      friction = 0.3164 / Math.pow(reynolds, 0.25);
    }
    return friction * (lengthM / diameter) * (density * velocity * velocity / 2) / 1000 * extraFactor;
  };

  var addDiagnostic = function (container, textValue, stateClass) {
    var item = document.createElement("div");
    item.className = "rk-ai-diagnostic";
    if (stateClass) {
      item.classList.add(stateClass);
    }
    item.textContent = textValue;
    container.appendChild(item);
  };

  var clampScore = function (value) {
    return Math.max(0, Math.min(100, Math.round(value)));
  };

  var drawChart = function (scores) {
    var chart = byId("rk-ai-chart");
    if (!chart) {
      return;
    }

    while (chart.firstChild) {
      chart.removeChild(chart.firstChild);
    }

    chart.appendChild(svgElement("title", {id: "rk-ai-chart-title"}, "Mapa kompletności i spójności projektu ogrzewania podłogowego"));
    chart.appendChild(svgElement("desc", {id: "rk-ai-chart-desc"}, "Cztery poziome belki przedstawiają wynik dla danych cieplnych, emisji podłogi, hydrauliki i źródła ciepła."));
    chart.appendChild(svgElement("rect", {x: 0, y: 0, width: 760, height: 330, fill: "#f8fbfc"}));

    var labels = ["Dane cieplne", "Emisja podłogi", "Hydraulika", "Źródło ciepła"];
    var colors = ["#078fbe", "#28c9da", "#695ac9", "#ff7438"];
    var index;

    for (index = 0; index <= 4; index += 1) {
      var gridX = 205 + index * 120;
      chart.appendChild(svgElement("line", {x1: gridX, y1: 38, x2: gridX, y2: 288, stroke: "#d9e7ed", "stroke-width": 1}));
      chart.appendChild(svgElement("text", {x: gridX, y: 310, fill: "#617684", "font-size": 11, "text-anchor": "middle", "font-family": "system-ui, sans-serif"}, String(index * 25)));
    }

    scores.forEach(function (score, itemIndex) {
      var y = 54 + itemIndex * 62;
      var width = 480 * clampScore(score) / 100;
      chart.appendChild(svgElement("text", {x: 185, y: y + 22, fill: "#263f4d", "font-size": 14, "font-weight": 850, "text-anchor": "end", "font-family": "system-ui, sans-serif"}, labels[itemIndex]));
      chart.appendChild(svgElement("rect", {x: 205, y: y, width: 480, height: 30, rx: 15, fill: "#e5eef2"}));
      chart.appendChild(svgElement("rect", {x: 205, y: y, width: width, height: 30, rx: 15, fill: colors[itemIndex]}));
      chart.appendChild(svgElement("text", {x: 705, y: y + 21, fill: "#263f4d", "font-size": 13, "font-weight": 900, "text-anchor": "start", "font-family": "system-ui, sans-serif"}, format(clampScore(score), 0) + "%"));
    });
  };

  var update = function () {
    var area = readNumber("rk-ai-area", 145, 10, 2000);
    var activeArea = readNumber("rk-ai-active-area", 115, 1, 2000);
    var load = readNumber("rk-ai-load", 6.4, 0.1, 500);
    var outdoor = readNumber("rk-ai-outdoor", -20, -40, 10);
    var roomLoads = byId("rk-ai-room-loads").value;
    var supply = readNumber("rk-ai-supply", 35, 20, 70);
    var returnTemperature = readNumber("rk-ai-return", 29, 15, 65);
    var spacing = readNumber("rk-ai-spacing-input", 15, 5, 40);
    var coverR = readNumber("rk-ai-cover-r", 0.10, 0, 1);
    var zone = byId("rk-ai-zone").value;
    var surfaceTemperature = readNumber("rk-ai-surface-temp", 28.5, 15, 50);
    var surfaceCheck = byId("rk-ai-surface-check").value;
    var pipeKey = byId("rk-ai-pipe").value;
    var pipe = pipeData[pipeKey];
    var loopCount = Math.round(readNumber("rk-ai-loop-count", 12, 1, 300));
    var longestLoop = readNumber("rk-ai-longest-loop", 96, 5, 500);
    var approach = readNumber("rk-ai-approach", 4, 0, 100);
    var mainDiameter = readNumber("rk-ai-main-diameter", 25, 10, 100);
    var mainLength = readNumber("rk-ai-main-length", 24, 1, 1000);
    var pumpHead = readNumber("rk-ai-pump-head", 25, 1, 500);
    var hydraulicCheck = byId("rk-ai-hydraulic-check").value;
    var sourceType = byId("rk-ai-source-type").value;
    var sourcePower = readNumber("rk-ai-source-power", 7, 0.1, 1000);
    var sourceData = byId("rk-ai-source-data").value;
    var drawingScale = byId("rk-ai-drawing-scale").value;

    var deltaT = supply - returnTemperature;
    var safeDeltaT = Math.max(0.5, deltaT);
    var qRequired = load * 1000 / activeArea;
    var totalFlow = 0.86 * load / safeDeltaT;
    var loopFlow = totalFlow / loopCount;
    var loopFlowLMin = loopFlow * 1000 / 60;
    var spacingM = spacing / 100;
    var fieldPipe = activeArea / spacingM * 1.05;
    var averageLoop = fieldPipe / loopCount + 2 * approach;
    var loopVelocity = flowVelocity(loopFlow, pipe.inner);
    var mainVelocity = flowVelocity(totalFlow, mainDiameter);
    var loopPressure = pressureDrop(longestLoop, loopFlow, pipe.inner, 1.15);
    var mainPressure = pressureDrop(mainLength, totalFlow, mainDiameter, 1.20);
    var criticalPressure = loopPressure + mainPressure + 3;
    var sourceReserve = sourcePower - load;
    var surfaceLimit = 29;
    var surfaceLabel = "strefy stałego przebywania";

    if (zone === "bathroom") {
      surfaceLimit = 33;
      surfaceLabel = "łazienki";
    }
    if (zone === "peripheral") {
      surfaceLimit = 35;
      surfaceLabel = "strefy brzegowej";
    }

    setText("rk-ai-result-q", format(qRequired, 1) + " W/m²");
    setText("rk-ai-result-flow", format(totalFlow, 2) + " m³/h");
    setText("rk-ai-result-loop-flow", format(loopFlowLMin, 2) + " l/min");
    setText("rk-ai-result-pipe-total", format(fieldPipe, 0) + " m");
    setText("rk-ai-result-average-loop", format(averageLoop, 0) + " m");
    setText("rk-ai-result-loop-velocity", format(loopVelocity, 2) + " m/s");
    setText("rk-ai-result-main-velocity", format(mainVelocity, 2) + " m/s");
    setText("rk-ai-result-pressure", format(criticalPressure, 1) + " kPa");
    setText("rk-ai-result-source", (sourceReserve < 0 ? "−" : "+") + format(Math.abs(sourceReserve), 1) + " kW");

    var thermalScore = 25 + optionScore(roomLoads, 55, 18);
    if (activeArea <= area) {
      thermalScore += 10;
    }
    if (outdoor <= 5) {
      thermalScore += 10;
    }

    var emissionScore = optionScore(surfaceCheck, 40, 15);
    if (qRequired <= 70) {
      emissionScore += 30;
    } else if (qRequired <= 90) {
      emissionScore += 22;
    } else if (qRequired <= 110) {
      emissionScore += 10;
    }
    if (supply <= 40) {
      emissionScore += 20;
    } else if (supply <= 45) {
      emissionScore += 10;
    }
    if (surfaceTemperature <= surfaceLimit) {
      emissionScore += 10;
    }

    var hydraulicScore = optionScore(hydraulicCheck, 35, 10) + optionScore(drawingScale, 15, 5);
    if (longestLoop <= pipe.limit) {
      hydraulicScore += 20;
    } else if (longestLoop <= pipe.limit + 20) {
      hydraulicScore += 8;
    }
    if (criticalPressure <= 20) {
      hydraulicScore += 15;
    } else if (criticalPressure <= 25) {
      hydraulicScore += 8;
    }
    if (loopVelocity >= 0.15) {
      if (loopVelocity <= 0.60) {
        hydraulicScore += 8;
      }
    }
    if (mainVelocity >= 0.15) {
      if (mainVelocity <= 0.60) {
        hydraulicScore += 7;
      }
    }

    var sourceScore = optionScore(sourceData, 45, 15);
    if (sourceReserve >= 0) {
      sourceScore += 40;
    }
    if (sourceType) {
      sourceScore += 15;
    }

    thermalScore = clampScore(thermalScore);
    emissionScore = clampScore(emissionScore);
    hydraulicScore = clampScore(hydraulicScore);
    sourceScore = clampScore(sourceScore);

    var overall = clampScore((thermalScore + emissionScore + hydraulicScore + sourceScore) / 4);
    var dangerCount = 0;
    var warningCount = 0;

    if (roomLoads === "no") {
      dangerCount += 1;
    } else if (roomLoads === "unknown") {
      warningCount += 1;
    }
    if (activeArea > area) {
      dangerCount += 1;
    }
    if (deltaT <= 1) {
      dangerCount += 1;
    }
    if (qRequired > 110) {
      dangerCount += 1;
    } else if (qRequired > 80) {
      warningCount += 1;
    }
    if (surfaceTemperature > surfaceLimit) {
      dangerCount += 1;
    }
    if (coverR > 0.15) {
      warningCount += 1;
    }
    if (longestLoop > pipe.limit + 20) {
      dangerCount += 1;
    } else if (longestLoop > pipe.limit) {
      warningCount += 1;
    }
    if (longestLoop + 1 < averageLoop) {
      dangerCount += 1;
    }
    if (criticalPressure > pumpHead) {
      dangerCount += 1;
    } else if (criticalPressure > 20) {
      warningCount += 1;
    }
    if (mainVelocity > 0.60) {
      warningCount += 1;
    }
    if (sourceReserve < 0) {
      dangerCount += 1;
    }
    if (hydraulicCheck !== "yes") {
      warningCount += 1;
    }
    if (surfaceCheck !== "yes") {
      warningCount += 1;
    }
    if (sourceData !== "yes") {
      warningCount += 1;
    }
    if (drawingScale !== "yes") {
      warningCount += 1;
    }

    var verdict = byId("rk-ai-verdict");
    verdict.classList.remove("is-warning", "is-danger");
    setText("rk-ai-score", format(overall, 0) + "/100");
    byId("rk-ai-score-ring").style.setProperty("--rk-score-angle", format(overall * 3.6, 1).replace(",", ".") + "deg");

    if (dangerCount > 0) {
      verdict.classList.add("is-danger");
      verdict.textContent = "Wykryto poważne ryzyko";
      byId("rk-ai-score-ring").style.setProperty("--rk-score-color", "#ff7669");
    } else if (warningCount > 0) {
      verdict.classList.add("is-warning");
      verdict.textContent = "Projekt wymaga weryfikacji";
      byId("rk-ai-score-ring").style.setProperty("--rk-score-color", "#e7ad2f");
    } else {
      verdict.textContent = "Dane wstępnie spójne";
      byId("rk-ai-score-ring").style.setProperty("--rk-score-color", "#28c9da");
    }

    drawChart([thermalScore, emissionScore, hydraulicScore, sourceScore]);

    var diagnostics = byId("rk-ai-diagnostics");
    diagnostics.innerHTML = "";

    if (roomLoads === "yes") {
      addDiagnostic(diagnostics, "Obciążenia pomieszczeń są zadeklarowane. Sprawdź, czy tabela pokazuje warunki, dane i wynik w W dla każdej strefy.", "is-good");
    } else if (roomLoads === "unknown") {
      addDiagnostic(diagnostics, "Widzisz tylko sumę budynku. Bez strat pomieszczeń nie da się potwierdzić rozstawów i mocy lokalnej podłogi.", "is-warning");
    } else {
      addDiagnostic(diagnostics, "Brak obciążeń cieplnych pomieszczeń jest luką krytyczną. Sam metraż i jedna wartość W/m² nie wystarczą do projektu.", "is-danger");
    }

    if (activeArea > area) {
      addDiagnostic(diagnostics, "Powierzchnia czynna jest większa od ogrzewanej. Sprawdź jednostki i sposób sumowania pól.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Średnie obciążenie czynnej podłogi wynosi " + format(qRequired, 1) + " W/m². Najtrudniejsze pomieszczenie trzeba policzyć osobno.", qRequired > 80 ? "is-warning" : "is-good");
    }

    if (deltaT <= 1) {
      addDiagnostic(diagnostics, "Temperatura zasilania musi być wyższa od powrotu. Wpisane ΔT = " + format(deltaT, 1) + " K uniemożliwia wiarygodne obliczenie przepływu.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Dla ΔT = " + format(deltaT, 1) + " K i mocy " + format(load, 1) + " kW orientacyjny przepływ wody wynosi " + format(totalFlow, 2) + " m³/h.", "");
    }

    if (surfaceTemperature > surfaceLimit) {
      addDiagnostic(diagnostics, "Temperatura powierzchni " + format(surfaceTemperature, 1) + "°C przekracza punkt kontrolny " + format(surfaceLimit, 0) + "°C dla " + surfaceLabel + ". Sprawdź klasyfikację strefy i obliczenie emisji.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Wpisana temperatura powierzchni mieści się poniżej punktu kontrolnego " + format(surfaceLimit, 0) + "°C dla " + surfaceLabel + ". Zweryfikuj ją dla każdego pomieszczenia.", "is-good");
    }

    if (coverR > 0.15) {
      addDiagnostic(diagnostics, "Opór okładziny " + format(coverR, 2) + " m²K/W jest wysoki. Moc i wymagane temperatury trzeba przeliczyć dla konkretnego zestawu warstw.", "is-warning");
    }

    if (longestLoop > pipe.limit + 20) {
      addDiagnostic(diagnostics, "Najdłuższa pętla ma " + format(longestLoop, 0) + " m przy rurze " + pipe.label + ". To wyraźnie przekracza punkt kontrolny " + pipe.limit + " m i wymaga zmiany podziału albo pełnego obliczenia hydraulicznego.", "is-danger");
    } else if (longestLoop > pipe.limit) {
      addDiagnostic(diagnostics, "Pętla " + format(longestLoop, 0) + " m przekracza praktyczny punkt kontrolny " + pipe.limit + " m dla rury " + pipe.label + ". Sprawdź jej rzeczywisty przepływ i opór.", "is-warning");
    } else {
      addDiagnostic(diagnostics, "Najdłuższa pętla pozostaje w praktycznym punkcie kontrolnym dla rury " + pipe.label + ", ale ostatecznie decydują przepływ i strata ciśnienia.", "is-good");
    }

    if (longestLoop + 1 < averageLoop) {
      addDiagnostic(diagnostics, "Szacowana średnia długość " + format(averageLoop, 0) + " m jest większa od wpisanej najdłuższej pętli. Sprawdź powierzchnię czynną, rozstaw, liczbę pętli i dobiegi.", "is-danger");
    }

    if (criticalPressure > pumpHead) {
      addDiagnostic(diagnostics, "Szacowana krytyczna strata " + format(criticalPressure, 1) + " kPa przekracza wpisane dostępne ciśnienie " + format(pumpHead, 1) + " kPa. Układ może nie osiągnąć wymaganego przepływu.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Szacowana krytyczna strata wynosi " + format(criticalPressure, 1) + " kPa przy dostępnym ciśnieniu " + format(pumpHead, 1) + " kPa. Potwierdź charakterystyki realnych elementów.", criticalPressure > 20 ? "is-warning" : "is-good");
    }

    if (mainVelocity > 0.60) {
      addDiagnostic(diagnostics, "Prędkość w magistrali wynosi około " + format(mainVelocity, 2) + " m/s i przekracza przyjęty punkt kontrolny 0,60 m/s. Sprawdź średnicę, hałas i opory.", "is-warning");
    } else if (mainVelocity < 0.15) {
      addDiagnostic(diagnostics, "Prędkość w magistrali wynosi około " + format(mainVelocity, 2) + " m/s. Niska wartość nie musi być błędem, ale warto sprawdzić ekonomiczność średnicy i regulację.", "is-warning");
    } else {
      addDiagnostic(diagnostics, "Prędkość w magistrali wynosi około " + format(mainVelocity, 2) + " m/s i mieści się w przyjętym zakresie przesiewowym 0,15–0,60 m/s.", "is-good");
    }

    if (sourceReserve < 0) {
      addDiagnostic(diagnostics, "Źródłu brakuje około " + format(Math.abs(sourceReserve), 1) + " kW do pokrycia wpisanego obciążenia ogrzewania. Sprawdź punkt pracy i przyjętą strategię biwalentną.", "is-danger");
    } else {
      addDiagnostic(diagnostics, "Moc źródła ma rezerwę " + format(sourceReserve, 1) + " kW względem ogrzewania pomieszczeń. To nie jest automatyczny dobór CWU ani potwierdzenie modulacji.", sourceData === "yes" ? "is-good" : "is-warning");
    }

    if (drawingScale !== "yes") {
      addDiagnostic(diagnostics, "Brak potwierdzonego rysunku w skali oznacza, że długości, strefy bez rur, dobiegi i kolizje pozostają niezweryfikowane.", drawingScale === "no" ? "is-danger" : "is-warning");
    }
  };

  var fields = root.querySelectorAll("#rk-ai-tool input, #rk-ai-tool select");
  Array.prototype.forEach.call(fields, function (field) {
    field.addEventListener("input", update);
    field.addEventListener("change", update);
  });

  update();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/">Projekt ogrzewania podłogowego z ChatGPT i AI – czy to działa?</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>
	</channel>
</rss>
