<?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 Poradniki domowe - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/poradniki-domowe/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/poradniki-domowe/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Thu, 10 Sep 2026 15:31:11 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.1</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Poradniki domowe - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/poradniki-domowe/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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>
					<comments>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/#respond</comments>
		
		<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>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-chatgpt-i-ai-czy-to-dziala/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</title>
		<link>https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 14 Oct 2025 11:21:47 +0000</pubDate>
				<category><![CDATA[Drewno]]></category>
		<category><![CDATA[Materiały budowlane]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogi drewniane]]></category>
		<category><![CDATA[Podłogi w domu]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Poradniki inwestora]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[dąb]]></category>
		<category><![CDATA[deska warstwowa]]></category>
		<category><![CDATA[drewna egzotyczne]]></category>
		<category><![CDATA[drewno na ogrzewanie podłogowe]]></category>
		<category><![CDATA[montaż podłogi drewnianej]]></category>
		<category><![CDATA[ogrzewanie podłogowe a drewno]]></category>
		<category><![CDATA[podłoga na podłogówce]]></category>
		<category><![CDATA[poradnik budowlany]]></category>
		<category><![CDATA[rodzaje drewna]]></category>
		<category><![CDATA[stabilność drewna]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2807</guid>

					<description><![CDATA[<p>Planujesz piękną drewnianą podłogę w domu z ogrzewaniem podłogowym? To świetny pomysł, który gwarantuje niepowtarzalny klimat i komfort. Jednak nie każde drewno będzie dobrze współpracować z instalacją grzewczą. Aby uniknąć kosztownych pomyłek i rozczarowań, takich jak paczenie się desek czy powstawanie szpar, konieczny jest świadomy wybór materiału. W naszym artykule znajdziesz wybór idealnego drewna do ogrzewania podłogowego – kompletna tabela i poradnik, które rozwieją wszystkie Twoje wątpliwości. Dowiesz się, które gatunki są bezpieczne, a których lepiej unikać, oraz poznasz kluczowe zasady poprawnego montażu. Z nami Twoja podłoga będzie trwała, piękna i ciepła na długie lata.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-wood-guide {
    --rk-navy: #102d42;
    --rk-navy-2: #173e58;
    --rk-blue: #087ea4;
    --rk-blue-soft: #eaf7fb;
    --rk-cyan: #30b7c9;
    --rk-orange: #ed7b2f;
    --rk-orange-dark: #c85a17;
    --rk-orange-soft: #fff4ea;
    --rk-green: #16745a;
    --rk-green-soft: #eaf8f2;
    --rk-red: #a6423b;
    --rk-red-soft: #fff0ef;
    --rk-yellow: #946a0b;
    --rk-yellow-soft: #fff8df;
    --rk-ink: #17232c;
    --rk-muted: #586a76;
    --rk-line: #dbe5ea;
    --rk-soft: #f4f8fa;
    --rk-white: #ffffff;
    --rk-shadow: 0 18px 48px rgba(16, 45, 66, 0.11);
    --rk-radius: 22px;
    color: var(--rk-ink);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    font-size: 17px;
    line-height: 1.72;
    margin: 0 auto;
    max-width: 1360px;
    overflow: hidden;
  }

  #rk-wood-guide *,
  #rk-wood-guide *::before,
  #rk-wood-guide *::after {
    box-sizing: border-box;
  }

  #rk-wood-guide a {
    color: #056c91;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }

  #rk-wood-guide a:hover {
    color: var(--rk-orange-dark);
  }

  #rk-wood-guide a:focus-visible,
  #rk-wood-guide button:focus-visible,
  #rk-wood-guide select:focus-visible,
  #rk-wood-guide input:focus-visible,
  #rk-wood-guide summary:focus-visible {
    outline: 3px solid rgba(237, 123, 47, 0.55);
    outline-offset: 3px;
  }

  #rk-wood-guide p {
    margin: 0 0 1rem;
  }

  #rk-wood-guide strong {
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    box-shadow: var(--rk-shadow);
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-hero {
    color: var(--rk-white);
    overflow: hidden;
    padding: clamp(38px, 7vw, 78px) clamp(25px, 6vw, 76px) 42px;
    position: relative;
    background:
      radial-gradient(circle at 91% 4%, rgba(48, 183, 201, 0.31), transparent 28%),
      radial-gradient(circle at 8% 100%, rgba(237, 123, 47, 0.24), transparent 30%),
      linear-gradient(135deg, #0d2332 0%, #143e53 55%, #175b62 100%);
  }

  #rk-wood-guide .rk-wood-hero::after {
    border: 46px solid rgba(255, 255, 255, 0.05);
    border-radius: 50%;
    bottom: -120px;
    content: "";
    height: 350px;
    pointer-events: none;
    position: absolute;
    right: -55px;
    width: 350px;
  }

  #rk-wood-guide .rk-wood-hero-inner {
    max-width: none;
    position: relative;
    z-index: 1;
  }

  #rk-wood-guide .rk-wood-kicker,
  #rk-wood-guide .rk-wood-eyebrow {
    color: var(--rk-orange);
    display: block;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.11em;
    margin-bottom: 10px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-kicker {
    align-items: center;
    color: #78efff;
    display: inline-flex;
    font-size: 0.69rem;
    font-weight: 950;
    gap: 9px;
    letter-spacing: 0.09em;
    line-height: 1.2;
    margin-bottom: 15px;
  }

  #rk-wood-guide .rk-wood-kicker::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 6px rgba(237, 123, 47, 0.14);
    content: "";
    height: 9px;
    width: 9px;
  }

  #rk-wood-guide .rk-wood-hero-title {
    color: var(--rk-white);
    font-size: clamp(2.25rem, 7.5vw, 5.15rem);
    font-weight: 950;
    letter-spacing: -0.065em;
    line-height: 0.98;
    margin: 0 0 21px;
    max-width: 1030px;
  }

  #rk-wood-guide .rk-wood-hero-title span {
    color: #67e7f5;
  }

  #rk-wood-guide .rk-wood-hero-lead {
    color: #e2f2f5;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    line-height: 1.55;
    margin: 0 0 24px;
    max-width: 960px;
  }

  #rk-wood-guide .rk-wood-hero-tags,
  #rk-wood-guide .rk-wood-byline {
    display: flex;
    flex-wrap: wrap;
    gap: 9px 12px;
  }

  #rk-wood-guide .rk-wood-hero-tag {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--rk-white);
    font-size: 0.67rem;
    font-weight: 850;
    line-height: 1.2;
    padding: 8px 13px;
  }

  #rk-wood-guide .rk-wood-byline {
    color: #cae0e6;
    font-size: 0.68rem;
    font-weight: 720;
    margin-top: 27px;
  }

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

  #rk-wood-guide .rk-wood-hero-metrics {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 28px;
  }

  #rk-wood-guide .rk-wood-hero-metric {
    background: rgba(255, 255, 255, 0.065);
    border: 1px solid rgba(255, 255, 255, 0.17);
    border-radius: 14px;
    min-width: 0;
    padding: 17px;
  }

  #rk-wood-guide .rk-wood-hero-metric b {
    color: var(--rk-white);
    display: block;
    font-size: 0.73rem;
    margin-bottom: 4px;
  }

  #rk-wood-guide .rk-wood-hero-metric span {
    color: #c8e0e6;
    display: block;
    font-size: 0.64rem;
    line-height: 1.48;
  }

  #rk-wood-guide .rk-wood-shortcuts {
    align-items: center;
    background: #eef6f8;
    border-bottom: 1px solid var(--rk-line);
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 18px clamp(16px, 4vw, 52px);
  }

  #rk-wood-guide .rk-wood-shortcuts-label {
    color: var(--rk-navy);
    font-size: 0.79rem;
    font-weight: 850;
    letter-spacing: 0.06em;
    margin-right: 4px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-shortcuts a {
    background: var(--rk-white);
    border: 1px solid #c9dce3;
    border-radius: 999px;
    color: var(--rk-navy);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 730;
    line-height: 1.25;
    padding: 8px 12px;
    text-decoration: none;
  }

  #rk-wood-guide .rk-wood-shortcuts a:hover {
    background: var(--rk-navy);
    border-color: var(--rk-navy);
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-section {
    padding: clamp(46px, 7vw, 86px) clamp(20px, 6vw, 82px);
    scroll-margin-top: 22px;
  }

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

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

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

  #rk-wood-guide .rk-wood-section-dark strong,
  #rk-wood-guide .rk-wood-section-dark .rk-wood-section-title {
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-lead {
    color: #d9edf2;
  }

  #rk-wood-guide .rk-wood-section-dark > p a {
    color: #7fe1ec;
    font-weight: 700;
  }

  #rk-wood-guide .rk-wood-section-dark > p a:hover {
    color: #ffffff;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card,
  #rk-wood-guide .rk-wood-section-dark .rk-wood-card p {
    color: #42535e;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card strong {
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card a {
    color: #056c91;
    font-weight: 700;
  }

  #rk-wood-guide .rk-wood-section-dark .rk-wood-card a:hover {
    color: var(--rk-orange-dark);
  }

  #rk-wood-guide .rk-wood-section-title,
  #rk-wood-guide .rk-wood-author-title {
    color: var(--rk-navy);
    font-size: clamp(1.62rem, 3.4vw, 2.65rem);
    letter-spacing: -0.035em;
    line-height: 1.14;
    margin: 0 0 18px;
  }

  #rk-wood-guide .rk-wood-lead {
    color: var(--rk-muted);
    font-size: 1.08rem;
    max-width: 930px;
  }

  #rk-wood-guide .rk-wood-answer {
    background: linear-gradient(135deg, #effafc, #ffffff);
    border: 1px solid #bce3ea;
    border-left: 6px solid var(--rk-cyan);
    border-radius: var(--rk-radius);
    box-shadow: 0 12px 30px rgba(16, 45, 66, 0.07);
    margin-top: 24px;
    padding: clamp(22px, 4vw, 36px);
  }

  #rk-wood-guide .rk-wood-answer-label {
    color: var(--rk-blue);
    display: block;
    font-size: 0.76rem;
    font-weight: 850;
    letter-spacing: 0.09em;
    margin-bottom: 9px;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-answer p {
    font-size: 1.11rem;
    margin: 0;
  }

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

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

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

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

  #rk-wood-guide .rk-wood-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(16, 45, 66, 0.055);
    min-width: 0;
    padding: 23px;
  }

  #rk-wood-guide .rk-wood-card-number {
    align-items: center;
    background: var(--rk-blue-soft);
    border-radius: 50%;
    color: var(--rk-blue);
    display: inline-flex;
    font-size: 0.84rem;
    font-weight: 850;
    height: 36px;
    justify-content: center;
    margin-bottom: 13px;
    width: 36px;
  }

  #rk-wood-guide .rk-wood-card h3,
  #rk-wood-guide .rk-wood-tool h3,
  #rk-wood-guide .rk-wood-result-card h3 {
    color: var(--rk-navy);
    font-size: 1.17rem;
    line-height: 1.32;
    margin: 0 0 10px;
  }

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

  #rk-wood-guide .rk-wood-callout {
    background: var(--rk-orange-soft);
    border: 1px solid #f2c8a8;
    border-radius: 16px;
    color: #693515;
    margin-top: 24px;
    padding: 19px 21px;
  }

  #rk-wood-guide .rk-wood-callout strong {
    color: #7f3e14;
  }

  #rk-wood-guide .rk-wood-note {
    background: var(--rk-blue-soft);
    border: 1px solid #bddfe8;
    border-radius: 16px;
    color: #17495b;
    margin-top: 22px;
    padding: 18px 20px;
  }

  #rk-wood-guide .rk-wood-list {
    margin: 18px 0 0;
    padding: 0;
  }

  #rk-wood-guide .rk-wood-list li {
    list-style: none;
    margin: 10px 0;
    padding-left: 28px;
    position: relative;
  }

  #rk-wood-guide .rk-wood-list li::before {
    align-items: center;
    background: var(--rk-green-soft);
    border-radius: 50%;
    color: var(--rk-green);
    content: "✓";
    display: flex;
    font-size: 0.75rem;
    font-weight: 900;
    height: 19px;
    justify-content: center;
    left: 0;
    position: absolute;
    top: 0.33em;
    width: 19px;
  }

  #rk-wood-guide .rk-wood-tool {
    background: linear-gradient(180deg, #ffffff 0%, #f6fbfc 100%);
    border: 1px solid #bddce4;
    border-radius: 25px;
    box-shadow: var(--rk-shadow);
    margin-top: 30px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-tool-head {
    background: linear-gradient(135deg, var(--rk-navy), var(--rk-navy-2));
    color: var(--rk-white);
    padding: clamp(24px, 4vw, 38px);
  }

  #rk-wood-guide .rk-wood-tool-head .rk-wood-eyebrow {
    color: #8ee8f1;
  }

  #rk-wood-guide .rk-wood-tool-head h3 {
    color: var(--rk-white);
    font-size: clamp(1.35rem, 3vw, 2rem);
    margin-bottom: 10px;
  }

  #rk-wood-guide .rk-wood-tool-head p {
    color: #dcecf1;
    margin: 0;
    max-width: 900px;
  }

  #rk-wood-guide .rk-wood-tool-body {
    padding: clamp(20px, 4vw, 38px);
  }

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

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

  #rk-wood-guide .rk-wood-field label,
  #rk-wood-guide .rk-wood-fieldset legend {
    color: var(--rk-navy);
    display: block;
    font-size: 0.86rem;
    font-weight: 780;
    line-height: 1.35;
    margin-bottom: 7px;
  }

  #rk-wood-guide .rk-wood-field small {
    color: var(--rk-muted);
    display: block;
    font-size: 0.75rem;
    line-height: 1.45;
    margin-top: 5px;
  }

  #rk-wood-guide .rk-wood-field input,
  #rk-wood-guide .rk-wood-field select {
    appearance: none;
    background-color: var(--rk-white);
    border: 1px solid #b6cbd3;
    border-radius: 11px;
    color: var(--rk-ink);
    font: inherit;
    min-height: 48px;
    padding: 10px 12px;
    width: 100%;
  }

  #rk-wood-guide .rk-wood-field select {
    background-image:
      linear-gradient(45deg, transparent 50%, var(--rk-navy) 50%),
      linear-gradient(135deg, var(--rk-navy) 50%, transparent 50%);
    background-position:
      calc(100% - 17px) 21px,
      calc(100% - 12px) 21px;
    background-repeat: no-repeat;
    background-size: 5px 5px, 5px 5px;
    padding-right: 34px;
  }

  #rk-wood-guide .rk-wood-field input:disabled {
    background: #edf2f4;
    color: #71808a;
    cursor: not-allowed;
  }

  #rk-wood-guide .rk-wood-field-wide {
    grid-column: 1 / -1;
  }

  #rk-wood-guide .rk-wood-help {
    background: var(--rk-yellow-soft);
    border: 1px solid #ead79b;
    border-radius: 13px;
    color: #624d18;
    font-size: 0.87rem;
    margin-top: 18px;
    padding: 14px 16px;
  }

  #rk-wood-guide .rk-wood-compare-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-species-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    box-shadow: 0 10px 28px rgba(16, 45, 66, 0.075);
    min-width: 0;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-species-head {
    background:
      repeating-linear-gradient(8deg, transparent 0, transparent 11px, rgba(255,255,255,.06) 12px, rgba(255,255,255,.06) 13px),
      linear-gradient(135deg, #173e58, #0e7187);
    color: var(--rk-white);
    min-height: 148px;
    padding: 22px;
  }

  #rk-wood-guide .rk-wood-species-head h4 {
    color: var(--rk-white);
    font-size: 1.42rem;
    line-height: 1.2;
    margin: 0 0 7px;
  }

  #rk-wood-guide .rk-wood-species-head p {
    color: #d9eef2;
    font-size: 0.79rem;
    line-height: 1.45;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-species-body {
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-metrics {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 19px;
  }

  #rk-wood-guide .rk-wood-metric {
    background: var(--rk-soft);
    border-radius: 11px;
    min-width: 0;
    padding: 11px;
  }

  #rk-wood-guide .rk-wood-metric span {
    color: var(--rk-muted);
    display: block;
    font-size: 0.68rem;
    line-height: 1.25;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-metric strong {
    display: block;
    font-size: 1rem;
    margin-top: 3px;
  }

  #rk-wood-guide .rk-wood-tag {
    background: var(--rk-blue-soft);
    border: 1px solid #b8dfe8;
    border-radius: 999px;
    color: var(--rk-blue);
    display: inline-flex;
    font-size: 0.73rem;
    font-weight: 800;
    line-height: 1.25;
    margin: 0 5px 8px 0;
    padding: 6px 9px;
  }

  #rk-wood-guide .rk-wood-tag-warn {
    background: var(--rk-yellow-soft);
    border-color: #e6d393;
    color: #76560a;
  }

  #rk-wood-guide .rk-wood-species-detail {
    border-top: 1px solid var(--rk-line);
    margin-top: 10px;
    padding-top: 13px;
  }

  #rk-wood-guide .rk-wood-species-detail dt {
    color: var(--rk-navy);
    font-size: 0.77rem;
    font-weight: 820;
    margin-top: 12px;
  }

  #rk-wood-guide .rk-wood-species-detail dd {
    color: #42535e;
    font-size: 0.85rem;
    line-height: 1.55;
    margin: 3px 0 0;
  }

  #rk-wood-guide .rk-wood-data-note {
    color: var(--rk-muted);
    font-size: 0.79rem;
    line-height: 1.55;
    margin: 18px 0 0;
  }

  #rk-wood-guide .rk-wood-form-grid {
    display: grid;
    gap: 17px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 11px;
    margin-top: 22px;
  }

  #rk-wood-guide .rk-wood-button {
    align-items: center;
    background: var(--rk-orange);
    border: 0;
    border-radius: 12px;
    color: var(--rk-white);
    cursor: pointer;
    display: inline-flex;
    font-size: 0.95rem;
    font-weight: 820;
    justify-content: center;
    min-height: 48px;
    padding: 11px 20px;
  }

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

  #rk-wood-guide .rk-wood-button-secondary {
    background: #dfecef;
    color: var(--rk-navy);
  }

  #rk-wood-guide .rk-wood-button-secondary:hover {
    background: #cbdfe5;
  }

  #rk-wood-guide .rk-wood-result {
    border-top: 1px solid var(--rk-line);
    margin-top: 28px;
    padding-top: 28px;
  }

  #rk-wood-guide .rk-wood-result-status {
    align-items: flex-start;
    background: var(--rk-blue-soft);
    border: 1px solid #b9dde5;
    border-radius: 17px;
    display: flex;
    gap: 14px;
    margin-bottom: 20px;
    padding: 18px;
  }

  #rk-wood-guide .rk-wood-status-icon {
    align-items: center;
    background: var(--rk-blue);
    border-radius: 50%;
    color: var(--rk-white);
    display: flex;
    flex: 0 0 auto;
    font-weight: 900;
    height: 38px;
    justify-content: center;
    width: 38px;
  }

  #rk-wood-guide .rk-wood-result-status strong {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-result-status p {
    color: #315562;
    font-size: 0.88rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-status-good {
    background: var(--rk-green-soft);
    border-color: #b7dfd0;
  }

  #rk-wood-guide .rk-wood-status-good .rk-wood-status-icon {
    background: var(--rk-green);
  }

  #rk-wood-guide .rk-wood-status-warn {
    background: var(--rk-yellow-soft);
    border-color: #e7d28e;
  }

  #rk-wood-guide .rk-wood-status-warn .rk-wood-status-icon {
    background: var(--rk-yellow);
  }

  #rk-wood-guide .rk-wood-status-alert {
    background: var(--rk-red-soft);
    border-color: #e8bbb7;
  }

  #rk-wood-guide .rk-wood-status-alert .rk-wood-status-icon {
    background: var(--rk-red);
  }

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

  #rk-wood-guide .rk-wood-result-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    min-width: 0;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-result-card ul {
    margin: 12px 0 0;
    padding-left: 19px;
  }

  #rk-wood-guide .rk-wood-result-card li {
    font-size: 0.86rem;
    margin: 8px 0;
  }

  #rk-wood-guide .rk-wood-result-number {
    color: var(--rk-blue);
    font-size: 1.55rem;
    font-weight: 880;
    line-height: 1.2;
  }

  #rk-wood-guide .rk-wood-result-caption {
    color: var(--rk-muted);
    font-size: 0.76rem;
    line-height: 1.4;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-check {
    align-items: flex-start;
    border-bottom: 1px solid #edf1f3;
    display: flex;
    font-size: 0.84rem;
    gap: 8px;
    padding: 8px 0;
  }

  #rk-wood-guide .rk-wood-check:last-child {
    border: 0;
  }

  #rk-wood-guide .rk-wood-check-mark {
    align-items: center;
    border-radius: 50%;
    color: var(--rk-white);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.7rem;
    font-weight: 900;
    height: 20px;
    justify-content: center;
    margin-top: 2px;
    width: 20px;
  }

  #rk-wood-guide .rk-wood-check-ok {
    background: var(--rk-green);
  }

  #rk-wood-guide .rk-wood-check-missing {
    background: var(--rk-yellow);
  }

  #rk-wood-guide .rk-wood-check-alert {
    background: var(--rk-red);
  }

  #rk-wood-guide .rk-wood-layer-module {
    background: #f7fafb;
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    margin-top: 20px;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-layer-module h4 {
    color: var(--rk-navy);
    font-size: 1.04rem;
    margin: 0 0 14px;
  }

  #rk-wood-guide .rk-wood-layers {
    display: grid;
    gap: 9px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-layer {
    border-radius: 13px;
    min-width: 0;
    padding: 14px;
  }

  #rk-wood-guide .rk-wood-layer span {
    display: block;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  #rk-wood-guide .rk-wood-layer strong {
    display: block;
    font-size: 0.9rem;
    line-height: 1.3;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-layer small {
    display: block;
    font-size: 0.71rem;
    line-height: 1.35;
    margin-top: 4px;
  }

  #rk-wood-guide .rk-wood-layer-1 {
    background: #ddbd8a;
  }

  #rk-wood-guide .rk-wood-layer-2 {
    background: #ead3ad;
  }

  #rk-wood-guide .rk-wood-layer-3 {
    background: #dce9ec;
  }

  #rk-wood-guide .rk-wood-layer-4 {
    background: #c9d0d3;
  }

  #rk-wood-guide .rk-wood-layer-5 {
    background: #d5eef3;
  }

  #rk-wood-guide .rk-wood-rbar-wrap {
    margin-top: 20px;
  }

  #rk-wood-guide .rk-wood-rbar-labels {
    display: flex;
    font-size: 0.75rem;
    justify-content: space-between;
    margin-bottom: 6px;
  }

  #rk-wood-guide .rk-wood-rbar {
    background: #d9e5e9;
    border-radius: 999px;
    display: flex;
    height: 18px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-rbar-product {
    background: var(--rk-orange);
    min-width: 0;
    transition: width 250ms ease;
  }

  #rk-wood-guide .rk-wood-rbar-underlay {
    background: var(--rk-cyan);
    min-width: 0;
    transition: width 250ms ease;
  }

  #rk-wood-guide .rk-wood-rbar-note {
    color: var(--rk-muted);
    font-size: 0.75rem;
    line-height: 1.5;
    margin: 8px 0 0;
  }

  #rk-wood-guide .rk-wood-cta {
    background:
      radial-gradient(circle at 90% 10%, rgba(48, 183, 201, 0.23), transparent 28%),
      linear-gradient(135deg, #102d42, #17435d);
    border-radius: 24px;
    color: #eaf5f7;
    margin-top: 31px;
    padding: clamp(25px, 5vw, 44px);
  }

  #rk-wood-guide .rk-wood-cta-title {
    color: var(--rk-white);
    font-size: clamp(1.28rem, 2.7vw, 1.85rem);
    font-weight: 850;
    line-height: 1.25;
    margin-bottom: 10px;
  }

  #rk-wood-guide .rk-wood-cta p {
    color: #dcebef;
    margin-bottom: 19px;
    max-width: 900px;
  }

  #rk-wood-guide .rk-wood-cta-button {
    background: var(--rk-orange);
    border-radius: 12px;
    color: var(--rk-white);
    display: inline-flex;
    font-weight: 850;
    line-height: 1.3;
    padding: 13px 19px;
    text-decoration: none;
  }

  #rk-wood-guide .rk-wood-cta-button:hover {
    background: #ff954e;
    color: var(--rk-white);
  }

  #rk-wood-guide .rk-wood-link-disclosure {
    color: #b9d3da;
    display: block;
    font-size: 0.72rem;
    line-height: 1.5;
    margin-top: 12px;
  }

  #rk-wood-guide .rk-wood-compare-table {
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    margin-top: 25px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-table-row {
    display: grid;
    grid-template-columns: minmax(170px, 0.85fr) repeat(2, minmax(0, 1fr));
  }

  #rk-wood-guide .rk-wood-table-row > div {
    border-bottom: 1px solid var(--rk-line);
    min-width: 0;
    padding: 16px;
  }

  #rk-wood-guide .rk-wood-table-row:last-child > div {
    border-bottom: 0;
  }

  #rk-wood-guide .rk-wood-table-row > div + div {
    border-left: 1px solid var(--rk-line);
  }

  #rk-wood-guide .rk-wood-table-head {
    background: var(--rk-navy);
    color: var(--rk-white);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-table-label {
    background: var(--rk-soft);
    color: var(--rk-navy);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-steps {
    counter-reset: rk-step;
    display: grid;
    gap: 15px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 26px;
  }

  #rk-wood-guide .rk-wood-step {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    counter-increment: rk-step;
    padding: 21px;
  }

  #rk-wood-guide .rk-wood-step::before {
    align-items: center;
    background: var(--rk-orange);
    border-radius: 50%;
    color: var(--rk-white);
    content: counter(rk-step);
    display: flex;
    font-size: 0.82rem;
    font-weight: 900;
    height: 34px;
    justify-content: center;
    margin-bottom: 12px;
    width: 34px;
  }

  #rk-wood-guide .rk-wood-step h3 {
    color: var(--rk-navy);
    font-size: 1.05rem;
    margin: 0 0 7px;
  }

  #rk-wood-guide .rk-wood-step p {
    color: var(--rk-muted);
    font-size: 0.87rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-mistakes {
    display: grid;
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 25px;
  }

  #rk-wood-guide .rk-wood-mistake {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 15px;
    display: grid;
    gap: 12px;
    grid-template-columns: 37px minmax(0, 1fr);
    padding: 18px;
  }

  #rk-wood-guide .rk-wood-mistake-icon {
    align-items: center;
    background: var(--rk-red-soft);
    border-radius: 50%;
    color: var(--rk-red);
    display: flex;
    font-weight: 900;
    height: 37px;
    justify-content: center;
    width: 37px;
  }

  #rk-wood-guide .rk-wood-mistake strong {
    display: block;
    margin-bottom: 3px;
  }

  #rk-wood-guide .rk-wood-mistake p {
    color: var(--rk-muted);
    font-size: 0.86rem;
    margin: 0;
  }

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

  #rk-wood-guide .rk-wood-checklist-item {
    align-items: flex-start;
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    display: flex;
    gap: 11px;
    padding: 15px;
  }

  #rk-wood-guide .rk-wood-checklist-item span {
    align-items: center;
    background: var(--rk-green-soft);
    border-radius: 50%;
    color: var(--rk-green);
    display: flex;
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 900;
    height: 24px;
    justify-content: center;
    margin-top: 2px;
    width: 24px;
  }

  #rk-wood-guide .rk-wood-source-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 26px;
  }

  #rk-wood-guide .rk-wood-source-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 16px;
    padding: 20px;
  }

  #rk-wood-guide .rk-wood-source-card a {
    color: var(--rk-navy);
    font-weight: 820;
  }

  #rk-wood-guide .rk-wood-source-card p {
    color: var(--rk-muted);
    font-size: 0.84rem;
    margin: 8px 0 0;
  }

  #rk-wood-guide .rk-wood-responsibility {
    background: var(--rk-yellow-soft);
    border: 1px solid #e9d699;
    border-radius: 16px;
    margin-top: 21px;
    padding: 19px 21px;
  }

  #rk-wood-guide .rk-wood-responsibility p {
    color: #5e4c1d;
    font-size: 0.85rem;
    margin: 0;
  }

  #rk-wood-guide .rk-wood-faq {
    display: grid;
    gap: 11px;
    margin-top: 24px;
  }

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

  #rk-wood-guide .rk-wood-faq summary {
    color: var(--rk-navy);
    cursor: pointer;
    font-weight: 820;
    list-style: none;
    padding: 18px 50px 18px 19px;
    position: relative;
  }

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

  #rk-wood-guide .rk-wood-faq summary::after {
    color: var(--rk-orange);
    content: "+";
    font-size: 1.5rem;
    font-weight: 500;
    position: absolute;
    right: 20px;
    top: 12px;
  }

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

  #rk-wood-guide .rk-wood-faq-answer {
    border-top: 1px solid var(--rk-line);
    color: #465761;
    padding: 17px 19px 18px;
  }

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

  #rk-wood-guide .rk-wood-author {
    background: linear-gradient(135deg, #eef7f9, #ffffff);
    border-top: 1px solid var(--rk-line);
    padding: clamp(46px, 7vw, 86px) clamp(20px, 6vw, 82px);
    scroll-margin-top: 22px;
  }

  #rk-wood-guide .rk-wood-author-layout {
    display: grid;
    gap: clamp(25px, 5vw, 48px);
    grid-template-columns: minmax(190px, 0.48fr) minmax(0, 1.52fr);
    margin-top: 27px;
  }

  #rk-wood-guide .rk-wood-author-side {
    text-align: center;
  }

  #rk-wood-guide .rk-wood-author-photo {
    border: 6px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 12px 30px rgba(16, 45, 66, 0.16);
    margin: 0 auto 16px;
    max-width: 180px;
    overflow: hidden;
  }

  #rk-wood-guide .rk-wood-author-photo img {
    display: block;
    height: auto;
    width: 100%;
  }

  #rk-wood-guide .rk-wood-author-name a {
    color: var(--rk-navy);
    font-size: 1.22rem;
    font-weight: 880;
  }

  #rk-wood-guide .rk-wood-author-role {
    color: var(--rk-muted);
    font-size: 0.82rem;
    line-height: 1.5;
    margin-top: 5px;
  }

  #rk-wood-guide .rk-wood-author-social {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 14px;
  }

  #rk-wood-guide .rk-wood-author-social a {
    align-items: center;
    background: var(--rk-navy);
    border-radius: 50%;
    color: var(--rk-white);
    display: flex;
    font-size: 0.82rem;
    font-weight: 850;
    height: 35px;
    justify-content: center;
    text-decoration: none;
    width: 35px;
  }

  #rk-wood-guide .rk-wood-author-quote {
    border-left: 5px solid var(--rk-orange);
    color: var(--rk-navy);
    font-size: 1.16rem;
    font-weight: 750;
    line-height: 1.55;
    margin-bottom: 21px;
    padding-left: 18px;
  }

  #rk-wood-guide .rk-wood-author-main > p {
    color: #455762;
  }

  #rk-wood-guide .rk-wood-author-facts {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 21px;
  }

  #rk-wood-guide .rk-wood-author-fact {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 13px;
    color: var(--rk-muted);
    font-size: 0.77rem;
    line-height: 1.45;
    padding: 14px;
  }

  #rk-wood-guide .rk-wood-author-fact strong {
    display: block;
    font-size: 0.79rem;
    margin-bottom: 3px;
  }

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

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

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

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

  @media (max-width: 820px) {
    #rk-wood-guide {
      font-size: 16px;
    }

    #rk-wood-guide .rk-wood-hero-metrics,
    #rk-wood-guide .rk-wood-grid-3,
    #rk-wood-guide .rk-wood-compare-grid,
    #rk-wood-guide .rk-wood-result-grid,
    #rk-wood-guide .rk-wood-steps {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-fields {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-table-row {
      border-bottom: 1px solid var(--rk-line);
      display: block;
      padding: 0;
    }

    #rk-wood-guide .rk-wood-table-row:last-child {
      border-bottom: 0;
    }

    #rk-wood-guide .rk-wood-table-row > div {
      border: 0;
      padding: 13px 15px;
    }

    #rk-wood-guide .rk-wood-table-row > div + div {
      border-left: 0;
      border-top: 1px dashed var(--rk-line);
    }

    #rk-wood-guide .rk-wood-table-head > div:not(:first-child)::before {
      color: #b8d4dc;
      content: "Wariant: ";
      font-size: 0.68rem;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-table-row:not(.rk-wood-table-head) > div:nth-child(2)::before {
      color: var(--rk-muted);
      content: "Deska lita: ";
      display: block;
      font-size: 0.68rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-table-row:not(.rk-wood-table-head) > div:nth-child(3)::before {
      color: var(--rk-muted);
      content: "Deska warstwowa: ";
      display: block;
      font-size: 0.68rem;
      font-weight: 800;
      text-transform: uppercase;
    }

    #rk-wood-guide .rk-wood-author-layout {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 640px) {
    #rk-wood-guide .rk-wood-shell {
      border-left: 0;
      border-radius: 0;
      border-right: 0;
    }

    #rk-wood-guide .rk-wood-shortcuts {
      align-items: stretch;
    }

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

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

    #rk-wood-guide .rk-wood-grid-2,
    #rk-wood-guide .rk-wood-grid-4,
    #rk-wood-guide .rk-wood-form-grid,
    #rk-wood-guide .rk-wood-mistakes,
    #rk-wood-guide .rk-wood-checklist,
    #rk-wood-guide .rk-wood-source-grid,
    #rk-wood-guide .rk-wood-author-facts,
    #rk-wood-guide .rk-wood-layers {
      grid-template-columns: 1fr;
    }

    #rk-wood-guide .rk-wood-field-wide {
      grid-column: auto;
    }

    #rk-wood-guide .rk-wood-actions,
    #rk-wood-guide .rk-wood-button,
    #rk-wood-guide .rk-wood-cta-button {
      width: 100%;
    }

    #rk-wood-guide .rk-wood-actions {
      display: grid;
    }

    #rk-wood-guide .rk-wood-cta-button {
      justify-content: center;
      text-align: center;
    }
  }

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

<article id="rk-wood-guide" aria-labelledby="rk-wood-visual-title">
  <div class="rk-wood-shell">
    <header class="rk-wood-hero">
      <div class="rk-wood-hero-inner">
        <span class="rk-wood-kicker">Drewniana podłoga · aktualizacja 2026</span>
        <div class="rk-wood-hero-title" id="rk-wood-visual-title">Drewno na ogrzewanie podłogowe — <span>dobór bez zgadywania</span></div>
        <p class="rk-wood-hero-lead">Sam gatunek drewna nie przesądza, czy podłoga będzie dobrze współpracowała z ogrzewaniem podłogowym. Sprawdź kurczliwość, konstrukcję deski, opór cieplny, sposób montażu, limit temperatury oraz warunki wilgotnościowe konkretnego produktu.</p>

        <div class="rk-wood-hero-tags" aria-label="Zakres poradnika">
          <span class="rk-wood-hero-tag">15 gatunków drewna</span>
          <span class="rk-wood-hero-tag">deska lita i warstwowa</span>
          <span class="rk-wood-hero-tag">opór cieplny R</span>
          <span class="rk-wood-hero-tag">montaż klejony i pływający</span>
          <span class="rk-wood-hero-tag">pompa ciepła</span>
        </div>

        <div class="rk-wood-byline">
          <span>Autor: <strong>Robert Kucharski</strong></span>
          <span>Czas czytania: około 20 minut</span>
          <span>Aktualizacja techniczna: 10 września 2026 r.</span>
        </div>

        <div class="rk-wood-hero-metrics" aria-label="Najważniejsze zasady doboru">
          <div class="rk-wood-hero-metric"><b>Gatunek drewna</b><span>Pokazuje materiałową tendencję do zmian wymiarowych, ale nie kwalifikuje gotowej deski.</span></div>
          <div class="rk-wood-hero-metric"><b>Konkretna deska</b><span>Konstrukcja, grubość, szerokość, opór R i sposób montażu decydują o rzeczywistych warunkach pracy.</span></div>
          <div class="rk-wood-hero-metric"><b>Projekt podłogówki</b><span>Musi połączyć opór podłogi z obciążeniem pomieszczenia, powierzchnią czynną, temperaturą wody i hydrauliką.</span></div>
        </div>
      </div>
    </header>

    <nav class="rk-wood-shortcuts" aria-label="Na skróty — wszystkie sekcje artykułu">
      <span class="rk-wood-shortcuts-label">Na skróty</span>
      <a href="#rk-wood-answer">Krótka odpowiedź</a>
      <a href="#rk-wood-decision">Co naprawdę wybierasz</a>
      <a href="#rk-wood-comparator">Porównywarka gatunków</a>
      <a href="#rk-wood-parameters">Jak czytać parametry</a>
      <a href="#rk-wood-construction">Lita czy warstwowa</a>
      <a href="#rk-wood-analyzer">Analizator deski</a>
      <a href="#rk-wood-resistance">Opór cieplny</a>
      <a href="#rk-wood-installation">Klejona czy pływająca</a>
      <a href="#rk-wood-climate">Temperatura i wilgotność</a>
      <a href="#rk-wood-design">Moc i hydraulika</a>
      <a href="#rk-wood-heat-pump">Pompa ciepła i przeszklenia</a>
      <a href="#rk-wood-substrate">Jastrych i montaż</a>
      <a href="#rk-wood-mistakes">Najczęstsze błędy</a>
      <a href="#rk-wood-checklist">Lista przed zakupem</a>
      <a href="#rk-wood-conclusions">Wnioski projektanta</a>
      <a href="#rk-wood-sources">Źródła</a>
      <a href="#rk-wood-faq">FAQ</a>
      <a href="#rk-wood-author">Autor</a>
    </nav>

    <section class="rk-wood-section" id="rk-wood-answer">
      <span class="rk-wood-eyebrow">Odpowiedź w 30 sekund</span>
      <h2 class="rk-wood-section-title">Czy drewno nadaje się na ogrzewanie podłogowe?</h2>
      <div class="rk-wood-answer">
        <span class="rk-wood-answer-label">Najkrótsza poprawna odpowiedź</span>
        <p><strong>Tak — jeżeli producent dopuścił konkretny produkt do takiego zastosowania, znamy jego deklarowany opór cieplny, przestrzegamy wymagań montażowych i klimatycznych, a projekt podłogówki potwierdza wymaganą moc w pomieszczeniu.</strong> Nazwa gatunku sama nie wystarcza. Dąb może występować jako cienka deska warstwowa i jako szeroka deska lita; dla instalacji są to dwa różne przypadki.</p>
      </div>
      <div class="rk-wood-grid-4">
        <article class="rk-wood-card"><span class="rk-wood-card-number">1</span><h3>Produkt</h3><p>Sprawdź konstrukcję, wymiary, przeznaczenie i dokumentację konkretnej deski, a nie wyłącznie nazwę drewna.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">2</span><h3>Opór R</h3><p>Uwzględnij opór całej warstwy wykończeniowej. Zobacz, czym jest <a href="https://projekt-ogrzewania.pl/opor-cieplny-r-m%c2%b2k-w-klucz-do-efektywnego-ogrzewania-podlogowego/">opór cieplny R w ogrzewaniu podłogowym</a>.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">3</span><h3>Warunki</h3><p>Temperatura powierzchni i zakres wilgotności względnej muszą odpowiadać instrukcji podłogi, kleju i systemu grzewczego.</p></article>
        <article class="rk-wood-card"><span class="rk-wood-card-number">4</span><h3>Projekt</h3><p>Wykończenie trzeba połączyć ze stratą ciepła, powierzchnią czynną, rozstawem rur i temperaturą wody.</p></article>
      </div>
      <div class="rk-wood-callout"><strong>Ważne:</strong> nie istnieje gatunek, który automatycznie gwarantuje bezproblemową pracę, ani jedna wartość R lub temperatury będąca samodzielnym „certyfikatem bezpieczeństwa” dla każdej podłogi i każdego budynku.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-decision">
      <span class="rk-wood-eyebrow">Hierarchia decyzji</span>
      <h2 class="rk-wood-section-title">Gatunek to początek analizy, nie gotowa odpowiedź</h2>
      <p class="rk-wood-lead">Gatunek pomaga przewidzieć, jak drewno reaguje na zmianę wilgotności i jak łatwo może się wgniatać. Nie opisuje jednak budowy gotowej deski, jakości suszenia, układu słojów, zamków, klejenia warstw ani warunków gwarancji.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>1. Czy produkt jest dopuszczony?</h3><p>Najpierw szukaj jednoznacznej informacji o ogrzewaniu podłogowym, dopuszczonym sposobie montażu, granicznej temperaturze i wymaganym mikroklimacie.</p></article>
        <article class="rk-wood-card"><h3>2. Czy parametry da się policzyć?</h3><p>Potrzebny jest deklarowany opór cieplny produktu i — przy montażu pływającym — podkładu. Sama przewodność gatunku jest tylko danymi pomocniczymi.</p></article>
        <article class="rk-wood-card"><h3>3. Czy pomieszczenie ma bilans?</h3><p>Ta sama deska może działać bez problemu w pokoju o małym obciążeniu i wymagać innych parametrów w strefie o dużej stracie ciepła.</p></article>
      </div>
      <p>Dlatego wpływ okładziny trzeba rozpatrywać razem z instalacją. Szerzej wyjaśnia to poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">jak rodzaj okładziny wpływa na wydajność podłogówki</a>.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-comparator">
      <span class="rk-wood-eyebrow">Narzędzie 1 z 2</span>
      <h2 class="rk-wood-section-title">Interaktywne porównanie 15 gatunków drewna</h2>
      <p class="rk-wood-lead">Wybierz maksymalnie trzy gatunki. Narzędzie zestawia wielkości materiałowe i ryzyka, ale celowo nie tworzy rankingu „najlepsze–najgorsze”: gotowa podłoga zależy od konstrukcji produktu i jego dokumentacji.</p>

      <div class="rk-wood-tool" id="rk-wood-comparator-tool">
        <div class="rk-wood-tool-head">
          <span class="rk-wood-eyebrow">Porównywarka materiałowa</span>
          <h3>Dąb, merbau, iroko, jesion, klon, robinia, dwa orzechy, sosna, modrzew, teak, buk, doussie, jatoba i wenge</h3>
          <p>Wartości reprezentatywne służą do porównania tendencji. Naturalne drewno wykazuje zmienność zależną m.in. od pochodzenia, przyrostu, wilgotności i kierunku anatomicznego.</p>
        </div>
        <div class="rk-wood-tool-body">
          <div class="rk-wood-fields">
            <div class="rk-wood-field">
              <label for="rk-wood-species-a">Pierwszy gatunek</label>
              <select id="rk-wood-species-a" data-rk-wood-compare="0"></select>
            </div>
            <div class="rk-wood-field">
              <label for="rk-wood-species-b">Drugi gatunek</label>
              <select id="rk-wood-species-b" data-rk-wood-compare="1"></select>
            </div>
            <div class="rk-wood-field">
              <label for="rk-wood-species-c">Trzeci gatunek</label>
              <select id="rk-wood-species-c" data-rk-wood-compare="2"></select>
            </div>
          </div>
          <div class="rk-wood-help"><strong>Jak czytać wynik:</strong> niższa kurczliwość i mniejsza różnica między kierunkiem stycznym a promieniowym mogą ograniczać tendencję do zmian wymiarowych, ale nie zastępują oceny szerokości, przekroju, wilgotności początkowej i konstrukcji deski.</div>
          <div class="rk-wood-compare-grid" id="rk-wood-compare-results" aria-live="polite"></div>
          <p class="rk-wood-data-note">Gęstość, całkowity skurcz promieniowy i styczny, współczynnik anizotropii, przewodność cieplna oraz twardość są wartościami reprezentatywnymi zestawionymi na podstawie kart CIRAD Tropix i USDA Forest Products Laboratory. Nie są deklaracją właściwości konkretnej partii ani konkretnego wyrobu.</p>
          <div class="rk-wood-callout"><strong>Ocena gatunku nie jest potwierdzeniem przydatności konkretnej podłogi.</strong> Ostateczna decyzja zależy od konstrukcji deski, całkowitego oporu R, sposobu montażu i warunków podanych w dokumentacji produktu.</div>
        </div>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-parameters">
      <span class="rk-wood-eyebrow">Cztery wielkości, cztery różne znaczenia</span>
      <h2 class="rk-wood-section-title">Jak czytać kurczliwość, anizotropię, gęstość i przewodność drewna?</h2>
      <p class="rk-wood-lead">W tabelach technicznych łatwo pomylić parametr materiału z oceną gotowej podłogi. Każda z poniższych wartości odpowiada na inne pytanie i żadna samodzielnie nie przesądza o przydatności deski.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Skurcz promieniowy i styczny</h3>
          <p>Opisuje całkowitą zmianę wymiaru od stanu nasycenia włókien do stanu suchego w dwóch kierunkach anatomicznych. To nie jest prognoza szczeliny w milimetrach w Twoim salonie. W eksploatacji podłoga pracuje w znacznie węższym zakresie wilgotności, a wynik zależy też od sposobu przetarcia deski.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Stosunek T/R, czyli anizotropia</h3>
          <p>Porównuje skurcz styczny z promieniowym. Większa różnica może sprzyjać paczeniu przekroju, lecz o zachowaniu gotowego elementu nadal decydują szerokość, grubość, układ słojów, konstrukcja i mocowanie.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Gęstość i odporność na wgniecenia</h3>
          <p>Gęstość często koreluje z twardością, ale nie jest tym samym parametrem. Twarde drewno może dobrze znosić punktowe obciążenia, a jednocześnie wyraźnie reagować na zmianę wilgotności. Odporność użytkowa nie oznacza automatycznie stabilności wymiarowej.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Przewodność λ a opór R</h3>
          <p>Przewodność cieplna λ jest właściwością materiału. Opór cieplny warstwy zależy także od grubości: w uproszczeniu R = d/λ. Dla deski warstwowej potrzebne są właściwości całego produktu, nie tylko warstwy wierzchniej.</p>
        </article>
      </div>
      <div class="rk-wood-note"><strong>Praktyczna konsekwencja:</strong> dwie deski z tego samego dębu mogą mieć różny R i inaczej reagować na mikroklimat, jeśli różnią się grubością, szerokością, układem warstw oraz montażem. Przy porównywaniu alternatyw pomocne jest również zestawienie <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewnianej i paneli laminowanych</a> oraz wyjaśnienie, <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">czy na podłogówkę nadają się tylko płytki</a>.</div>
    </section>

    <section class="rk-wood-section" id="rk-wood-construction">
      <span class="rk-wood-eyebrow">Budowa gotowego wyrobu</span>
      <h2 class="rk-wood-section-title">Deska lita czy warstwowa na ogrzewanie podłogowe?</h2>
      <p class="rk-wood-lead">Konstrukcja warstwowa może ograniczać część zmian geometrycznych dzięki krzyżowemu ułożeniu lub stabilizującemu podkładowi. Nie oznacza to stałej procentowej przewagi ani automatycznej zgody na każdą temperaturę. Liczy się projekt konkretnego wyrobu.</p>
      <div class="rk-wood-compare-table" role="table" aria-label="Porównanie deski litej i warstwowej">
        <div class="rk-wood-table-row rk-wood-table-head" role="row">
          <div role="columnheader">Kryterium</div>
          <div role="columnheader">Deska lita</div>
          <div role="columnheader">Deska warstwowa</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Reakcja na wilgotność</div>
          <div role="cell">Element pracuje jako jeden przekrój drewna; znaczenie mają szerokość i kierunek słojów.</div>
          <div role="cell">Warstwy mogą stabilizować geometrię, lecz skuteczność zależy od ich materiału, układu i jakości klejenia.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Opór cieplny</div>
          <div role="cell">Można go wstępnie oszacować z grubości i λ, ale dokument wyrobu jest pewniejszy.</div>
          <div role="cell">Nie należy liczyć R wyłącznie z λ warstwy użytkowej; potrzebna jest wartość dla całego produktu.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Szerokość elementu</div>
          <div role="cell">Większa szerokość zwiększa widoczny skutek tej samej procentowej zmiany wymiaru.</div>
          <div role="cell">Konstrukcja może ograniczać zmianę, ale szerokie formaty nadal wymagają sprawdzenia instrukcji.</div>
        </div>
        <div class="rk-wood-table-row" role="row">
          <div class="rk-wood-table-label" role="rowheader">Decyzja zakupowa</div>
          <div role="cell">Wybór warunkowy: dopuszczenie produktu, wymiary, montaż i mikroklimat muszą być spójne.</div>
          <div role="cell">Zwykle łatwiej znaleźć wyrób zaprojektowany do podłogówki, ale potwierdzenie producenta nadal jest konieczne.</div>
        </div>
      </div>
      <div class="rk-wood-callout"><strong>Nie używaj skrótu „warstwowa zawsze dobra, lita zawsze zła”.</strong> Lepsza reguła brzmi: wybieraj produkt z kompletną dokumentacją, możliwie przewidywalną konstrukcją i parametrami pasującymi do obliczonej podłogówki.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-analyzer">
      <span class="rk-wood-eyebrow">Narzędzie 2 z 2</span>
      <h2 class="rk-wood-section-title">Analizator konkretnej deski na ogrzewanie podłogowe</h2>
      <p class="rk-wood-lead">Przepisz dane z karty produktu i założeń pomieszczenia. Wynik oddzieli przepływ ciepła, ryzyko eksploatacyjne i kompletność dokumentacji. To analiza warunków, nie rekomendacja zakupowa.</p>

      <div class="rk-wood-tool" id="rk-wood-board-tool">
        <div class="rk-wood-tool-head">
          <span class="rk-wood-eyebrow">Analiza konkretnego wyrobu</span>
          <h3>Co wiadomo o desce, czego brakuje i co trzeba przeliczyć w projekcie?</h3>
          <p>Wypełnij pola zgodnie z dokumentacją produktu. Jeśli producent nie podaje wartości, pozostaw pole puste — brak danych jest ważnym wynikiem, a nie powodem do zgadywania.</p>
        </div>
        <div class="rk-wood-tool-body">
          <form id="rk-wood-board-form">
            <div class="rk-wood-form-grid">
              <div class="rk-wood-field">
                <label for="rk-wood-board-species">Gatunek drewna</label>
                <select id="rk-wood-board-species" name="species"></select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-construction-input">Konstrukcja produktu</label>
                <select id="rk-wood-construction-input" name="construction">
                  <option value="solid">deska lita</option>
                  <option value="two" selected="">deska dwuwarstwowa</option>
                  <option value="three">deska trójwarstwowa</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-thickness">Grubość całkowita [mm]</label>
                <input id="rk-wood-thickness" name="thickness" type="number" min="6" max="35" step="0.5" value="14" inputmode="decimal">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-width">Szerokość elementu [mm]</label>
                <input id="rk-wood-width" name="width" type="number" min="50" max="400" step="1" value="180" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-r-declared">Deklarowany R produktu [m²K/W]</label>
                <input id="rk-wood-r-declared" name="rDeclared" type="number" min="0.01" max="0.40" step="0.001" value="0.090" inputmode="decimal">
                <small>Wartość dla całej deski, nie samo λ drewna.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-install">Sposób montażu</label>
                <select id="rk-wood-install" name="installation">
                  <option value="glued" selected="">klejenie do podłoża</option>
                  <option value="floating">montaż pływający</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-underlay-r">R podkładu [m²K/W]</label>
                <input id="rk-wood-underlay-r" name="underlayR" type="number" min="0" max="0.30" step="0.001" value="0" inputmode="decimal" disabled="">
                <small>Aktywne dla montażu pływającego. Dla kleju sprawdź dane systemu klejowego.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-approval">Deklaracja do podłogówki</label>
                <select id="rk-wood-approval" name="approval">
                  <option value="yes" selected="">tak, potwierdzona</option>
                  <option value="unknown">brak informacji</option>
                  <option value="no">producent nie dopuszcza</option>
                </select>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-max-temp">Maks. temperatura powierzchni [°C]</label>
                <input id="rk-wood-max-temp" name="maxTemp" type="number" min="20" max="40" step="0.5" value="27" inputmode="decimal">
                <small>Przepisz limit produktu; 27°C nie jest automatycznie wartością dla każdej deski.</small>
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-rh-min">Minimalna RH w pomieszczeniu [%]</label>
                <input id="rk-wood-rh-min" name="rhMin" type="number" min="20" max="70" step="1" value="40" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-rh-max">Maksymalna RH w pomieszczeniu [%]</label>
                <input id="rk-wood-rh-max" name="rhMax" type="number" min="30" max="85" step="1" value="60" inputmode="numeric">
              </div>
              <div class="rk-wood-field">
                <label for="rk-wood-load">Obciążenie cieplne pomieszczenia [W/m²]</label>
                <input id="rk-wood-load" name="heatLoad" type="number" min="10" max="180" step="1" value="55" inputmode="numeric">
                <small>Wartość z obliczeń dla aktywnej powierzchni grzewczej, nie ze średniej dla całego domu.</small>
              </div>
            </div>
            <div class="rk-wood-actions">
              <button class="rk-wood-button" type="submit">Przeanalizuj deskę</button>
              <button class="rk-wood-button rk-wood-button-secondary" id="rk-wood-example-reset" type="button">Przywróć przykład</button>
            </div>
          </form>

          <div class="rk-wood-result" id="rk-wood-analysis-result" aria-live="polite" aria-atomic="true">
            <div class="rk-wood-result-status">
              <span class="rk-wood-status-icon" aria-hidden="true">i</span>
              <div><strong>Wprowadź parametry i uruchom analizę</strong><p>Narzędzie nie zastępuje dokumentacji produktu ani obliczeń mocy podłogi.</p></div>
            </div>
          </div>
        </div>
      </div>

      <aside class="rk-wood-cta" aria-label="Projekt ogrzewania podłogowego pod wybraną deskę">
        <div class="rk-wood-cta-title">Analizator uporządkuje parametry deski. Projekt odpowie, czy podłoga dostarczy potrzebne ciepło.</div>
        <p>Opór wykończenia trzeba połączyć ze stratą ciepła każdego pomieszczenia, powierzchnią czynną, rozstawem rur, temperaturą wody, długościami pętli i przepływami. Dopiero taki zestaw pozwala ocenić wybraną podłogę w konkretnym budynku.</p>
        <a class="rk-wood-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Sprawdź wybraną podłogę w projekcie ogrzewania</a>
        <small class="rk-wood-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </aside>
    </section>

    <section class="rk-wood-section" id="rk-wood-resistance">
      <span class="rk-wood-eyebrow">Droga przepływu ciepła</span>
      <h2 class="rk-wood-section-title">Opór cieplny drewnianej podłogi: liczy się suma warstw</h2>
      <p class="rk-wood-lead">Dla jednorodnej warstwy przybliżenie ma postać R = d/λ, gdzie d to grubość w metrach, a λ — przewodność cieplna w W/(m·K). W gotowej desce warstwowej najlepszą daną jest R zadeklarowane dla całego produktu.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>Produkt drewniany</h3><p>Uwzględnij wszystkie warstwy, powłoki i geometrię wyrobu. Szacunek z gatunku jest tylko zastępstwem, gdy brakuje deklaracji.</p></article>
        <article class="rk-wood-card"><h3>Klej lub podkład</h3><p>Montaż pływający dodaje opór podkładu. W systemie klejonym trzeba stosować kompatybilny zestaw i przestrzegać grubości warstwy kleju.</p></article>
        <article class="rk-wood-card"><h3>Cały emiter</h3><p>Jastrych, rozstaw rur, temperatura wody i warunki brzegowe tworzą dalszą część modelu. Zasada działania została opisana w poradniku <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa ogrzewanie podłogowe</a>.</p></article>
      </div>
      <div class="rk-wood-callout"><strong>Wartość 0,15 m²K/W nie jest uniwersalną gwarancją ani samodzielnym zakazem.</strong> Większy R zwykle wymaga większej różnicy temperatur, aby przekazać tę samą moc, lecz ostateczny wynik zależy od całego układu i obciążenia pomieszczenia. Zasady projektowania systemów płaszczyznowych porządkuje <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">omówienie PN-EN 1264</a>.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-installation">
      <span class="rk-wood-eyebrow">Warstwa montażowa ma znaczenie</span>
      <h2 class="rk-wood-section-title">Podłoga klejona czy pływająca?</h2>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Klejenie do przygotowanego podłoża</h3>
          <ul class="rk-wood-list">
            <li>zwykle eliminuje osobny podkład o istotnym oporze cieplnym;</li>
            <li>wymaga zgodności deski, kleju, gruntu i jastrychu;</li>
            <li>stawia wysokie wymagania równości, wytrzymałości i wilgotności podłoża;</li>
            <li>musi respektować dylatacje konstrukcyjne oraz instrukcję systemu.</li>
          </ul>
        </article>
        <article class="rk-wood-card">
          <h3>Montaż pływający</h3>
          <ul class="rk-wood-list">
            <li>dodaje do bilansu opór cieplny podkładu;</li>
            <li>wymaga dopuszczenia zamków i całego produktu do podłogówki;</li>
            <li>musi uwzględniać pola dylatacyjne i geometrię pomieszczeń;</li>
            <li>nie każdy „podkład do podłogówki” ma ten sam R.</li>
          </ul>
        </article>
      </div>
      <p>Nie wybieraj metody wyłącznie na podstawie hasła „lepiej przewodzi”. Porównaj kompletną instrukcję, możliwość przygotowania podłoża, akustykę, naprawialność i łączny opór warstw.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-climate">
      <span class="rk-wood-eyebrow">Warunki eksploatacji</span>
      <h2 class="rk-wood-section-title">Temperatura powierzchni i wilgotność powietrza przy drewnie</h2>
      <p class="rk-wood-lead">Drewno jest materiałem higroskopijnym: oddaje lub pobiera wilgoć, gdy zmieniają się warunki otoczenia. Ogrzewanie może przyspieszać odpowiedź materiału, ale źródłem zmian jest bilans wilgoci i temperatury, nie samo istnienie rur w posadzce.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card"><h3>Limit z dokumentacji produktu</h3><p>Często spotykane 27°C należy traktować jako wartość wymagającą potwierdzenia dla konkretnej deski, a nie uniwersalny limit wynikający automatycznie z jednej normy. Czujnik podłogowy może wspierać ochronę powierzchni; zobacz, <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">jak działa czujnik podłogowy</a>.</p></article>
        <article class="rk-wood-card"><h3>Zakres RH i spokojne zmiany</h3><p>Przestrzegaj zakresu wilgotności podanego przez producenta przez cały rok. Sama instalacja nie kontroluje RH. Pomocne są pomiar, wentylacja i świadome reagowanie na warunki sezonowe.</p></article>
      </div>
      <p>Temperatura powierzchni nie jest tym samym co <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">maksymalna temperatura zasilania podłogówki</a>. W praktyce dąży się do możliwie niskiej, ale wystarczającej temperatury wody; więcej w analizie <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">optymalnej temperatury ogrzewania podłogowego</a>. Stabilniejszą pracę może wspierać <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">sterowanie pogodowe</a>, jeśli jest prawidłowo ustawione.</p>
      <div class="rk-wood-note">Przeczytaj także, <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">jak ogrzewanie podłogowe wiąże się z wilgotnością w domu</a> oraz <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">czy podłogówka „wysusza” powietrze</a>. To dwa różne pytania: pierwsze dotyczy fizyki wilgoci, drugie — odczuć i eksploatacji budynku.</div>
    </section>


    <section class="rk-wood-section rk-wood-section-dark" id="rk-wood-design">
      <span class="rk-wood-eyebrow">Od deski do parametrów instalacji</span>
      <h2 class="rk-wood-section-title">Jak drewniana podłoga wpływa na moc i hydraulikę podłogówki?</h2>
      <p class="rk-wood-lead">Drewno nie zwiększa strat ciepła budynku. Zwiększony opór wykończenia może natomiast ograniczyć moc oddawaną do pomieszczenia przy tych samych temperaturach wody i tej samej geometrii instalacji. To różnica między zapotrzebowaniem budynku a zdolnością emitera.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card">
          <h3>1. Policz obciążenie</h3>
          <p>Podstawą jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">projektowe obciążenie cieplne OZC</a> i podział wyniku na pomieszczenia. Zobacz również, <a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">jak oblicza się straty ciepła</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>2. Sprawdź powierzchnię czynną</h3>
          <p>Moc na metr kwadratowy trzeba odnieść do rzeczywiście ogrzewanej powierzchni. Dopiero wtedy dobiera się geometrię, w tym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur 10 czy 15 cm</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>3. Domknij hydraulikę</h3>
          <p>Przepływ wynika z mocy i przyjętej różnicy temperatur. Gatunek drewna nie narzuca „przyspieszenia wody”. Kontroluje się <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">długości pętli</a>, opory i nastawy <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametrów na rozdzielaczu</a>.</p>
        </article>
      </div>
      <p>Nie ma jednej poprawnej długości pętli ani jednego rozstawu dla każdego domu. Układ wynika z powierzchni, średnicy rur, wymaganej mocy, oporów i dopuszczalnych temperatur. Punkt wyjścia pokazuje poradnik o tym, <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/">jak zaplanować rozmieszczenie pętli grzewczych</a>.</p>
    </section>

    <section class="rk-wood-section" id="rk-wood-heat-pump">
      <span class="rk-wood-eyebrow">Sytuacje wymagające dokładniejszej kontroli</span>
      <h2 class="rk-wood-section-title">Drewno, pompa ciepła i duże przeszklenia</h2>
      <p class="rk-wood-lead">Przy pompie ciepła korzystna jest niska temperatura wody, a drewniana okładzina dodaje opór po stronie odbiornika. To nie jest sprzeczność, lecz warunek do wspólnego przeliczenia. Im większe obciążenie na metr aktywnej podłogi, tym mniej miejsca pozostaje na decyzje o wysokim R.</p>
      <div class="rk-wood-grid-2">
        <article class="rk-wood-card">
          <h3>Współpraca z pompą ciepła</h3>
          <p>Projekt powinien potwierdzić, czy podłoga pokryje obciążenie przy parametrach korzystnych dla źródła. Osobny poradnik omawia <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-z-pompa-ciepla/">projekt podłogówki z pompą ciepła</a>.</p>
        </article>
        <article class="rk-wood-card">
          <h3>Strefy przy dużych oknach</h3>
          <p>Nie stosuj stałego narzutu mocy ani obowiązkowej szerokości pasa bez obliczeń. Wymaganie zależy od strat, geometrii i powierzchni czynnej; zobacz analizę <a href="https://projekt-ogrzewania.pl/projekt-ogrzewania-podlogowego-do-domu-z-duzymi-przeszkleniami-jak-poradzic-sobie-ze-strefa-przy-oknach/">podłogówki przy dużych przeszkleniach</a>.</p>
        </article>
      </div>
      <div class="rk-wood-callout"><strong>Sygnał do ponownego przeliczenia:</strong> wysokie obciążenie pomieszczenia, mała powierzchnia aktywna, gruba podłoga warstwowa, podkład o istotnym R albo niski limit temperatury produktu. Każdy z tych warunków zmniejsza margines, ale nie powinien być oceniany w oderwaniu od pozostałych.</div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-substrate">
      <span class="rk-wood-eyebrow">Przed ułożeniem pierwszej deski</span>
      <h2 class="rk-wood-section-title">Jastrych, protokół wygrzewania i przygotowanie montażu</h2>
      <p class="rk-wood-lead">Nawet dobrze dobrana podłoga może zostać uszkodzona przez wilgotne lub słabe podłoże, brak procedury uruchomienia albo montaż niezgodny z instrukcjami. Wartości graniczne i czas czynności trzeba brać z dokumentacji jastrychu, systemu grzewczego, kleju i podłogi.</p>
      <div class="rk-wood-steps">
        <article class="rk-wood-step"><h3>Zweryfikuj konstrukcję</h3><p>Ustal rodzaj podkładu i wymagania wykonawcze. Pomaga w tym <a href="https://projekt-ogrzewania.pl/wylewka-na-ogrzewanie-podlogowe-kompletny-przewodnik/">przewodnik po wylewkach na podłogówkę</a>.</p></article>
        <article class="rk-wood-step"><h3>Sprawdź grubość i pola</h3><p>Grubość nie jest jedną liczbą dla wszystkich mieszanek. Zobacz zasady doboru <a href="https://projekt-ogrzewania.pl/grubosc-wylewki-betonowej-na-ogrzewanie-podlogowe/">grubości wylewki betonowej</a>.</p></article>
        <article class="rk-wood-step"><h3>Rozplanuj dylatacje</h3><p>Przeniesienie i wykończenie szczelin musi być skoordynowane z okładziną; przeczytaj o <a href="https://projekt-ogrzewania.pl/izolacja-brzegowa-i-dylatacje-w-instalacji-ogrzewania-podlogowego/">izolacji brzegowej i dylatacjach</a>.</p></article>
        <article class="rk-wood-step"><h3>Wykonaj próbę i rozruch</h3><p>Przed zakryciem instalacji potrzebne są odbiory przewidziane dla systemu, a później kontrolowany protokół uruchomienia jastrychu.</p></article>
        <article class="rk-wood-step"><h3>Zmierz podłoże</h3><p>Metoda pomiaru i dopuszczalny wynik muszą odpowiadać rodzajowi jastrychu, kleju i podłogi. Sam termin „suche” jest niewystarczający.</p></article>
        <article class="rk-wood-step"><h3>Połącz instrukcje</h3><p>Inaczej przygotowuje się niektóre układy mokre i suche. Porównaj <a href="https://projekt-ogrzewania.pl/system-mokry-czy-suchy-w-wodnym-ogrzewaniu-podlogowym-ktory-wybrac/">system mokry i suchy</a>, a następnie stosuj dokumentację konkretnego rozwiązania.</p></article>
      </div>
    </section>

    <section class="rk-wood-section" id="rk-wood-mistakes">
      <span class="rk-wood-eyebrow">Co najczęściej psuje dobrą decyzję</span>
      <h2 class="rk-wood-section-title">Najczęstsze błędy przy wyborze drewna na podłogówkę</h2>
      <div class="rk-wood-mistakes">
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Zakup po nazwie gatunku</strong><p>„Dąb” nie mówi jeszcze, czy deska jest lita czy warstwowa, ile ma milimetrów, jaki ma R i czy producent dopuszcza ją do ogrzewania.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Traktowanie 0,15 m²K/W jak certyfikatu</strong><p>Jedna wartość nie uwzględnia obciążenia pomieszczenia, powierzchni czynnej ani parametrów wody.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Pomijanie R podkładu</strong><p>W montażu pływającym warstwa pod deską może stanowić zauważalną część oporu wykończenia.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Uniwersalne 27°C bez karty produktu</strong><p>Limit powierzchni trzeba odczytać dla wybranego wyrobu i zestawić z wymaganiami cieplnymi pomieszczenia.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Brak planu kontroli wilgotności</strong><p>Drewno będzie reagowało na sezonowy mikroklimat również wtedy, gdy instalacja została wykonana poprawnie.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Sztywny rozstaw dla całego domu</strong><p>Różne pomieszczenia mają inne straty, powierzchnie czynne i ograniczenia temperatury.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Brak koordynacji wykonawców</strong><p>Projektant, wykonawca ogrzewania, posadzkarz i parkieciarz muszą pracować na zgodnych danych o warstwach.</p></div></article>
        <article class="rk-wood-mistake"><span class="rk-wood-mistake-icon">!</span><div><strong>Uruchamianie „na wyczucie”</strong><p>Procedury wygrzewania, montażu i pierwszego rozruchu należy wykonać zgodnie z dokumentacją zastosowanych materiałów.</p></div></article>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-checklist">
      <span class="rk-wood-eyebrow">Lista do sklepu i dla projektanta</span>
      <h2 class="rk-wood-section-title">Co sprawdzić przed zakupem drewnianej podłogi?</h2>
      <p class="rk-wood-lead">Poproś o dokumenty przed złożeniem zamówienia. Jeśli odpowiedź istnieje tylko w rozmowie handlowej, poproś o wskazanie jej w karcie technicznej, instrukcji montażu lub warunkach gwarancji.</p>
      <div class="rk-wood-checklist">
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Dopuszczenie produktu</strong><br>Czy dokładny symbol deski jest przeznaczony do wodnego ogrzewania podłogowego?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Deklarowany opór R</strong><br>Czy wartość dotyczy całego produktu o wybranej grubości?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Konstrukcja i wymiary</strong><br>Czy dokument obejmuje wybraną liczbę warstw, szerokość i format?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Metoda montażu</strong><br>Czy dopuszczono klejenie, montaż pływający albo oba warianty?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Podkład lub klej</strong><br>Czy znasz R podkładu i kompatybilny system klejowy?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Temperatura powierzchni</strong><br>Jaki dokładnie limit podaje producent podłogi?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Zakres wilgotności RH</strong><br>Jakie warunki trzeba utrzymywać w sezonie grzewczym i poza nim?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Wymagania dla jastrychu</strong><br>Jaką metodą mierzy się wilgotność i jaki wynik jest wymagany?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Protokół rozruchu</strong><br>Czy wymagane są dokumenty z wygrzewania oraz pomiarów podłoża?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Powłoka i konserwacja</strong><br>Czy olej, lakier i środki pielęgnacyjne mają osobne ograniczenia?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Obciążenie pomieszczenia</strong><br>Czy projektant zna stratę ciepła i rzeczywistą powierzchnię aktywną?</div></div>
        <div class="rk-wood-checklist-item"><span>✓</span><div><strong>Warunki gwarancji</strong><br>Czy zapisano obowiązki dotyczące temperatury, RH, dylatacji i montażu?</div></div>
      </div>
    </section>

    <section class="rk-wood-section" id="rk-wood-conclusions">
      <span class="rk-wood-eyebrow">Decyzja bez fałszywej pewności</span>
      <h2 class="rk-wood-section-title">Wnioski projektanta: jaka podłoga drewniana będzie rozsądnym wyborem?</h2>
      <p class="rk-wood-lead">Najbardziej przewidywalny wariant to nie „magiczny” gatunek, lecz produkt, którego parametry można połączyć z obliczeniami i warunkami użytkowania.</p>
      <div class="rk-wood-grid-3">
        <article class="rk-wood-card"><h3>Dobry punkt wyjścia</h3><p>Jednoznaczne dopuszczenie do podłogówki, deklarowany R, znany limit temperatury, opisany zakres RH i metoda montażu.</p></article>
        <article class="rk-wood-card"><h3>Wybór warunkowy</h3><p>Brak jednej danej, szeroki format, deska lita lub większy R nie muszą przekreślać produktu, ale wymagają uzupełnienia dokumentacji albo przeliczenia.</p></article>
        <article class="rk-wood-card"><h3>Podwyższone ryzyko</h3><p>Brak dopuszczenia, sprzeczne instrukcje, nieznane warstwy, oczekiwanie wysokiej mocy z małej powierzchni lub brak kontroli mikroklimatu.</p></article>
      </div>
      <div class="rk-wood-answer">
        <span class="rk-wood-answer-label">Reguła końcowa</span>
        <p><strong>Najpierw wybierz konkretny produkt i zbierz jego dane. Następnie sprawdź łączny R i warunki montażu. Na końcu potwierdź w projekcie, że przy dopuszczalnej temperaturze powierzchni podłoga pokryje obciążenie każdego pomieszczenia.</strong></p>
      </div>

      <div class="rk-wood-cta">
        <div class="rk-wood-cta-title">Zaprojektuj podłogówkę pod wybraną podłogę drewnianą</div>
        <p>Projekt łączy obciążenia pomieszczeń, warstwy podłogi, powierzchnie czynne, rozstaw rur, temperaturę wody, długości pętli, przepływy i nastawy. Dzięki temu decyzja o drewnie staje się częścią policzonego systemu, a nie osobnym założeniem.</p>
        <a class="rk-wood-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt ogrzewania podłogowego pod drewno</a>
        <small class="rk-wood-link-disclosure">Odnośnik prowadzi do płatnej usługi projektowej autora poradnika.</small>
      </div>
    </section>

    <section class="rk-wood-section rk-wood-section-soft" id="rk-wood-sources">
      <span class="rk-wood-eyebrow">Podstawa danych i granice narzędzi</span>
      <h2 class="rk-wood-section-title">Źródła oficjalne i zakres odpowiedzialności</h2>
      <p class="rk-wood-lead">Parametry gatunków są wartościami reprezentatywnymi z instytucjonalnych opracowań technicznych. Nie zastępują deklaracji konkretnej deski. Źródła projektowe opisują metodę obliczeń ogrzewania płaszczyznowego, a nie zgodę na zastosowanie dowolnego produktu.</p>
      <div class="rk-wood-source-grid">
        <article class="rk-wood-source-card"><a href="https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf" target="_blank" rel="nofollow noopener noreferrer">USDA Forest Products Laboratory — Moisture Relations and Physical Properties of Wood</a><p>Oficjalny rozdział Wood Handbook opisujący higroskopijność, kierunkową zmianę wymiarów, zmienność danych, gęstość i właściwości cieplne drewna.</p></article>
        <article class="rk-wood-source-card"><a href="https://tropix.cirad.fr/en/technical-sheets-available" target="_blank" rel="nofollow noopener noreferrer">CIRAD Tropix — oficjalne karty techniczne gatunków</a><p>Katalog instytutu badawczego zawierający m.in. gęstość, skurcz promieniowy i styczny, twardość oraz przewodność cieplną wielu gatunków.</p></article>
        <article class="rk-wood-source-card"><a href="https://www.iso.org/standard/74683.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-2:2021 — określanie mocy systemów płaszczyznowych</a><p>Oficjalna karta normy dotyczącej wyznaczania projektowej mocy ogrzewania i chłodzenia płaszczyznowego.</p></article>
        <article class="rk-wood-source-card"><a href="https://www.iso.org/standard/74684.html" target="_blank" rel="nofollow noopener noreferrer">ISO 11855-3:2021 — projektowanie i wymiarowanie</a><p>Oficjalna karta normy dotyczącej projektowania i wymiarowania wbudowanych wodnych systemów ogrzewania oraz chłodzenia płaszczyznowego.</p></article>
      </div>
      <div class="rk-wood-responsibility"><p><strong>Zakres odpowiedzialności:</strong> artykuł, porównywarka i analizator mają charakter edukacyjny. Nie są aprobatą konkretnego produktu, projektem ogrzewania, instrukcją montażu, ekspertyzą parkieciarską ani podstawą roszczeń gwarancyjnych. Przed zakupem i montażem obowiązują aktualne dokumenty producenta podłogi, kleju lub podkładu, wymagania systemu jastrychowego, projekt instalacji oraz pomiary na budowie. Dane drewna wykazują naturalną zmienność; wartości w narzędziu zostały zaokrąglone, aby nie tworzyć pozornej dokładności.</p></div>
    </section>

    <section class="rk-wood-section" id="rk-wood-faq">
      <span class="rk-wood-eyebrow">Pytania przed zakupem i montażem</span>
      <h2 class="rk-wood-section-title">FAQ — drewno na ogrzewanie podłogowe</h2>
      <div class="rk-wood-faq">
        <details><summary>Jakie drewno jest najlepsze na ogrzewanie podłogowe?</summary><div class="rk-wood-faq-answer"><p>Nie ma jednego najlepszego gatunku dla każdego produktu i budynku. Szukaj konkretnej deski dopuszczonej do podłogówki, z deklarowanym oporem cieplnym, instrukcją montażu, limitem temperatury i zakresem wilgotności. Gatunek pomaga ocenić tendencję materiału, ale nie zastępuje tych danych.</p></div></details>
        <details><summary>Czy dąb nadaje się na ogrzewanie podłogowe?</summary><div class="rk-wood-faq-answer"><p>Na rynku występują dębowe produkty przeznaczone do podłogówki, ale sama nazwa „dąb” nie potwierdza przydatności. Trzeba sprawdzić konstrukcję, grubość, szerokość, R, montaż i dokumentację dokładnego modelu.</p></div></details>
        <details><summary>Czy merbau, iroko i teak są stabilniejsze od buku?</summary><div class="rk-wood-faq-answer"><p>Reprezentatywne dane materiałowe wskazują zwykle mniejszy skurcz dla merbau, iroko i teaku niż dla buku. Nie jest to jednak ranking gotowych podłóg. Budowa deski, suszenie, format, klejenie, wilgotność oraz instrukcja produktu mogą zmienić praktyczną ocenę.</p></div></details>
        <details><summary>Czy deska warstwowa jest zawsze lepsza od litej?</summary><div class="rk-wood-faq-answer"><p>Nie zawsze, choć prawidłowo zaprojektowana konstrukcja warstwowa może ograniczać zmiany geometryczne. Nie istnieje stała procentowa przewaga wspólna dla wszystkich produktów. Oba warianty wymagają potwierdzenia zastosowania, właściwego montażu i kontroli mikroklimatu.</p></div></details>
        <details><summary>Jaki opór cieplny drewna jest dopuszczalny?</summary><div class="rk-wood-faq-answer"><p>Nie należy traktować pojedynczej wartości jako uniwersalnej zgody lub zakazu. Suma oporu deski i warstwy montażowej wpływa na wymaganą różnicę temperatur, dlatego trzeba ją zestawić z obciążeniem pomieszczenia, powierzchnią czynną oraz projektem systemu.</p></div></details>
        <details><summary>Czy 27°C to zawsze maksymalna temperatura drewnianej podłogi?</summary><div class="rk-wood-faq-answer"><p>Nie należy przyjmować 27°C automatycznie dla każdego produktu. Trzeba stosować limit podany przez producenta konkretnej deski oraz uwzględnić wymagania komfortu, projektu ogrzewania, kleju i pozostałych warstw.</p></div></details>
        <details><summary>Czy pod drewnem lepiej kleić, czy układać podłogę pływającą?</summary><div class="rk-wood-faq-answer"><p>Klejenie zwykle eliminuje osobny podkład, ale wymaga kompatybilnego systemu i bardzo dobrze przygotowanego jastrychu. Montaż pływający dodaje R podkładu i wymaga dopuszczenia zamków. Wybór wynika z dokumentacji całego zestawu, nie z jednej ogólnej reguły.</p></div></details>
        <details><summary>Czy ogrzewanie podłogowe rozsycha drewno?</summary><div class="rk-wood-faq-answer"><p>Drewno reaguje na zmiany wilgotności równowagowej i temperatury. Ryzyko szczelin lub odkształceń rośnie przy warunkach poza zakresem produktu, gwałtownym rozruchu albo błędnym montażu. Poprawny projekt i stała kontrola mikroklimatu ograniczają ryzyko, lecz go nie zerują.</p></div></details>
        <details><summary>Czy grubsza deska oznacza gorszą podłogówkę?</summary><div class="rk-wood-faq-answer"><p>Większa grubość tego samego materiału zwiększa opór cieplny, ale o wyniku decyduje cały produkt i pomieszczenie. Grubsza deska nie jest automatycznie zakazana; może natomiast wymagać ponownego przeliczenia mocy i temperatur.</p></div></details>
        <details><summary>Jakie dokumenty powinien przekazać sprzedawca podłogi?</summary><div class="rk-wood-faq-answer"><p>Najważniejsze są karta techniczna dokładnego produktu, instrukcja montażu i użytkowania, warunki gwarancji, deklarowany R, dopuszczone metody układania, limit temperatury powierzchni oraz wymagany zakres wilgotności. Dla systemu montażowego potrzebne są również dokumenty kleju lub podkładu.</p></div></details>
      </div>
    </section>

    <section class="rk-wood-author" id="rk-wood-author">
      <span class="rk-wood-eyebrow">Opracowanie eksperckie</span>
      <h2 class="rk-wood-author-title">Autor i weryfikacja merytoryczna</h2>
      <div class="rk-wood-author-layout">
        <aside class="rk-wood-author-side">
          <div class="rk-wood-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-wood-author-name"><a href="https://projekt-ogrzewania.pl/author/admin3399/">Robert Kucharski</a></div>
          <p class="rk-wood-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</p>
          <div class="rk-wood-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-wood-author-main">
          <div class="rk-wood-author-quote">„Przy podłodze drewnianej nie projektujemy osobno deski i osobno rur. Opór wykończenia, dopuszczalna temperatura, moc pomieszczenia i hydraulika muszą spotkać się w jednym obliczeniu.”</div>
          <p>Robert Kucharski opracowuje projekty ogrzewania podłogowego, obliczenia cieplne i hydrauliczne oraz materiały edukacyjne dla inwestorów i wykonawców. W pracy projektowej łączy straty ciepła pomieszczeń, rzeczywiste powierzchnie grzewcze, konstrukcję podłogi, parametry wody, rozstaw rur, długości pętli, przepływy i nastawy.</p>
          <p>Ten poradnik został zweryfikowany pod kątem rozdzielenia właściwości gatunku od parametrów gotowego produktu, poprawnego znaczenia R i λ, wpływu warstw na moc emitera oraz ograniczeń uproszczonej analizy. Narzędzia celowo nie wydają kategorycznego werdyktu zakupowego.</p>
          <p>Treść nie promuje producenta ani konkretnej marki podłogi. Jej celem jest pokazanie, jakie dane inwestor powinien uzyskać przed zakupem i które z nich muszą wrócić do projektanta, parkieciarza oraz wykonawcy ogrzewania.</p>
          <p>Autor publikuje również w portalach <a href="https://remont.biz.pl/" target="_blank" rel="nofollow noopener noreferrer">Remont.biz.pl</a> i <a href="https://sobir.pl/" target="_blank" rel="nofollow noopener noreferrer">Sobir.pl</a>. <a href="https://projekt-ogrzewania.pl/author/admin3399/">Zobacz pozostałe artykuły Roberta Kucharskiego w serwisie Projekt-Ogrzewania.pl</a>.</p>
          <div class="rk-wood-author-facts">
            <div class="rk-wood-author-fact"><strong>Zakres</strong>ogrzewanie podłogowe, bilanse cieplne i hydraulika instalacji</div>
            <div class="rk-wood-author-fact"><strong>Metoda pracy</strong>obliczenia, dokumentacja materiałów i weryfikacja warunków rzeczywistych</div>
            <div class="rk-wood-author-fact"><strong>Aktualizacja</strong>stan techniczny materiału sprawdzony 10 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",
      "inLanguage": "pl-PL",
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      }
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "logo": {
        "@type": "ImageObject",
        "@id": "https://projekt-ogrzewania.pl/#logo",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/Projekt-ogrzewania-logo-1.jpg"
      },
      "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/"
    },
    {
      "@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": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp"
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista HVAC",
      "worksFor": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "affiliation": [
        {
          "@id": "https://remont.biz.pl/#organization"
        },
        {
          "@id": "https://sobir.pl/#organization"
        }
      ],
      "knowsAbout": [
        "ogrzewanie podłogowe",
        "obliczenia obciążenia cieplnego",
        "hydraulika instalacji grzewczych",
        "projektowanie pętli grzewczych",
        "opór cieplny okładzin",
        "współpraca ogrzewania podłogowego z pompą ciepła",
        "temperatura powierzchni podłogi",
        "dobór przepływów i nastaw rozdzielacza"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://www.facebook.com/projektogrzewaniapl",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    {
      "@type": "ImageObject",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage",
      "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/10/Wybor-idealnego-drewna-do-ogrzewania-podlogowego-%E2%80%93-kompletna-tabela-i-poradnik.webp",
      "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/10/Wybor-idealnego-drewna-do-ogrzewania-podlogowego-%E2%80%93-kompletna-tabela-i-poradnik.webp",
      "width": 945,
      "height": 945,
      "caption": "Drewno na ogrzewanie podłogowe — porównanie gatunków i dobór deski",
      "creditText": "Robert Kucharski"
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Projekt Ogrzewania",
          "item": "https://projekt-ogrzewania.pl/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Drewno na ogrzewanie podłogowe",
          "item": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/"
        }
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#webpage",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/",
      "name": "Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski",
      "description": "Drewno na ogrzewanie podłogowe: porównaj 15 gatunków, sprawdź opór cieplny i przeanalizuj konkretną deskę przed zakupem oraz zaprojektowaniem podłogówki.",
      "isPartOf": {
        "@id": "https://projekt-ogrzewania.pl/#website"
      },
      "primaryImageOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage"
      },
      "breadcrumb": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#article"
      },
      "inLanguage": "pl-PL",
      "datePublished": "2025-10-14",
      "dateModified": "2026-09-10"
    },
    {
      "@type": "TechArticle",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#article",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/",
      "headline": "Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski",
      "alternativeHeadline": "Jak wybrać gatunek, konstrukcję i opór cieplny drewnianej podłogi",
      "description": "Techniczny poradnik z porównaniem 15 gatunków drewna i analizatorem konkretnej deski na wodne ogrzewanie podłogowe.",
      "datePublished": "2025-10-14",
      "dateModified": "2026-09-10",
      "author": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "mainEntityOfPage": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#webpage"
      },
      "image": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#primaryimage"
      },
      "inLanguage": "pl-PL",
      "isAccessibleForFree": true,
      "articleSection": [
        "Czy drewno nadaje się na ogrzewanie podłogowe",
        "Porównanie gatunków drewna",
        "Kurczliwość i stabilność wymiarowa",
        "Deska lita a warstwowa",
        "Analizator konkretnej deski",
        "Opór cieplny drewnianej podłogi",
        "Montaż klejony i pływający",
        "Temperatura powierzchni i wilgotność",
        "Moc oraz hydraulika podłogówki",
        "Jastrych i przygotowanie montażu"
      ],
      "keywords": [
        "drewno na ogrzewanie podłogowe",
        "deska na ogrzewanie podłogowe",
        "dąb na podłogówkę",
        "merbau na ogrzewanie podłogowe",
        "buk na ogrzewanie podłogowe",
        "deska lita czy warstwowa",
        "opór cieplny drewnianej podłogi",
        "podłoga klejona czy pływająca",
        "temperatura drewnianej podłogi",
        "gatunki drewna na podłogówkę"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Drewniane okładziny podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Wodne ogrzewanie podłogowe"
        },
        {
          "@type": "Thing",
          "name": "Opór cieplny warstw podłogi"
        }
      ],
      "citation": [
        "https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf",
        "https://tropix.cirad.fr/en/technical-sheets-available",
        "https://www.iso.org/standard/74683.html",
        "https://www.iso.org/standard/74684.html"
      ],
      "hasPart": [
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-dataset"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-comparator"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#board-analyzer"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#selection-howto"
        },
        {
          "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#faq-schema"
        }
      ]
    },
    {
      "@type": "Dataset",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-dataset",
      "name": "Porównanie właściwości 15 gatunków drewna stosowanych na podłogi",
      "description": "Zestaw reprezentatywnych wartości gęstości, całkowitego skurczu promieniowego i stycznego, stosunku T/R, przewodności cieplnej oraz opisowej odporności na wgniecenia.",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-comparator",
      "inLanguage": "pl-PL",
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "publisher": {
        "@id": "https://projekt-ogrzewania.pl/#organization"
      },
      "dateModified": "2026-09-10",
      "keywords": [
        "gęstość drewna",
        "skurcz promieniowy drewna",
        "skurcz styczny drewna",
        "anizotropia T/R",
        "przewodność cieplna drewna",
        "twardość drewna",
        "drewno podłogowe"
      ],
      "measurementTechnique": "Zestawienie wartości reprezentatywnych z kart CIRAD Tropix oraz USDA Forest Products Laboratory; wartości zaokrąglone, odnoszone do kierunku anatomicznego i warunków opisanych przez źródło.",
      "variableMeasured": [
        {
          "@type": "PropertyValue",
          "name": "Gęstość reprezentatywna",
          "unitText": "kg/m³"
        },
        {
          "@type": "PropertyValue",
          "name": "Całkowity skurcz promieniowy",
          "unitText": "%"
        },
        {
          "@type": "PropertyValue",
          "name": "Całkowity skurcz styczny",
          "unitText": "%"
        },
        {
          "@type": "PropertyValue",
          "name": "Stosunek skurczu stycznego do promieniowego",
          "unitText": "T/R"
        },
        {
          "@type": "PropertyValue",
          "name": "Przewodność cieplna reprezentatywna",
          "unitText": "W/(m·K)"
        },
        {
          "@type": "PropertyValue",
          "name": "Odporność na wgniecenia",
          "unitText": "ocena opisowa"
        }
      ],
      "mainEntity": {
        "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-list"
      },
      "isBasedOn": [
        "https://www.fpl.fs.usda.gov/documnts/fplgtr/fplgtr190/chapter_04.pdf",
        "https://tropix.cirad.fr/en/technical-sheets-available"
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-list",
      "name": "Gatunki drewna uwzględnione w porównaniu",
      "numberOfItems": 15,
      "itemListOrder": "https://schema.org/ItemListUnordered",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Dąb europejski" },
        { "@type": "ListItem", "position": 2, "name": "Merbau" },
        { "@type": "ListItem", "position": 3, "name": "Iroko" },
        { "@type": "ListItem", "position": 4, "name": "Jesion europejski" },
        { "@type": "ListItem", "position": 5, "name": "Klon jawor" },
        { "@type": "ListItem", "position": 6, "name": "Robinia akacjowa" },
        { "@type": "ListItem", "position": 7, "name": "Orzech europejski" },
        { "@type": "ListItem", "position": 8, "name": "Orzech amerykański" },
        { "@type": "ListItem", "position": 9, "name": "Sosna zwyczajna" },
        { "@type": "ListItem", "position": 10, "name": "Modrzew europejski" },
        { "@type": "ListItem", "position": 11, "name": "Teak" },
        { "@type": "ListItem", "position": 12, "name": "Buk europejski" },
        { "@type": "ListItem", "position": 13, "name": "Doussie / afzelia" },
        { "@type": "ListItem", "position": 14, "name": "Jatoba" },
        { "@type": "ListItem", "position": 15, "name": "Wenge" }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#species-comparator",
      "name": "Porównywarka gatunków drewna na ogrzewanie podłogowe",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-comparator",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "description": "Interaktywne porównanie reprezentatywnej gęstości, skurczu, anizotropii, przewodności, odporności na wgniecenia i ryzyk dla 15 gatunków drewna."
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#board-analyzer",
      "name": "Analizator konkretnej deski na ogrzewanie podłogowe",
      "url": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#rk-wood-analyzer",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": {
        "@id": "https://projekt-ogrzewania.pl/#robert-kucharski"
      },
      "description": "Narzędzie rozdzielające analizę oporu cieplnego, stabilności eksploatacyjnej i kompletności dokumentacji konkretnego produktu drewnianego."
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#selection-howto",
      "name": "Jak wybrać drewnianą podłogę na ogrzewanie podłogowe",
      "description": "Sześć etapów od dokumentacji produktu do potwierdzenia parametrów ogrzewania.",
      "inLanguage": "pl-PL",
      "totalTime": "PT45M",
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Potwierdź zastosowanie",
          "text": "Sprawdź, czy producent dopuszcza dokładny produkt do wodnego ogrzewania podłogowego i wybranej metody montażu."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Zbierz parametry produktu",
          "text": "Zapisz konstrukcję, grubość, szerokość, deklarowany opór cieplny, limit temperatury oraz zakres wilgotności względnej."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Dodaj warstwę montażową",
          "text": "Dla montażu pływającego dodaj opór podkładu, a dla klejenia zweryfikuj zgodność kompletnego systemu klejowego."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Sprawdź warunki podłoża",
          "text": "Połącz wymagania jastrychu, procedury rozruchu, pomiaru wilgotności, równości i dylatacji."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Porównaj z obciążeniem pomieszczenia",
          "text": "Zestaw opór wykończenia i dopuszczalną temperaturę z obciążeniem cieplnym oraz aktywną powierzchnią podłogi."
        },
        {
          "@type": "HowToStep",
          "position": 6,
          "name": "Przelicz instalację",
          "text": "Dobierz rozstaw rur, temperaturę wody, podział pętli, przepływy i nastawy bez stosowania jednej reguły dla całego domu."
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/#faq-schema",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Jakie drewno jest najlepsze na ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie ma jednego najlepszego gatunku dla każdego produktu i budynku. Należy wybrać konkretną deskę dopuszczoną do podłogówki, z deklarowanym oporem cieplnym, instrukcją montażu, limitem temperatury i zakresem wilgotności. Gatunek pomaga ocenić tendencję materiału, ale nie zastępuje tych danych."
          }
        },
        {
          "@type": "Question",
          "name": "Czy dąb nadaje się na ogrzewanie podłogowe?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Na rynku występują dębowe produkty przeznaczone do podłogówki, ale sama nazwa dąb nie potwierdza przydatności. Trzeba sprawdzić konstrukcję, grubość, szerokość, opór cieplny, montaż i dokumentację dokładnego modelu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy merbau, iroko i teak są stabilniejsze od buku?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Reprezentatywne dane materiałowe wskazują zwykle mniejszy skurcz dla merbau, iroko i teaku niż dla buku. Nie jest to jednak ranking gotowych podłóg. Budowa deski, suszenie, format, klejenie, wilgotność oraz instrukcja produktu mogą zmienić praktyczną ocenę."
          }
        },
        {
          "@type": "Question",
          "name": "Czy deska warstwowa jest zawsze lepsza od litej?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie zawsze, choć prawidłowo zaprojektowana konstrukcja warstwowa może ograniczać zmiany geometryczne. Nie istnieje stała procentowa przewaga wspólna dla wszystkich produktów. Oba warianty wymagają potwierdzenia zastosowania, właściwego montażu i kontroli mikroklimatu."
          }
        },
        {
          "@type": "Question",
          "name": "Jaki opór cieplny drewna jest dopuszczalny?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy traktować pojedynczej wartości jako uniwersalnej zgody lub zakazu. Suma oporu deski i warstwy montażowej wpływa na wymaganą różnicę temperatur, dlatego trzeba ją zestawić z obciążeniem pomieszczenia, powierzchnią czynną oraz projektem systemu."
          }
        },
        {
          "@type": "Question",
          "name": "Czy 27°C to zawsze maksymalna temperatura drewnianej podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Nie należy przyjmować 27°C automatycznie dla każdego produktu. Trzeba stosować limit podany przez producenta konkretnej deski oraz uwzględnić wymagania komfortu, projektu ogrzewania, kleju i pozostałych warstw."
          }
        },
        {
          "@type": "Question",
          "name": "Czy pod drewnem lepiej kleić, czy układać podłogę pływającą?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Klejenie zwykle eliminuje osobny podkład, ale wymaga kompatybilnego systemu i dobrze przygotowanego jastrychu. Montaż pływający dodaje opór podkładu i wymaga dopuszczenia zamków. Wybór wynika z dokumentacji całego zestawu, nie z jednej ogólnej reguły."
          }
        },
        {
          "@type": "Question",
          "name": "Czy ogrzewanie podłogowe rozsycha drewno?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Drewno reaguje na zmiany wilgotności równowagowej i temperatury. Ryzyko szczelin lub odkształceń rośnie przy warunkach poza zakresem produktu, gwałtownym rozruchu albo błędnym montażu. Poprawny projekt i kontrola mikroklimatu ograniczają ryzyko, lecz go nie zerują."
          }
        },
        {
          "@type": "Question",
          "name": "Czy grubsza deska oznacza gorszą podłogówkę?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Większa grubość tego samego materiału zwiększa opór cieplny, ale o wyniku decyduje cały produkt i pomieszczenie. Grubsza deska nie jest automatycznie zakazana; może natomiast wymagać ponownego przeliczenia mocy i temperatur."
          }
        },
        {
          "@type": "Question",
          "name": "Jakie dokumenty powinien przekazać sprzedawca podłogi?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Najważniejsze są karta techniczna dokładnego produktu, instrukcja montażu i użytkowania, warunki gwarancji, deklarowany opór cieplny, dopuszczone metody układania, limit temperatury powierzchni oraz wymagany zakres wilgotności. Dla systemu montażowego potrzebne są również dokumenty kleju lub podkładu."
          }
        }
      ]
    }
  ]
}
</script>

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

  var root = document.getElementById("rk-wood-guide");
  if (!root) {
    return;
  }
  if (root.getAttribute("data-rk-wood-ready") === "1") {
    return;
  }
  root.setAttribute("data-rk-wood-ready", "1");

  var speciesData = [
    {
      id: "oak",
      name: "Dąb europejski",
      botanical: "Quercus robur / Quercus petraea — wartości reprezentatywne",
      density: 740,
      radial: 4.5,
      tangential: 9.7,
      ratio: 2.2,
      lambda: 0.24,
      hardness: "średnia (4,2 Monnina)",
      movement: "umiarkowana; wyższa anizotropia",
      movementLevel: 2,
      movementNote: "Skurcz styczny jest wyraźnie większy od promieniowego. Znaczenie ma sposób przetarcia oraz szerokość elementu.",
      solid: "Wybór warunkowy. Sprawdź szerokość, grubość, wilgotność początkową, układ słojów i jednoznaczne dopuszczenie produktu.",
      engineered: "Częsty wariant konstrukcyjny, ale oceniaj liczbę warstw, materiał podkładu, całkowity R i instrukcję konkretnej deski.",
      risk: "Szeroka deska lita może wyraźniej pokazać zmianę wymiaru; sama nazwa handlowa nie opisuje konstrukcji.",
      verify: "R całego produktu, limit temperatury, zakres RH, dopuszczony montaż i maksymalny format.",
      source: "CIRAD Tropix; właściwości drewna uzupełnione zasadami USDA FPL"
    },
    {
      id: "merbau",
      name: "Merbau",
      botanical: "Intsia spp. — wartości reprezentatywne",
      density: 830,
      radial: 2.7,
      tangential: 4.4,
      ratio: 1.6,
      lambda: 0.27,
      hardness: "bardzo wysoka (8,8 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Reprezentatywny skurcz całkowity jest relatywnie mały, lecz gotowy wyrób nadal reaguje na mikroklimat.",
      solid: "Parametry gatunku są obiecujące, ale format, suszenie, montaż i dokumentacja produktu pozostają rozstrzygające.",
      engineered: "Konstrukcja może dodatkowo ograniczać zmiany geometryczne; nie zastępuje to deklaracji R i warunków producenta.",
      risk: "Duża gęstość oraz substancje ekstrakcyjne wymagają zgodnego systemu klejenia; ważne jest legalne i udokumentowane pochodzenie.",
      verify: "Kompatybilność kleju, R wyrobu, zakres RH, ograniczenia powierzchni oraz dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "iroko",
      name: "Iroko",
      botanical: "Milicia spp. — wartości reprezentatywne",
      density: 640,
      radial: 3.5,
      tangential: 5.4,
      ratio: 1.5,
      lambda: 0.22,
      hardness: "średnia (4,1 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski stosunek T/R i umiarkowany skurcz sprzyjają przewidywalności materiału, ale nie gwarantują zachowania deski.",
      solid: "Możliwy wybór warunkowy przy kontrolowanym formacie, właściwym suszeniu i potwierdzeniu przez producenta.",
      engineered: "Może łączyć korzystne cechy gatunku ze stabilizującą konstrukcją; sprawdź budowę całego wyrobu.",
      risk: "Substancje ekstrakcyjne i zmienny układ włókien mogą wpływać na obróbkę, klejenie i wykończenie.",
      verify: "Zalecany klej i grunt, konstrukcję, R, temperaturę powierzchni i zakres mikroklimatu.",
      source: "CIRAD Tropix"
    },
    {
      id: "ash",
      name: "Jesion europejski",
      botanical: "Fraxinus excelsior — wartości reprezentatywne",
      density: 680,
      radial: 5.7,
      tangential: 9.6,
      ratio: 1.7,
      lambda: 0.23,
      hardness: "wysoka (5,1 Monnina)",
      movement: "umiarkowana–wyższa",
      movementLevel: 3,
      movementNote: "Całkowity skurcz jest wyraźny. Twardość użytkowa nie oznacza automatycznie małej pracy wilgotnościowej.",
      solid: "Szczególnej kontroli wymagają szerokość, kierunek słojów i zakres RH; nie zakładaj przydatności bez dokumentu produktu.",
      engineered: "Konstrukcja warstwowa może ograniczać geometrię zmian, ale musi być przeznaczona do podłogówki.",
      risk: "Mylenie wysokiej twardości z wysoką stabilnością wymiarową.",
      verify: "Dopuszczony format, konstrukcję, RH, limit temperatury, R i sposób montażu.",
      source: "CIRAD Tropix"
    },
    {
      id: "maple",
      name: "Klon jawor",
      botanical: "Acer pseudoplatanus — w handlu również jako jawor",
      density: 640,
      radial: 4.5,
      tangential: 7.8,
      ratio: 1.7,
      lambda: 0.22,
      hardness: "średnia (4,7 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Parametry wskazują umiarkowaną pracę, lecz jasne drewno może mocno ujawniać szczeliny i zmiany wizualne.",
      solid: "Wybór warunkowy zależny od szerokości, sposobu przetarcia i dyscypliny mikroklimatu.",
      engineered: "Może być bardziej przewidywalny geometrycznie, jeśli cała konstrukcja została przebadana i opisana.",
      risk: "Nazwa „klon” może obejmować różne gatunki o innych wartościach; trzeba znać dokładne oznaczenie.",
      verify: "Gatunek botaniczny, konstrukcję, R, zakres RH, format i limit temperatury.",
      source: "CIRAD Tropix — karta great maple"
    },
    {
      id: "robinia",
      name: "Robinia akacjowa",
      botanical: "Robinia pseudoacacia — handlowo często nazywana akacją",
      density: 740,
      radial: 4.4,
      tangential: 6.9,
      ratio: 1.6,
      lambda: 0.24,
      hardness: "bardzo wysoka (9,5 Monnina)",
      movement: "niższa–umiarkowana",
      movementLevel: 2,
      movementNote: "Stosunek T/R jest umiarkowany, ale naturalna zmienność i układ włókien mogą wpływać na element.",
      solid: "Możliwy wariant przy dobrze przygotowanym materiale, kontrolowanym formacie i pełnej instrukcji.",
      engineered: "Konstrukcja może pomóc w kontroli geometrii; nie należy wnioskować wyłącznie z twardości gatunku.",
      risk: "Bardzo wysoka twardość komplikuje obróbkę, a określenie „akacja” bywa używane nieprecyzyjnie.",
      verify: "Łacińską nazwę gatunku, sposób suszenia, R, system klejenia i wymagany mikroklimat.",
      source: "CIRAD Tropix — black locust"
    },
    {
      id: "walnut-eu",
      name: "Orzech europejski",
      botanical: "Juglans regia — wartości reprezentatywne",
      density: 660,
      radial: 5.5,
      tangential: 7.5,
      ratio: 1.4,
      lambda: 0.22,
      hardness: "średnia (3,2 Monnina)",
      movement: "umiarkowana; równomierniejsza",
      movementLevel: 2,
      movementNote: "Niższy stosunek T/R oznacza bardziej zbliżoną zmianę w obu kierunkach, lecz skurcz całkowity nadal jest istotny.",
      solid: "Wybór warunkowy; kontroluj szerokość, wilgotność i sposób przetarcia.",
      engineered: "Może być przewidywalnym wariantem, gdy karta wyrobu potwierdza zastosowanie i parametry.",
      risk: "Nazwa „orzech” nie rozróżnia orzecha europejskiego od amerykańskiego ani budowy produktu.",
      verify: "Dokładny gatunek, konstrukcję, R, format, temperaturę oraz zakres RH.",
      source: "CIRAD Tropix"
    },
    {
      id: "walnut-us",
      name: "Orzech amerykański",
      botanical: "Juglans nigra — wartości reprezentatywne",
      density: 610,
      radial: 5.5,
      tangential: 7.8,
      ratio: 1.4,
      lambda: 0.17,
      hardness: "średnia; dane zależne od metody",
      movement: "umiarkowana; równomierniejsza",
      movementLevel: 2,
      movementNote: "Relatywnie niski stosunek T/R nie usuwa zmian wymiarowych; liczą się wilgotność i rozmiar elementu.",
      solid: "Możliwy po sprawdzeniu formatu, wilgotności i pisemnego dopuszczenia konkretnej deski.",
      engineered: "Konstrukcja warstwowa może ograniczyć widoczne zmiany, lecz wynik zależy od podkładu i klejenia warstw.",
      risk: "Przenoszenie danych z orzecha europejskiego lub innego źródła bez sprawdzenia gatunku i metody pomiaru.",
      verify: "Nazwę botaniczną, R produktu, konstrukcję, dopuszczony montaż, RH i temperaturę.",
      source: "USDA Forest Products Laboratory; wartości cieplne reprezentatywne"
    },
    {
      id: "pine",
      name: "Sosna zwyczajna",
      botanical: "Pinus sylvestris — wartości reprezentatywne",
      density: 550,
      radial: 5.2,
      tangential: 8.3,
      ratio: 1.6,
      lambda: 0.19,
      hardness: "niższa (2,6 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Parametry ruchu są umiarkowane, lecz układ słojów, sęki i różnice między drewnem wczesnym a późnym zwiększają zmienność.",
      solid: "Wymaga świadomej akceptacji większej podatności na wgniecenia oraz sprawdzenia szerokości i jakości materiału.",
      engineered: "Może ograniczać zmiany geometrii, ale cienka warstwa użytkowa nie zmienia wymagań dokumentacyjnych.",
      risk: "Wgniecenia, sęki, żywica oraz duża zmienność wizualna i materiałowa.",
      verify: "Klasę jakości, konstrukcję, R, limit temperatury, montaż i zakres RH.",
      source: "CIRAD Tropix"
    },
    {
      id: "larch",
      name: "Modrzew europejski",
      botanical: "Larix decidua — wartości reprezentatywne",
      density: 600,
      radial: 4.2,
      tangential: 8.2,
      ratio: 2.0,
      lambda: 0.20,
      hardness: "średnia (3,8 Monnina)",
      movement: "umiarkowana; wyższa anizotropia",
      movementLevel: 2,
      movementNote: "Stosunek T/R wskazuje większą różnicę między kierunkami, dlatego układ słojów i szerokość są ważne.",
      solid: "Wybór warunkowy, szczególnie przy szerokich elementach; sprawdź wilgotność, przekrój i instrukcję.",
      engineered: "Może ograniczać efekt anizotropii, jeżeli konstrukcja i klejenie warstw są prawidłowo zaprojektowane.",
      risk: "Żywica, sęki i różnica pracy w kierunkach mogą wpływać na wygląd i montaż.",
      verify: "Format, selekcję materiału, R, kompatybilność wykończenia, RH i temperaturę.",
      source: "CIRAD Tropix"
    },
    {
      id: "teak",
      name: "Teak",
      botanical: "Tectona grandis — wartości reprezentatywne",
      density: 670,
      radial: 2.6,
      tangential: 4.7,
      ratio: 1.8,
      lambda: 0.22,
      hardness: "średnia (4,2 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski skurcz całkowity jest korzystną cechą materiałową, ale nie jest zgodą na dowolną deskę lub montaż.",
      solid: "Możliwy przy kontrolowanym formacie i pisemnym dopuszczeniu; wymaga właściwego przygotowania do klejenia.",
      engineered: "Może tworzyć przewidywalny wyrób, jeśli warstwy, spoiwa i parametry cieplne są udokumentowane.",
      risk: "Naturalne oleje mogą utrudniać klejenie i wykończenie; ważne jest legalne, udokumentowane pochodzenie.",
      verify: "Technologię klejenia, R, zakres RH, limit temperatury, format i dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "beech",
      name: "Buk europejski",
      botanical: "Fagus sylvatica — wartości reprezentatywne",
      density: 710,
      radial: 5.7,
      tangential: 11.6,
      ratio: 2.0,
      lambda: 0.24,
      hardness: "średnia (4,2 Monnina)",
      movement: "wyższa tendencja materiałowa",
      movementLevel: 3,
      movementNote: "Wysoki skurcz styczny i wyraźna anizotropia zwiększają znaczenie konstrukcji, formatu oraz stabilnego mikroklimatu.",
      solid: "Podwyższone ryzyko dla szerokich elementów. Decyzja wymaga szczególnie mocnego potwierdzenia produktu i warunków.",
      engineered: "Konstrukcja może ograniczać zmiany, ale nie usuwa cech gatunku ani obowiązku przestrzegania RH i temperatury.",
      risk: "Zbyt szeroki format, wahania wilgotności i przyjęcie, że twardość równa się stabilności.",
      verify: "Jednoznaczne dopuszczenie, konstrukcję, maksymalną szerokość, R, RH i temperaturę.",
      source: "CIRAD Tropix"
    },
    {
      id: "afzelia",
      name: "Doussie / afzelia",
      botanical: "Afzelia spp. — doussie to nazwa handlowa",
      density: 800,
      radial: 3.0,
      tangential: 4.4,
      ratio: 1.5,
      lambda: 0.26,
      hardness: "wysoka (7,7 Monnina)",
      movement: "niższa tendencja materiałowa",
      movementLevel: 1,
      movementNote: "Niski skurcz i stosunek T/R są korzystne w porównaniu materiałowym, lecz produkt nadal musi mieć pełne dane.",
      solid: "Możliwy po sprawdzeniu wymiarów, suszenia, klejenia i dopuszczenia dokładnej deski.",
      engineered: "Może łączyć korzystne dane gatunku z kontrolą geometrii, o ile cała konstrukcja jest udokumentowana.",
      risk: "Substancje ekstrakcyjne, duża gęstość, zmienność handlowych nazw i pochodzenie materiału.",
      verify: "Nazwę botaniczną, system klejenia, R, temperaturę, RH oraz dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    },
    {
      id: "jatoba",
      name: "Jatoba",
      botanical: "Hymenaea spp. — wartości reprezentatywne",
      density: 940,
      radial: 3.9,
      tangential: 7.5,
      ratio: 1.9,
      lambda: 0.30,
      hardness: "bardzo wysoka (10,5 Monnina)",
      movement: "umiarkowana",
      movementLevel: 2,
      movementNote: "Skurcz promieniowy jest umiarkowany, styczny większy; wysoka gęstość nie oznacza braku pracy wilgotnościowej.",
      solid: "Wymaga kontroli szerokości, wilgotności, obróbki oraz zgodnego systemu montażowego.",
      engineered: "Może ograniczać geometrię zmian, ale wysoka gęstość warstwy użytkowej nadal wpływa na obróbkę i klejenie.",
      risk: "Mylenie bardzo wysokiej twardości ze stabilnością oraz nieuwzględnienie wymagań klejenia gęstego drewna.",
      verify: "Klej i przygotowanie powierzchni, R, wymiary, zakres RH, limit temperatury i pochodzenie.",
      source: "CIRAD Tropix"
    },
    {
      id: "wenge",
      name: "Wenge",
      botanical: "Millettia laurentii — wartości reprezentatywne",
      density: 870,
      radial: 5.9,
      tangential: 9.1,
      ratio: 1.5,
      lambda: 0.28,
      hardness: "bardzo wysoka (9,1 Monnina)",
      movement: "wyższa w wartościach bezwzględnych",
      movementLevel: 3,
      movementNote: "Stosunek T/R jest umiarkowany, lecz całkowite wartości skurczu pozostają wysokie; oba aspekty trzeba czytać razem.",
      solid: "Podwyższone wymagania dla formatu, suszenia, jakości elementu i kontroli mikroklimatu.",
      engineered: "Może ograniczyć zmiany geometryczne, ale nie eliminuje ryzyka pęknięć ani wymagań montażowych.",
      risk: "Kruchość, drzazgi, pęknięcia, duża gęstość i konieczność udokumentowanego pochodzenia.",
      verify: "Konstrukcję, jakość selekcji, system klejenia, R, RH, temperaturę i dokumenty pochodzenia.",
      source: "CIRAD Tropix"
    }
  ];

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

  function findSpecies(id) {
    var found = speciesData[0];
    speciesData.forEach(function (item) {
      if (item.id === id) {
        found = item;
      }
    });
    return found;
  }

  function createSpeciesOptions(select, selectedId) {
    select.innerHTML = "";
    speciesData.forEach(function (item) {
      var option = document.createElement("option");
      option.value = item.id;
      option.textContent = item.name;
      if (item.id === selectedId) {
        option.selected = true;
      }
      select.appendChild(option);
    });
  }

  var compareSelects = root.querySelectorAll("[data-rk-wood-compare]");
  var compareDefaults = ["oak", "merbau", "beech"];

  Array.prototype.forEach.call(compareSelects, function (select, index) {
    createSpeciesOptions(select, compareDefaults[index]);
  });

  function refreshDisabledOptions() {
    var chosen = [];
    Array.prototype.forEach.call(compareSelects, function (select) {
      chosen.push(select.value);
    });
    Array.prototype.forEach.call(compareSelects, function (select) {
      Array.prototype.forEach.call(select.options, function (option) {
        option.disabled = false;
        if (option.value !== select.value) {
          if (chosen.indexOf(option.value) !== -1) {
            option.disabled = true;
          }
        }
      });
    });
  }

  function renderSpeciesCard(item) {
    var html = "";
    html += '<article class="rk-wood-species-card">';
    html += '<div class="rk-wood-species-head"><h4>' + item.name + '</h4><p>' + item.botanical + '</p></div>';
    html += '<div class="rk-wood-species-body">';
    html += '<div class="rk-wood-metrics">';
    html += '<div class="rk-wood-metric"><span>Gęstość</span><strong>' + item.density + ' kg/m³</strong></div>';
    html += '<div class="rk-wood-metric"><span>Przewodność λ</span><strong>' + formatNumber(item.lambda, 2) + ' W/(m·K)</strong></div>';
    html += '<div class="rk-wood-metric"><span>Skurcz promieniowy</span><strong>' + formatNumber(item.radial, 1) + '%</strong></div>';
    html += '<div class="rk-wood-metric"><span>Skurcz styczny</span><strong>' + formatNumber(item.tangential, 1) + '%</strong></div>';
    html += '<div class="rk-wood-metric"><span>Stosunek T/R</span><strong>' + formatNumber(item.ratio, 1) + '</strong></div>';
    html += '<div class="rk-wood-metric"><span>Wgniecenia</span><strong>' + item.hardness + '</strong></div>';
    html += '</div>';
    html += '<span class="rk-wood-tag">Ruch: ' + item.movement + '</span>';
    html += '<span class="rk-wood-tag rk-wood-tag-warn">Brak automatycznej kwalifikacji</span>';
    html += '<dl class="rk-wood-species-detail">';
    html += '<dt>Jak czytać ruch wilgotnościowy?</dt><dd>' + item.movementNote + '</dd>';
    html += '<dt>Deska lita</dt><dd>' + item.solid + '</dd>';
    html += '<dt>Deska warstwowa</dt><dd>' + item.engineered + '</dd>';
    html += '<dt>Kluczowe ryzyko</dt><dd>' + item.risk + '</dd>';
    html += '<dt>Co sprawdzić w dokumentacji?</dt><dd>' + item.verify + '</dd>';
    html += '<dt>Podstawa danych</dt><dd>' + item.source + '</dd>';
    html += '</dl></div></article>';
    return html;
  }

  function renderComparison() {
    var result = document.getElementById("rk-wood-compare-results");
    if (!result) {
      return;
    }
    var html = "";
    Array.prototype.forEach.call(compareSelects, function (select) {
      html += renderSpeciesCard(findSpecies(select.value));
    });
    result.innerHTML = html;
    refreshDisabledOptions();
  }

  Array.prototype.forEach.call(compareSelects, function (select) {
    select.addEventListener("change", renderComparison);
  });

  var boardSpecies = document.getElementById("rk-wood-board-species");
  createSpeciesOptions(boardSpecies, "oak");

  var installation = document.getElementById("rk-wood-install");
  var underlayInput = document.getElementById("rk-wood-underlay-r");
  var form = document.getElementById("rk-wood-board-form");
  var resultBox = document.getElementById("rk-wood-analysis-result");
  var resetButton = document.getElementById("rk-wood-example-reset");

  function syncInstallation() {
    if (installation.value === "floating") {
      underlayInput.disabled = false;
      if (Number(underlayInput.value) === 0) {
        underlayInput.value = "0.030";
      }
    } else {
      underlayInput.value = "0";
      underlayInput.disabled = true;
    }
  }

  function numberOrNull(id) {
    var field = document.getElementById(id);
    var raw = field.value.trim();
    if (raw === "") {
      return null;
    }
    var value = Number(raw.replace(",", "."));
    if (isFinite(value)) {
      return value;
    }
    return null;
  }

  function checkLine(type, text) {
    var symbol = "?";
    if (type === "ok") {
      symbol = "✓";
    }
    if (type === "alert") {
      symbol = "!";
    }
    return '<div class="rk-wood-check"><span class="rk-wood-check-mark rk-wood-check-' + type + '">' + symbol + '</span><span>' + text + '</span></div>';
  }

  function renderInputMessage(title, text) {
    resultBox.innerHTML = '<div class="rk-wood-result-status rk-wood-status-warn"><span class="rk-wood-status-icon" aria-hidden="true">!</span><div><strong>' + title + '</strong><p>' + text + '</p></div></div>';
  }

  function analyzeBoard(event) {
    if (event) {
      event.preventDefault();
    }

    var species = findSpecies(boardSpecies.value);
    var construction = document.getElementById("rk-wood-construction-input").value;
    var approval = document.getElementById("rk-wood-approval").value;
    var thickness = numberOrNull("rk-wood-thickness");
    var width = numberOrNull("rk-wood-width");
    var declaredR = numberOrNull("rk-wood-r-declared");
    var maxTemp = numberOrNull("rk-wood-max-temp");
    var rhMin = numberOrNull("rk-wood-rh-min");
    var rhMax = numberOrNull("rk-wood-rh-max");
    var heatLoad = numberOrNull("rk-wood-load");
    var underlayR = 0;

    if (!form.checkValidity()) {
      form.reportValidity();
      return;
    }

    if (installation.value === "floating") {
      underlayR = numberOrNull("rk-wood-underlay-r");
      if (underlayR === null) {
        underlayR = 0;
      }
    }

    if (rhMin !== null) {
      if (rhMax !== null) {
        if (rhMin > rhMax) {
          renderInputMessage("Popraw zakres wilgotności", "Minimalna wilgotność względna nie może być większa od wartości maksymalnej.");
          return;
        }
      }
    }

    var productR = declaredR;
    var rSource = "wartość zadeklarowana dla całego produktu";
    var rEstimated = false;

    if (productR === null) {
      if (thickness !== null) {
        productR = (thickness / 1000) / species.lambda;
        rEstimated = true;
        rSource = "orientacyjny szacunek d/λ z danych gatunku";
      }
    }

    var totalR = null;
    if (productR !== null) {
      totalR = productR + underlayR;
    }

    var missingCount = 0;
    var documentHtml = "";

    if (approval === "yes") {
      documentHtml += checkLine("ok", "Dopuszczenie produktu do ogrzewania zostało oznaczone jako potwierdzone.");
    }
    if (approval === "unknown") {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje jednoznacznego potwierdzenia zastosowania na podłogówce.");
    }
    if (approval === "no") {
      documentHtml += checkLine("alert", "Producent nie dopuszcza produktu — wpisane parametry nie zmieniają tego ograniczenia.");
    }

    if (declaredR !== null) {
      documentHtml += checkLine("ok", "Wpisano deklarowany opór cieplny całego produktu.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje deklarowanego R. Narzędzie może pokazać tylko orientacyjny szacunek.");
    }

    if (maxTemp !== null) {
      documentHtml += checkLine("ok", "Wpisano limit temperatury powierzchni: " + formatNumber(maxTemp, 1) + "°C.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje limitu temperatury powierzchni z dokumentacji produktu.");
    }

    var rhKnown = false;
    if (rhMin !== null) {
      if (rhMax !== null) {
        rhKnown = true;
      }
    }
    if (rhKnown) {
      documentHtml += checkLine("ok", "Wpisano zakres mikroklimatu: " + formatNumber(rhMin, 0) + "–" + formatNumber(rhMax, 0) + "% RH.");
    } else {
      missingCount += 1;
      documentHtml += checkLine("missing", "Brakuje pełnego zakresu wilgotności względnej wymaganego przez producenta.");
    }

    if (installation.value === "floating") {
      documentHtml += checkLine("ok", "Do bilansu dodano opór podkładu dla montażu pływającego.");
    } else {
      documentHtml += checkLine("ok", "Wybrano klejenie; zgodność kleju, gruntu i jastrychu trzeba potwierdzić poza kalkulacją R.");
    }

    var stabilityPoints = species.movementLevel;
    var stabilityNotes = [];

    if (construction === "solid") {
      stabilityPoints += 1;
      stabilityNotes.push("Deska lita przenosi reakcję jednego przekroju drewna; szerokość i układ słojów mają duże znaczenie.");
    } else {
      stabilityPoints -= 1;
      stabilityNotes.push("Konstrukcja warstwowa może ograniczać część zmian geometrycznych, jeśli warstwy i spoiwa są prawidłowo zaprojektowane.");
    }

    if (width !== null) {
      if (width >= 180) {
        stabilityPoints += 1;
        stabilityNotes.push("Format " + formatNumber(width, 0) + " mm wymaga sprawdzenia ograniczeń szerokości w instrukcji produktu.");
      } else {
        stabilityNotes.push("Mniejsza szerokość ogranicza bezwzględny wymiar zmiany, ale nie usuwa pracy drewna.");
      }
      if (width >= 220) {
        stabilityPoints += 1;
        stabilityNotes.push("Bardzo szeroki element zwiększa widoczny skutek tej samej procentowej zmiany wilgotnościowej.");
      }
    } else {
      missingCount += 1;
      stabilityNotes.push("Brak szerokości uniemożliwia pełniejszą ocenę formatu.");
    }

    if (rhKnown) {
      var rhSpan = rhMax - rhMin;
      if (rhMin < 35) {
        stabilityPoints += 1;
        stabilityNotes.push("Dolna wartość RH jest niska; potwierdź, że mieści się w instrukcji i że budynek może ją utrzymać.");
      }
      if (rhMax > 65) {
        stabilityPoints += 1;
        stabilityNotes.push("Górna wartość RH jest wysoka; sprawdź warunki gwarancji i wentylację.");
      }
      if (rhSpan > 25) {
        stabilityPoints += 1;
        stabilityNotes.push("Szeroki zakres RH oznacza większą zmianę wilgotności równowagowej drewna.");
      }
    } else {
      stabilityPoints += 1;
      stabilityNotes.push("Bez zakresu RH nie da się ocenić zgodności planowanego mikroklimatu z dokumentacją.");
    }

    if (stabilityPoints < 0) {
      stabilityPoints = 0;
    }

    var stabilityLabel = "umiarkowana kontrola warunków";
    if (stabilityPoints <= 1) {
      stabilityLabel = "niższe ryzyko w zakresie wpisanych danych";
    }
    if (stabilityPoints >= 3) {
      stabilityLabel = "wybór wymagający dodatkowej kontroli";
    }
    if (stabilityPoints >= 5) {
      stabilityLabel = "podwyższone ryzyko eksploatacyjne";
    }

    var thermalLevel = "brak pełnych danych";
    var thermalNote = "Uzupełnij R produktu, aby obliczyć sumę wykończenia.";
    var requiresProject = false;

    if (totalR !== null) {
      thermalLevel = "niższy opór w tym modelu";
      thermalNote = "Wynik nadal trzeba połączyć z mocą wymaganą w pomieszczeniu.";
      if (totalR > 0.10) {
        thermalLevel = "opór istotny dla obliczeń";
        thermalNote = "Nie oceniaj go bez powierzchni czynnej, temperatury wody i obciążenia pomieszczenia.";
      }
      if (totalR > 0.15) {
        thermalLevel = "wysoki opór wymagający weryfikacji";
        thermalNote = "To sygnał do ponownego przeliczenia, a nie automatyczny zakaz produktu.";
        requiresProject = true;
      }
    }

    if (heatLoad === null) {
      missingCount += 1;
      requiresProject = true;
    } else {
      if (heatLoad > 75) {
        requiresProject = true;
      }
    }

    var overall = "Parametry potwierdzone w zakresie wpisanych danych";
    var overallText = "Nie widać wyraźnego sygnału alarmowego, ale ostateczne potwierdzenie wymaga karty produktu, kontroli podłoża i obliczenia mocy podłogi.";
    var statusClass = "rk-wood-status-good";
    var statusSymbol = "✓";

    if (missingCount > 0) {
      overall = "Wybór warunkowy";
      overallText = "Część informacji jest niepełna lub opiera się na szacunku. Uzupełnij dokumentację przed decyzją.";
      statusClass = "rk-wood-status-warn";
      statusSymbol = "?";
    }
    if (missingCount >= 3) {
      overall = "Brak danych";
      overallText = "Liczba braków nie pozwala uznać parametrów za potwierdzone. Poproś o kartę techniczną i instrukcję dokładnego produktu.";
    }
    if (requiresProject) {
      overall = "Parametr wymagający przeliczenia projektowego";
      overallText = "Opór wykończenia lub obciążenie pomieszczenia wymaga sprawdzenia razem z powierzchnią czynną, temperaturą wody i geometrią instalacji.";
      statusClass = "rk-wood-status-warn";
      statusSymbol = "↗";
    }
    if (stabilityPoints >= 5) {
      overall = "Podwyższone ryzyko";
      overallText = "Połączenie gatunku, konstrukcji, formatu lub warunków RH wymaga dodatkowej weryfikacji dokumentacji i wykonania.";
      statusClass = "rk-wood-status-alert";
      statusSymbol = "!";
    }
    if (approval === "no") {
      overall = "Podwyższone ryzyko";
      overallText = "Producent nie dopuszcza produktu do ogrzewania podłogowego. Nie zastępuj tej informacji wynikiem uproszczonego obliczenia.";
      statusClass = "rk-wood-status-alert";
      statusSymbol = "!";
    }

    var productRDisplay = "brak";
    var totalRDisplay = "brak";
    if (productR !== null) {
      productRDisplay = formatNumber(productR, 3);
    }
    if (totalR !== null) {
      totalRDisplay = formatNumber(totalR, 3);
    }

    var loadText = "Brak obciążenia cieplnego z obliczeń.";
    if (heatLoad !== null) {
      loadText = "Wpisane obciążenie: " + formatNumber(heatLoad, 0) + " W/m² aktywnej podłogi.";
      if (heatLoad > 75) {
        loadText += " To poziom wymagający uważnej weryfikacji mocy przy dopuszczalnej temperaturze powierzchni.";
      }
    }

    var constructionLabel = "deska lita";
    var supportLabel = "jeden przekrój drewna";
    if (construction === "two") {
      constructionLabel = "deska dwuwarstwowa";
      supportLabel = "warstwa nośna produktu";
    }
    if (construction === "three") {
      constructionLabel = "deska trójwarstwowa";
      supportLabel = "krzyżowe warstwy nośne";
    }

    var installationLabel = "klej do jastrychu";
    if (installation.value === "floating") {
      installationLabel = "podkład podłogowy";
    }

    var stabilityList = "";
    stabilityNotes.forEach(function (note) {
      stabilityList += "<li>" + note + "</li>";
    });

    var estimateWarning = "";
    if (rEstimated) {
      estimateWarning = "<li>R produktu jest szacunkiem z grubości i λ. Dla deski warstwowej może różnić się od wartości całego wyrobu.</li>";
    }

    var heatList = "";
    heatList += "<li>R produktu: " + productRDisplay + " m²K/W — " + rSource + ".</li>";
    heatList += "<li>R podkładu uwzględniony w modelu: " + formatNumber(underlayR, 3) + " m²K/W.</li>";
    heatList += "<li>" + loadText + "</li>";
    heatList += estimateWarning;

    var productShare = 0;
    var underlayShare = 0;
    if (totalR !== null) {
      if (totalR > 0) {
        productShare = (productR / totalR) * 100;
        underlayShare = (underlayR / totalR) * 100;
      }
    }

    var layerProductText = constructionLabel + ", " + (thickness === null ? "grubość niepodana" : formatNumber(thickness, 1) + " mm");
    var maxTempText = maxTemp === null ? "limit temperatury: brak danych" : "limit: " + formatNumber(maxTemp, 1) + "°C";

    var html = "";
    html += '<div class="rk-wood-result-status ' + statusClass + '"><span class="rk-wood-status-icon" aria-hidden="true">' + statusSymbol + '</span><div><strong>' + overall + '</strong><p>' + overallText + '</p></div></div>';
    html += '<div class="rk-wood-result-grid">';
    html += '<article class="rk-wood-result-card"><h3>1. Przepływ ciepła</h3><div class="rk-wood-result-number">' + totalRDisplay + ' m²K/W</div><div class="rk-wood-result-caption">suma R produktu i podkładu uwzględniona w narzędziu</div><p><strong>' + thermalLevel + '.</strong> ' + thermalNote + '</p><ul>' + heatList + '</ul></article>';
    html += '<article class="rk-wood-result-card"><h3>2. Stabilność eksploatacyjna</h3><div class="rk-wood-result-number">' + species.name + '</div><div class="rk-wood-result-caption">' + stabilityLabel + '</div><ul>' + stabilityList + '</ul></article>';
    html += '<article class="rk-wood-result-card"><h3>3. Kompletność dokumentacji</h3>' + documentHtml + '<p class="rk-wood-result-caption">Dodatkowo sprawdź instrukcję przygotowania jastrychu, dylatacje, aklimatyzację, powłokę i warunki gwarancji.</p></article>';
    html += '</div>';
    html += '<div class="rk-wood-layer-module"><h4>Modułowa droga ciepła — warstwy do wspólnego sprawdzenia</h4>';
    html += '<div class="rk-wood-layers">';
    html += '<div class="rk-wood-layer rk-wood-layer-1"><span>1. Wierzch</span><strong>' + species.name + '</strong><small>' + maxTempText + '</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-2"><span>2. Produkt</span><strong>' + supportLabel + '</strong><small>' + layerProductText + '</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-3"><span>3. Montaż</span><strong>' + installationLabel + '</strong><small>zgodność systemu i opór warstwy</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-4"><span>4. Jastrych</span><strong>podłoże grzewcze</strong><small>wilgotność, równość, dylatacje i rozruch</small></div>';
    html += '<div class="rk-wood-layer rk-wood-layer-5"><span>5. Instalacja</span><strong>rury i izolacja</strong><small>rozstaw, temperatura, przepływ i powierzchnia czynna</small></div>';
    html += '</div>';
    html += '<div class="rk-wood-rbar-wrap"><div class="rk-wood-rbar-labels"><span>Produkt: ' + formatNumber(productShare, 0) + '%</span><span>Podkład: ' + formatNumber(underlayShare, 0) + '%</span></div>';
    html += '<div class="rk-wood-rbar" aria-label="Udział produktu i podkładu w sumie oporu wykończenia"><span class="rk-wood-rbar-product" style="width:' + productShare + '%"></span><span class="rk-wood-rbar-underlay" style="width:' + underlayShare + '%"></span></div>';
    html += '<p class="rk-wood-rbar-note">Pasek pokazuje wyłącznie udział produktu i podkładu w obliczonej sumie R wykończenia. Jastrych, rury, izolacja i warunki wymiany ciepła nie są częścią tego paska, lecz muszą wejść do projektu całego emitera.</p></div></div>';

    resultBox.innerHTML = html;
  }

  installation.addEventListener("change", function () {
    syncInstallation();
  });

  form.addEventListener("submit", analyzeBoard);

  resetButton.addEventListener("click", function () {
    form.reset();
    syncInstallation();
    analyzeBoard();
  });

  renderComparison();
  syncInstallation();
  analyzeBoard();
}());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/wybor-idealnego-drewna-do-ogrzewania-podlogowego-kompletna-tabela-i-poradnik/">Drewno na ogrzewanie podłogowe – tabela gatunków i analizator deski.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jak często trzeba serwisować ogrzewanie podłogowe?</title>
		<link>https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 12 Oct 2025 12:21:11 +0000</pubDate>
				<category><![CDATA[Domowe systemy grzewcze]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Konserwacja systemów grzewczych]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady dla domu]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Serwis i konserwacja]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[częstotliwość serwisu ogrzewania]]></category>
		<category><![CDATA[jak dbać o ogrzewanie podłogowe]]></category>
		<category><![CDATA[konserwacja ogrzewania podłogowego]]></category>
		<category><![CDATA[koszt serwisu ogrzewania]]></category>
		<category><![CDATA[ogrzewanie podłogowe wodne]]></category>
		<category><![CDATA[płukanie instalacji grzewczej]]></category>
		<category><![CDATA[przegląd instalacji grzewczej]]></category>
		<category><![CDATA[rozdzielacz ogrzewania podłogowego]]></category>
		<category><![CDATA[serwis ogrzewania podłogowego]]></category>
		<category><![CDATA[zapowietrzone ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2801</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to synonim komfortu i efektywnego rozprowadzania ciepła. Jednak, aby przez lata cieszyć się jego bezawaryjną pracą, niezbędna jest odpowiednia profilaktyka. Wielu inwestorów zastanawia się więc, jak często trzeba serwisować ogrzewanie podłogowe i czy naprawdę jest to konieczne. Odpowiedź jest kluczowa dla zdrowia całej instalacji. Regularne przeglądy to nie fanaberia, a konieczność, która pozwala uniknąć kosztownych awarii w środku sezonu grzewczego, zapewnia optymalną wydajność i znacząco wydłuża żywotność wszystkich komponentów systemu. W naszym artykule znajdziesz szczegółowy harmonogram prac serwisowych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">Jak często trzeba serwisować ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
#rk-service-guide{--dark:#102536;--navy:#14384d;--blue:#078fbe;--cyan:#25c7d8;--cyan-soft:#e8fbff;--orange:#ff6a3d;--orange-soft:#fff1eb;--green:#16836b;--green-soft:#eaf8f3;--yellow:#e6ad2f;--yellow-soft:#fff8df;--red:#d94b3d;--red-soft:#fff0ee;--ink:#1f2c37;--text:#475967;--muted:#6b7e8a;--line:#d5e4eb;--soft:#f4f9fb;--white:#fff;width:100%;max-width:1180px;margin:34px auto 72px;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:18px;line-height:1.75}
#rk-service-guide,#rk-service-guide *{box-sizing:border-box}#rk-service-guide img,#rk-service-guide svg{display:block;max-width:100%}#rk-service-guide a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:3px}#rk-service-guide p{margin:0 0 18px}#rk-service-guide ul,#rk-service-guide ol{margin:0 0 20px;padding-left:24px}#rk-service-guide li+li{margin-top:8px}#rk-service-guide strong{color:var(--dark)}#rk-service-guide section[id]{scroll-margin-top:28px}
#rk-service-guide .rk-shell{position:relative;overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:28px;box-shadow:0 24px 65px rgba(16,37,54,.10)}#rk-service-guide .rk-progress-track{position:absolute;top:0;left:0;right:0;z-index:6;height:6px;background:rgba(255,255,255,.15)}#rk-service-guide .rk-progress{width:0;height:100%;background:linear-gradient(90deg,var(--cyan),var(--orange))}
#rk-service-guide .rk-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 88% 18%,rgba(37,199,216,.24),transparent 29%),radial-gradient(circle at 8% 110%,rgba(255,106,61,.20),transparent 33%),linear-gradient(130deg,#0f2738 0%,#143e53 58%,#102536 100%)}#rk-service-guide .rk-hero:after{content:"";position:absolute;top:-55%;right:-7%;width:310px;height:620px;border:34px solid rgba(255,255,255,.05);border-radius:50%;transform:rotate(-15deg)}#rk-service-guide .rk-hero-inner{position:relative;z-index:2;padding:72px 72px 64px}#rk-service-guide .rk-eyebrow,#rk-service-guide .rk-kicker{display:inline-flex;align-items:center;gap:9px;color:var(--blue);font-size:.72rem;font-weight:900;letter-spacing:.08em;line-height:1.35;text-transform:uppercase}#rk-service-guide .rk-eyebrow{color:#8cf3ff}#rk-service-guide .rk-eyebrow b{width:9px;height:9px;border-radius:99px;background:var(--orange);box-shadow:0 0 0 7px rgba(255,106,61,.14)}#rk-service-guide .rk-hero-title{max-width:980px;margin:18px 0 20px;color:#fff;font-size:clamp(2rem,4.5vw,4rem);font-weight:950;letter-spacing:-.045em;line-height:1.02}#rk-service-guide .rk-hero-lead{max-width:900px;margin-bottom:28px;color:#dceef4;font-size:1.09rem;line-height:1.68}#rk-service-guide .rk-meta{display:flex;flex-wrap:wrap;gap:11px 24px;color:#b9d5df;font-size:.76rem;font-weight:750}#rk-service-guide .rk-meta span{display:inline-flex;align-items:center;gap:8px}#rk-service-guide .rk-meta i{width:7px;height:7px;border-radius:99px;background:var(--cyan)}
#rk-service-guide .rk-nav{padding:24px 34px 25px;border-bottom:1px solid var(--line);background:#fbfdfe}#rk-service-guide .rk-nav strong{display:block;margin:0 0 12px;color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}#rk-service-guide .rk-nav-links{display:flex;flex-wrap:wrap;gap:8px}#rk-service-guide .rk-nav a{display:inline-flex;align-items:center;min-height:39px;padding:8px 14px;color:var(--dark);font-size:.72rem;font-weight:850;line-height:1.25;text-decoration:none;background:#edf5f8;border:1px solid transparent;border-radius:999px;transition:.2s ease}#rk-service-guide .rk-nav a:hover,#rk-service-guide .rk-nav a:focus-visible{color:var(--blue);border-color:var(--cyan);background:var(--cyan-soft);transform:translateY(-1px)}
#rk-service-guide .rk-section{padding:68px 72px;border-bottom:1px solid var(--line)}#rk-service-guide .rk-section:nth-of-type(even){background:#fcfeff}#rk-service-guide h2{max-width:960px;margin:9px 0 21px;color:var(--dark);font-size:clamp(1.65rem,3.2vw,2.65rem);font-weight:950;letter-spacing:-.035em;line-height:1.12}#rk-service-guide h3{margin:0 0 10px;color:var(--dark);font-size:1.14rem;font-weight:900;letter-spacing:-.015em;line-height:1.28}#rk-service-guide h4{margin:0 0 8px;color:var(--dark);font-size:.92rem;font-weight:900;line-height:1.35}#rk-service-guide .rk-intro{max-width:950px;color:var(--text);font-size:1.05rem}
#rk-service-guide .rk-answer{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);overflow:hidden;margin:30px 0;border:1px solid var(--line);border-radius:20px}#rk-service-guide .rk-answer-main{padding:30px;background:var(--cyan-soft)}#rk-service-guide .rk-answer-side{padding:30px;background:var(--dark)}#rk-service-guide .rk-answer-side h3{color:#fff}#rk-service-guide .rk-answer-side p{color:#d7e9ef}#rk-service-guide .rk-grid-2,#rk-service-guide .rk-grid-3,#rk-service-guide .rk-grid-4{display:grid;gap:18px;margin-top:26px}#rk-service-guide .rk-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}#rk-service-guide .rk-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}#rk-service-guide .rk-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}#rk-service-guide .rk-card{padding:25px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 30px rgba(16,37,54,.045)}#rk-service-guide .rk-card p:last-child{margin-bottom:0}#rk-service-guide .rk-card-number{display:block;margin-bottom:15px;color:var(--blue);font-size:.66rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}
#rk-service-guide .rk-notice{margin:26px 0 0;padding:20px 22px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:14px;background:var(--cyan-soft)}#rk-service-guide .rk-notice.is-orange{border-left-color:var(--orange);background:var(--orange-soft)}#rk-service-guide .rk-notice.is-green{border-left-color:var(--green);background:var(--green-soft)}#rk-service-guide .rk-notice.is-yellow{border-left-color:var(--yellow);background:var(--yellow-soft)}#rk-service-guide .rk-notice p:last-child{margin-bottom:0}
#rk-service-guide .rk-tool{overflow:hidden;margin-top:30px;color:#eaf6fa;background:var(--dark);border:1px solid #305269;border-radius:24px;box-shadow:0 22px 46px rgba(16,37,54,.18)}#rk-service-guide .rk-tool strong,#rk-service-guide .rk-tool h3,#rk-service-guide .rk-tool h4{color:#fff}#rk-service-guide .rk-tool p{color:#c7dce4}#rk-service-guide .rk-tool-head{display:flex;align-items:flex-start;justify-content:space-between;gap:26px;padding:30px 34px;background:linear-gradient(135deg,#14384d,#174d61);border-bottom:1px solid #31566c}#rk-service-guide .rk-tool-head p{max-width:790px;margin:5px 0 0;font-size:.82rem}#rk-service-guide .rk-reset{flex:0 0 auto;min-height:42px;padding:9px 16px;color:#dff8fc;font:inherit;font-size:.72rem;font-weight:850;cursor:pointer;border:1px solid #50778a;border-radius:999px;background:rgba(255,255,255,.06)}#rk-service-guide .rk-input-panel{padding:28px 34px 32px;border-bottom:1px solid #31566c}#rk-service-guide .rk-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}#rk-service-guide .rk-field{min-width:0}#rk-service-guide .rk-field label{display:block;min-height:42px;margin-bottom:7px;color:#ecf8fb;font-size:.69rem;font-weight:850;line-height:1.35}#rk-service-guide .rk-field select{width:100%;height:46px;margin:0;padding:9px 12px;color:var(--dark);font:inherit;font-size:.80rem;background:#fff;border:1px solid #a9c0cb;border-radius:9px;outline:none}#rk-service-guide .rk-field select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(37,199,216,.16)}
#rk-service-guide .rk-live{padding:26px 34px;border-bottom:1px solid #31566c;background:#112c3e}#rk-service-guide .rk-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}#rk-service-guide .rk-summary-card{min-width:0;padding:16px 14px;background:#17384a;border:1px solid #3b6074;border-radius:13px}#rk-service-guide .rk-summary-card span{display:block;min-height:34px;color:#9db9c4;font-size:.58rem;font-weight:800;line-height:1.35;text-transform:uppercase}#rk-service-guide .rk-summary-card strong{display:block;margin-top:7px;color:#fff;font-size:.94rem;line-height:1.2;overflow-wrap:anywhere}#rk-service-guide .rk-decision{margin:28px 34px 18px;padding:25px 26px;background:#173344;border:1px solid #3d6073;border-left:6px solid var(--cyan);border-radius:17px}#rk-service-guide .rk-decision.is-ok{border-left-color:var(--green)}#rk-service-guide .rk-decision.is-warn{border-left-color:var(--orange)}#rk-service-guide .rk-decision.is-stop{border-left-color:var(--red)}#rk-service-guide .rk-decision span{display:block;margin-bottom:7px;color:#8facb8;font-size:.61rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}#rk-service-guide .rk-decision h3{font-size:1.28rem}#rk-service-guide .rk-decision p{margin:0;font-size:.77rem}
#rk-service-guide .rk-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:0 34px 18px;align-items:stretch}#rk-service-guide .rk-visual-card{display:flex;flex-direction:column;min-width:0;padding:22px;background:#173344;border:1px solid #3d6073;border-radius:17px}#rk-service-guide .rk-visual-card>p{margin-bottom:15px;font-size:.71rem}#rk-service-guide .rk-action-list{display:grid;gap:10px;margin-top:auto}#rk-service-guide .rk-action{position:relative;padding:13px 13px 13px 42px;color:#cfe2e9;font-size:.69rem;background:#102b3c;border:1px solid #35576a;border-radius:10px}#rk-service-guide .rk-action:before{content:"✓";position:absolute;left:12px;top:12px;display:grid;place-items:center;width:21px;height:21px;color:#fff;font-size:.62rem;font-weight:950;background:var(--green);border-radius:50%}#rk-service-guide .rk-timeline{display:grid;gap:12px;margin-top:auto}#rk-service-guide .rk-time{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;align-items:start;padding:13px;background:#102b3c;border:1px solid #35576a;border-radius:10px}#rk-service-guide .rk-time b{color:#7ee7f2;font-size:.64rem;text-transform:uppercase}#rk-service-guide .rk-time span{color:#cfe2e9;font-size:.68rem;line-height:1.5}
#rk-service-guide .rk-diagnostics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:0 34px 30px}#rk-service-guide .rk-diagnostic{padding:18px;background:#173344;border:1px solid #3d6073;border-left:5px solid var(--cyan);border-radius:13px}#rk-service-guide .rk-diagnostic.is-warn{border-left-color:var(--orange)}#rk-service-guide .rk-diagnostic.is-alert{border-left-color:var(--red)}#rk-service-guide .rk-diagnostic.is-ok{border-left-color:var(--green)}#rk-service-guide .rk-diagnostic span{display:block;margin-bottom:6px;color:#8facb8;font-size:.57rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase}#rk-service-guide .rk-diagnostic strong{display:block;margin-bottom:7px;font-size:.86rem}#rk-service-guide .rk-diagnostic p{margin:0;color:#bdd1d9;font-size:.67rem;line-height:1.55}#rk-service-guide .rk-tool-note{margin:0;padding:0 34px 28px;color:#91adb8;font-size:.62rem}
#rk-service-guide .rk-cta{position:relative;overflow:hidden;margin:0;padding:46px 54px;color:#fff;background:linear-gradient(135deg,#102536,#165267)}#rk-service-guide .rk-cta:after{content:"";position:absolute;right:-90px;bottom:-120px;width:310px;height:310px;border:34px solid rgba(37,199,216,.10);border-radius:50%}#rk-service-guide .rk-cta>*{position:relative;z-index:2}#rk-service-guide .rk-cta h2{color:#fff}#rk-service-guide .rk-cta p{max-width:930px;color:#d6e8ee}#rk-service-guide .rk-cta-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;margin-top:10px;padding:13px 23px;color:#fff!important;font-size:.82rem;font-weight:950;line-height:1.25;text-align:center;text-decoration:none!important;background:linear-gradient(135deg,var(--orange),#ff8a46);border:1px solid rgba(255,255,255,.22);border-radius:11px;box-shadow:0 12px 26px rgba(255,106,61,.24);transition:.2s ease}#rk-service-guide .rk-cta-button:hover{transform:translateY(-2px)}#rk-service-guide .rk-disclosure{display:block;max-width:850px;margin-top:12px;color:#9ebbc6;font-size:.60rem}
#rk-service-guide .rk-table-wrap{margin-top:28px}#rk-service-guide .rk-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;font-size:.81rem;border:1px solid var(--line);border-radius:16px}#rk-service-guide .rk-table th,#rk-service-guide .rk-table td{padding:15px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}#rk-service-guide .rk-table th{color:#fff;font-size:.68rem;line-height:1.35;background:var(--dark)}#rk-service-guide .rk-table td{color:var(--text);background:#fff}#rk-service-guide .rk-table tbody tr:last-child td{border-bottom:0}#rk-service-guide .rk-table td strong{display:block}
#rk-service-guide .rk-errors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:27px}#rk-service-guide .rk-error{display:grid;grid-template-columns:88px minmax(0,1fr);gap:17px;align-items:start;padding:20px;background:#fff;border:1px solid var(--line);border-radius:15px}#rk-service-guide .rk-error b{padding:8px;color:var(--red);font-size:.61rem;text-align:center;background:var(--red-soft);border-radius:8px}#rk-service-guide .rk-error p{margin:0;font-size:.81rem}#rk-service-guide .rk-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:26px}#rk-service-guide .rk-checkitem{position:relative;padding:15px 16px 15px 47px;color:var(--text);font-size:.80rem;background:#fff;border:1px solid var(--line);border-radius:12px}#rk-service-guide .rk-checkitem:before{content:"✓";position:absolute;left:15px;top:14px;display:grid;place-items:center;width:23px;height:23px;color:#fff;font-size:.65rem;font-weight:950;background:var(--green);border-radius:99px}
#rk-service-guide .rk-faq{display:grid;gap:11px;margin-top:26px}#rk-service-guide .rk-faq details{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:13px}#rk-service-guide .rk-faq summary{position:relative;padding:19px 56px 19px 20px;color:var(--dark);font-size:.87rem;font-weight:900;cursor:pointer;list-style:none}#rk-service-guide .rk-faq summary::-webkit-details-marker{display:none}#rk-service-guide .rk-faq summary:after{content:"+";position:absolute;right:18px;top:50%;display:grid;place-items:center;width:27px;height:27px;color:var(--blue);font-size:1.1rem;background:var(--cyan-soft);border-radius:99px;transform:translateY(-50%)}#rk-service-guide .rk-faq details[open] summary:after{content:"−"}#rk-service-guide .rk-faq-answer{padding:0 20px 19px;color:var(--text);font-size:.83rem}#rk-service-guide .rk-source-box{margin-top:25px;padding:25px;background:var(--soft);border:1px solid var(--line);border-radius:15px}#rk-service-guide .rk-update{margin-top:15px;color:var(--muted);font-size:.67rem;font-weight:800}
#rk-service-guide .rk-author{margin:0;background:#f7fbfd;border-bottom:1px solid var(--line)}#rk-service-guide .rk-author>input{position:absolute;opacity:0;pointer-events:none}#rk-service-guide .rk-author-head{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:38px 52px 24px}#rk-service-guide .rk-author-head h2{margin-bottom:5px}#rk-service-guide .rk-author-head p{margin:0;color:var(--muted);font-size:.77rem}#rk-service-guide .rk-author-mark{color:var(--blue);font-size:.64rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}#rk-service-guide .rk-author-layout{display:grid;grid-template-columns:300px minmax(0,1fr);border-top:1px solid var(--line)}#rk-service-guide .rk-author-side{padding:28px;text-align:center;background:var(--dark)}#rk-service-guide .rk-author-photo{width:150px;height:150px;margin:0 auto 17px;overflow:hidden;border:5px solid rgba(255,255,255,.12);border-radius:50%}#rk-service-guide .rk-author-photo img{width:100%;height:100%;object-fit:cover}#rk-service-guide .rk-author-name{color:#fff;font-size:1.1rem;font-weight:950}#rk-service-guide .rk-author-role{margin-top:6px;color:#afc9d3;font-size:.67rem;line-height:1.55}#rk-service-guide .rk-author-social-label{margin-top:24px;color:#87a6b2;font-size:.57rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}#rk-service-guide .rk-author-social{display:flex;justify-content:center;gap:9px;margin-top:10px}#rk-service-guide .rk-author-social a{display:grid;place-items:center;width:41px;height:41px;color:#cde2e9;border:1px solid #446577;border-radius:50%}#rk-service-guide .rk-author-social svg{width:18px;height:18px;fill:currentColor}#rk-service-guide .rk-author-main{padding:28px 34px 34px}#rk-service-guide .rk-author-quote{position:relative;margin:0 0 23px;padding:23px 24px 23px 63px;background:#fff;border:1px solid var(--line);border-radius:14px}#rk-service-guide .rk-author-quote:before{content:"“";position:absolute;left:20px;top:2px;color:var(--cyan);font-family:Georgia,serif;font-size:4rem;line-height:1}#rk-service-guide .rk-author-quote p{margin:0;color:var(--dark);font-size:.86rem;font-weight:750}#rk-service-guide .rk-author-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}#rk-service-guide .rk-author-tab{padding:9px 13px;color:var(--muted);font-size:.62rem;font-weight:900;cursor:pointer;background:#e8f1f5;border-radius:999px}#rk-service-guide .rk-author-panel{display:none;color:var(--text);font-size:.79rem}#rk-service-guide #rk-service-author-about:checked~.rk-author-layout .rk-author-panel-about,#rk-service-guide #rk-service-author-exp:checked~.rk-author-layout .rk-author-panel-exp,#rk-service-guide #rk-service-author-sites:checked~.rk-author-layout .rk-author-panel-sites{display:block}#rk-service-guide #rk-service-author-about:checked~.rk-author-layout label[for="rk-service-author-about"],#rk-service-guide #rk-service-author-exp:checked~.rk-author-layout label[for="rk-service-author-exp"],#rk-service-guide #rk-service-author-sites:checked~.rk-author-layout label[for="rk-service-author-sites"]{color:#fff;background:var(--blue)}#rk-service-guide .rk-site-links{display:flex;flex-wrap:wrap;gap:9px}#rk-service-guide .rk-site-links a{padding:8px 12px;font-size:.65rem;font-weight:850;text-decoration:none;background:var(--cyan-soft);border-radius:999px}#rk-service-guide .rk-final-cta{padding-top:58px;padding-bottom:58px}
#rk-service-guide .rk-author-lead{color:var(--dark);font-size:.88rem;font-weight:750}#rk-service-guide .rk-author-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}#rk-service-guide .rk-author-fact{padding:14px 15px;background:#fff;border:1px solid var(--line);border-radius:11px}#rk-service-guide .rk-author-fact b{display:block;margin-bottom:4px;color:var(--blue);font-size:.58rem;letter-spacing:.05em;text-transform:uppercase}#rk-service-guide .rk-author-fact span{display:block;color:var(--dark);font-size:.71rem;font-weight:800;line-height:1.45}#rk-service-guide .rk-author-topics{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 18px;padding:0;list-style:none}#rk-service-guide .rk-author-topics li{margin:0;padding:7px 10px;color:var(--navy);font-size:.61rem;font-weight:800;background:var(--cyan-soft);border-radius:999px}#rk-service-guide .rk-author-method{margin-top:17px;padding:15px 17px;background:var(--green-soft);border-left:4px solid var(--green);border-radius:10px}#rk-service-guide .rk-author-method strong{display:block;margin-bottom:4px;font-size:.68rem}#rk-service-guide .rk-author-method p{margin:0;font-size:.70rem;line-height:1.55}
@media(max-width:980px){#rk-service-guide .rk-hero-inner,#rk-service-guide .rk-section{padding-left:42px;padding-right:42px}#rk-service-guide .rk-fields{grid-template-columns:repeat(2,minmax(0,1fr))}#rk-service-guide .rk-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}#rk-service-guide .rk-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}#rk-service-guide .rk-author-layout{grid-template-columns:255px minmax(0,1fr)}}
@media(max-width:760px){#rk-service-guide{margin:18px auto 46px;font-size:16px}#rk-service-guide .rk-shell{border-radius:18px}#rk-service-guide .rk-hero-inner{padding:54px 24px 42px}#rk-service-guide .rk-hero-title{font-size:clamp(2rem,11vw,3rem)}#rk-service-guide .rk-nav{padding:20px 18px}#rk-service-guide .rk-nav a{min-height:36px;padding:7px 11px;font-size:.66rem}#rk-service-guide .rk-section{padding:48px 22px}#rk-service-guide .rk-answer,#rk-service-guide .rk-grid-2,#rk-service-guide .rk-grid-3,#rk-service-guide .rk-grid-4,#rk-service-guide .rk-errors,#rk-service-guide .rk-checklist,#rk-service-guide .rk-visual-grid,#rk-service-guide .rk-diagnostics,#rk-service-guide .rk-author-layout{grid-template-columns:1fr}#rk-service-guide .rk-tool-head{display:block;padding:25px 20px}#rk-service-guide .rk-reset{margin-top:8px}#rk-service-guide .rk-input-panel,#rk-service-guide .rk-live{padding-left:20px;padding-right:20px}#rk-service-guide .rk-fields{grid-template-columns:1fr}#rk-service-guide .rk-field label{min-height:0}#rk-service-guide .rk-summary{grid-template-columns:repeat(2,minmax(0,1fr))}#rk-service-guide .rk-decision{margin-left:20px;margin-right:20px}#rk-service-guide .rk-visual-grid,#rk-service-guide .rk-diagnostics{padding-left:20px;padding-right:20px}#rk-service-guide .rk-tool-note{padding-left:20px;padding-right:20px}#rk-service-guide .rk-cta{padding:42px 24px}#rk-service-guide .rk-cta-button{width:100%}#rk-service-guide .rk-author-head{display:block;padding:34px 22px 22px}#rk-service-guide .rk-author-main{padding:24px 20px}#rk-service-guide .rk-author-facts{grid-template-columns:1fr}#rk-service-guide .rk-table{border:0;background:transparent}#rk-service-guide .rk-table thead{display:none}#rk-service-guide .rk-table tbody,#rk-service-guide .rk-table tr,#rk-service-guide .rk-table td{display:block;width:100%}#rk-service-guide .rk-table tr{overflow:hidden;margin-bottom:14px;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 22px rgba(16,37,54,.05)}#rk-service-guide .rk-table td{display:grid;grid-template-columns:minmax(105px,.75fr) minmax(0,1.25fr);gap:13px;padding:13px 15px;border-bottom:1px solid var(--line)}#rk-service-guide .rk-table td:before{content:attr(data-label);color:var(--muted);font-size:.61rem;font-weight:900;line-height:1.35;text-transform:uppercase}#rk-service-guide .rk-table td:last-child{border-bottom:0}}
@media(max-width:430px){#rk-service-guide .rk-summary{grid-template-columns:1fr 1fr}#rk-service-guide .rk-summary-card{padding:13px 11px}#rk-service-guide .rk-time{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#rk-service-guide *,#rk-service-guide *:before,#rk-service-guide *:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
</style>

<article id="rk-service-guide" aria-label="Jak często serwisować ogrzewanie podłogowe">
<div class="rk-shell">
<div class="rk-progress-track" aria-hidden="true"><div class="rk-progress" id="rk-service-progress"></div></div>
<header class="rk-hero"><div class="rk-hero-inner"><span class="rk-eyebrow"><b aria-hidden="true"></b> Serwis • diagnostyka • hydraulika</span><div class="rk-hero-title">Podłogówki nie serwisuje się według jednego kalendarza. Najpierw sprawdza się objawy i wymagania urządzeń.</div><p class="rk-hero-lead">Zobacz, co kontrolować przed sezonem, kiedy reagować natychmiast oraz dlaczego sprawnej instalacji nie należy rutynowo płukać, odpowietrzać ani ponownie regulować.</p><div class="rk-meta"><span><i aria-hidden="true"></i>Czytanie: około 24 minut</span><span><i aria-hidden="true"></i>Asystent serwisu bez fikcyjnego kalkulatora</span><span><i aria-hidden="true"></i>Aktualizacja: 30 sierpnia 2026 r.</span></div></div></header>
<nav class="rk-nav" aria-label="Spis treści artykułu"><strong>Na skróty — wszystkie główne części poradnika</strong><div class="rk-nav-links"><a href="#rk-service-answer">Szybka odpowiedź</a><a href="#rk-service-scope">Zakres serwisu</a><a href="#rk-service-obligation">Czy obowiązkowy?</a><a href="#rk-service-schedule">Harmonogram</a><a href="#rk-service-user">Kontrola użytkownika</a><a href="#rk-service-tool-section">Asystent</a><a href="#rk-service-result">Odczyt wyniku</a><a href="#rk-service-manifold">Rozdzielacz</a><a href="#rk-service-pump">Pompa</a><a href="#rk-service-controls">Sterowanie</a><a href="#rk-service-pressure">Ciśnienie</a><a href="#rk-service-air">Odpowietrzanie</a><a href="#rk-service-flushing">Płukanie</a><a href="#rk-service-medium">Medium</a><a href="#rk-service-warning">Objawy</a><a href="#rk-service-records">Dane dla serwisu</a><a href="#rk-service-protocol">Protokół</a><a href="#rk-service-errors">Błędy</a><a href="#rk-service-faq">FAQ</a><a href="#rk-service-sources">Źródła</a></div></nav>
<main>
<section class="rk-section" id="rk-service-answer"><span class="rk-kicker">Szybka odpowiedź</span><h2>Jak często trzeba serwisować ogrzewanie podłogowe?</h2><div class="rk-answer"><div class="rk-answer-main"><p><strong>Nie istnieje jeden termin serwisu właściwy dla całej podłogówki.</strong> Źródło ciepła obsługuje się według jego instrukcji, wymagań gwarancyjnych i przepisów. Dostępne elementy hydrauliczne oraz automatykę warto skontrolować przed sezonem. Pętle, medium i nastawy diagnozuje się po ingerencji albo po wystąpieniu objawów — nie tylko dlatego, że minęły trzy lub pięć lat.</p><p>Jeżeli instalacja jest szczelna, przepływy są zgodne z dokumentacją, pomieszczenia osiągają zadane temperatury i nie pojawiają się błędy, nie należy profilaktycznie przestawiać rotametrów, dolewać wody ani wykonywać chemicznego płukania.</p></div><aside class="rk-answer-side"><h3>Najważniejsza zasada</h3><p>Serwis powinien zachować prawidłowe nastawy i wykrywać przyczynę problemu. Nie może tworzyć nowych problemów przez przypadkową regulację sprawnego układu.</p></aside></div><div class="rk-notice is-green"><p><strong>Praktyczne minimum:</strong> przed sezonem sprawdź reakcję wszystkich stref, stabilność ciśnienia, pracę pompy, widoczne połączenia rozdzielacza oraz komunikaty źródła ciepła. Zakres obsługi urządzenia ustal z jego dokumentacji.</p></div></section>

<section class="rk-section" id="rk-service-scope"><span class="rk-kicker">Trzy różne obszary</span><h2>Serwis źródła ciepła a kontrola podłogówki</h2><p class="rk-intro">Kocioł, pompa ciepła i wodne pętle podłogowe tworzą jeden system, ale nie mają identycznych czynności ani terminów obsługi.</p><div class="rk-grid-3"><div class="rk-card"><span class="rk-card-number">01 • urządzenie</span><h3>Źródło ciepła</h3><p>Zakres wynika z instrukcji, warunków gwarancji, konstrukcji urządzenia oraz właściwych przepisów. Może obejmować czynności niedotyczące samej podłogówki.</p></div><div class="rk-card"><span class="rk-card-number">02 • hydraulika</span><h3>Rozdzielacz i obieg</h3><p>Kontroluje się dostępne połączenia, przepływy, zawory, pompę, odpowietrzniki, separator oraz zachowanie ciśnienia.</p></div><div class="rk-card"><span class="rk-card-number">03 • automatyka</span><h3>Termostaty i siłowniki</h3><p>Sprawdza się, czy polecenie z termostatu dociera do listwy i czy właściwy siłownik rzeczywiście otwiera odpowiednią pętlę.</p></div></div><div class="rk-notice"><p>Kontrola palnika, spalin albo elementów pompy ciepła nie powinna być opisywana jako uniwersalny „serwis rur w podłodze”. Każdy obszar wymaga odpowiednich kompetencji i procedury.</p></div></section>

<section class="rk-section" id="rk-service-obligation"><span class="rk-kicker">Zalecenie to nie zawsze obowiązek</span><h2>Czy coroczny przegląd podłogówki jest obowiązkowy?</h2><p>Coroczna kontrola użytkowa przed sezonem jest rozsądną praktyką, ale nie należy przedstawiać jej jako jednego ustawowego obowiązku obejmującego każdą domową instalację podłogową. Osobne wymagania mogą dotyczyć instalacji gazowej, przewodów kominowych, źródła ciepła albo warunków gwarancji.</p><p>Właściciel powinien połączyć trzy poziomy wymagań:</p><ul><li>obowiązki wynikające z przepisów właściwych dla budynku i urządzeń,</li><li>harmonogram określony w dokumentacji producenta źródła i wyposażenia,</li><li>kontrolę działania podłogówki wynikającą z jej rzeczywistego stanu.</li></ul><div class="rk-notice is-yellow"><p><strong>Nie używamy zdania „każdą podłogówkę trzeba obowiązkowo serwisować raz w roku”.</strong> Poprawne jest zalecenie kontroli przed sezonem, z wyraźnym oddzieleniem jej od prawnych i gwarancyjnych wymagań dotyczących konkretnych urządzeń.</p></div></section>

<section class="rk-section" id="rk-service-schedule"><span class="rk-kicker">Zdarzenia zamiast sztywnej daty</span><h2>Harmonogram serwisu ogrzewania podłogowego</h2><div class="rk-table-wrap"><table class="rk-table"><thead><tr><th>Moment</th><th>Zakres kontroli</th><th>Czego nie robić automatycznie</th></tr></thead><tbody><tr><td data-label="Moment"><strong>Na bieżąco</strong></td><td data-label="Zakres">Obserwacja komfortu, komunikatów, wycieków i nietypowych dźwięków</td><td data-label="Nie robić">Nie dopuszczać stale wody bez znalezienia ubytku</td></tr><tr><td data-label="Moment"><strong>Przed sezonem</strong></td><td data-label="Zakres">Test stref, pompy, siłowników, ciśnienia i widocznych elementów rozdzielacza</td><td data-label="Nie robić">Nie zmieniać sprawdzonych nastaw przepływu</td></tr><tr><td data-label="Moment"><strong>Według instrukcji</strong></td><td data-label="Zakres">Źródło ciepła, filtry, separatory i elementy wymagające obsługi</td><td data-label="Nie robić">Nie przenosić jednego interwału na wszystkie urządzenia</td></tr><tr><td data-label="Moment"><strong>Po ingerencji</strong></td><td data-label="Zakres">Szczelność, odpowietrzenie, ciśnienie, przepływy i zgodność ustawień</td><td data-label="Nie robić">Nie uruchamiać bez protokołu nowych nastaw</td></tr><tr><td data-label="Moment"><strong>Po objawie</strong></td><td data-label="Zakres">Diagnostyka przyczyny hydraulicznej, elektrycznej albo jakości medium</td><td data-label="Nie robić">Nie płukać i nie odpowietrzać „na próbę”</td></tr></tbody></table></div></section>

<section class="rk-section" id="rk-service-user"><span class="rk-kicker">Bez rozbierania instalacji</span><h2>Co użytkownik może sprawdzić samodzielnie?</h2><p>Użytkownik nie musi regulować układu, aby wcześnie zauważyć zmianę. Największą wartość daje porównanie z wcześniejszym, prawidłowym stanem.</p><div class="rk-grid-4"><div class="rk-card"><h3>Ciśnienie</h3><p>Zapisz odczyt przy podobnej temperaturze instalacji. Ważniejszy od jednej liczby jest trend i częstotliwość uzupełniania.</p></div><div class="rk-card"><h3>Przepływy</h3><p>Porównaj rotametry z protokołem lub zdjęciem nastaw, gdy wszystkie właściwe strefy są otwarte.</p></div><div class="rk-card"><h3>Reakcja stref</h3><p>Sprawdź, czy termostat wywołuje żądanie i czy odpowiedni siłownik reaguje po czasie wymaganym dla jego konstrukcji.</p></div><div class="rk-card"><h3>Widoczne elementy</h3><p>Szukaj wilgoci, osadu, śladów korozji, uszkodzeń przewodów i niepokojących komunikatów.</p></div></div><div class="rk-notice is-orange"><p><strong>Nie zdejmuj zabezpieczeń urządzeń gazowych ani elektrycznych i nie obracaj przypadkowo rotametrów.</strong> Zdjęcie rozdzielacza oraz zapis wartości przed ingerencją często są dla diagnostyki cenniejsze niż samodzielna próba naprawy.</p></div></section>

<section class="rk-section" id="rk-service-tool-section"><span class="rk-kicker">Interaktywny asystent</span><h2>Sprawdź, jakiej reakcji wymaga Twoja instalacja</h2><p class="rk-intro">To nie jest kalkulator terminów. Asystent porządkuje objawy i kieruje do obserwacji, kontroli przedsezonowej albo diagnostyki. Nie rozpoznaje usterki bez pomiarów.</p><div class="rk-tool" id="rk-service-tool"><div class="rk-tool-head"><div><h3>Asystent serwisu i diagnostyki podłogówki</h3><p>Wybierz stan faktyczny. Wynik zmieni się natychmiast i pokaże, czego nie należy robić bez rozpoznania przyczyny.</p></div><button class="rk-reset" id="rk-service-reset" type="button">Przywróć przykład</button></div><div class="rk-input-panel"><div class="rk-fields">
<div class="rk-field"><label for="rk-service-source">Źródło ciepła</label><select id="rk-service-source"><option value="heatpump">Pompa ciepła</option><option value="gas" selected>Kocioł gazowy</option><option value="solid">Kocioł na paliwo stałe</option><option value="other">Inne / nie wiem</option></select></div>
<div class="rk-field"><label for="rk-service-operation">Ogólna praca instalacji</label><select id="rk-service-operation"><option value="normal" selected>Działa prawidłowo</option><option value="uneven">Nierówne temperatury</option><option value="noheat">Brak ogrzewania</option></select></div>
<div class="rk-field"><label for="rk-service-pressure-input">Zachowanie ciśnienia</label><select id="rk-service-pressure-input"><option value="stable" selected>Stabilne</option><option value="slow">Powoli spada</option><option value="rapid">Gwałtownie spada</option><option value="unknown">Nie wiem</option></select></div>
<div class="rk-field"><label for="rk-service-leak">Widoczne ślady wycieku</label><select id="rk-service-leak"><option value="none" selected>Brak</option><option value="moist">Wilgoć / ślady</option><option value="visible">Aktywny wyciek</option></select></div>
<div class="rk-field"><label for="rk-service-flow">Przepływy na rotametrach</label><select id="rk-service-flow"><option value="normal" selected>Stabilne / zgodne</option><option value="changed">Zmieniły się</option><option value="zero">Jedna lub więcej pętli: zero</option><option value="unknown">Brak danych</option></select></div>
<div class="rk-field"><label for="rk-service-noise">Dźwięki instalacji</label><select id="rk-service-noise"><option value="none" selected>Brak nietypowych</option><option value="gurgle">Bulgotanie</option><option value="whistle">Szum / gwizd</option><option value="mechanical">Hałas mechaniczny pompy</option></select></div>
<div class="rk-field"><label for="rk-service-controls-input">Automatyka i siłowniki</label><select id="rk-service-controls-input"><option value="normal" selected>Reagują prawidłowo</option><option value="one">Problem jednej strefy</option><option value="many">Wiele stref nie reaguje</option><option value="unknown">Nie sprawdzono</option></select></div>
<div class="rk-field"><label for="rk-service-intervention">Ostatnia ingerencja</label><select id="rk-service-intervention"><option value="none" selected>Brak ostatnich zmian</option><option value="refill">Opróżnienie / napełnienie</option><option value="modernization">Modernizacja / wymiana elementu</option></select></div>
<div class="rk-field"><label for="rk-service-medium-input">Medium w instalacji</label><select id="rk-service-medium-input"><option value="water" selected>Znana woda instalacyjna</option><option value="antifreeze">Płyn niezamarzający</option><option value="unknown">Nieznane</option></select></div>
<div class="rk-field"><label for="rk-service-documentation">Dokumentacja nastaw</label><select id="rk-service-documentation"><option value="yes" selected>Projekt / protokół jest</option><option value="photo">Tylko zdjęcia / częściowe dane</option><option value="no">Brak</option></select></div>
<div class="rk-field"><label for="rk-service-last">Ostatnia kontrola działania</label><select id="rk-service-last"><option value="recent" selected>W bieżącym lub poprzednim sezonie</option><option value="old">Dawniej</option><option value="unknown">Nie wiadomo</option></select></div>
<div class="rk-field"><label for="rk-service-source-due">Serwis źródła według instrukcji</label><select id="rk-service-source-due"><option value="current" selected>Aktualny</option><option value="due">Termin zbliża się / minął</option><option value="unknown">Nie sprawdzono</option></select></div>
</div></div>
<div class="rk-live" aria-live="polite"><div class="rk-summary"><div class="rk-summary-card"><span>Poziom reakcji</span><strong id="rk-service-level">—</strong></div><div class="rk-summary-card"><span>Najbliższy krok</span><strong id="rk-service-next">—</strong></div><div class="rk-summary-card"><span>Regulacja przepływów</span><strong id="rk-service-balance">—</strong></div><div class="rk-summary-card"><span>Płukanie instalacji</span><strong id="rk-service-flush-out">—</strong></div></div></div>
<div class="rk-decision" id="rk-service-decision-card"><span>Wynik asystenta</span><h3 id="rk-service-decision-title">—</h3><p id="rk-service-decision-text">—</p></div>
<div class="rk-visual-grid"><div class="rk-visual-card"><h3>Zalecana kolejność</h3><p>Lista aktualizuje się zgodnie z wybranymi objawami.</p><div class="rk-action-list" id="rk-service-actions"></div></div><div class="rk-visual-card"><h3>Harmonogram zdarzeniowy</h3><p>Nie wyznacza daty płukania. Pokazuje momenty, w których kontrola ma techniczne uzasadnienie.</p><div class="rk-timeline"><div class="rk-time"><b>Na bieżąco</b><span>Obserwuj komunikaty, komfort, wycieki i nietypowe dźwięki.</span></div><div class="rk-time"><b>Przed sezonem</b><span>Przetestuj źródło, pompę, strefy, ciśnienie i rozdzielacz.</span></div><div class="rk-time"><b>Po ingerencji</b><span>Sprawdź szczelność, powietrze, przepływy i zapis nowych nastaw.</span></div><div class="rk-time"><b>Po objawie</b><span>Najpierw diagnozuj przyczynę; nie wykonuj przypadkowego płukania.</span></div></div></div></div>
<div class="rk-diagnostics"><div class="rk-diagnostic" id="rk-service-safety-card"><span>Bezpieczeństwo</span><strong id="rk-service-safety-title">—</strong><p id="rk-service-safety-text">—</p></div><div class="rk-diagnostic" id="rk-service-hyd-card"><span>Hydraulika</span><strong id="rk-service-hyd-title">—</strong><p id="rk-service-hyd-text">—</p></div><div class="rk-diagnostic" id="rk-service-doc-card"><span>Dokumentacja</span><strong id="rk-service-doc-title">—</strong><p id="rk-service-doc-text">—</p></div></div><p class="rk-tool-note">Asystent nie mierzy ciśnienia, temperatur, przepływów ani parametrów elektrycznych. Wynik ma charakter edukacyjny i nie zastępuje oględzin.</p></div></section>

<section class="rk-cta rk-sales-cta" aria-label="Zamów projekt lub korektę hydrauliki"><span class="rk-kicker" style="color:#79e8f3">Gdy problem wraca mimo kolejnych interwencji</span><h2>Nie każda usterka oznacza konieczność płukania</h2><p>Powtarzające się zapowietrzanie, brak przepływu albo nierówne temperatury mogą wynikać z niewłaściwej pompy, oporu krytycznej pętli, średnicy magistrali, błędnych nastaw lub braku równoważenia. Bez długości obwodów, wymaganych przepływów i strat ciśnienia serwis często kończy się regulacją metodą prób.</p><a class="rk-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt lub korektę hydrauliki instalacji</a><small class="rk-disclosure">Projekt nie zastępuje naprawy awaryjnej. Przy aktywnym wycieku, błędzie urządzenia albo zagrożeniu bezpieczeństwa najpierw potrzebny jest właściwy serwis na miejscu.</small></section>

<section class="rk-section" id="rk-service-result"><span class="rk-kicker">Interpretacja</span><h2>Jak czytać wynik asystenta serwisu?</h2><div class="rk-grid-4"><div class="rk-card"><h3>Obserwacja</h3><p>Instalacja nie pokazuje nieprawidłowości. Zachowaj wartości bazowe i wykonaj zwykłą kontrolę przed sezonem.</p></div><div class="rk-card"><h3>Kontrola planowa</h3><p>Nie ma objawu awaryjnego, ale termin źródła lub dokumentacja wymagają uzupełnienia.</p></div><div class="rk-card"><h3>Diagnostyka</h3><p>Zmiana przepływu, temperatury albo automatyki wymaga pomiarów przed regulacją czy płukaniem.</p></div><div class="rk-card"><h3>Pilna reakcja</h3><p>Aktywny wyciek, szybki spadek ciśnienia lub brak ogrzewania przy mrozie wymagają zabezpieczenia i kontaktu z serwisem.</p></div></div><div class="rk-notice"><p>Wynik wskazuje <strong>poziom reakcji</strong>, a nie nazwę uszkodzonego elementu. Ten sam objaw może mieć przyczynę hydrauliczną, elektryczną, automatyczną albo wynikać z pracy źródła ciepła.</p></div></section>
<section class="rk-section" id="rk-service-manifold"><span class="rk-kicker">Dostępny punkt kontroli</span><h2>Jak sprawdzić rozdzielacz i rotametry?</h2><p>Rozdzielacz pozwala porównać pracę równoległych pętli, ale sam odczyt rotametru nie wyjaśnia przyczyny zmiany. Kontrolę wykonuje się przy znanym stanie pompy, otwartych właściwych strefach i ustabilizowanej pracy.</p><div class="rk-grid-3"><div class="rk-card"><h3>Oględziny</h3><p>Sprawdź połączenia, ślady wilgoci, osady, stan izolacji, odpowietrzniki i zawory serwisowe.</p></div><div class="rk-card"><h3>Porównanie</h3><p>Zestaw wskazania ze zdjęciem lub protokołem. Różne pętle nie muszą mieć identycznych przepływów.</p></div><div class="rk-card"><h3>Reakcja zaworów</h3><p>Sprawdź, czy zawór nie pozostał zamknięty i czy siłownik otrzymuje sygnał. Nie odkręcaj rotametru bez rozpoznania.</p></div></div><p>Jeżeli potrzebujesz prawidłowej metody odczytu i ustawiania, zobacz poradnik: <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/">rotametr w ogrzewaniu podłogowym</a>. Budowę całego zespołu rozwija opracowanie o <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">rozdzielaczu do podłogówki</a>.</p></section>

<section class="rk-section" id="rk-service-pump"><span class="rk-kicker">Nie tylko „czy się obraca”</span><h2>Co kontrolować przy pompie obiegowej?</h2><p>Pompa powinna zapewnić sumę przepływów przy oporze obiegu krytycznego. Serwis nie polega na automatycznym ustawieniu najwyższego biegu. Zbyt duża dyspozycja może powodować szum i niepotrzebne zużycie energii, a zbyt mała — ograniczać przepływy w wymagających obwodach.</p><div class="rk-grid-2"><div class="rk-card"><h3>Sprawdź przed zmianą nastawy</h3><ul><li>tryb pracy i aktualne ustawienie,</li><li>liczbę faktycznie otwartych pętli,</li><li>przepływy na rozdzielaczu,</li><li>stan filtra i separatora,</li><li>temperatury zasilania oraz powrotu.</li></ul><h4>Zmiana nastawy pompy</h4><p>Ma sens dopiero po porównaniu przepływów i oporu obiegu krytycznego z wymaganym punktem pracy.</p></div><div class="rk-card"><h3>Sygnały do diagnostyki</h3><ul><li>hałas mechaniczny albo wibracje,</li><li>duży szum przepływu,</li><li>brak wskazań mimo otwartych zaworów,</li><li>częste błędy źródła związane z przepływem,</li><li>gwałtowna zmiana po modernizacji.</li></ul><h4>Najwyższy bieg nie jest testem naprawczym</h4><p>Może chwilowo zmienić objaw, ale nie rozstrzyga, czy przyczyną jest pompa, zawór, powietrze albo nadmierny opór.</p></div></div><p>Dobór punktu pracy omawia <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/">kalkulator doboru pompy obiegowej w podłogówce</a>.</p></section>

<section class="rk-section" id="rk-service-controls"><span class="rk-kicker">Termostat nie otwiera rury bezpośrednio</span><h2>Jak sprawdzić siłowniki i sterowanie strefowe?</h2><p>Test powinien prześledzić cały łańcuch: termostat — listwa — zasilanie — siłownik — trzpień zaworu — przepływ. Brak grzania jednej strefy nie oznacza automatycznie zapowietrzonej pętli.</p><div class="rk-table-wrap"><table class="rk-table"><thead><tr><th>Objaw</th><th>Co zweryfikować</th><th>Częsty błąd</th></tr></thead><tbody><tr><td data-label="Objaw"><strong>Jedna strefa nie grzeje</strong></td><td data-label="Weryfikacja">Żądanie termostatu, kanał listwy, siłownik, trzpień i przepływ</td><td data-label="Błąd">Natychmiastowe płukanie pętli</td></tr><tr><td data-label="Objaw"><strong>Wiele stref nie reaguje</strong></td><td data-label="Weryfikacja">Zasilanie listwy, bezpiecznik, tryb źródła i sygnał pompy</td><td data-label="Błąd">Regulowanie każdego rotametru osobno</td></tr><tr><td data-label="Objaw"><strong>Strefa przegrzewa</strong></td><td data-label="Weryfikacja">Pozycję zaworu, zgodność siłownika, konfigurację termostatu i bezwładność</td><td data-label="Błąd">Założenie, że większa temperatura podłogi oznacza większą sprawność</td></tr></tbody></table></div><div class="rk-notice is-yellow"><p>Siłownik typu NC jest zwykle zamknięty bez zasilania, a jego pełne otwarcie może wymagać kilku minut. Stan trzeba oceniać zgodnie z dokumentacją konkretnego rozwiązania.</p></div></section>

<section class="rk-section" id="rk-service-pressure"><span class="rk-kicker">Liczy się punkt odniesienia</span><h2>Jak interpretować ciśnienie w instalacji?</h2><p>Nie ma jednej prawidłowej wartości 1,0–1,5 bara dla każdego domu. Ciśnienie napełnienia zależy od wysokości statycznej, miejsca manometru, ciśnienia wstępnego naczynia, temperatury oraz wymagań źródła ciepła.</p><div class="rk-grid-3"><div class="rk-card"><h3>Stabilna wartość</h3><p>Porównuj ją w podobnej temperaturze. Niewielka zmiana podczas nagrzewania jest naturalna.</p></div><div class="rk-card"><h3>Powolny spadek</h3><p>Sprawdź widoczne połączenia, odpowietrzniki, zawór bezpieczeństwa i naczynie. Nie dolewaj w nieskończoność.</p></div><div class="rk-card"><h3>Duży skok</h3><p>Znaczna różnica między zimnym i ciepłym układem może wskazywać między innymi na problem z naczyniem przeponowym.</p></div></div><div class="rk-notice is-orange"><p><strong>Gwałtowny spadek lub aktywny wyciek wymaga pilnej reakcji.</strong> Zabezpiecz urządzenia zgodnie z instrukcją i skontaktuj się z właściwym serwisem. Nie zakrywaj widocznej nieszczelności kolejnym uzupełnieniem wody.</p></div></section>

<section class="rk-section" id="rk-service-air"><span class="rk-kicker">Objaw nie jest przyczyną</span><h2>Czy podłogówkę trzeba odpowietrzać co roku?</h2><p>Nie. Szczelna, prawidłowo napełniona instalacja nie powinna wymagać sezonowego odpowietrzania pętli. Jednorazowa obecność powietrza po napełnieniu lub naprawie jest czymś innym niż regularnie powracający problem.</p><div class="rk-grid-2"><div class="rk-card"><h3>Kiedy odpowietrzenie ma sens?</h3><ul><li>po opróżnieniu i ponownym napełnieniu,</li><li>po wymianie elementu obiegu,</li><li>gdy pomiary i objawy wskazują na powietrze,</li><li>podczas prawidłowego uruchomienia nowych pętli.</li></ul></div><div class="rk-card"><h3>Gdy problem powraca</h3><ul><li>sprawdź stabilność ciśnienia,</li><li>stan naczynia i odpowietrzników,</li><li>możliwość zasysania powietrza,</li><li>częste dopuszczanie świeżej wody,</li><li>procesy zachodzące w medium.</li></ul></div></div><p>Odpowietrzanie usuwa nagromadzony gaz, ale nie naprawia automatycznie zaworu, siłownika, pompy ani błędnej hydrauliki.</p></section>

<section class="rk-section" id="rk-service-flushing"><span class="rk-kicker">Nie według kalendarza</span><h2>Co ile lat płukać ogrzewanie podłogowe?</h2><p><strong>Nie należy ustalać rutynowego płukania co 3–5 lat dla każdej instalacji.</strong> Prawidłowo wykonany, szczelny i czysty układ zamknięty może pracować bez okresowego opróżniania. Każde napełnienie świeżą wodą zmienia warunki chemiczne i może wprowadzić tlen oraz zanieczyszczenia.</p><h3>Kiedy rozważyć płukanie?</h3><ul><li>zanieczyszczenia są widoczne w filtrze lub separatorze i potwierdzone diagnostyką,</li><li>przepływ pozostaje ograniczony mimo sprawnego zaworu oraz prawidłowej pracy pompy,</li><li>doszło do zmieszania nieznanych albo niekompatybilnych mediów,</li><li>instalacja została przebudowana lub otwarta podczas naprawy,</li><li>występują problemy z zaworami, wymiennikiem albo elementami wrażliwymi na osad.</li></ul><h4>Czyszczenie mechaniczne czy chemiczne?</h4><p>Metodę dobiera się do rodzaju zanieczyszczeń, materiałów i elementów instalacji. Sam brak przepływu nie jest jeszcze podstawą do zastosowania środka chemicznego.</p><div class="rk-notice is-yellow"><p>Czyszczenie chemiczne wymaga rozpoznania materiałów i rodzaju zanieczyszczeń. Zbyt agresywny preparat, niepełne wypłukanie lub przypadkowe dodatki mogą pogorszyć stan układu.</p></div></section>

<section class="rk-section" id="rk-service-medium"><span class="rk-kicker">Woda i płyn niezamarzający</span><h2>Czy medium grzewcze trzeba okresowo wymieniać?</h2><p>Wody w szczelnej instalacji nie wymienia się tylko dlatego, że upłynął określony czas. Płyn niezamarzający kontroluje się według parametrów i kryteriów właściwych dla konkretnego produktu. Dotyczy to między innymi stężenia, ochrony przed zamarzaniem, pH oraz stanu dodatków.</p><div class="rk-grid-3"><div class="rk-card"><h3>Znana woda</h3><p>Kontroluj szczelność układu i wymagane parametry. Ograniczaj dopuszczanie świeżej wody.</p></div><div class="rk-card"><h3>Płyn niezamarzający</h3><p>Termin badania i kryteria wymiany wynikają z dokumentacji preparatu oraz warunków pracy.</p></div><div class="rk-card"><h3>Medium nieznane</h3><p>Nie dolewaj przypadkowego inhibitora ani glikolu. Najpierw zidentyfikuj medium i materiały.</p></div></div><p>Dobór, napełnianie i wpływ właściwości medium na hydraulikę wyjaśnia artykuł <a href="https://projekt-ogrzewania.pl/czym-napelnic-instalacje-ogrzewania-podlogowego/">czym napełnić instalację ogrzewania podłogowego</a>.</p></section>

<section class="rk-section" id="rk-service-warning"><span class="rk-kicker">Nie czekaj na coroczny termin</span><h2>Objawy wymagające szybkiej reakcji</h2><div class="rk-table-wrap"><table class="rk-table"><thead><tr><th>Objaw</th><th>Pierwsza reakcja</th><th>Czego nie przesądza</th></tr></thead><tbody><tr><td data-label="Objaw"><strong>Aktywny wyciek</strong></td><td data-label="Reakcja">Zabezpiecz układ według instrukcji i wezwij właściwy serwis</td><td data-label="Nie przesądza">Miejsca uszkodzenia pętli w posadzce</td></tr><tr><td data-label="Objaw"><strong>Szybki spadek ciśnienia</strong></td><td data-label="Reakcja">Przerwij rutynowe dopuszczanie i ustal miejsce utraty medium</td><td data-label="Nie przesądza">Automatycznie nieszczelnej rury pod podłogą</td></tr><tr><td data-label="Objaw"><strong>Brak przepływu pętli</strong></td><td data-label="Reakcja">Sprawdź zawór, siłownik, pompę, powietrze i opory</td><td data-label="Nie przesądza">Konieczności chemicznego płukania</td></tr><tr><td data-label="Objaw"><strong>Nierówne temperatury</strong></td><td data-label="Reakcja">Porównaj sterowanie, przepływy, okładziny i warunki pomieszczeń</td><td data-label="Nie przesądza">Zapowietrzenia albo osadu</td></tr><tr><td data-label="Objaw"><strong>Hałas pompy</strong></td><td data-label="Reakcja">Sprawdź warunki hydrauliczne i stan urządzenia</td><td data-label="Nie przesądza">Wyłącznie obecności powietrza</td></tr></tbody></table></div><div class="rk-notice is-orange"><p>Przy braku ogrzewania podczas mrozu, komunikacie bezpieczeństwa źródła, zapachu gazu albo zagrożeniu elektrycznym postępuj zgodnie z instrukcją awaryjną właściwego urządzenia i korzystaj z odpowiednich służb lub serwisu.</p></div></section>

<section class="rk-section" id="rk-service-records"><span class="rk-kicker">Dane skracają diagnostykę</span><h2>Co zapisać przed wezwaniem serwisanta?</h2><div class="rk-checklist"><div class="rk-checkitem">Zdjęcie całego rozdzielacza i widocznych połączeń</div><div class="rk-checkitem">Odczyt ciśnienia przy znanej temperaturze układu</div><div class="rk-checkitem">Przepływy wszystkich pętli przy określonych strefach</div><div class="rk-checkitem">Temperaturę zasilania i powrotu, jeśli są dostępne</div><div class="rk-checkitem">Kody błędów i moment ich występowania</div><div class="rk-checkitem">Pomieszczenia niedogrzane lub przegrzane</div><div class="rk-checkitem">Datę ostatniego napełnienia albo ingerencji</div><div class="rk-checkitem">Rodzaj medium oraz znane dodatki</div><div class="rk-checkitem">Ustawienie pompy i tryb źródła ciepła</div><div class="rk-checkitem">Projekt, długości pętli i wcześniejszy protokół nastaw</div></div><p class="rk-update">Zdjęcia należy wykonać przed przestawieniem zaworów. Po zmianie trudno odtworzyć prawidłowy stan bazowy.</p></section>

<section class="rk-section" id="rk-service-protocol"><span class="rk-kicker">Efekt przeglądu</span><h2>Co powinien zawierać protokół serwisu?</h2><p>Dobry protokół nie kończy się zdaniem „instalacja sprawna”. Pozwala porównać stan w kolejnych sezonach i odtworzyć wszystkie wykonane zmiany.</p><div class="rk-grid-2"><div class="rk-card"><h3>Stan przed pracami</h3><ul><li>zgłoszone objawy i warunki ich występowania,</li><li>ciśnienie i temperatury,</li><li>przepływy oraz otwarte strefy,</li><li>ustawienie pompy i źródła,</li><li>rodzaj medium.</li></ul></div><div class="rk-card"><h3>Wynik i zmiany</h3><ul><li>wykonane pomiary i ustalona przyczyna,</li><li>wymienione lub oczyszczone elementy,</li><li>nowe nastawy z uzasadnieniem,</li><li>parametry po stabilizacji,</li><li>zalecenia i termin wynikający z dokumentacji.</li></ul></div></div></section>

<section class="rk-section" id="rk-service-errors"><span class="rk-kicker">Czego unikać</span><h2>Najczęstsze błędy podczas serwisowania podłogówki</h2><div class="rk-errors"><div class="rk-error"><b>BŁĄD 01</b><p>Obowiązkowe płukanie co kilka lat bez potwierdzenia zanieczyszczeń lub ograniczenia przepływu.</p></div><div class="rk-error"><b>BŁĄD 02</b><p>Ustawienie identycznego przepływu na wszystkich pętlach zamiast wartości wynikających z obciążeń.</p></div><div class="rk-error"><b>BŁĄD 03</b><p>Coroczne odpowietrzanie bez szukania przyczyny powracającego powietrza.</p></div><div class="rk-error"><b>BŁĄD 04</b><p>Uznanie zakresu 1,0–1,5 bara za właściwy dla każdego budynku i każdego źródła.</p></div><div class="rk-error"><b>BŁĄD 05</b><p>Dolewanie świeżej wody przy każdym spadku ciśnienia bez kontroli nieszczelności i naczynia.</p></div><div class="rk-error"><b>BŁĄD 06</b><p>Regulacja pompy i rotametrów bez zapisania wcześniejszych nastaw oraz warunków pracy.</p></div><div class="rk-error"><b>BŁĄD 07</b><p>Diagnozowanie zimniejszego fragmentu podłogi wyłącznie dotykiem i bez znajomości przebiegu rur.</p></div><div class="rk-error"><b>BŁĄD 08</b><p>Mieszanie nieznanych inhibitorów lub płynów zamiast identyfikacji medium.</p></div></div></section>

<section class="rk-section" id="rk-service-faq"><span class="rk-kicker">Najczęstsze pytania</span><h2>FAQ: serwis i konserwacja ogrzewania podłogowego</h2><div class="rk-faq"><details><summary>Czy ogrzewanie podłogowe trzeba serwisować co roku?</summary><div class="rk-faq-answer">Przedsezonowa kontrola działania jest rozsądna, ale zakres i obowiązkowość serwisu zależą od źródła, dokumentacji oraz stanu instalacji. Same pętle nie wymagają corocznej ingerencji.</div></details><details><summary>Czy podłogówkę trzeba co roku odpowietrzać?</summary><div class="rk-faq-answer">Nie. Powracające powietrze wymaga znalezienia przyczyny, a nie tylko cyklicznego usuwania objawu.</div></details><details><summary>Co ile lat płukać ogrzewanie podłogowe?</summary><div class="rk-faq-answer">Nie według jednego interwału. Płukanie wykonuje się po rozpoznaniu zanieczyszczeń, ograniczenia przepływu, nieznanego medium albo po określonej ingerencji.</div></details><details><summary>Czy trzeba wymieniać wodę w podłogówce?</summary><div class="rk-faq-answer">Nie tylko z powodu wieku. Szczelnego układu nie należy niepotrzebnie opróżniać i napełniać świeżą wodą.</div></details><details><summary>Jakie powinno być ciśnienie w podłogówce?</summary><div class="rk-faq-answer">Wartość zależy od wysokości instalacji, naczynia, temperatury, miejsca pomiaru i wymagań źródła. Nie istnieje jeden prawidłowy zakres dla wszystkich domów.</div></details><details><summary>Dlaczego ciśnienie w instalacji spada?</summary><div class="rk-faq-answer">Możliwy jest wyciek, problem z naczyniem, odpowietrznikiem, zaworem bezpieczeństwa lub inny ubytek. Częste dolewanie nie zastępuje diagnostyki.</div></details><details><summary>Czy zimna pętla oznacza zapowietrzenie?</summary><div class="rk-faq-answer">Nie zawsze. Przyczyną może być zawór, siłownik, pompa, opór, zabrudzenie, automatyka albo brak zapotrzebowania.</div></details><details><summary>Czy wszystkie rotametry powinny pokazywać tyle samo?</summary><div class="rk-faq-answer">Nie. Wymagany przepływ zależy od mocy i parametrów konkretnej pętli. Nastawy powinny wynikać z projektu lub obliczeń.</div></details><details><summary>Czy płyn niezamarzający wymienia się co 3–5 lat?</summary><div class="rk-faq-answer">Nie ma jednego terminu. Stan i kryteria wymiany ocenia się według dokumentacji konkretnego produktu oraz wyników kontroli.</div></details><details><summary>Czy nierówno ciepła podłoga oznacza awarię?</summary><div class="rk-faq-answer">Nie musi. Wpływają na nią przebieg rur, zabudowa, okładzina, nasłonecznienie, sterowanie i różne obciążenia pomieszczeń.</div></details><details><summary>Kiedy wezwać serwis natychmiast?</summary><div class="rk-faq-answer">Przy aktywnym wycieku, szybkim spadku ciśnienia, błędzie bezpieczeństwa, braku ogrzewania podczas mrozu albo zagrożeniu gazowym lub elektrycznym.</div></details><details><summary>Czy po serwisie trzeba ponownie ustawić przepływy?</summary><div class="rk-faq-answer">Tylko gdy ingerencja je zmieniła albo diagnostyka wykazała nieprawidłowe nastawy. Sprawnych ustawień nie należy resetować profilaktycznie.</div></details></div></section>

<section class="rk-section" id="rk-service-sources"><span class="rk-kicker">Podstawa techniczna</span><h2>Źródła i zakres odpowiedzialności</h2><p>Wymagania konkretnego kotła, pompy ciepła, pompy obiegowej, armatury i medium zawsze należy sprawdzić w aktualnej dokumentacji właściwego modelu. Poniższe oficjalne materiały porządkują ogólne zasady kontroli oraz eksploatacji.</p><div class="rk-source-box"><ul><li><a href="https://www.gov.pl/web/gunb/kontrole-stanu-technicznego-obiektow" target="_blank" rel="noopener nofollow">Główny Urząd Nadzoru Budowlanego — kontrole stanu technicznego obiektów</a></li><li><a href="https://eur-lex.europa.eu/legal-content/PL/TXT/HTML/?uri=CELEX%3A32024L1275" target="_blank" rel="noopener nofollow">EUR-Lex — dyrektywa UE 2024/1275 dotycząca charakterystyki energetycznej budynków</a></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="noopener nofollow">VDI 2035 Blatt 1 — ograniczanie osadów i korozji w wodnych instalacjach grzewczych</a></li><li><a href="https://www.iso.org/standard/74685.html" target="_blank" rel="noopener nofollow">ISO 11855-5:2021 — instalacja systemów ogrzewania i chłodzenia płaszczyznowego</a></li></ul></div><p class="rk-update">Materiał edukacyjny. Nie zastępuje instrukcji urządzeń, oględzin, pomiarów ani interwencji wymaganej w sytuacji awaryjnej.</p></section>
</main>

<section class="rk-author" aria-labelledby="rk-service-author-heading"><input type="radio" name="rk-service-author-tabs" id="rk-service-author-about" checked><input type="radio" name="rk-service-author-tabs" id="rk-service-author-exp"><input type="radio" name="rk-service-author-tabs" id="rk-service-author-sites"><div class="rk-author-head"><div><h2 id="rk-service-author-heading">Autor opracowania</h2><p>Treść techniczna przygotowana i zaktualizowana przez autora zajmującego się projektowaniem wodnych instalacji grzewczych.</p></div><span class="rk-author-mark">Projekt Ogrzewania</span></div><div class="rk-author-layout"><aside class="rk-author-side"><div class="rk-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 i specjalista HVAC" width="150" height="150" loading="lazy"></div><div class="rk-author-name">Robert Kucharski</div><div class="rk-author-role">Projektant instalacji sanitarnych<br>specjalista HVAC i ogrzewania podłogowego</div><div class="rk-author-social-label">Profile autora</div><div class="rk-author-social"><a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener nofollow me" aria-label="Robert Kucharski na LinkedIn"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4.98 3.5C4.98 4.88 3.87 6 2.5 6S.02 4.88.02 3.5 1.13 1 2.5 1s2.48 1.12 2.48 2.5zM.5 8h4V24h-4V8zm7 0h3.83v2.19h.05c.53-1.01 1.84-2.19 3.78-2.19 4.04 0 4.79 2.66 4.79 6.12V24h-4v-8.76c0-2.09-.04-4.78-2.91-4.78-2.91 0-3.36 2.27-3.36 4.63V24h-4V8z"/></svg></a><a href="https://www.facebook.com/projektogrzewaniapl" target="_blank" rel="noopener nofollow me" aria-label="Projekt Ogrzewania na Facebooku"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M22 12a10 10 0 1 0-11.56 9.88v-6.99H7.9V12h2.54V9.8c0-2.51 1.49-3.89 3.77-3.89 1.09 0 2.23.2 2.23.2v2.45h-1.25c-1.24 0-1.62.77-1.62 1.56V12h2.77l-.44 2.89h-2.33v6.99A10 10 0 0 0 22 12z"/></svg></a><a href="https://x.com/Projekt_HVAC" target="_blank" rel="noopener nofollow me" aria-label="Projekt Ogrzewania w serwisie X"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18.24 2H21l-6.03 6.9L22.06 22h-5.55l-4.35-5.69L7.19 22H4.42l6.45-7.37L4.06 2h5.69l3.93 5.2L18.24 2zm-.97 17.7h1.53L8.91 4.18H7.27L17.27 19.7z"/></svg></a></div></aside><div class="rk-author-main"><blockquote class="rk-author-quote"><p>Dobry serwis nie zaczyna się od odpowietrzania ani płukania. Zaczyna się od porównania stanu instalacji z projektem, protokołem uruchomienia i wcześniejszymi wartościami.</p></blockquote><div class="rk-author-tabs"><label class="rk-author-tab" for="rk-service-author-about">O autorze</label><label class="rk-author-tab" for="rk-service-author-exp">Doświadczenie</label><label class="rk-author-tab" for="rk-service-author-sites">Serwisy</label></div><div class="rk-author-panel rk-author-panel-about"><p class="rk-author-lead">Robert Kucharski jest projektantem instalacji sanitarnych oraz specjalistą HVAC koncentrującym się na wodnym ogrzewaniu podłogowym, obliczeniach cieplnych i hydraulice instalacji.</p><p>W codziennej pracy przygotowuje indywidualne projekty dla budynków nowych i modernizowanych. Łączy wymagane moce pomieszczeń z rzeczywistą powierzchnią grzejną, przebiegiem i długością pętli, przepływami, stratami ciśnienia, średnicami magistral oraz punktem pracy pompy obiegowej.</p><div class="rk-author-facts"><div class="rk-author-fact"><b>Specjalizacja</b><span>Wodne ogrzewanie podłogowe i instalacje HVAC</span></div><div class="rk-author-fact"><b>Zakres projektowy</b><span>Obliczenia cieplne, hydraulika, pętle i rozdzielacze</span></div><div class="rk-author-fact"><b>Praktyka</b><span>Pompy, przepływy, opory i średnice przewodów</span></div><div class="rk-author-fact"><b>Publikacje</b><span>Autorskie poradniki i interaktywne narzędzia techniczne</span></div></div><div class="rk-author-method"><strong>Jak powstają opracowania?</strong><p>Treści oddzielają wymagania dokumentacji i oficjalnych źródeł od uproszczeń wykonawczych. Wzory, założenia oraz ograniczenia narzędzi są opisywane tak, aby czytelnik mógł ocenić zakres wyniku.</p></div></div><div class="rk-author-panel rk-author-panel-exp"><p class="rk-author-lead">Doświadczenie autora obejmuje cały ciąg decyzyjny — od określenia zapotrzebowania pomieszczeń do przygotowania przepływów i nastaw potrzebnych podczas uruchomienia.</p><ul class="rk-author-topics"><li>obciążenia cieplne</li><li>rozstawy rur</li><li>długości pętli</li><li>przepływy</li><li>straty ciśnienia</li><li>pompy obiegowe</li><li>magistrale</li><li>rozdzielacze</li><li>automatyka strefowa</li><li>diagnostyka</li></ul><p>Przygotowywane materiały koncentrują się na zależnościach, które można sprawdzić w projekcie i podczas uruchomienia: mocy pętli, różnicy temperatur, przepływie, oporze hydraulicznym oraz reakcji instalacji na zmianę nastaw. Dzięki temu porady nie sprowadzają się do jednej uniwersalnej wartości dla każdego budynku.</p><div class="rk-author-method"><strong>Odpowiedzialność redakcyjna</strong><p>Robert Kucharski jest wskazanym autorem opracowania i odpowiada za jego aktualizację techniczną. Materiał zawiera datę aktualizacji, źródła oraz wyraźne rozróżnienie pomiędzy informacją edukacyjną a indywidualnym projektem.</p></div></div><div class="rk-author-panel rk-author-panel-sites"><p class="rk-author-lead">Robert Kucharski jest autorem i właścicielem trzech serwisów poświęconych instalacjom, budowie oraz modernizacji budynków.</p><div class="rk-author-facts"><div class="rk-author-fact"><b>Projekt Ogrzewania</b><span>Projekty, obliczenia i poradniki o instalacjach grzewczych</span></div><div class="rk-author-fact"><b>Remont.biz.pl</b><span>Techniczne materiały dotyczące budowy i modernizacji</span></div><div class="rk-author-fact"><b>Sobir.pl</b><span>Wiedza o budownictwie, instalacjach i energii</span></div><div class="rk-author-fact"><b>Tożsamość autora</b><span>Publiczne profile zawodowe i społecznościowe</span></div></div><div class="rk-site-links"><a href="https://projekt-ogrzewania.pl/">projekt-ogrzewania.pl</a><a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">remont.biz.pl</a><a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">sobir.pl</a></div><div class="rk-author-method"><strong>Powiązanie z publikacją</strong><p>Projekt-Ogrzewania.pl jest miejscem publikacji i aktualizacji opracowania. Pozostałe serwisy pokazują szerszy zakres działalności autora w obszarze budownictwa i instalacji.</p></div></div></div></div></section>
<section class="rk-cta rk-final-cta rk-sales-cta" aria-label="Końcowe zamówienie projektu"><span class="rk-kicker" style="color:#79e8f3">Dokumentacja ułatwia każdy późniejszy serwis</span><h2>Zaprojektuj przepływy, opory i nastawy przed wykonaniem instalacji</h2><p>Serwisant może porównać działanie układu tylko wtedy, gdy wiadomo, jakie przepływy miały być uzyskane, które pętle są krytyczne i jaki punkt pracy powinna zapewnić pompa. Projekt tworzy taki stan odniesienia jeszcze przed zakryciem rur.</p><a class="rk-cta-button" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów indywidualny projekt ogrzewania podłogowego</a></section>
</div>
</article>
<script type="application/ld+json">
{
  "@context":"https://schema.org",
  "@graph":[
    {"@type":"TechArticle","@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#article","headline":"Jak często serwisować ogrzewanie podłogowe? Harmonogram, zakres i objawy","description":"Praktyczny harmonogram kontroli ogrzewania podłogowego wraz z asystentem objawów, zakresem przeglądu i protokołem serwisowym.","inLanguage":"pl-PL","dateModified":"2026-08-30","mainEntityOfPage":{"@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#webpage"},"author":{"@id":"https://projekt-ogrzewania.pl/#robert-kucharski"},"publisher":{"@id":"https://projekt-ogrzewania.pl/#organization"},"about":["serwis ogrzewania podłogowego","przegląd podłogówki","diagnostyka instalacji grzewczej","rozdzielacz","pompa obiegowa"]},
    {"@type":"WebPage","@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#webpage","url":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/","name":"Jak często serwisować ogrzewanie podłogowe?","isPartOf":{"@id":"https://projekt-ogrzewania.pl/#website"},"breadcrumb":{"@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#breadcrumb"},"inLanguage":"pl-PL"},
    {"@type":"BreadcrumbList","@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-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":"Jak często serwisować ogrzewanie podłogowe?","item":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/"}]},
    {"@type":"WebApplication","@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#assistant","name":"Asystent serwisu i diagnostyki ogrzewania podłogowego","url":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#rk-service-tool-section","applicationCategory":"UtilitiesApplication","operatingSystem":"Dowolny system z przeglądarką internetową","browserRequirements":"JavaScript","isAccessibleForFree":true,"inLanguage":"pl-PL","creator":{"@id":"https://projekt-ogrzewania.pl/#robert-kucharski"}},
    {"@type":"HowTo","@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#howto","name":"Jak wykonać kontrolę ogrzewania podłogowego przed sezonem","description":"Kolejność bezpiecznej obserwacji działania instalacji przed sezonem grzewczym.","step":[{"@type":"HowToStep","position":1,"name":"Sprawdź dokumentację","text":"Ustal prawidłowe ciśnienie, przepływy, ustawienie pompy i wymagania źródła."},{"@type":"HowToStep","position":2,"name":"Obejrzyj dostępne elementy","text":"Sprawdź rozdzielacz, połączenia, manometr, rotametry i komunikaty urządzeń."},{"@type":"HowToStep","position":3,"name":"Przetestuj strefy","text":"Zweryfikuj reakcję termostatów, listwy, siłowników oraz przepływów."},{"@type":"HowToStep","position":4,"name":"Porównaj wartości bazowe","text":"Porównaj ciśnienie, przepływy i temperatury z projektem lub wcześniejszym protokołem."},{"@type":"HowToStep","position":5,"name":"Zapisz wynik","text":"Udokumentuj stan i nie zmieniaj prawidłowych nastaw bez technicznego powodu."}]},
    {"@type":"FAQPage","@id":"https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/#faq","mainEntity":[
      {"@type":"Question","name":"Czy ogrzewanie podłogowe trzeba serwisować co roku?","acceptedAnswer":{"@type":"Answer","text":"Przedsezonowa kontrola działania jest rozsądna, ale zakres i obowiązkowość serwisu zależą od źródła, dokumentacji oraz stanu instalacji. Same pętle nie wymagają corocznej ingerencji."}},
      {"@type":"Question","name":"Czy podłogówkę trzeba co roku odpowietrzać?","acceptedAnswer":{"@type":"Answer","text":"Nie. Powracające powietrze wymaga znalezienia przyczyny, a nie tylko cyklicznego usuwania objawu."}},
      {"@type":"Question","name":"Co ile lat płukać ogrzewanie podłogowe?","acceptedAnswer":{"@type":"Answer","text":"Nie według jednego interwału. Płukanie wykonuje się po rozpoznaniu zanieczyszczeń, ograniczenia przepływu, nieznanego medium albo po określonej ingerencji."}},
      {"@type":"Question","name":"Czy trzeba wymieniać wodę w podłogówce?","acceptedAnswer":{"@type":"Answer","text":"Nie tylko z powodu wieku. Szczelnego układu nie należy niepotrzebnie opróżniać i napełniać świeżą wodą."}},
      {"@type":"Question","name":"Jakie powinno być ciśnienie w podłogówce?","acceptedAnswer":{"@type":"Answer","text":"Wartość zależy od wysokości instalacji, naczynia, temperatury, miejsca pomiaru i wymagań źródła. Nie istnieje jeden prawidłowy zakres dla wszystkich domów."}},
      {"@type":"Question","name":"Dlaczego ciśnienie w instalacji spada?","acceptedAnswer":{"@type":"Answer","text":"Możliwy jest wyciek, problem z naczyniem, odpowietrznikiem, zaworem bezpieczeństwa lub inny ubytek. Częste dolewanie nie zastępuje diagnostyki."}},
      {"@type":"Question","name":"Czy zimna pętla oznacza zapowietrzenie?","acceptedAnswer":{"@type":"Answer","text":"Nie zawsze. Przyczyną może być zawór, siłownik, pompa, opór, zabrudzenie, automatyka albo brak zapotrzebowania."}},
      {"@type":"Question","name":"Czy wszystkie rotametry powinny pokazywać tyle samo?","acceptedAnswer":{"@type":"Answer","text":"Nie. Wymagany przepływ zależy od mocy i parametrów konkretnej pętli. Nastawy powinny wynikać z projektu lub obliczeń."}},
      {"@type":"Question","name":"Czy płyn niezamarzający wymienia się co 3–5 lat?","acceptedAnswer":{"@type":"Answer","text":"Nie ma jednego terminu. Stan i kryteria wymiany ocenia się według dokumentacji konkretnego produktu oraz wyników kontroli."}},
      {"@type":"Question","name":"Czy nierówno ciepła podłoga oznacza awarię?","acceptedAnswer":{"@type":"Answer","text":"Nie musi. Wpływają na nią przebieg rur, zabudowa, okładzina, nasłonecznienie, sterowanie i różne obciążenia pomieszczeń."}},
      {"@type":"Question","name":"Kiedy wezwać serwis natychmiast?","acceptedAnswer":{"@type":"Answer","text":"Przy aktywnym wycieku, szybkim spadku ciśnienia, błędzie bezpieczeństwa, braku ogrzewania podczas mrozu albo zagrożeniu gazowym lub elektrycznym."}},
      {"@type":"Question","name":"Czy po serwisie trzeba ponownie ustawić przepływy?","acceptedAnswer":{"@type":"Answer","text":"Tylko gdy ingerencja je zmieniła albo diagnostyka wykazała nieprawidłowe nastawy. Sprawnych ustawień nie należy resetować profilaktycznie."}}
    ]},
    {"@type":"Person","@id":"https://projekt-ogrzewania.pl/#robert-kucharski","name":"Robert Kucharski","jobTitle":"Projektant instalacji sanitarnych i specjalista HVAC","description":"Projektant wodnych instalacji ogrzewania podłogowego, autor obliczeń cieplnych i hydraulicznych oraz technicznych materiałów edukacyjnych dla inwestorów i wykonawców.","url":"https://projekt-ogrzewania.pl/","image":"https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp","knowsAbout":["wodne ogrzewanie podłogowe","obliczenia cieplne","hydraulika instalacji grzewczych","projektowanie pętli grzewczych","dobór pomp obiegowych","rozdzielacze ogrzewania podłogowego","przepływy i straty ciśnienia","diagnostyka instalacji HVAC"],"sameAs":["https://www.linkedin.com/in/robert-kucharski-38069b48/","https://www.facebook.com/projektogrzewaniapl","https://x.com/Projekt_HVAC"],"worksFor":{"@id":"https://projekt-ogrzewania.pl/#organization"}},
    {"@type":"Organization","@id":"https://projekt-ogrzewania.pl/#organization","name":"Projekt Ogrzewania","url":"https://projekt-ogrzewania.pl/","founder":{"@id":"https://projekt-ogrzewania.pl/#robert-kucharski"}},
    {"@type":"Organization","@id":"https://remont.biz.pl/#organization","name":"Remont.biz.pl","url":"https://remont.biz.pl/"},
    {"@type":"Organization","@id":"https://sobir.pl/#organization","name":"Sobir.pl","url":"https://sobir.pl/"},
    {"@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"}
  ]
}
</script>

<script>
(function(){
"use strict";
var root=document.getElementById("rk-service-guide");if(!root){return;}
var byId=function(id){return document.getElementById(id);};
var ids=["rk-service-source","rk-service-operation","rk-service-pressure-input","rk-service-leak","rk-service-flow","rk-service-noise","rk-service-controls-input","rk-service-intervention","rk-service-medium-input","rk-service-documentation","rk-service-last","rk-service-source-due"];
var defaults={"rk-service-source":"gas","rk-service-operation":"normal","rk-service-pressure-input":"stable","rk-service-leak":"none","rk-service-flow":"normal","rk-service-noise":"none","rk-service-controls-input":"normal","rk-service-intervention":"none","rk-service-medium-input":"water","rk-service-documentation":"yes","rk-service-last":"recent","rk-service-source-due":"current"};
var value=function(id){return byId(id).value;};var setText=function(id,text){var node=byId(id);if(node){node.textContent=text;}};
var setDiagnostic=function(prefix,kind,title,copy){var card=byId("rk-service-"+prefix+"-card");if(card){card.className="rk-diagnostic"+(kind?" is-"+kind:"");}setText("rk-service-"+prefix+"-title",title);setText("rk-service-"+prefix+"-text",copy);};
var renderActions=function(items){var box=byId("rk-service-actions");if(!box){return;}box.textContent="";items.forEach(function(copy){var item=document.createElement("div");item.className="rk-action";item.textContent=copy;box.appendChild(item);});};
var update=function(){
 var source=value("rk-service-source"),operation=value("rk-service-operation"),pressure=value("rk-service-pressure-input"),leak=value("rk-service-leak"),flow=value("rk-service-flow"),noise=value("rk-service-noise"),controls=value("rk-service-controls-input"),intervention=value("rk-service-intervention"),medium=value("rk-service-medium-input"),documentation=value("rk-service-documentation"),last=value("rk-service-last"),sourceDue=value("rk-service-source-due");
 var urgent=[leak==="visible",pressure==="rapid",operation==="noheat"].some(Boolean);
 var diagnostic=[operation==="uneven",pressure==="slow",leak==="moist",flow==="changed",flow==="zero",noise!=="none",controls==="one",controls==="many",intervention!=="none",medium==="unknown"].some(Boolean);
 var planned=[sourceDue!=="current",last!=="recent",documentation!=="yes",controls==="unknown",flow==="unknown"].some(Boolean);
 var kind="ok",level="Obserwacja",next="Kontrola przed sezonem",title="Instalacja nie pokazuje objawu wymagającego ingerencji",copy="Zachowaj aktualne nastawy i wartości bazowe. Wykonaj kontrolę działania przed sezonem oraz serwisuj źródło zgodnie z jego dokumentacją.",actions=["Zapisz ciśnienie przy podobnej temperaturze instalacji.","Zrób zdjęcie rotametrów przy znanym stanie otwartych stref.","Przetestuj reakcję termostatów i siłowników przed sezonem.","Nie płucz ani nie przestawiaj prawidłowych nastaw profilaktycznie."];
 if(urgent){kind="stop";level="Pilna reakcja";next="Zabezpiecz układ";title="Nie czekaj na termin planowego przeglądu";copy="Wybrany objaw może prowadzić do utraty medium, braku ogrzewania lub dalszych szkód. Postępuj zgodnie z instrukcją urządzenia i skontaktuj się z właściwym serwisem.";actions=["Zabezpiecz źródło oraz instalację zgodnie z instrukcją awaryjną.","Nie uzupełniaj wielokrotnie wody bez ustalenia przyczyny.","Zapisz komunikaty, ciśnienie i widoczne objawy.","Skontaktuj się z serwisem właściwym dla rodzaju zagrożenia."];}
 else if(diagnostic){kind="warn";level="Diagnostyka";next="Pomiary przed regulacją";title="Najpierw ustal przyczynę zmiany";copy="Objawy uzasadniają diagnostykę, ale nie przesądzają o zapowietrzeniu ani zabrudzeniu pętli. Porównaj ciśnienie, przepływy, automatykę, pracę pompy i stan medium.";actions=["Zapisz stan pompy, źródła i wszystkich aktywnych stref.","Porównaj przepływy z projektem, protokołem lub wcześniejszym zdjęciem.","Sprawdź zawory i siłowniki przed odpowietrzaniem lub płukaniem.","Po ingerencji wykonaj kontrolę szczelności i udokumentuj nowe nastawy."];}
 else if(planned){kind="warn";level="Kontrola planowa";next="Uzupełnij przegląd";title="Zaplanuj kontrolę bez przypadkowej regulacji";copy="Nie ma objawu awaryjnego, ale trzeba sprawdzić termin obsługi źródła, działanie stref albo odtworzyć dokumentację wartości bazowych.";actions=["Sprawdź instrukcję i termin serwisu źródła ciepła.","Przetestuj wszystkie strefy przy znanym trybie pracy.","Zapisz ciśnienie, przepływy i ustawienie pompy.","Nie zmieniaj nastaw, jeśli pomiary nie wykazują problemu."];}
 setText("rk-service-level",level);setText("rk-service-next",next);setText("rk-service-balance",[flow==="changed",flow==="zero",documentation==="no",intervention!=="none"].some(Boolean)?"sprawdź po pomiarach":"nie zmieniaj");setText("rk-service-flush-out",[flow==="zero",medium==="unknown",intervention!=="none"].some(Boolean)?"tylko po diagnozie":"brak wskazania");
 var decision=byId("rk-service-decision-card");decision.className="rk-decision is-"+kind;setText("rk-service-decision-title",title);setText("rk-service-decision-text",copy);renderActions(actions);
 if([leak==="visible",pressure==="rapid"].some(Boolean)){setDiagnostic("safety","alert","Możliwy ubytek medium","Zabezpiecz układ i nie maskuj objawu kolejnym napełnianiem.");}else if(operation==="noheat"){setDiagnostic("safety","alert","Brak ogrzewania","Przy mrozie lub błędzie bezpieczeństwa wymagana jest szybka reakcja.");}else{setDiagnostic("safety","ok","Brak objawu awaryjnego","Kontynuuj obserwację widocznych elementów i komunikatów urządzeń.");}
 if([flow==="zero",flow==="changed",operation==="uneven",noise!=="none",pressure==="slow"].some(Boolean)){setDiagnostic("hyd","warn","Potrzebne porównanie pomiarów","Nie rozstrzygaj o płukaniu ani odpowietrzaniu na podstawie jednego objawu.");}else{setDiagnostic("hyd","ok","Parametry deklarowane jako stabilne","Zachowaj wartości bazowe i nie zmieniaj sprawnych nastaw.");}
 if([documentation==="no",medium==="unknown"].some(Boolean)){setDiagnostic("doc","alert","Brakuje danych krytycznych","Odtwórz nastawy i zidentyfikuj medium przed dodawaniem preparatów lub regulacją.");}else if([documentation==="photo",sourceDue==="unknown",last==="unknown"].some(Boolean)){setDiagnostic("doc","warn","Dokumentacja częściowa","Uzupełnij protokół o przepływy, ciśnienie, medium i ustawienie pompy.");}else{setDiagnostic("doc","ok","Jest punkt odniesienia","Porównuj każdy kolejny przegląd z projektem i protokołem uruchomienia.");}
 if([source==="gas",sourceDue!=="current"].every(Boolean)){setText("rk-service-doc-text",byId("rk-service-doc-text").textContent+" Oddziel kontrolę instalacji gazowej i urządzenia od kontroli pętli podłogowych.");}
};
ids.forEach(function(id){var node=byId(id);if(node){node.addEventListener("change",update);}});var reset=byId("rk-service-reset");if(reset){reset.addEventListener("click",function(){Object.keys(defaults).forEach(function(id){byId(id).value=defaults[id];});update();});}
var progress=byId("rk-service-progress");var updateProgress=function(){if(!progress){return;}var rect=root.getBoundingClientRect();var total=root.offsetHeight-window.innerHeight;var passed=Math.min(total,Math.max(0,-rect.top));progress.style.width=(total>0?passed/total*100:100).toFixed(1)+"%";};window.addEventListener("scroll",updateProgress,{passive:true});window.addEventListener("resize",updateProgress);update();updateProgress();
})();
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/jak-czesto-trzeba-serwisowac-ogrzewanie-podlogowe/">Jak często trzeba serwisować ogrzewanie podłogowe?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</title>
		<link>https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 15 Mar 2025 13:32:33 +0000</pubDate>
				<category><![CDATA[Budownictwo ekologiczne]]></category>
		<category><![CDATA[Instalacje domowe]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki domowe]]></category>
		<category><![CDATA[Systemy grzewcze]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[Wilgotność powietrza]]></category>
		<category><![CDATA[Zdrowie w domu]]></category>
		<category><![CDATA[grzejniki]]></category>
		<category><![CDATA[izolacja domu]]></category>
		<category><![CDATA[jakość powietrza]]></category>
		<category><![CDATA[komfort termiczny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ogrzewanie podłogowe wodne]]></category>
		<category><![CDATA[projektowanie instalacji]]></category>
		<category><![CDATA[promieniowanie cieplne]]></category>
		<category><![CDATA[rury pex]]></category>
		<category><![CDATA[suchość powietrza]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[wilgotność powietrza]]></category>
		<category><![CDATA[zdrowe ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2438</guid>

					<description><![CDATA[<p>Ogrzewanie podłogowe to hit w polskich domach, ale czy wpływa na jakość powietrza? Wyjaśniamy, jak działa i czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach. Porównujemy z grzejnikami, analizujemy wilgotność i radzimy, jak zaplanować instalację, by uniknąć suchego powietrza. Poznaj fakty, obal mity i dowiedz się, dlaczego podłogówka może być lepszym wyborem dla komfortu i zdrowia!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
  #rk-how-guide {
    --rk-navy: #102a3a;
    --rk-navy-2: #173f55;
    --rk-cyan: #22c7df;
    --rk-cyan-dark: #078caf;
    --rk-cyan-pale: #e9fbfe;
    --rk-orange: #ff5a36;
    --rk-orange-dark: #d83c1d;
    --rk-orange-pale: #fff3ee;
    --rk-green: #16825d;
    --rk-green-pale: #ecfdf5;
    --rk-red: #b42318;
    --rk-red-pale: #fff1f0;
    --rk-text: #385064;
    --rk-muted: #64788a;
    --rk-line: #d8e5ec;
    --rk-soft: #f4f9fb;
    --rk-white: #ffffff;
    --rk-shadow: 0 24px 60px rgba(16, 42, 58, 0.12);
    color: var(--rk-text);
    font-family: inherit;
    font-size: 18px;
    line-height: 1.82;
    margin: 0 auto;
    max-width: 1480px;
    overflow: hidden;
    position: relative;
  }

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

  #rk-how-guide img {
    height: auto;
    max-width: 100%;
  }

  #rk-how-guide a {
    color: var(--rk-cyan-dark);
    font-weight: 750;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
  }

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

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

  #rk-how-guide button:focus-visible,
  #rk-how-guide a:focus-visible,
  #rk-how-guide input:focus-visible {
    outline: 3px solid rgba(34, 199, 223, 0.42);
    outline-offset: 3px;
  }

  #rk-how-guide h2,
  #rk-how-guide h3,
  #rk-how-guide h4 {
    color: var(--rk-navy);
    font-family: inherit;
    font-weight: 900;
    letter-spacing: -0.025em;
    line-height: 1.18;
    margin: 0;
  }

  #rk-how-guide p {
    margin: 0 0 1.25em;
  }

  #rk-how-guide strong {
    color: var(--rk-navy);
  }

  #rk-how-guide .rk-how-shell {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 34px;
    box-shadow: var(--rk-shadow);
    overflow: hidden;
    position: relative;
  }

  #rk-how-guide .rk-how-progress-track {
    background: rgba(255, 255, 255, 0.12);
    height: 5px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 9;
  }

  #rk-how-guide .rk-how-progress {
    background: linear-gradient(90deg, var(--rk-cyan), var(--rk-orange));
    height: 100%;
    width: 0;
  }

  #rk-how-guide .rk-how-hero {
    background:
      radial-gradient(circle at 88% 18%, rgba(255, 90, 54, 0.22), transparent 29%),
      radial-gradient(circle at 74% 88%, rgba(34, 199, 223, 0.18), transparent 34%),
      linear-gradient(135deg, #0b2232 0%, #12354a 60%, #1d3f50 100%);
    color: var(--rk-white);
    isolation: isolate;
    overflow: hidden;
    padding: clamp(42px, 6vw, 92px);
    position: relative;
  }

  #rk-how-guide .rk-how-hero::before,
  #rk-how-guide .rk-how-hero::after {
    border: 1px solid rgba(255, 255, 255, 0.09);
    border-radius: 50%;
    content: "";
    pointer-events: none;
    position: absolute;
    z-index: -1;
  }

  #rk-how-guide .rk-how-hero::before {
    height: 420px;
    right: -150px;
    top: -210px;
    width: 420px;
  }

  #rk-how-guide .rk-how-hero::after {
    bottom: -280px;
    height: 560px;
    right: 9%;
    width: 560px;
  }

  #rk-how-guide .rk-how-badge {
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: #d8f9ff;
    display: inline-flex;
    font-size: 0.78em;
    font-weight: 900;
    gap: 10px;
    letter-spacing: 0.1em;
    margin-bottom: 28px;
    padding: 10px 15px;
    text-transform: uppercase;
  }

  #rk-how-guide .rk-how-badge::before {
    background: var(--rk-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 7px rgba(255, 90, 54, 0.16);
    content: "";
    height: 9px;
    width: 9px;
  }

  #rk-how-guide .rk-how-hero h2 {
    color: var(--rk-white);
    font-size: clamp(2.2rem, 5.3vw, 5rem);
    max-width: 1120px;
  }

  #rk-how-guide .rk-how-hero h2 span {
    color: #71ebf7;
  }

  #rk-how-guide .rk-how-hook {
    background: rgba(255, 255, 255, 0.08);
    border-left: 5px solid var(--rk-orange);
    border-radius: 0 22px 22px 0;
    margin: 34px 0 24px;
    max-width: 1120px;
    padding: 23px 28px;
  }

  #rk-how-guide .rk-how-hook p,
  #rk-how-guide .rk-how-hook strong {
    color: var(--rk-white);
    margin: 0;
  }

  #rk-how-guide .rk-how-hero-lead {
    color: #d5e4ed;
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    max-width: 1090px;
  }

  #rk-how-guide .rk-how-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 22px;
    margin-top: 28px;
  }

  #rk-how-guide .rk-how-hero-meta span {
    align-items: center;
    color: #c4d7e2;
    display: inline-flex;
    font-size: 0.78em;
    font-weight: 800;
    gap: 9px;
  }

  #rk-how-guide .rk-how-hero-meta span::before {
    background: var(--rk-cyan);
    border-radius: 50%;
    content: "";
    height: 7px;
    width: 7px;
  }

  #rk-how-guide .rk-how-author-strip {
    align-items: center;
    display: flex;
    gap: 14px;
    margin-top: 31px;
  }

  #rk-how-guide .rk-how-author-strip img {
    border: 3px solid rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    height: 58px;
    object-fit: cover;
    width: 58px;
  }

  #rk-how-guide .rk-how-author-strip b,
  #rk-how-guide .rk-how-author-strip small {
    display: block;
  }

  #rk-how-guide .rk-how-author-strip b {
    color: var(--rk-white);
    font-size: 1.03em;
  }

  #rk-how-guide .rk-how-author-strip small {
    color: #bcd1dd;
    line-height: 1.45;
  }

  #rk-how-guide .rk-how-content {
    padding: clamp(30px, 5vw, 72px);
  }

  #rk-how-guide .rk-how-learn {
    background: linear-gradient(135deg, var(--rk-soft), #eefcff);
    border: 1px solid var(--rk-line);
    border-radius: 26px;
    margin-bottom: 32px;
    padding: clamp(24px, 4vw, 42px);
  }

  #rk-how-guide .rk-how-learn-title {
    font-size: clamp(1.35rem, 2.6vw, 2rem);
    margin-bottom: 24px;
  }

  #rk-how-guide .rk-how-learn-grid,
  #rk-how-guide .rk-how-card-grid,
  #rk-how-guide .rk-how-check-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  #rk-how-guide .rk-how-learn-card,
  #rk-how-guide .rk-how-card,
  #rk-how-guide .rk-how-check {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    min-width: 0;
    padding: 22px;
  }

  #rk-how-guide .rk-how-learn-card {
    align-items: flex-start;
    display: flex;
    gap: 16px;
  }

  #rk-how-guide .rk-how-learn-no,
  #rk-how-guide .rk-how-check-no {
    align-items: center;
    background: var(--rk-orange-pale);
    border-radius: 13px;
    color: var(--rk-orange-dark);
    display: inline-flex;
    flex: 0 0 46px;
    font-size: 0.8em;
    font-weight: 950;
    height: 46px;
    justify-content: center;
  }

  #rk-how-guide .rk-how-learn-card h4,
  #rk-how-guide .rk-how-card h4,
  #rk-how-guide .rk-how-check h4 {
    font-size: 1.03em;
    margin-bottom: 7px;
  }

  #rk-how-guide .rk-how-card h3,
  #rk-how-guide .rk-how-check h3 {
    font-size: 1.03em;
    margin-bottom: 7px;
  }

  #rk-how-guide .rk-how-learn-card p,
  #rk-how-guide .rk-how-card p,
  #rk-how-guide .rk-how-check p {
    font-size: 0.89em;
    line-height: 1.65;
    margin: 0;
  }

  #rk-how-guide .rk-how-nav {
    background: var(--rk-navy);
    border-radius: 24px;
    color: var(--rk-white);
    margin: 0 0 48px;
    padding: 24px;
  }

  #rk-how-guide .rk-how-nav strong {
    color: var(--rk-white);
    display: block;
    font-size: 0.85em;
    letter-spacing: 0.1em;
    margin-bottom: 15px;
    text-transform: uppercase;
  }

  #rk-how-guide .rk-how-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
  }

  #rk-how-guide .rk-how-nav a {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    color: #eaf7fb;
    font-size: 0.78em;
    padding: 8px 13px;
    text-decoration: none;
  }

  #rk-how-guide .rk-how-nav a:hover,
  #rk-how-guide .rk-how-nav a:focus-visible {
    background: var(--rk-cyan);
    border-color: var(--rk-cyan);
    color: var(--rk-navy);
  }

  #rk-how-guide .rk-how-section {
    scroll-margin-top: 30px;
  }

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

  #rk-how-guide .rk-how-section-head {
    align-items: flex-start;
    display: flex;
    gap: 18px;
    margin-bottom: 28px;
  }

  #rk-how-guide .rk-how-section-no {
    align-items: center;
    background: var(--rk-navy);
    border-radius: 16px;
    color: var(--rk-white);
    display: inline-flex;
    flex: 0 0 58px;
    font-size: 1.05em;
    font-weight: 950;
    height: 58px;
    justify-content: center;
  }

  #rk-how-guide .rk-how-section-head h2 {
    font-size: clamp(1.65rem, 3.5vw, 2.75rem);
    margin-bottom: 8px;
  }

  #rk-how-guide .rk-how-section-head p {
    color: var(--rk-muted);
    font-size: 0.92em;
    margin: 0;
  }

  #rk-how-guide .rk-how-answer {
    align-items: center;
    background: linear-gradient(135deg, var(--rk-orange-pale), #fffaf7);
    border: 1px solid #ffc7b8;
    border-radius: 26px;
    display: grid;
    gap: 28px;
    grid-template-columns: minmax(0, 1.55fr) minmax(230px, 0.45fr);
    margin: 28px 0;
    padding: clamp(25px, 4vw, 44px);
  }

  #rk-how-guide .rk-how-answer-label,
  #rk-how-guide .rk-how-card-tag,
  #rk-how-guide .rk-how-formula-label {
    color: var(--rk-orange-dark);
    display: block;
    font-size: 0.72em;
    font-weight: 950;
    letter-spacing: 0.1em;
    margin-bottom: 9px;
    text-transform: uppercase;
  }

  #rk-how-guide .rk-how-answer-main {
    display: block;
    font-size: clamp(1.25rem, 2.8vw, 2rem);
    line-height: 1.28;
    margin-bottom: 14px;
  }

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

  #rk-how-guide .rk-how-answer-badge {
    background: var(--rk-orange);
    border-radius: 22px;
    color: var(--rk-white);
    padding: 25px;
    text-align: center;
  }

  #rk-how-guide .rk-how-answer-badge b,
  #rk-how-guide .rk-how-answer-badge span {
    color: var(--rk-white);
    display: block;
  }

  #rk-how-guide .rk-how-answer-badge b {
    font-size: 2.5em;
    line-height: 1;
    margin-bottom: 9px;
  }

  #rk-how-guide .rk-how-answer-badge span {
    font-size: 0.78em;
    font-weight: 800;
    line-height: 1.45;
  }

  #rk-how-guide .rk-how-truth,
  #rk-how-guide .rk-how-note,
  #rk-how-guide .rk-how-warning {
    border-radius: 18px;
    margin: 27px 0;
    padding: 22px 24px;
  }

  #rk-how-guide .rk-how-truth {
    background: var(--rk-cyan-pale);
    border-left: 5px solid var(--rk-cyan-dark);
  }

  #rk-how-guide .rk-how-note {
    background: var(--rk-green-pale);
    border-left: 5px solid var(--rk-green);
  }

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

  #rk-how-guide .rk-how-truth p,
  #rk-how-guide .rk-how-note p,
  #rk-how-guide .rk-how-warning p {
    margin: 0;
  }

  #rk-how-guide .rk-how-flow {
    background: var(--rk-soft);
    border: 1px solid var(--rk-line);
    border-radius: 27px;
    margin: 30px 0;
    padding: clamp(22px, 4vw, 40px);
  }

  #rk-how-guide .rk-how-flow-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  #rk-how-guide .rk-how-flow-step {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 17px;
    color: var(--rk-navy);
    cursor: pointer;
    min-height: 126px;
    padding: 17px 12px;
    position: relative;
    text-align: left;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  }

  #rk-how-guide .rk-how-flow-step::after {
    color: var(--rk-cyan-dark);
    content: "→";
    font-size: 1.25em;
    font-weight: 900;
    position: absolute;
    right: -12px;
    top: 46px;
    z-index: 2;
  }

  #rk-how-guide .rk-how-flow-step:last-child::after {
    content: "";
  }

  #rk-how-guide .rk-how-flow-step:hover {
    transform: translateY(-3px);
  }

  #rk-how-guide .rk-how-flow-step.is-active {
    background: var(--rk-navy);
    border-color: var(--rk-navy);
    color: var(--rk-white);
  }

  #rk-how-guide .rk-how-flow-step b,
  #rk-how-guide .rk-how-flow-step small {
    color: inherit;
    display: block;
  }

  #rk-how-guide .rk-how-flow-step b {
    font-size: 0.92em;
    line-height: 1.3;
    margin-top: 13px;
  }

  #rk-how-guide .rk-how-flow-step small {
    font-size: 0.7em;
    line-height: 1.35;
    margin-top: 5px;
  }

  #rk-how-guide .rk-how-flow-no {
    align-items: center;
    background: var(--rk-cyan-pale);
    border-radius: 10px;
    color: var(--rk-cyan-dark);
    display: inline-flex;
    font-size: 0.72em;
    font-weight: 950;
    height: 31px;
    justify-content: center;
    width: 31px;
  }

  #rk-how-guide .rk-how-flow-step.is-active .rk-how-flow-no {
    background: var(--rk-orange);
    color: var(--rk-white);
  }

  #rk-how-guide .rk-how-flow-detail {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 18px;
    margin-top: 18px;
    min-height: 142px;
    padding: 24px;
  }

  #rk-how-guide .rk-how-flow-detail strong {
    display: block;
    font-size: 1.18em;
    margin-bottom: 8px;
  }

  #rk-how-guide .rk-how-flow-detail p {
    margin: 0;
  }

  #rk-how-guide .rk-dry-causes {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 28px 0;
  }

  #rk-how-guide .rk-dry-cause {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    min-width: 0;
    padding: 22px;
  }

  #rk-how-guide .rk-dry-cause:nth-child(1),
  #rk-how-guide .rk-dry-cause:nth-child(4) {
    border-top: 5px solid var(--rk-cyan);
  }

  #rk-how-guide .rk-dry-cause:nth-child(2),
  #rk-how-guide .rk-dry-cause:nth-child(5) {
    border-top: 5px solid var(--rk-orange);
  }

  #rk-how-guide .rk-dry-cause:nth-child(3),
  #rk-how-guide .rk-dry-cause:nth-child(6) {
    border-top: 5px solid var(--rk-green);
  }

  #rk-how-guide .rk-dry-cause .rk-how-flow-no {
    margin-bottom: 15px;
  }

  #rk-how-guide .rk-dry-cause h3 {
    font-size: 1.04em;
    margin-bottom: 9px;
  }

  #rk-how-guide .rk-dry-cause p {
    font-size: 0.86em;
    line-height: 1.62;
    margin: 0;
  }

  #rk-how-guide .rk-how-formula {
    background: var(--rk-navy);
    border-radius: 23px;
    color: var(--rk-white);
    margin: 28px 0;
    padding: clamp(23px, 4vw, 38px);
  }

  #rk-how-guide .rk-how-formula-label {
    color: #7ceaf5;
  }

  #rk-how-guide .rk-how-equation {
    color: var(--rk-white);
    font-size: clamp(1.25rem, 3.3vw, 2.25rem);
    font-weight: 900;
    letter-spacing: 0.01em;
    line-height: 1.35;
  }

  #rk-how-guide .rk-how-equation small {
    color: #c9dce6;
    display: block;
    font-size: 0.44em;
    font-weight: 500;
    line-height: 1.6;
    margin-top: 13px;
  }

  #rk-how-guide .rk-how-calculator {
    background: linear-gradient(145deg, #0c293a, #16465d);
    border-radius: 28px;
    color: var(--rk-white);
    margin: 30px 0;
    overflow: hidden;
  }

  #rk-how-guide .rk-how-calc-head {
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    padding: clamp(25px, 4vw, 40px);
  }

  #rk-how-guide .rk-how-calc-head h3,
  #rk-how-guide .rk-how-calc-head p {
    color: var(--rk-white);
  }

  #rk-how-guide .rk-how-calc-head h3 {
    font-size: clamp(1.45rem, 3vw, 2.15rem);
    margin-bottom: 10px;
  }

  #rk-how-guide .rk-how-calc-head p {
    color: #cfe2ea;
    margin: 0;
  }

  #rk-how-guide .rk-how-calc-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.78fr);
  }

  #rk-how-guide .rk-how-controls {
    border-right: 1px solid rgba(255, 255, 255, 0.14);
    padding: clamp(25px, 4vw, 40px);
  }

  #rk-how-guide .rk-how-control + .rk-how-control {
    margin-top: 25px;
  }

  #rk-how-guide .rk-how-control label {
    align-items: baseline;
    color: var(--rk-white);
    display: flex;
    font-size: 0.88em;
    font-weight: 800;
    justify-content: space-between;
    margin-bottom: 9px;
  }

  #rk-how-guide .rk-how-control output {
    color: #79edf7;
    font-size: 1.06em;
    font-weight: 950;
  }

  #rk-how-guide .rk-how-control input[type="range"] {
    accent-color: var(--rk-orange);
    cursor: pointer;
    width: 100%;
  }

  #rk-how-guide .rk-how-control-scale {
    color: #a9c0cc;
    display: flex;
    font-size: 0.68em;
    justify-content: space-between;
    margin-top: 4px;
  }

  #rk-how-guide .rk-how-results {
    display: grid;
    gap: 12px;
    padding: clamp(25px, 4vw, 40px);
  }

  #rk-how-guide .rk-how-result {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 17px;
    padding: 17px;
  }

  #rk-how-guide .rk-how-result span,
  #rk-how-guide .rk-how-result b {
    display: block;
  }

  #rk-how-guide .rk-how-result span {
    color: #bfd3dd;
    font-size: 0.72em;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
  }

  #rk-how-guide .rk-how-result b {
    color: var(--rk-white);
    font-size: 1.55em;
    margin-top: 3px;
  }

  #rk-how-guide .rk-how-calc-foot {
    background: rgba(0, 0, 0, 0.13);
    color: #bfd3dd;
    font-size: 0.76em;
    line-height: 1.6;
    margin: 0;
    padding: 18px clamp(25px, 4vw, 40px);
  }

  #rk-how-guide .rk-how-layers {
    background: var(--rk-soft);
    border: 1px solid var(--rk-line);
    border-radius: 25px;
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(250px, 0.65fr) minmax(0, 1.35fr);
    margin: 28px 0;
    padding: clamp(24px, 4vw, 38px);
  }

  #rk-how-guide .rk-how-layer-stack {
    align-self: center;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  #rk-how-guide .rk-how-layer {
    align-items: center;
    border-radius: 10px;
    color: var(--rk-navy);
    display: flex;
    font-size: 0.78em;
    font-weight: 900;
    justify-content: space-between;
    min-height: 45px;
    padding: 9px 13px;
  }

  #rk-how-guide .rk-how-layer:nth-child(1) { background: #e0f7fa; }
  #rk-how-guide .rk-how-layer:nth-child(2) { background: #d4dde3; }
  #rk-how-guide .rk-how-layer:nth-child(3) { background: #ffd1c6; }
  #rk-how-guide .rk-how-layer:nth-child(4) { background: #dce6eb; }
  #rk-how-guide .rk-how-layer:nth-child(5) { background: #d7f4ea; }

  #rk-how-guide .rk-how-layer small {
    color: inherit;
    display: block;
    font-size: 0.8em;
    font-weight: 700;
    line-height: 1.45;
    margin-top: 3px;
  }

  #rk-how-guide .rk-how-layer > span {
    flex: 0 0 34px;
    margin-right: 12px;
  }

  #rk-how-guide .rk-how-layer > div {
    flex: 1 1 auto;
  }

  #rk-how-guide .rk-how-layer strong {
    display: block;
  }

  #rk-how-guide .rk-how-layers h3 {
    font-size: clamp(1.35rem, 2.8vw, 2rem);
    margin-bottom: 14px;
  }

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

  #rk-how-guide .rk-how-table-title {
    background: var(--rk-navy);
    color: var(--rk-white);
    display: block;
    font-size: 0.78em;
    font-weight: 900;
    letter-spacing: 0.08em;
    padding: 14px 18px;
    text-transform: uppercase;
  }

  #rk-how-guide table {
    border-collapse: collapse;
    margin: 0;
    table-layout: fixed;
    width: 100%;
  }

  #rk-how-guide th,
  #rk-how-guide td {
    border: 0;
    border-bottom: 1px solid var(--rk-line);
    padding: 17px;
    text-align: left;
    vertical-align: top;
  }

  #rk-how-guide th {
    background: #eaf4f7;
    color: var(--rk-navy);
    font-size: 0.78em;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  #rk-how-guide td {
    font-size: 0.88em;
    line-height: 1.62;
  }

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

  #rk-how-guide .rk-how-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 27px 0;
  }

  #rk-how-guide .rk-how-card {
    border-top: 4px solid var(--rk-cyan);
  }

  #rk-how-guide .rk-how-card-tag {
    color: var(--rk-cyan-dark);
  }

  #rk-how-guide .rk-how-check-grid {
    margin: 26px 0;
  }

  #rk-how-guide .rk-how-check {
    align-items: flex-start;
    display: flex;
    gap: 15px;
  }

  #rk-how-guide .rk-how-faq-list {
    display: grid;
    gap: 13px;
    margin-top: 26px;
  }

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

  #rk-how-guide details.rk-how-faq[open] {
    border-color: #87dae7;
    box-shadow: 0 12px 28px rgba(16, 42, 58, 0.07);
  }

  #rk-how-guide details.rk-how-faq summary {
    color: var(--rk-navy);
    cursor: pointer;
    font-weight: 900;
    line-height: 1.45;
    list-style: none;
    padding: 19px 55px 19px 21px;
    position: relative;
  }

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

  #rk-how-guide details.rk-how-faq summary::after {
    align-items: center;
    background: var(--rk-cyan-pale);
    border-radius: 10px;
    color: var(--rk-cyan-dark);
    content: "+";
    display: flex;
    font-size: 1.25em;
    font-weight: 900;
    height: 31px;
    justify-content: center;
    position: absolute;
    right: 16px;
    top: 16px;
    width: 31px;
  }

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

  #rk-how-guide .rk-how-faq-answer {
    border-top: 1px solid var(--rk-line);
    padding: 18px 21px 21px;
  }

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

  #rk-how-guide .rk-how-sources {
    background: var(--rk-soft);
    border: 1px solid var(--rk-line);
    border-radius: 20px;
    font-size: 0.78em;
    line-height: 1.72;
    margin-top: 34px;
    padding: 23px;
  }

  #rk-how-guide .rk-how-sources strong {
    display: block;
    font-size: 1.08em;
    margin-bottom: 8px;
  }

  #rk-how-guide .rk-how-cta {
    background: linear-gradient(135deg, var(--rk-navy), #1e4659 72%, #514044);
    border-radius: 28px;
    color: var(--rk-white);
    margin-top: 58px;
    padding: clamp(30px, 5vw, 54px);
    text-align: center;
  }

  #rk-how-guide .rk-how-cta h3,
  #rk-how-guide .rk-how-cta p,
  #rk-how-guide .rk-how-cta strong {
    color: var(--rk-white);
  }

  #rk-how-guide .rk-how-cta h3 {
    font-size: clamp(1.55rem, 3.5vw, 2.7rem);
    margin-bottom: 13px;
  }

  #rk-how-guide .rk-how-cta p {
    color: #cfe0e8;
    margin: 0 auto 24px;
    max-width: 900px;
  }

  #rk-how-guide .rk-how-cta-link {
    background: var(--rk-orange);
    border-radius: 16px;
    box-shadow: 0 14px 30px rgba(255, 90, 54, 0.28);
    color: var(--rk-white) !important;
    display: block;
    font-size: clamp(0.92rem, 2vw, 1.16rem);
    font-weight: 950;
    margin: 0 auto;
    max-width: 980px;
    padding: 19px 24px;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease;
  }

  #rk-how-guide .rk-how-cta-link:hover,
  #rk-how-guide .rk-how-cta-link:focus-visible {
    background: var(--rk-orange-dark);
    color: var(--rk-white);
    transform: translateY(-2px);
  }

  #rk-how-guide .rk-how-cta small {
    color: #aec5d0;
    display: block;
    line-height: 1.5;
    margin-top: 15px;
  }

  #rk-how-guide .rk-how-author-box {
    border: 1px solid var(--rk-line);
    border-radius: 28px;
    margin-top: 42px;
    overflow: hidden;
  }

  #rk-how-guide .rk-how-author-head {
    align-items: center;
    background: var(--rk-navy);
    border-bottom: 5px solid var(--rk-cyan);
    display: flex;
    justify-content: space-between;
    padding: clamp(25px, 4vw, 38px);
  }

  #rk-how-guide .rk-how-author-head h3,
  #rk-how-guide .rk-how-author-head p {
    color: var(--rk-white);
  }

  #rk-how-guide .rk-how-author-head h3 {
    font-size: clamp(1.65rem, 3.2vw, 2.7rem);
    margin-bottom: 5px;
  }

  #rk-how-guide .rk-how-author-head p {
    color: #c9dce6;
    margin: 0;
  }

  #rk-how-guide .rk-how-author-mark {
    border: 1px solid rgba(34, 199, 223, 0.38);
    border-radius: 14px;
    color: #7ceaf5;
    flex: 0 0 auto;
    font-size: 0.78em;
    font-weight: 950;
    letter-spacing: 0.08em;
    margin-left: 20px;
    padding: 13px 17px;
  }

  #rk-how-guide .rk-how-author-main {
    display: grid;
    grid-template-columns: minmax(255px, 0.6fr) minmax(0, 1.4fr);
  }

  #rk-how-guide .rk-how-author-profile {
    align-items: center;
    background: var(--rk-soft);
    border-right: 1px solid var(--rk-line);
    display: flex;
    flex-direction: column;
    padding: clamp(28px, 4vw, 44px);
    text-align: center;
  }

  #rk-how-guide .rk-how-author-profile img {
    border: 5px solid var(--rk-white);
    border-radius: 50%;
    box-shadow: 0 15px 34px rgba(16, 42, 58, 0.16);
    height: 190px;
    object-fit: cover;
    width: 190px;
  }

  #rk-how-guide .rk-how-author-profile h4 {
    font-size: 1.55em;
    margin: 23px 0 7px;
  }

  #rk-how-guide .rk-how-author-role {
    color: var(--rk-cyan-dark);
    font-size: 0.78em;
    font-weight: 950;
    letter-spacing: 0.06em;
    line-height: 1.55;
    text-transform: uppercase;
  }

  #rk-how-guide .rk-how-author-content {
    min-width: 0;
  }

  #rk-how-guide .rk-how-quote {
    padding: clamp(28px, 4vw, 45px);
  }

  #rk-how-guide .rk-how-quote::before {
    color: var(--rk-cyan);
    content: "“";
    display: block;
    font-family: Georgia, serif;
    font-size: 4em;
    font-weight: 900;
    height: 45px;
    line-height: 1;
  }

  #rk-how-guide .rk-how-quote blockquote {
    color: var(--rk-navy);
    font-size: clamp(1.05rem, 2vw, 1.38rem);
    font-style: italic;
    font-weight: 800;
    line-height: 1.65;
    margin: 0;
  }

  #rk-how-guide .rk-how-tabs {
    border-top: 1px solid var(--rk-line);
  }

  #rk-how-guide .rk-how-tab-buttons {
    background: var(--rk-soft);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #rk-how-guide .rk-how-tab-button {
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    color: var(--rk-muted);
    cursor: pointer;
    font-size: 0.78em;
    font-weight: 950;
    letter-spacing: 0.06em;
    padding: 18px 12px;
    text-transform: uppercase;
  }

  #rk-how-guide .rk-how-tab-button.is-active {
    background: var(--rk-white);
    border-bottom-color: var(--rk-cyan-dark);
    color: var(--rk-cyan-dark);
  }

  #rk-how-guide .rk-how-tab-panel {
    display: none;
    padding: clamp(25px, 4vw, 40px);
  }

  #rk-how-guide .rk-how-tab-panel.is-active {
    display: block;
  }

  #rk-how-guide .rk-how-tab-panel p:last-child {
    margin-bottom: 0;
  }

  #rk-how-guide .rk-how-portals {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  #rk-how-guide .rk-how-portals a {
    border: 1px solid var(--rk-line);
    border-radius: 999px;
    color: var(--rk-navy);
    padding: 9px 15px;
    text-decoration: none;
  }

  #rk-how-guide .rk-how-portals a:hover,
  #rk-how-guide .rk-how-portals a:focus-visible {
    background: var(--rk-cyan-pale);
    border-color: var(--rk-cyan);
  }

  #rk-how-guide .rk-how-chart {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 24px;
    margin: 28px 0;
    overflow: hidden;
  }

  #rk-how-guide .rk-how-chart-head {
    align-items: flex-start;
    background: var(--rk-soft);
    border-bottom: 1px solid var(--rk-line);
    display: flex;
    gap: 22px;
    justify-content: space-between;
    padding: 22px 25px;
  }

  #rk-how-guide .rk-how-chart-head h3 {
    font-size: clamp(1.2rem, 2.4vw, 1.75rem);
    margin-bottom: 6px;
  }

  #rk-how-guide .rk-how-chart-head p {
    color: var(--rk-muted);
    font-size: 0.82em;
    margin: 0;
  }

  #rk-how-guide .rk-how-chart-legend {
    align-items: center;
    color: var(--rk-navy);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.74em;
    font-weight: 900;
    gap: 8px;
    margin-top: 5px;
  }

  #rk-how-guide .rk-how-chart-legend::before {
    background: var(--rk-cyan-dark);
    border-radius: 999px;
    content: "";
    height: 5px;
    width: 32px;
  }

  #rk-how-guide .rk-how-chart-stage {
    padding: 16px 18px 8px;
  }

  #rk-how-guide .rk-how-chart-stage svg {
    display: block;
    height: auto;
    max-height: 430px;
    width: 100%;
  }

  #rk-how-guide .rk-how-chart-grid {
    stroke: #dce8ee;
    stroke-width: 1;
  }

  #rk-how-guide .rk-how-chart-axis {
    stroke: #718796;
    stroke-width: 1.5;
  }

  #rk-how-guide .rk-how-chart-line {
    fill: none;
    stroke: var(--rk-cyan-dark);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 5;
  }

  #rk-how-guide .rk-how-chart-area {
    fill: url(#rk-how-area-gradient);
    opacity: 0.34;
  }

  #rk-how-guide .rk-how-chart-dot {
    fill: var(--rk-orange);
    stroke: var(--rk-white);
    stroke-width: 4;
  }

  #rk-how-guide .rk-how-chart-label {
    fill: #60788a;
    font-family: inherit;
    font-size: 14px;
    font-weight: 750;
  }

  #rk-how-guide .rk-how-chart-value {
    fill: var(--rk-orange-dark);
    font-family: inherit;
    font-size: 16px;
    font-weight: 950;
  }

  #rk-how-guide .rk-how-meter {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    height: 12px;
    margin-top: 11px;
    overflow: hidden;
  }

  #rk-how-guide .rk-how-meter-fill {
    background: linear-gradient(90deg, #ff6748 0%, #ffb24c 22%, #31d6bd 42%, #22c7df 66%, #8d79e6 100%);
    border-radius: inherit;
    height: 100%;
    transition: width 0.25s ease;
    width: 50%;
  }

  #rk-how-guide .rk-how-status {
    border-radius: 12px;
    color: var(--rk-white);
    display: inline-block;
    font-size: 0.72em;
    font-weight: 950;
    letter-spacing: 0.04em;
    margin-top: 9px;
    padding: 7px 10px;
    text-transform: uppercase;
  }

  #rk-how-guide .rk-how-status.is-low { background: #c23d27; }
  #rk-how-guide .rk-how-status.is-watch { background: #c88612; }
  #rk-how-guide .rk-how-status.is-good { background: #16825d; }
  #rk-how-guide .rk-how-status.is-high { background: #6750a4; }

  #rk-how-guide .rk-how-diagnostic {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 28px 0;
  }

  #rk-how-guide .rk-how-diagnostic-card {
    background: var(--rk-white);
    border: 1px solid var(--rk-line);
    border-radius: 19px;
    min-width: 0;
    padding: 20px;
  }

  #rk-how-guide .rk-how-diagnostic-card b {
    display: block;
    font-size: 1.45em;
    margin-bottom: 8px;
  }

  #rk-how-guide .rk-how-diagnostic-card p {
    font-size: 0.82em;
    line-height: 1.62;
    margin: 0;
  }

  #rk-how-guide .rk-how-diagnostic-card:nth-child(1) { border-top: 5px solid #c23d27; }
  #rk-how-guide .rk-how-diagnostic-card:nth-child(2) { border-top: 5px solid #d89b2b; }
  #rk-how-guide .rk-how-diagnostic-card:nth-child(3) { border-top: 5px solid #16825d; }
  #rk-how-guide .rk-how-diagnostic-card:nth-child(4) { border-top: 5px solid #6750a4; }

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

  #rk-how-guide .rk-dry-sensor-grid > h3 {
    grid-column: 1 / -1;
  }

  #rk-how-guide .rk-dry-sensor-grid .rk-how-diagnostic-card:nth-child(2) {
    border-top-color: var(--rk-green);
  }

  #rk-how-guide .rk-dry-sensor-grid .rk-how-diagnostic-card:nth-child(3) {
    border-top-color: var(--rk-red);
  }

  #rk-how-guide .rk-dry-sensor-grid .rk-how-diagnostic-card span {
    display: block;
    font-size: 0.88em;
    line-height: 1.65;
  }

  @media (max-width: 1060px) {
    #rk-how-guide .rk-how-flow-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

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

    #rk-how-guide .rk-how-flow-step:nth-child(3)::after,
    #rk-how-guide .rk-how-flow-step:last-child::after {
      content: "";
    }

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

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

  @media (max-width: 820px) {
    #rk-how-guide {
      font-size: 17px;
    }

    #rk-how-guide .rk-how-shell {
      border-radius: 24px;
    }

    #rk-how-guide .rk-how-answer,
    #rk-how-guide .rk-how-calc-body,
    #rk-how-guide .rk-how-layers,
    #rk-how-guide .rk-how-author-main {
      grid-template-columns: 1fr;
    }

    #rk-how-guide .rk-how-controls,
    #rk-how-guide .rk-how-author-profile {
      border-bottom: 1px solid var(--rk-line);
      border-right: 0;
    }

    #rk-how-guide .rk-how-controls {
      border-bottom-color: rgba(255, 255, 255, 0.14);
    }

    #rk-how-guide .rk-how-answer-badge {
      text-align: left;
    }
  }

  @media (max-width: 700px) {
    #rk-how-guide .rk-how-hero,
    #rk-how-guide .rk-how-content {
      padding-left: 20px;
      padding-right: 20px;
    }

    #rk-how-guide .rk-how-learn-grid,
    #rk-how-guide .rk-how-card-grid,
    #rk-how-guide .rk-how-check-grid,
    #rk-how-guide .rk-how-flow-grid,
    #rk-how-guide .rk-dry-causes,
    #rk-how-guide .rk-how-diagnostic {
      grid-template-columns: 1fr;
    }

    #rk-how-guide .rk-how-diagnostic.rk-dry-sensor-grid {
      grid-template-columns: 1fr;
    }

    #rk-how-guide .rk-how-chart-head {
      display: block;
    }

    #rk-how-guide .rk-how-chart-legend {
      margin-top: 12px;
    }

    #rk-how-guide .rk-how-chart-stage {
      padding-left: 4px;
      padding-right: 4px;
    }

    #rk-how-guide .rk-how-chart-label {
      font-size: 20px;
    }

    #rk-how-guide .rk-how-chart-value {
      font-size: 24px;
    }

    #rk-how-guide .rk-how-flow-step {
      min-height: 0;
    }

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

    #rk-how-guide .rk-how-flow-step:last-child::after {
      content: "";
    }

    #rk-how-guide .rk-how-section-head {
      display: block;
    }

    #rk-how-guide .rk-how-section-no {
      height: 48px;
      margin-bottom: 14px;
      width: 48px;
    }

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

    #rk-how-guide .rk-how-table-title {
      border-radius: 16px;
      margin-bottom: 13px;
    }

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

    #rk-how-guide thead {
      display: none;
    }

    #rk-how-guide tr {
      background: var(--rk-white);
      border: 1px solid var(--rk-line);
      border-radius: 17px;
      margin-bottom: 13px;
      overflow: hidden;
    }

    #rk-how-guide td,
    #rk-how-guide tr:last-child td {
      border-bottom: 1px solid var(--rk-line);
      display: grid;
      gap: 10px;
      grid-template-columns: minmax(105px, 0.45fr) minmax(0, 1fr);
      padding: 14px 15px;
    }

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

    #rk-how-guide td::before {
      color: var(--rk-cyan-dark);
      content: attr(data-label);
      font-size: 0.72em;
      font-weight: 950;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    #rk-how-guide .rk-how-author-head {
      align-items: flex-start;
      display: block;
    }

    #rk-how-guide .rk-how-author-mark {
      display: inline-block;
      margin: 17px 0 0;
    }

    #rk-how-guide .rk-how-tab-button {
      font-size: 0.68em;
      letter-spacing: 0.02em;
      padding: 15px 6px;
    }
  }

  @media (max-width: 460px) {
    #rk-how-guide {
      font-size: 16px;
    }

    #rk-how-guide .rk-how-hero h2 {
      font-size: 2.05rem;
    }

    #rk-how-guide .rk-how-author-strip {
      align-items: flex-start;
    }

    #rk-how-guide .rk-how-author-strip img {
      height: 50px;
      width: 50px;
    }

    #rk-how-guide td {
      display: block;
    }

    #rk-how-guide td::before {
      display: block;
      margin-bottom: 5px;
    }

    #rk-how-guide .rk-how-tab-buttons {
      grid-template-columns: 1fr;
    }
  }

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

<article id="rk-how-guide">
  <div class="rk-how-shell">
    <div class="rk-how-progress-track" aria-hidden="true"><div class="rk-how-progress"></div></div>

    <header class="rk-how-hero">
      <div class="rk-how-badge">Fakty • psychrometria • diagnostyka</div>
      <h2>Czy winna jest podłogówka? <span>Nie. Winny jest bilans wilgoci.</span></h2>

      <div class="rk-how-hook">
        <p><strong>Ogrzewanie podłogowe nie usuwa pary wodnej z pomieszczenia. Podniesienie temperatury może jednak obniżyć wilgotność względną, a zimowa wentylacja może wynosić z domu znacznie więcej wilgoci, niż potocznie się zakłada.</strong></p>
      </div>

      <p class="rk-how-hero-lead">Zamiast powtarzać, że ciepła podłoga „wysusza powietrze”, rozdzielimy trzy różne zjawiska: zmianę wskazania wilgotności względnej, rzeczywiste usuwanie pary wodnej oraz odczucie suchości. Pokażę wzory, przykłady, procedurę pomiarową i interaktywny bilans zimowego powietrza.</p>

      <div class="rk-how-hero-meta">
        <span>Aktualizacja: 25 sierpnia 2026 r.</span>
        <span>Obliczenia: równanie Magnusa • bilans wilgoci</span>
        <span>Poziom: inwestor, instalator i projektant</span>
      </div>

      <div class="rk-how-author-strip" itemscope itemtype="https://schema.org/Person">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych i specjalista ogrzewania podłogowego" width="58" height="58" loading="eager" itemprop="image">
        <div>
          <b itemprop="name">Robert Kucharski</b>
          <small itemprop="jobTitle">CEO • specjalista HVAC i ogrzewania podłogowego • autor Projekt-Ogrzewania.pl</small>
        </div>
      </div>
    </header>

    <div class="rk-how-content">
      <section class="rk-how-learn" aria-labelledby="rk-dry-learn-title">
        <h3 class="rk-how-learn-title" id="rk-dry-learn-title">Po przeczytaniu będziesz wiedzieć:</h3>
        <div class="rk-how-learn-grid">
          <div class="rk-how-learn-card">
            <div class="rk-how-learn-no" aria-hidden="true">01</div>
            <div><h4>Czy podłogówka naprawdę osusza?</h4><p>Oddzielimy spadek RH po ogrzaniu od fizycznego usuwania wody z powietrza.</p></div>
          </div>
          <div class="rk-how-learn-card">
            <div class="rk-how-learn-no" aria-hidden="true">02</div>
            <div><h4>Dlaczego zimą RH spada?</h4><p>Policzymy, co dzieje się z zimnym powietrzem po nawiewie i ogrzaniu w domu.</p></div>
          </div>
          <div class="rk-how-learn-card">
            <div class="rk-how-learn-no" aria-hidden="true">03</div>
            <div><h4>Co zmienia rekuperacja?</h4><p>Porównamy odzysk samego ciepła z częściowym odzyskiem wilgoci.</p></div>
          </div>
          <div class="rk-how-learn-card">
            <div class="rk-how-learn-no" aria-hidden="true">04</div>
            <div><h4>Jak znaleźć prawdziwą przyczynę?</h4><p>Otrzymasz kolejność pomiarów, zanim kupisz nawilżacz lub zmienisz nastawy instalacji.</p></div>
          </div>
        </div>
      </section>

      <nav class="rk-how-nav" aria-label="Spis treści artykułu">
        <strong>Na skróty</strong>
        <div class="rk-how-nav-links">
          <a href="#rk-dry-odpowiedz">Odpowiedź wprost</a>
          <a href="#rk-dry-fizyka">Co pokazuje higrometr?</a>
          <a href="#rk-dry-lab">Laboratorium zimowego powietrza</a>
          <a href="#rk-dry-porownanie">Podłogówka a grzejniki</a>
          <a href="#rk-dry-przyczyny">Sześć przyczyn suchości</a>
          <a href="#rk-dry-rekuperacja">Rekuperacja</a>
          <a href="#rk-dry-diagnoza">Diagnostyka</a>
          <a href="#rk-dry-nawilzacz">Nawilżanie</a>
          <a href="#rk-dry-materialy">Drewno i wykończenie</a>
          <a href="#rk-dry-faq">FAQ</a>
          <a href="#rk-dry-wniosek">Wniosek</a>
        </div>
      </nav>

      <section class="rk-how-section" id="rk-dry-odpowiedz" aria-labelledby="rk-dry-s1">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">1</div>
          <div>
            <h2 id="rk-dry-s1">Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</h2>
            <p>Najpierw odpowiedź bez marketingowych uproszczeń.</p>
          </div>
        </div>

        <div class="rk-how-answer">
          <div>
            <span class="rk-how-answer-label">Odpowiedź techniczna</span>
            <strong class="rk-how-answer-main">Nie – ogrzewanie podłogowe nie jest osuszaczem i samo nie usuwa pary wodnej z powietrza. Może natomiast obniżyć wilgotność względną, ponieważ podnosi temperaturę pomieszczenia.</strong>
            <p>Rzeczywista ilość wilgoci maleje dopiero wtedy, gdy para wodna opuszcza budynek z wentylacją lub przez nieszczelności, kondensuje na powierzchni albo zostaje usunięta przez urządzenie osuszające.</p>
          </div>
          <div class="rk-how-answer-badge">
            <b>RH ≠ woda</b>
            <span>procent na higrometrze nie jest bezpośrednią miarą masy pary wodnej</span>
          </div>
        </div>

        <p>To rozróżnienie odpowiada na większość sporów o „suche powietrze od podłogówki”. Ciepła podłoga przekazuje energię przez promieniowanie i konwekcję, ale nie ma mechanizmu, który samodzielnie wyciągałby parę wodną z zamkniętego pomieszczenia. Sposób przekazywania ciepła opisuję w opracowaniu <a href="https://projekt-ogrzewania.pl/jak-dziala-ogrzewanie-podlogowe/">jak działa ogrzewanie podłogowe</a>.</p>

        <div class="rk-how-truth">
          <p><strong>Najważniejszy wniosek:</strong> jeśli po uruchomieniu ogrzewania higrometr spadł z 50% do 40%, nie oznacza to automatycznie, że instalacja usunęła z domu jedną piątą wody. Najpierw trzeba sprawdzić zmianę temperatury, warunki zewnętrzne i wymianę powietrza.</p>
        </div>

        <p>Szersze zagadnienie mikroklimatu, punktu rosy i warunków dla przegród rozwijam osobno w poradniku <a href="https://projekt-ogrzewania.pl/jak-ogrzewanie-podlogowe-wplywa-na-wilgotnosc-powietrza-w-domu/">jak ogrzewanie podłogowe wpływa na wilgotność powietrza w domu</a>. Ten artykuł koncentruje się na jednej intencji: czy sama podłogówka jest źródłem przesuszenia.</p>
      </section>

      <section class="rk-how-section" id="rk-dry-fizyka" aria-labelledby="rk-dry-s2">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">2</div>
          <div>
            <h2 id="rk-dry-s2">Dlaczego higrometr pokazuje mniej, chociaż woda nie zniknęła?</h2>
            <p>Wilgotność względna zależy jednocześnie od ilości pary wodnej i temperatury.</p>
          </div>
        </div>

        <div class="rk-how-formula">
          <span class="rk-how-formula-label">Wilgotność względna</span>
          <div class="rk-how-equation">φ = p<sub>v</sub> / p<sub>sat</sub>(T) × 100%
            <small>φ – wilgotność względna, p<sub>v</sub> – rzeczywiste ciśnienie cząstkowe pary wodnej, p<sub>sat</sub>(T) – ciśnienie pary nasyconej zależne od temperatury.</small>
          </div>
        </div>

        <p>Wraz ze wzrostem temperatury rośnie ciśnienie pary nasyconej. Jeżeli ilość pary wodnej pozostaje niezmieniona, ta sama porcja wilgoci stanowi mniejszy procent możliwego nasycenia. Dlatego po ogrzaniu pomieszczenia RH spada, mimo że wilgotność bezwzględna nie musiała się zmienić.</p>

        <div class="rk-how-table-wrap">
          <span class="rk-how-table-title">Przykład: ta sama zawartość pary wodnej, zmieniona tylko temperatura</span>
          <table>
            <thead><tr><th>Stan powietrza</th><th>Temperatura</th><th>Wilgotność względna</th><th>Co stało się z wodą?</th></tr></thead>
            <tbody>
              <tr><td data-label="Stan"><strong>Punkt wyjścia</strong></td><td data-label="Temperatura">20°C</td><td data-label="Wilgotność">50%</td><td data-label="Woda">Wartość odniesienia.</td></tr>
              <tr><td data-label="Stan"><strong>Po ogrzaniu</strong></td><td data-label="Temperatura">23°C</td><td data-label="Wilgotność">około 42%</td><td data-label="Woda">Nie usunięto pary; zmienił się procent nasycenia.</td></tr>
              <tr><td data-label="Stan"><strong>Po ochłodzeniu</strong></td><td data-label="Temperatura">18°C</td><td data-label="Wilgotność">około 57%</td><td data-label="Woda">Nie dodano pary; spadła możliwość jej utrzymania w fazie gazowej.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Ten sam mechanizm opisują wytyczne dotyczące wilgoci i wentylacji: po ogrzaniu zimnego powietrza jego wilgotność względna może gwałtownie spaść. Przykłady psychrometryczne przedstawia opracowanie <a href="https://www.ncbi.nlm.nih.gov/books/NBK143947/" target="_blank" rel="noopener nofollow">WHO dotyczące kontroli wilgoci i wentylacji</a>.</p>

        <div class="rk-how-card-grid">
          <div class="rk-how-card"><span class="rk-how-card-tag">RH</span><h3>Wilgotność względna</h3><p>Procent aktualnego nasycenia przy konkretnej temperaturze. Bez temperatury wynik jest niepełny.</p></div>
          <div class="rk-how-card"><span class="rk-how-card-tag">x</span><h3>Zawartość wilgoci</h3><p>Masa pary wodnej przypadająca na masę suchego powietrza. To ona służy do bilansu wentylacji i nawilżania.</p></div>
          <div class="rk-how-card"><span class="rk-how-card-tag">T<sub>d</sub></span><h3>Punkt rosy</h3><p>Temperatura, przy której dla danego stanu powietrza może rozpocząć się kondensacja.</p></div>
        </div>
      </section>

      <section class="rk-how-section" id="rk-dry-lab" aria-labelledby="rk-dry-s3">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">3</div>
          <div>
            <h2 id="rk-dry-s3">Laboratorium: co zimowa wentylacja robi z wilgotnością?</h2>
            <p>Model pokazuje prawdziwy mechanizm sezonowego przesuszenia – ogrzewanie zimnego powietrza zewnętrznego i jego ciągłą wymianę.</p>
          </div>
        </div>

        <div class="rk-how-calculator" id="rk-dry-winter-lab" aria-label="Kalkulator wpływu zimowej wentylacji na wilgotność powietrza">
          <div class="rk-how-calc-head">
            <h3>Interaktywny bilans zimowego powietrza</h3>
            <p>Ustaw warunki zewnętrzne, temperaturę w domu, strumień wentylacji oraz docelową wilgotność. Kalkulator pokaże RH nawiewanego powietrza po ogrzaniu i teoretyczny deficyt wilgoci.</p>
          </div>
          <div class="rk-how-calc-body">
            <div class="rk-how-controls">
              <div class="rk-how-control">
                <label for="rk-dry-out-temp">Temperatura na zewnątrz <output id="rk-dry-out-temp-value">−5°C</output></label>
                <input id="rk-dry-out-temp" type="range" min="-20" max="12" step="1" value="-5">
                <div class="rk-how-control-scale"><span>−20°C</span><span>12°C</span></div>
              </div>
              <div class="rk-how-control">
                <label for="rk-dry-out-rh">Wilgotność na zewnątrz <output id="rk-dry-out-rh-value">80%</output></label>
                <input id="rk-dry-out-rh" type="range" min="30" max="100" step="1" value="80">
                <div class="rk-how-control-scale"><span>30%</span><span>100%</span></div>
              </div>
              <div class="rk-how-control">
                <label for="rk-dry-indoor-temp">Temperatura w domu <output id="rk-dry-indoor-temp-value">21°C</output></label>
                <input id="rk-dry-indoor-temp" type="range" min="18" max="25" step="0.5" value="21">
                <div class="rk-how-control-scale"><span>18°C</span><span>25°C</span></div>
              </div>
              <div class="rk-how-control">
                <label for="rk-dry-airflow">Strumień świeżego powietrza <output id="rk-dry-airflow-value">150 m³/h</output></label>
                <input id="rk-dry-airflow" type="range" min="50" max="400" step="10" value="150">
                <div class="rk-how-control-scale"><span>50 m³/h</span><span>400 m³/h</span></div>
              </div>
              <div class="rk-how-control">
                <label for="rk-dry-target-rh">Docelowa wilgotność w domu <output id="rk-dry-target-rh-value">40%</output></label>
                <input id="rk-dry-target-rh" type="range" min="30" max="55" step="1" value="40">
                <div class="rk-how-control-scale"><span>30%</span><span>55%</span></div>
              </div>
            </div>

            <div class="rk-how-results" aria-live="polite">
              <div class="rk-how-result">
                <span>RH powietrza zewnętrznego po ogrzaniu</span>
                <b id="rk-dry-warmed-rh">13,6%</b>
                <div class="rk-how-meter" aria-hidden="true"><div class="rk-how-meter-fill" id="rk-dry-warmed-meter"></div></div>
              </div>
              <div class="rk-how-result"><span>Zawartość wilgoci na zewnątrz</span><b id="rk-dry-out-ratio">2,1 g/kg</b></div>
              <div class="rk-how-result"><span>Zawartość wilgoci przy celu</span><b id="rk-dry-target-ratio">6,2 g/kg</b></div>
              <div class="rk-how-result"><span>Różnica do pokrycia</span><b id="rk-dry-deficit">4,1 g/kg</b></div>
              <div class="rk-how-result"><span>Teoretyczny ubytek przez wentylację</span><b id="rk-dry-hour">0,73 kg/h</b></div>
              <div class="rk-how-result"><span>Bilans dobowy bez zysków wewnętrznych</span><b id="rk-dry-day">17,6 l/dobę</b></div>
              <div class="rk-how-result"><span>Interpretacja</span><b id="rk-dry-lab-status">Bardzo silny potencjał osuszania</b><span class="rk-how-status is-low" id="rk-dry-lab-badge">zimowe powietrze</span></div>
            </div>
          </div>

          <p class="rk-how-calc-foot"><strong>Ważne:</strong> wynik godzinowy i dobowy jest teoretycznym obciążeniem wilgoci dla podanego strumienia świeżego powietrza. Model nie odejmuje pary wytwarzanej przez mieszkańców, gotowanie, kąpiele i suszenie, nie uwzględnia odzysku wilgoci ani buforowania przez materiały. Nie jest doborem nawilżacza.</p>
        </div>

        <div class="rk-how-chart" aria-labelledby="rk-dry-chart-title">
          <div class="rk-how-chart-head">
            <div>
              <h3 id="rk-dry-chart-title">Ta sama para wodna przed i po ogrzaniu</h3>
              <p>Wysoki procent wilgotności na mrozie nie oznacza dużej ilości wody. Wykres aktualizuje się razem z laboratorium.</p>
            </div>
            <div class="rk-how-chart-legend">wilgotność względna RH</div>
          </div>
          <div class="rk-how-chart-stage">
            <svg id="rk-dry-bars" viewBox="0 0 900 420" role="img" aria-labelledby="rk-dry-chart-title rk-dry-chart-desc">
              <desc id="rk-dry-chart-desc">Porównanie wilgotności względnej powietrza zewnętrznego, tego samego powietrza po ogrzaniu oraz wartości docelowej w domu.</desc>
              <g aria-hidden="true">
                <line class="rk-how-chart-grid" x1="80" y1="60" x2="860" y2="60"></line>
                <line class="rk-how-chart-grid" x1="80" y1="116" x2="860" y2="116"></line>
                <line class="rk-how-chart-grid" x1="80" y1="172" x2="860" y2="172"></line>
                <line class="rk-how-chart-grid" x1="80" y1="228" x2="860" y2="228"></line>
                <line class="rk-how-chart-grid" x1="80" y1="284" x2="860" y2="284"></line>
                <line class="rk-how-chart-axis" x1="80" y1="60" x2="80" y2="340"></line>
                <line class="rk-how-chart-axis" x1="80" y1="340" x2="860" y2="340"></line>
                <text class="rk-how-chart-label" x="32" y="65">100%</text>
                <text class="rk-how-chart-label" x="42" y="121">80%</text>
                <text class="rk-how-chart-label" x="42" y="177">60%</text>
                <text class="rk-how-chart-label" x="42" y="233">40%</text>
                <text class="rk-how-chart-label" x="42" y="289">20%</text>
                <text class="rk-how-chart-label" x="60" y="345">0</text>
              </g>
              <rect id="rk-dry-bar-out" x="165" y="116" width="150" height="224" rx="18" fill="#22c7df"></rect>
              <rect id="rk-dry-bar-warm" x="385" y="302" width="150" height="38" rx="18" fill="#ff5a36"></rect>
              <rect id="rk-dry-bar-target" x="605" y="228" width="150" height="112" rx="18" fill="#16825d"></rect>
              <text class="rk-how-chart-value" id="rk-dry-bar-out-value" x="240" y="100" text-anchor="middle">80%</text>
              <text class="rk-how-chart-value" id="rk-dry-bar-warm-value" x="460" y="286" text-anchor="middle">13,6%</text>
              <text class="rk-how-chart-value" id="rk-dry-bar-target-value" x="680" y="212" text-anchor="middle">40%</text>
              <text class="rk-how-chart-label" x="240" y="375" text-anchor="middle">Na zewnątrz</text>
              <text class="rk-how-chart-label" x="460" y="375" text-anchor="middle">Po ogrzaniu</text>
              <text class="rk-how-chart-label" x="680" y="375" text-anchor="middle">Cel w domu</text>
            </svg>
          </div>
        </div>

        <div class="rk-how-note">
          <p><strong>Dlaczego wynik dobowy bywa wysoki?</strong> Kalkulator pokazuje różnicę między docelową zawartością wilgoci a każdym kilogramem suchego powietrza doprowadzanym z zewnątrz. W realnym domu część tej różnicy pokrywają ludzie i codzienne czynności. Model ma ujawnić skalę procesu, a nie sugerować wlanie wskazanej ilości wody do nawilżacza.</p>
        </div>
      </section>

      <section class="rk-how-section" id="rk-dry-porownanie" aria-labelledby="rk-dry-s4">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">4</div>
          <div>
            <h2 id="rk-dry-s4">Czy podłogówka wysusza bardziej niż grzejniki?</h2>
            <p>Uczciwe porównanie wymaga identycznych warunków w pomieszczeniu.</p>
          </div>
        </div>

        <p>Jeżeli dwa identyczne pomieszczenia mają tę samą temperaturę powietrza, tę samą wentylację, taką samą infiltrację i identyczne źródła pary wodnej, sam wybór emitera nie powinien tworzyć dużej różnicy w bilansie wilgoci. Ani rura w podłodze, ani grzejnik nie usuwają pary wodnej bez wymiany masy.</p>

        <div class="rk-how-table-wrap">
          <span class="rk-how-table-title">Podłogówka i grzejnik – co faktycznie może się różnić?</span>
          <table>
            <thead><tr><th>Kryterium</th><th>Ogrzewanie podłogowe</th><th>Grzejniki</th><th>Znaczenie dla RH</th></tr></thead>
            <tbody>
              <tr><td data-label="Kryterium"><strong>Usuwanie pary wodnej</strong></td><td data-label="Podłogówka">Nie usuwa jej samym grzaniem.</td><td data-label="Grzejniki">Również jej nie usuwają.</td><td data-label="Znaczenie">Brak bezpośredniej przewagi któregokolwiek systemu.</td></tr>
              <tr><td data-label="Kryterium"><strong>Temperatura emitera</strong></td><td data-label="Podłogówka">Duża powierzchnia, niewielka różnica temperatur.</td><td data-label="Grzejniki">Mniejsza powierzchnia i zwykle wyższa temperatura.</td><td data-label="Znaczenie">Wpływa na lokalne warunki i ruch powietrza, nie usuwa jednak wilgoci.</td></tr>
              <tr><td data-label="Kryterium"><strong>Komfort operacyjny</strong></td><td data-label="Podłogówka">Może pozwolić na komfort przy nieco niższej temperaturze powietrza.</td><td data-label="Grzejniki">Rozkład temperatur może wymagać innej nastawy.</td><td data-label="Znaczenie">Niższa temperatura powietrza oznacza przy tej samej zawartości pary wyższą RH.</td></tr>
              <tr><td data-label="Kryterium"><strong>Ruch powietrza</strong></td><td data-label="Podłogówka">Rozłożone źródło ciepła i łagodniejszy ruch konwekcyjny.</td><td data-label="Grzejniki">Silniejszy lokalny strumień w pobliżu emitera.</td><td data-label="Znaczenie">Może zmieniać odczucie suchości i transport pyłu, ale nie jest bilansem wilgoci.</td></tr>
              <tr><td data-label="Kryterium"><strong>Przegrzewanie</strong></td><td data-label="Podłogówka">Możliwe przy złej regulacji lub zbyt wysokiej krzywej.</td><td data-label="Grzejniki">Możliwe przy złej regulacji i wysokiej nastawie.</td><td data-label="Znaczenie">Każdy dodatkowy stopień obniża RH przy tej samej ilości pary.</td></tr>
            </tbody>
          </table>
        </div>

        <div class="rk-how-warning">
          <p><strong>Błąd porównania:</strong> nie wolno zestawiać domu z podłogówką utrzymującego 21°C z mieszkaniem ogrzewanym grzejnikami do 24°C i przypisywać całej różnicy wilgotności rodzajowi instalacji. Trzeba ujednolicić temperaturę, wentylację oraz źródła wilgoci.</p>
        </div>

        <p>Odpowiednie parametry powierzchni i nastaw rozwijam w artykule <a href="https://projekt-ogrzewania.pl/jaka-jest-optymalna-temperatura-ogrzewania-podlogowego/">jaka jest optymalna temperatura ogrzewania podłogowego</a>. W instalacji wodnej stabilność temperatury wspiera również prawidłowo ustawiony <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">regulator pogodowy</a>.</p>
      </section>

      <section class="rk-how-section" id="rk-dry-przyczyny" aria-labelledby="rk-dry-s5">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">5</div>
          <div>
            <h2 id="rk-dry-s5">Sześć rzeczywistych przyczyn suchego powietrza zimą</h2>
            <p>Zamiast obwiniać rurę w posadzce, sprawdź bilans całego budynku.</p>
          </div>
        </div>

        <div class="rk-dry-causes">
          <article class="rk-dry-cause" id="rk-dry-cause-1">
            <div class="rk-how-flow-no">01</div>
            <div><h3>Zimne powietrze zewnętrzne</h3><p>Może mieć wysokie RH, lecz niewielką zawartość pary wodnej. Po ogrzaniu do temperatury pokojowej jego RH gwałtownie spada.</p></div>
          </article>
          <article class="rk-dry-cause" id="rk-dry-cause-2">
            <div class="rk-how-flow-no">02</div>
            <div><h3>Zbyt duży strumień wentylacji</h3><p>Każdy dodatkowy metr sześcienny suchego powietrza nawiewanego zimą zwiększa strumień wilgoci usuwanej z domu.</p></div>
          </article>
          <article class="rk-dry-cause" id="rk-dry-cause-3">
            <div class="rk-how-flow-no">03</div>
            <div><h3>Infiltracja i nieszczelności</h3><p>Powietrze może napływać poza kontrolą instalacji przez nieszczelne okna, drzwi, przepusty i połączenia przegród.</p></div>
          </article>
          <article class="rk-dry-cause" id="rk-dry-cause-4">
            <div class="rk-how-flow-no">04</div>
            <div><h3>Zbyt wysoka temperatura w domu</h3><p>Podniesienie temperatury bez dodania pary wodnej obniża RH. Warto porównywać 21°C z 21°C, a nie dwa różne poziomy komfortu.</p></div>
          </article>
          <article class="rk-dry-cause" id="rk-dry-cause-5">
            <div class="rk-how-flow-no">05</div>
            <div><h3>Mało wewnętrznych źródeł wilgoci</h3><p>Liczba mieszkańców, sposób gotowania, kąpiele i suszenie wpływają na bilans. Pusty dom wysycha szybciej niż intensywnie użytkowany.</p></div>
          </article>
          <article class="rk-dry-cause" id="rk-dry-cause-6">
            <div class="rk-how-flow-no">06</div>
            <div><h3>Błąd pomiaru</h3><p>Higrometr przy podłodze, nawiewniku, oknie, słońcu lub lokalnym źródle pary może pokazywać warunki niereprezentatywne.</p></div>
          </article>
        </div>

        <div class="rk-how-truth">
          <p><strong>Co może zrobić sama ciepła podłoga?</strong> Może zwiększyć szybkość parowania wody z mokrego jastrychu, ręcznika lub drewna. Wtedy para trafia jednak najpierw do powietrza. Dopiero później wentylacja albo osuszacz usuwa ją z budynku.</p>
        </div>
      </section>

      <section class="rk-how-section" id="rk-dry-rekuperacja" aria-labelledby="rk-dry-s6">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">6</div>
          <div>
            <h2 id="rk-dry-s6">Podłogówka, rekuperacja i suche powietrze</h2>
            <p>Odzysk ciepła nie zawsze oznacza odzysk wilgoci.</p>
          </div>
        </div>

        <p>Wentylacja mechaniczna zapewnia kontrolowaną wymianę powietrza, ale zimą usuwa również parę wodną wytwarzaną w domu. Klasyczny wymiennik odzyskuje przede wszystkim energię cieplną; powietrze nawiewane nadal może mieć bardzo małą zawartość wilgoci.</p>

        <div class="rk-how-card-grid">
          <div class="rk-how-card"><span class="rk-how-card-tag">HRV</span><h3>Odzysk ciepła</h3><p>Ogranicza straty energii, lecz zwykle nie przenosi znaczącej ilości pary wodnej z wywiewu do nawiewu.</p></div>
          <div class="rk-how-card"><span class="rk-how-card-tag">ERV</span><h3>Odzysk wilgoci</h3><p>Wymiennik entalpiczny może przekazywać część wilgoci, zmniejszając zimowy deficyt. Nie jest jednak aktywnym nawilżaczem.</p></div>
          <div class="rk-how-card"><span class="rk-how-card-tag">V̇</span><h3>Rzeczywisty przepływ</h3><p>Znaczenie ma zmierzony strumień powietrza, harmonogram pracy i bilans nawiewu z wywiewem, nie tylko poziom na panelu centrali.</p></div>
        </div>

        <p>Jeżeli dom ma bardzo niską RH, najpierw należy sprawdzić, czy strumienie są zgodne z projektem i potrzebami higienicznymi. Nie należy wyłączać wentylacji tylko po to, aby podnieść wilgotność. Trzeba znaleźć kompromis między jakością powietrza, usuwaniem zanieczyszczeń i bilansem wilgoci. Zależność instalacji opisuję szerzej w materiale <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja i ogrzewanie podłogowe</a>.</p>

        <div class="rk-how-warning">
          <p><strong>Nie reguluj centrali wyłącznie na podstawie RH:</strong> stężenie CO₂, zapachy, wilgoć w łazienkach, liczba mieszkańców oraz wymagane strumienie higieniczne nadal obowiązują. Trwałą zmianę nastaw powinien poprzedzić pomiar przepływów.</p>
        </div>
      </section>

      <section class="rk-how-section" id="rk-dry-diagnoza" aria-labelledby="rk-dry-s7">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">7</div>
          <div>
            <h2 id="rk-dry-s7">Wilgotność spada poniżej 30% – co sprawdzić krok po kroku?</h2>
            <p>Diagnostyka przed zakupem urządzeń i przypadkową zmianą nastaw.</p>
          </div>
        </div>

        <div class="rk-how-check-grid">
          <article class="rk-how-check" id="rk-dry-step-1"><span class="rk-how-check-no">1</span><div><h3>Zweryfikuj higrometr</h3><p>Porównaj dwa urządzenia ustawione obok siebie przez co najmniej kilka godzin. Tani czujnik może mieć istotny błąd.</p></div></article>
          <article class="rk-how-check" id="rk-dry-step-2"><span class="rk-how-check-no">2</span><div><h3>Mierz temperaturę razem z RH</h3><p>Zapis 27% bez temperatury jest niepełny. Zanotuj oba parametry o tych samych porach.</p></div></article>
          <article class="rk-how-check" id="rk-dry-step-3"><span class="rk-how-check-no">3</span><div><h3>Obserwuj trend przez minimum 72 godziny</h3><p>Jednorazowy odczyt po wietrzeniu, kąpieli albo zmianie pogody nie opisuje warunków stałych.</p></div></article>
          <article class="rk-how-check" id="rk-dry-step-4"><span class="rk-how-check-no">4</span><div><h3>Sprawdź temperaturę zadaną</h3><p>Obniżenie nadmiernej nastawy o 1 K może poprawić RH i ograniczyć zużycie energii bez dodawania wilgoci.</p></div></article>
          <article class="rk-how-check" id="rk-dry-step-5"><span class="rk-how-check-no">5</span><div><h3>Zmierz przepływy wentylacji</h3><p>Porównaj rzeczywiste nawiewy i wywiewy z dokumentacją oraz sposobem użytkowania budynku.</p></div></article>
          <article class="rk-how-check" id="rk-dry-step-6"><span class="rk-how-check-no">6</span><div><h3>Poszukaj niekontrolowanego napływu</h3><p>Sprawdź nieszczelności stolarki, przepustów i połączeń przegród. Próba szczelności daje wynik pewniejszy niż odczucie przeciągu.</p></div></article>
          <article class="rk-how-check" id="rk-dry-step-7"><span class="rk-how-check-no">7</span><div><h3>Dopiero potem rozważ nawilżanie</h3><p>Dobierz rozwiązanie do zmierzonego deficytu i obserwuj zimne powierzchnie, aby nie wywołać kondensacji.</p></div></article>
        </div>

        <div class="rk-how-diagnostic rk-dry-sensor-grid">
          <h3>Gdzie ustawić czujnik?</h3>
          <div class="rk-how-diagnostic-card"><strong>Dobrze:</strong><span>w reprezentatywnej strefie użytkowej, z dala od słońca, okna, nawiewnika, kuchni, łazienki i miejscowego źródła ciepła.</span></div>
          <div class="rk-how-diagnostic-card"><strong>Źle:</strong><span>bezpośrednio na ogrzewanej podłodze, parapecie, obok nawiewnika, nad czajnikiem albo w miejscu ogrzewanym promieniami słonecznymi.</span></div>
        </div>

        <p>Warunki komfortu i możliwe objawy omawiam ostrożnie w poradniku <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-jest-zdrowe/">czy ogrzewanie podłogowe jest zdrowe</a>. Uczucie suchego gardła lub oczu może współwystępować z niską RH, lecz nie stanowi samodzielnego pomiaru ani rozpoznania medycznego.</p>
      </section>

      <section class="rk-how-section" id="rk-dry-nawilzacz" aria-labelledby="rk-dry-s8">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">8</div>
          <div>
            <h2 id="rk-dry-s8">Czy przy ogrzewaniu podłogowym potrzebny jest nawilżacz?</h2>
            <p>Nie z powodu samej podłogówki, lecz czasami z powodu rzeczywistego zimowego deficytu wilgoci.</p>
          </div>
        </div>

        <p>Nawilżacz ma sens dopiero wtedy, gdy wiarygodne pomiary potwierdzają długotrwale niską wilgotność, a temperatura, wentylacja i nieszczelności zostały sprawdzone. Urządzenie powinno być sterowane pomiarem RH, regularnie czyszczone i używane zgodnie z instrukcją.</p>

        <div class="rk-how-table-wrap">
          <span class="rk-how-table-title">Nawilżanie – decyzje właściwe i ryzykowne</span>
          <table>
            <thead><tr><th>Sytuacja</th><th>Co zrobić?</th><th>Czego unikać?</th></tr></thead>
            <tbody>
              <tr><td data-label="Sytuacja"><strong>RH niska tylko po podniesieniu temperatury</strong></td><td data-label="Działanie">Sprawdź, czy nastawa nie jest zawyżona i czy komfort można utrzymać przy niższej temperaturze.</td><td data-label="Unikać">Automatycznego zakupu dużego nawilżacza.</td></tr>
              <tr><td data-label="Sytuacja"><strong>RH stale niska przy prawidłowej temperaturze</strong></td><td data-label="Działanie">Zmierz wentylację, infiltrację i bilans użytkowania.</td><td data-label="Unikać">Dławienia wentylacji poniżej wymagań higienicznych.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Skraplanie na oknach lub narożnikach</strong></td><td data-label="Działanie">Obniż nawilżanie i sprawdź temperaturę powierzchni oraz mostki cieplne.</td><td data-label="Unikać">Podnoszenia RH do sztywnego celu bez oceny przegród.</td></tr>
              <tr><td data-label="Sytuacja"><strong>Nawilżacz użytkowany stale</strong></td><td data-label="Działanie">Czyść zbiornik, wymieniaj elementy eksploatacyjne i kontroluj wynik osobnym higrometrem.</td><td data-label="Unikać">Stojącej wody i pracy bez kontroli.</td></tr>
            </tbody>
          </table>
        </div>

        <p>Amerykańska Agencja Ochrony Środowiska zwraca uwagę, że dopuszczalny poziom wilgotności zimą powinien uwzględniać temperaturę zewnętrzną oraz ryzyko kondensacji na zimnych powierzchniach. Zobacz <a href="https://www.epa.gov/mold/what-are-main-ways-control-moisture-your-home" target="_blank" rel="noopener nofollow">zalecenia EPA dotyczące kontroli wilgoci w domu</a>.</p>

        <div class="rk-how-warning">
          <p><strong>Nie istnieje jedna bezpieczna liczba dla każdego domu:</strong> 45% RH może być odpowiednie w dobrze ocieplonym budynku przy łagodnej pogodzie, a podczas silnego mrozu wywoływać kondensację na słabym oknie lub mostku cieplnym.</p>
        </div>
      </section>

      <section class="rk-how-section" id="rk-dry-materialy" aria-labelledby="rk-dry-s9">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">9</div>
          <div>
            <h2 id="rk-dry-s9">Czy podłogówka wysusza drewno, panele i wyposażenie?</h2>
            <p>Materiał reaguje na temperaturę, wilgotność otoczenia i czas ekspozycji – nie na nazwę systemu grzewczego.</p>
          </div>
        </div>

        <p>Drewno jest materiałem higroskopijnym: oddaje i pochłania wilgoć w zależności od warunków otoczenia. Ryzyko szczelin, paczenia lub pękania rośnie przy połączeniu długotrwale niskiej RH, zbyt wysokiej temperatury powierzchni, nieprawidłowej wilgotności materiału i błędnego montażu.</p>

        <div class="rk-how-layer-stack">
          <div class="rk-how-layer"><span>01</span><div><strong>Warunki w pomieszczeniu</strong><small>Oceniamy trend temperatury i RH, nie pojedynczy odczyt.</small></div></div>
          <div class="rk-how-layer"><span>02</span><div><strong>Temperatura powierzchni podłogi</strong><small>Musi odpowiadać ograniczeniom okładziny i założeniom projektu.</small></div></div>
          <div class="rk-how-layer"><span>03</span><div><strong>Opór cieplny wykończenia</strong><small>Wpływa na wymaganą temperaturę i zdolność przekazywania mocy.</small></div></div>
          <div class="rk-how-layer"><span>04</span><div><strong>Wilgotność materiału i montaż</strong><small>Aklimatyzacja, klej, dylatacje i instrukcja producenta pozostają obowiązkowe.</small></div></div>
        </div>

        <p>Praktyczne porównanie okładzin znajduje się w artykule <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">podłogi drewniane czy panele laminowane przy ogrzewaniu podłogowym</a>. Samo utrzymywanie niskiej temperatury zasilania nie zwalnia z kontroli temperatury powierzchni i dokumentacji okładziny.</p>
      </section>

      <section class="rk-how-section" id="rk-dry-faq" aria-labelledby="rk-dry-s10">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">10</div>
          <div>
            <h2 id="rk-dry-s10">FAQ – czy ogrzewanie podłogowe wysusza powietrze?</h2>
            <p>Krótkie odpowiedzi na pytania najczęściej wpisywane przez inwestorów.</p>
          </div>
        </div>

        <div class="rk-how-faq-list">
          <details class="rk-how-faq"><summary>Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</summary><div class="rk-how-faq-answer"><p>Nie usuwa pary wodnej samym ogrzewaniem. Podniesienie temperatury może jednak obniżyć wilgotność względną. Rzeczywisty ubytek wilgoci zachodzi głównie przez wentylację, infiltrację, kondensację albo pracę osuszacza.</p></div></details>
          <details class="rk-how-faq"><summary>Dlaczego po włączeniu podłogówki wilgotność spada?</summary><div class="rk-how-faq-answer"><p>Najczęściej jednocześnie wzrasta temperatura i rozpoczyna się sezonowa wymiana powietrza z zimnym otoczeniem. Ta sama ilość pary daje niższe RH w cieplejszym powietrzu, a wentylacja dodatkowo usuwa wilgoć z budynku.</p></div></details>
          <details class="rk-how-faq"><summary>Czy podłogówka wysusza bardziej niż grzejniki?</summary><div class="rk-how-faq-answer"><p>Nie można tego stwierdzić na podstawie samego rodzaju odbiornika. Przy tej samej temperaturze powietrza, wentylacji i źródłach wilgoci oba systemy powinny dawać zbliżony bilans. Różnić może się komfort, rozkład temperatur i ruch powietrza.</p></div></details>
          <details class="rk-how-faq"><summary>Czy ciepła podłoga usuwa wilgoć z powietrza?</summary><div class="rk-how-faq-answer"><p>Nie. Może przyspieszyć parowanie z mokrych powierzchni, ale wtedy ilość pary w powietrzu początkowo rośnie. Wilgoć opuszcza dom dopiero z wentylacją, przez nieszczelności albo dzięki osuszaniu.</p></div></details>
          <details class="rk-how-faq"><summary>Czy wilgotność 25–30% przy podłogówce jest normalna?</summary><div class="rk-how-faq-answer"><p>Takie wartości występują zimą, ale przed reakcją trzeba potwierdzić pomiar, temperaturę, warunki zewnętrzne, przepływy wentylacji i infiltrację. Trwała niska RH może powodować dyskomfort, lecz jej przyczyną nie musi być podłogówka.</p></div></details>
          <details class="rk-how-faq"><summary>Jaka wilgotność jest właściwa przy ogrzewaniu podłogowym?</summary><div class="rk-how-faq-answer"><p>Podłogówka nie ma osobnego uniwersalnego zakresu. W praktyce często dąży się zimą do około 30–50% RH, ale właściwa wartość zależy od temperatury zewnętrznej, przegród, kondensacji, materiałów i potrzeb użytkowników.</p></div></details>
          <details class="rk-how-faq"><summary>Czy rekuperacja wysusza powietrze przy podłogówce?</summary><div class="rk-how-faq-answer"><p>Wentylacja mechaniczna zimą może obniżać wilgotność, ponieważ usuwa wilgotne powietrze wewnętrzne i nawiewa powietrze o małej zawartości pary. Skala zależy od przepływów, szczelności, zysków wilgoci i rodzaju wymiennika.</p></div></details>
          <details class="rk-how-faq"><summary>Czy wymiennik entalpiczny rozwiązuje problem suchego powietrza?</summary><div class="rk-how-faq-answer"><p>Może ograniczyć zimową utratę wilgoci przez częściowy odzysk pary, ale nie gwarantuje konkretnej RH i nie działa jak aktywny nawilżacz. Potrzebny jest nadal prawidłowy bilans i pomiar przepływów.</p></div></details>
          <details class="rk-how-faq"><summary>Czy warto obniżyć temperaturę, gdy powietrze jest suche?</summary><div class="rk-how-faq-answer"><p>Jeżeli pomieszczenie jest przegrzewane, niewielkie obniżenie temperatury podniesie RH przy tej samej zawartości pary i ograniczy straty energii. Nie wolno jednak obniżać temperatury kosztem kondensacji na zimnych przegrodach.</p></div></details>
          <details class="rk-how-faq"><summary>Czy potrzebuję nawilżacza do ogrzewania podłogowego?</summary><div class="rk-how-faq-answer"><p>Nie z powodu samego systemu grzewczego. Nawilżacz warto rozważyć dopiero po potwierdzeniu trwałego deficytu i sprawdzeniu temperatury, wentylacji oraz nieszczelności. Urządzenie wymaga higieny i kontroli RH.</p></div></details>
          <details class="rk-how-faq"><summary>Czy suche powietrze przy podłogówce szkodzi drewnianej podłodze?</summary><div class="rk-how-faq-answer"><p>Długotrwale niska wilgotność może powodować oddawanie wilgoci przez drewno. Ryzyko zależy również od temperatury powierzchni, wilgotności materiału, konstrukcji, montażu i wymagań producenta okładziny.</p></div></details>
          <details class="rk-how-faq"><summary>Gdzie ustawić higrometr w domu z podłogówką?</summary><div class="rk-how-faq-answer"><p>W reprezentatywnej strefie użytkowej, z dala od ogrzewanej podłogi, okna, nawiewnika, słońca, łazienki i lokalnych źródeł pary. Warto porównać co najmniej dwa czujniki i obserwować trend.</p></div></details>
        </div>
      </section>

      <section class="rk-how-section" id="rk-dry-wniosek" aria-labelledby="rk-dry-s11">
        <div class="rk-how-section-head">
          <div class="rk-how-section-no">11</div>
          <div>
            <h2 id="rk-dry-s11">Wniosek: podłogówka nie jest osuszaczem</h2>
            <p>Suchość trzeba policzyć i zmierzyć, a nie przypisywać jej automatycznie instalacji w posadzce.</p>
          </div>
        </div>

        <div class="rk-how-answer">
          <div>
            <span class="rk-how-answer-label">Ostateczna odpowiedź</span>
            <strong class="rk-how-answer-main">Ogrzewanie podłogowe może obniżyć wskazanie wilgotności względnej, gdy zwiększa temperaturę, ale samo nie usuwa pary wodnej z pomieszczenia.</strong>
            <p>Za zimowe przesuszenie odpowiada przede wszystkim bilans: suche powietrze zewnętrzne, strumień wentylacji, infiltracja, temperatura wewnętrzna, źródła pary oraz ewentualny odzysk wilgoci. Dlatego diagnoza musi objąć cały budynek.</p>
          </div>
          <div class="rk-how-answer-badge">
            <b>T + V̇ + x</b>
            <span>temperatura, wentylacja i zawartość wilgoci tworzą wspólny bilans</span>
          </div>
        </div>
      </section>

      <section class="rk-how-sources" aria-labelledby="rk-dry-sources-title">
        <h3 id="rk-dry-sources-title">Źródła techniczne i podstawa opracowania</h3>
        <p>Psychrometria i wilgoć w budynku: <a href="https://www.ncbi.nlm.nih.gov/books/NBK143947/" target="_blank" rel="noopener nofollow">WHO – Moisture control and ventilation</a>; kontrola wilgoci i kondensacji: <a href="https://www.epa.gov/mold/what-are-main-ways-control-moisture-your-home" target="_blank" rel="noopener nofollow">US EPA – What are the main ways to control moisture in your home?</a>; pomiar oraz zimowe zakresy wilgotności: <a href="https://www.ndsu.edu/agriculture/extension/measure-humidity-level-avoid-dry-skin-respiratory-irritations-and-excess-moisture" target="_blank" rel="noopener nofollow">North Dakota State University Extension – Measure Humidity Level</a>.</p>
        <p><strong>Metoda:</strong> laboratorium wykorzystuje przybliżenie Magnusa do wyznaczania ciśnienia pary nasyconej oraz zależność na stosunek wilgoci przy ciśnieniu 101,325 kPa. Wyniki są edukacyjnym bilansem ustalonym, a nie projektem instalacji nawilżania.</p>
      </section>

      <section class="rk-how-cta" aria-label="Zamówienie projektu ogrzewania podłogowego">
        <h3>Chcesz instalację policzoną zamiast ustawianej „na oko”?</h3>
        <p>Projekt określa obciążenie cieplne, temperaturę zasilania, rozstaw i długości pętli, wymagane przepływy oraz nastawy rozdzielacza. Dzięki temu system nie musi nadrabiać błędów nadmierną temperaturą pomieszczeń.</p>
        <a class="rk-how-cta-link" href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt instalacji ogrzewania podłogowego</a>
        <small>Odnośnik prowadzi do strony sprzedażowej Projekt-Ogrzewania.pl, serwisu należącego do autora artykułu.</small>
      </section>

      <aside class="rk-how-author-box" aria-label="Informacje o autorze" itemscope itemtype="https://schema.org/Person">
        <div class="rk-how-author-head">
          <div>
            <h3>Autor opracowania</h3>
            <p>Praktyka projektowa, wiedza techniczna i język zrozumiały dla inwestora.</p>
          </div>
          <div class="rk-how-author-mark">E-E-A-T • HVAC</div>
        </div>
        <div class="rk-how-author-main">
          <div class="rk-how-author-profile">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski – projektant instalacji sanitarnych i specjalista HVAC" width="190" height="190" loading="lazy" itemprop="image">
            <h4 itemprop="name">Robert Kucharski</h4>
            <span class="rk-how-author-role" itemprop="jobTitle">CEO • specjalista systemów HVAC i ogrzewania podłogowego</span>
          </div>
          <div class="rk-how-author-content">
            <div class="rk-how-quote">
              <blockquote>„Jeśli higrometr pokazuje 25%, nie zaczynam od obwiniania podłogówki. Najpierw sprawdzam temperaturę, strumień wentylacji, infiltrację i stan powietrza zewnętrznego. Dopiero potem dobiera się sposób korekty.”</blockquote>
            </div>
            <div class="rk-how-tabs">
              <div class="rk-how-tab-buttons" role="tablist" aria-label="Informacje o autorze">
                <button class="rk-how-tab-button is-active" type="button" role="tab" aria-selected="true" data-author-tab="about">O autorze</button>
                <button class="rk-how-tab-button" type="button" role="tab" aria-selected="false" data-author-tab="experience">Doświadczenie</button>
                <button class="rk-how-tab-button" type="button" role="tab" aria-selected="false" data-author-tab="portals">Portale</button>
              </div>
              <div class="rk-how-tab-panel is-active" role="tabpanel" data-author-panel="about">
                <p itemprop="description">Specjalizuję się w projektowaniu wodnego ogrzewania podłogowego, obliczeniach obciążenia cieplnego i hydraulice instalacji. Łączę wymagania techniczne z praktycznym spojrzeniem inwestora: dokumentacja ma być policzona, czytelna i możliwa do poprawnego wykonania.</p>
              </div>
              <div class="rk-how-tab-panel" role="tabpanel" data-author-panel="experience" hidden>
                <p>Przygotowuję projekty instalacji grzewczych, analizuję temperatury zasilania, przepływy, opory hydrauliczne, dobór źródeł ciepła i współpracę ogrzewania z wentylacją budynku. Publikuję techniczne opracowania dotyczące HVAC, energooszczędności, fizyki budowli oraz świadomego prowadzenia inwestycji.</p>
              </div>
              <div class="rk-how-tab-panel" role="tabpanel" data-author-panel="portals" hidden>
                <p>Jestem właścicielem trzech serwisów branżowych. Powiązanie podaję jawnie, aby czytelnik znał autorstwo i kontekst linkowania.</p>
                <div class="rk-how-portals">
                  <a href="https://projekt-ogrzewania.pl/">Projekt-Ogrzewania.pl</a>
                  <a href="https://remont.biz.pl/" target="_blank" rel="noopener nofollow">Remont.biz.pl</a>
                  <a href="https://sobir.pl/" target="_blank" rel="noopener nofollow">Sobir.pl</a>
                </div>
              </div>
            </div>
          </div>
        </div>
      </aside>
    </div>
  </div>
</article>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/",
      "name": "Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?",
      "description": "Techniczne obalenie mitu o wysuszaniu powietrza przez ogrzewanie podłogowe wraz z obliczeniami wilgotności, bilansem wentylacji i diagnostyką.",
      "inLanguage": "pl-PL",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/#website" },
      "mainEntity": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#article" },
      "potentialAction": {
        "@type": "ReadAction",
        "target": ["https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/"]
      }
    },
    {
      "@type": ["TechArticle", "Article"],
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#article",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/",
      "mainEntityOfPage": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/" },
      "headline": "Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?",
      "alternativeHeadline": "Czy podłogówka wysusza powietrze? Fizyka wilgotności, wentylacja i fakty",
      "description": "Techniczne obalenie mitu o wysuszaniu powietrza przez ogrzewanie podłogowe wraz z kalkulatorem zimowego powietrza, bilansem wilgoci i procedurą diagnostyczną.",
      "dateModified": "2026-08-25",
      "inLanguage": "pl-PL",
      "author": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "keywords": [
        "czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach",
        "czy podłogówka wysusza powietrze",
        "ogrzewanie podłogowe a suche powietrze",
        "dlaczego wilgotność spada zimą",
        "podłogówka a suchość w gardle",
        "wilgotność 30 procent w domu",
        "temperatura podłogi a wilgotność",
        "rekuperacja a suche powietrze",
        "nawilżacz przy ogrzewaniu podłogowym",
        "podłogówka a wilgotność względna"
      ],
      "articleSection": [
        "Ogrzewanie podłogowe",
        "Wilgotność powietrza",
        "Psychrometria",
        "Wentylacja i rekuperacja",
        "Fizyka budowli",
        "Diagnostyka instalacji"
      ],
      "about": [
        { "@type": "DefinedTerm", "name": "Wilgotność względna" },
        { "@type": "DefinedTerm", "name": "Zawartość wilgoci" },
        { "@type": "DefinedTerm", "name": "Punkt rosy" },
        { "@type": "DefinedTerm", "name": "Ogrzewanie podłogowe" },
        { "@type": "DefinedTerm", "name": "Wentylacja mechaniczna" }
      ],
      "citation": [
        { "@type": "CreativeWork", "name": "WHO – Moisture control and ventilation", "url": "https://www.ncbi.nlm.nih.gov/books/NBK143947/" },
        { "@type": "CreativeWork", "name": "US EPA – What are the main ways to control moisture in your home?", "url": "https://www.epa.gov/mold/what-are-main-ways-control-moisture-your-home" },
        { "@type": "CreativeWork", "name": "North Dakota State University Extension – Measure Humidity Level", "url": "https://www.ndsu.edu/agriculture/extension/measure-humidity-level-avoid-dry-skin-respiratory-irritations-and-excess-moisture" }
      ],
      "hasPart": [
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#winter-air-calculator" },
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#causes-list" },
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#diagnostic-howto" },
        { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq" }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-faq",
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/" },
      "inLanguage": "pl-PL",
      "mainEntity": [
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-1", "name": "Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?", "acceptedAnswer": { "@type": "Answer", "text": "Nie usuwa pary wodnej samym ogrzewaniem. Podniesienie temperatury może jednak obniżyć wilgotność względną. Rzeczywisty ubytek wilgoci zachodzi głównie przez wentylację, infiltrację, kondensację albo pracę osuszacza." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-2", "name": "Dlaczego po włączeniu podłogówki wilgotność spada?", "acceptedAnswer": { "@type": "Answer", "text": "Najczęściej jednocześnie wzrasta temperatura i rozpoczyna się sezonowa wymiana powietrza z zimnym otoczeniem. Ta sama ilość pary daje niższe RH w cieplejszym powietrzu, a wentylacja dodatkowo usuwa wilgoć z budynku." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-3", "name": "Czy podłogówka wysusza bardziej niż grzejniki?", "acceptedAnswer": { "@type": "Answer", "text": "Nie można tego stwierdzić na podstawie samego rodzaju odbiornika. Przy tej samej temperaturze powietrza, wentylacji i źródłach wilgoci oba systemy powinny dawać zbliżony bilans. Różnić może się komfort, rozkład temperatur i ruch powietrza." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-4", "name": "Czy ciepła podłoga usuwa wilgoć z powietrza?", "acceptedAnswer": { "@type": "Answer", "text": "Nie. Może przyspieszyć parowanie z mokrych powierzchni, ale wtedy ilość pary w powietrzu początkowo rośnie. Wilgoć opuszcza dom dopiero z wentylacją, przez nieszczelności albo dzięki osuszaniu." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-5", "name": "Czy wilgotność 25–30% przy podłogówce jest normalna?", "acceptedAnswer": { "@type": "Answer", "text": "Takie wartości występują zimą, ale przed reakcją trzeba potwierdzić pomiar, temperaturę, warunki zewnętrzne, przepływy wentylacji i infiltrację. Trwała niska RH może powodować dyskomfort, lecz jej przyczyną nie musi być podłogówka." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-6", "name": "Jaka wilgotność jest właściwa przy ogrzewaniu podłogowym?", "acceptedAnswer": { "@type": "Answer", "text": "Podłogówka nie ma osobnego uniwersalnego zakresu. W praktyce często dąży się zimą do około 30–50% RH, ale właściwa wartość zależy od temperatury zewnętrznej, przegród, kondensacji, materiałów i potrzeb użytkowników." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-7", "name": "Czy rekuperacja wysusza powietrze przy podłogówce?", "acceptedAnswer": { "@type": "Answer", "text": "Wentylacja mechaniczna zimą może obniżać wilgotność, ponieważ usuwa wilgotne powietrze wewnętrzne i nawiewa powietrze o małej zawartości pary. Skala zależy od przepływów, szczelności, zysków wilgoci i rodzaju wymiennika." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-8", "name": "Czy wymiennik entalpiczny rozwiązuje problem suchego powietrza?", "acceptedAnswer": { "@type": "Answer", "text": "Może ograniczyć zimową utratę wilgoci przez częściowy odzysk pary, ale nie gwarantuje konkretnej RH i nie działa jak aktywny nawilżacz. Potrzebny jest nadal prawidłowy bilans i pomiar przepływów." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-9", "name": "Czy warto obniżyć temperaturę, gdy powietrze jest suche?", "acceptedAnswer": { "@type": "Answer", "text": "Jeżeli pomieszczenie jest przegrzewane, niewielkie obniżenie temperatury podniesie RH przy tej samej zawartości pary i ograniczy straty energii. Nie wolno jednak obniżać temperatury kosztem kondensacji na zimnych przegrodach." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-10", "name": "Czy potrzebuję nawilżacza do ogrzewania podłogowego?", "acceptedAnswer": { "@type": "Answer", "text": "Nie z powodu samego systemu grzewczego. Nawilżacz warto rozważyć dopiero po potwierdzeniu trwałego deficytu i sprawdzeniu temperatury, wentylacji oraz nieszczelności. Urządzenie wymaga higieny i kontroli RH." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-11", "name": "Czy suche powietrze przy podłogówce szkodzi drewnianej podłodze?", "acceptedAnswer": { "@type": "Answer", "text": "Długotrwale niska wilgotność może powodować oddawanie wilgoci przez drewno. Ryzyko zależy również od temperatury powierzchni, wilgotności materiału, konstrukcji, montażu i wymagań producenta okładziny." } },
        { "@type": "Question", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#faq-12", "name": "Gdzie ustawić higrometr w domu z podłogówką?", "acceptedAnswer": { "@type": "Answer", "text": "W reprezentatywnej strefie użytkowej, z dala od ogrzewanej podłogi, okna, nawiewnika, słońca, łazienki i lokalnych źródeł pary. Warto porównać co najmniej dwa czujniki i obserwować trend." } }
      ]
    },
    {
      "@type": "HowTo",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#diagnostic-howto",
      "name": "Jak znaleźć przyczynę niskiej wilgotności w domu z ogrzewaniem podłogowym",
      "description": "Siedmioetapowa procedura pomiaru i diagnostyki niskiej wilgotności przed zmianą nastaw lub zakupem nawilżacza.",
      "totalTime": "P3D",
      "inLanguage": "pl-PL",
      "step": [
        { "@type": "HowToStep", "position": 1, "name": "Zweryfikuj higrometr", "text": "Porównaj dwa urządzenia ustawione obok siebie przez co najmniej kilka godzin.", "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-step-1" },
        { "@type": "HowToStep", "position": 2, "name": "Mierz temperaturę razem z RH", "text": "Zapisuj temperaturę i wilgotność względną w tych samych chwilach.", "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-step-2" },
        { "@type": "HowToStep", "position": 3, "name": "Obserwuj trend przez 72 godziny", "text": "Oddziel trwałe warunki od jednorazowego wpływu wietrzenia, kąpieli lub pogody.", "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-step-3" },
        { "@type": "HowToStep", "position": 4, "name": "Sprawdź temperaturę zadaną", "text": "Ustal, czy pomieszczenia nie są przegrzewane i czy można skorygować nastawę.", "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-step-4" },
        { "@type": "HowToStep", "position": 5, "name": "Zmierz przepływy wentylacji", "text": "Porównaj rzeczywiste strumienie nawiewu i wywiewu z dokumentacją oraz sposobem użytkowania.", "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-step-5" },
        { "@type": "HowToStep", "position": 6, "name": "Poszukaj infiltracji", "text": "Sprawdź niekontrolowany napływ powietrza przez stolarkę, przepusty i połączenia przegród.", "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-step-6" },
        { "@type": "HowToStep", "position": 7, "name": "Rozważ kontrolowane nawilżanie", "text": "Dopiero po diagnozie dobierz sposób korekty i kontroluj ryzyko kondensacji.", "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-step-7" }
      ]
    },
    {
      "@type": "ItemList",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#causes-list",
      "name": "Rzeczywiste przyczyny suchego powietrza zimą",
      "numberOfItems": 6,
      "itemListOrder": "https://schema.org/ItemListOrderAscending",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Zimne powietrze zewnętrzne", "item": { "@type": "Thing", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-cause-1", "name": "Zimne powietrze zewnętrzne", "description": "Po ogrzaniu zimnego powietrza jego wilgotność względna gwałtownie spada." } },
        { "@type": "ListItem", "position": 2, "name": "Zbyt duży strumień wentylacji", "item": { "@type": "Thing", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-cause-2", "name": "Zbyt duży strumień wentylacji", "description": "Nadmierny strumień świeżego powietrza zwiększa zimową utratę wilgoci." } },
        { "@type": "ListItem", "position": 3, "name": "Infiltracja i nieszczelności", "item": { "@type": "Thing", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-cause-3", "name": "Infiltracja i nieszczelności", "description": "Niekontrolowany napływ powietrza omija regulację systemu wentylacji." } },
        { "@type": "ListItem", "position": 4, "name": "Zbyt wysoka temperatura w domu", "item": { "@type": "Thing", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-cause-4", "name": "Zbyt wysoka temperatura w domu", "description": "Wzrost temperatury bez dodania pary obniża wilgotność względną." } },
        { "@type": "ListItem", "position": 5, "name": "Mało wewnętrznych źródeł wilgoci", "item": { "@type": "Thing", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-cause-5", "name": "Mało wewnętrznych źródeł wilgoci", "description": "Liczba mieszkańców i codzienne czynności zmieniają bilans pary wodnej." } },
        { "@type": "ListItem", "position": 6, "name": "Błąd pomiaru", "item": { "@type": "Thing", "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-cause-6", "name": "Błąd pomiaru", "description": "Niewłaściwe położenie lub niedokładność higrometru może zafałszować ocenę." } }
      ]
    },
    {
      "@type": "WebApplication",
      "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#winter-air-calculator",
      "name": "Kalkulator wpływu zimowej wentylacji na wilgotność powietrza",
      "description": "Edukacyjny kalkulator obliczający wilgotność względną powietrza zewnętrznego po ogrzaniu oraz teoretyczne obciążenie wilgoci dla wybranego strumienia wentylacji.",
      "url": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/#rk-dry-winter-lab",
      "applicationCategory": "UtilitiesApplication",
      "operatingSystem": "Any",
      "browserRequirements": "JavaScript",
      "isAccessibleForFree": true,
      "inLanguage": "pl-PL",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "isPartOf": { "@id": "https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/" }
    },
    {
      "@type": "Person",
      "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/author/admin3399/",
      "image": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "contentUrl": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
        "caption": "Robert Kucharski – projektant instalacji sanitarnych i specjalista HVAC"
      },
      "jobTitle": "Projektant instalacji sanitarnych i specjalista branży budowlano-instalacyjnej",
      "description": "Projektant instalacji sanitarnych, specjalista ogrzewania podłogowego, hydrauliki instalacji, obliczeń obciążenia cieplnego i systemów HVAC. Właściciel serwisów Projekt-Ogrzewania.pl, Remont.biz.pl i Sobir.pl.",
      "worksFor": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "knowsAbout": [
        "HVAC",
        "ogrzewanie podłogowe",
        "projektowanie instalacji sanitarnych",
        "hydraulika instalacji grzewczych",
        "obliczenia OZC",
        "wentylacja mechaniczna",
        "psychrometria",
        "mikroklimat wewnętrzny",
        "efektywność energetyczna"
      ],
      "sameAs": [
        "https://projekt-ogrzewania.pl/",
        "https://remont.biz.pl/",
        "https://sobir.pl/",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://projekt-ogrzewania.pl/#organization",
      "name": "Projekt Ogrzewania",
      "url": "https://projekt-ogrzewania.pl/",
      "founder": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "knowsAbout": ["ogrzewanie podłogowe", "projekty instalacji grzewczych", "HVAC", "hydraulika instalacji", "obliczenia cieplne"]
    },
    {
      "@type": "WebSite",
      "@id": "https://projekt-ogrzewania.pl/#website",
      "url": "https://projekt-ogrzewania.pl/",
      "name": "Projekt Ogrzewania",
      "publisher": { "@id": "https://projekt-ogrzewania.pl/#organization" },
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebSite",
      "@id": "https://remont.biz.pl/#website",
      "url": "https://remont.biz.pl/",
      "name": "Remont.biz.pl",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "inLanguage": "pl-PL"
    },
    {
      "@type": "WebSite",
      "@id": "https://sobir.pl/#website",
      "url": "https://sobir.pl/",
      "name": "Sobir.pl",
      "creator": { "@id": "https://projekt-ogrzewania.pl/#/schema/person/8f64aaec51c6581f1ab55e3d7f3a82d1" },
      "inLanguage": "pl-PL"
    }
  ]
}
</script>

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

    function initDryAirGuide() {
      var root = document.getElementById("rk-how-guide");
      if (!root) return false;
      if (root.getAttribute("data-rk-ready") === "1") return true;
      root.setAttribute("data-rk-ready", "1");

      var progress = root.querySelector(".rk-how-progress");
      var ticking = false;

      function updateProgress() {
        var rect = root.getBoundingClientRect();
        var viewport = window.innerHeight || document.documentElement.clientHeight;
        var total = Math.max(root.offsetHeight - viewport, 1);
        var passed = Math.min(Math.max(-rect.top, 0), total);
        var value = Math.min(100, Math.max(0, passed / total * 100));
        if (progress) progress.style.width = value.toFixed(2) + "%";
        ticking = false;
      }

      function requestProgress() {
        if (ticking) return;
        ticking = true;
        if (window.requestAnimationFrame) {
          window.requestAnimationFrame(updateProgress);
        } else {
          window.setTimeout(updateProgress, 16);
        }
      }

      var internalLinks = root.querySelectorAll('a[href^="#"]');
      var linkIndex;
      for (linkIndex = 0; linkIndex < internalLinks.length; linkIndex += 1) {
        internalLinks[linkIndex].addEventListener("click", function (event) {
          var selector = this.getAttribute("href");
          if (!selector) return;
          if (selector === "#") return;
          var target = root.querySelector(selector);
          if (!target) return;
          event.preventDefault();
          var motion = "smooth";
          if (window.matchMedia) {
            if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) motion = "auto";
          }
          target.scrollIntoView({ behavior: motion, block: "start" });
        });
      }

      function numberPL(value, decimals) {
        return Number(value).toLocaleString("pl-PL", {
          minimumFractionDigits: decimals,
          maximumFractionDigits: decimals
        });
      }

      function signedTemperature(value) {
        var rounded = Math.round(value * 10) / 10;
        if (rounded < 0) return "−" + numberPL(Math.abs(rounded), rounded % 1 === 0 ? 0 : 1) + "°C";
        return numberPL(rounded, rounded % 1 === 0 ? 0 : 1) + "°C";
      }

      function saturationPressure(tempC) {
        return 0.61094 * Math.exp(17.625 * tempC / (tempC + 243.04));
      }

      function humidityRatio(tempC, relativeHumidity) {
        var vaporPressure = saturationPressure(tempC) * relativeHumidity / 100;
        var ratio = 0.62198 * vaporPressure / (101.325 - vaporPressure);
        return ratio * 1000;
      }

      function relativeHumidityFromRatio(tempC, ratioGrams) {
        var ratio = ratioGrams / 1000;
        var vaporPressure = 101.325 * ratio / (0.62198 + ratio);
        return Math.min(100, Math.max(0, vaporPressure / saturationPressure(tempC) * 100));
      }

      var outTemp = root.querySelector("#rk-dry-out-temp");
      var outRh = root.querySelector("#rk-dry-out-rh");
      var indoorTemp = root.querySelector("#rk-dry-indoor-temp");
      var airflow = root.querySelector("#rk-dry-airflow");
      var targetRh = root.querySelector("#rk-dry-target-rh");

      function setBar(rectId, labelId, value) {
        var rect = root.querySelector(rectId);
        var label = root.querySelector(labelId);
        var safe = Math.min(100, Math.max(0, value));
        var height = safe / 100 * 280;
        var y = 340 - height;
        if (rect) {
          rect.setAttribute("y", y.toFixed(1));
          rect.setAttribute("height", Math.max(height, 2).toFixed(1));
        }
        if (label) {
          label.setAttribute("y", Math.max(45, y - 16).toFixed(1));
          label.textContent = numberPL(value, value < 20 ? 1 : 0) + "%";
        }
      }

      function updateLab() {
        if (!outTemp) return;
        if (!outRh) return;
        if (!indoorTemp) return;
        if (!airflow) return;
        if (!targetRh) return;

        var exteriorTemperature = parseFloat(outTemp.value);
        var exteriorRh = parseFloat(outRh.value);
        var roomTemperature = parseFloat(indoorTemp.value);
        var airVolume = parseFloat(airflow.value);
        var desiredRh = parseFloat(targetRh.value);

        var exteriorRatio = humidityRatio(exteriorTemperature, exteriorRh);
        var desiredRatio = humidityRatio(roomTemperature, desiredRh);
        var warmedRh = relativeHumidityFromRatio(roomTemperature, exteriorRatio);
        var deficit = Math.max(0, desiredRatio - exteriorRatio);
        var dryAirMass = airVolume * 1.2;
        var gramsPerHour = deficit * dryAirMass;
        var kilogramsPerDay = gramsPerHour * 24 / 1000;

        var outTempValue = root.querySelector("#rk-dry-out-temp-value");
        var outRhValue = root.querySelector("#rk-dry-out-rh-value");
        var indoorTempValue = root.querySelector("#rk-dry-indoor-temp-value");
        var airflowValue = root.querySelector("#rk-dry-airflow-value");
        var targetRhValue = root.querySelector("#rk-dry-target-rh-value");
        var warmedRhValue = root.querySelector("#rk-dry-warmed-rh");
        var outRatioValue = root.querySelector("#rk-dry-out-ratio");
        var targetRatioValue = root.querySelector("#rk-dry-target-ratio");
        var deficitValue = root.querySelector("#rk-dry-deficit");
        var hourValue = root.querySelector("#rk-dry-hour");
        var dayValue = root.querySelector("#rk-dry-day");
        var meter = root.querySelector("#rk-dry-warmed-meter");
        var status = root.querySelector("#rk-dry-lab-status");
        var badge = root.querySelector("#rk-dry-lab-badge");

        if (outTempValue) outTempValue.textContent = signedTemperature(exteriorTemperature);
        if (outRhValue) outRhValue.textContent = numberPL(exteriorRh, 0) + "%";
        if (indoorTempValue) indoorTempValue.textContent = signedTemperature(roomTemperature);
        if (airflowValue) airflowValue.textContent = numberPL(airVolume, 0) + " m³/h";
        if (targetRhValue) targetRhValue.textContent = numberPL(desiredRh, 0) + "%";
        if (warmedRhValue) warmedRhValue.textContent = numberPL(warmedRh, 1) + "%";
        if (outRatioValue) outRatioValue.textContent = numberPL(exteriorRatio, 1) + " g/kg";
        if (targetRatioValue) targetRatioValue.textContent = numberPL(desiredRatio, 1) + " g/kg";
        if (deficitValue) deficitValue.textContent = numberPL(deficit, 1) + " g/kg";
        if (hourValue) hourValue.textContent = numberPL(gramsPerHour / 1000, 2) + " kg/h";
        if (dayValue) dayValue.textContent = numberPL(kilogramsPerDay, 1) + " l/dobę";
        if (meter) meter.style.width = Math.min(100, Math.max(0, warmedRh)).toFixed(1) + "%";

        if (status) {
          if (warmedRh < 20) {
            status.textContent = "Bardzo silny potencjał osuszania";
          } else if (warmedRh < 30) {
            status.textContent = "Silny potencjał osuszania";
          } else if (warmedRh < desiredRh) {
            status.textContent = "Umiarkowany deficyt wilgoci";
          } else {
            status.textContent = "Mały lub brak deficytu";
          }
        }

        if (badge) {
          badge.classList.remove("is-good", "is-watch", "is-low");
          if (warmedRh < 30) {
            badge.classList.add("is-low");
            badge.textContent = "zimowe powietrze";
          } else if (warmedRh < desiredRh) {
            badge.classList.add("is-watch");
            badge.textContent = "wymaga bilansu";
          } else {
            badge.classList.add("is-good");
            badge.textContent = "mały deficyt";
          }
        }

        setBar("#rk-dry-bar-out", "#rk-dry-bar-out-value", exteriorRh);
        setBar("#rk-dry-bar-warm", "#rk-dry-bar-warm-value", warmedRh);
        setBar("#rk-dry-bar-target", "#rk-dry-bar-target-value", desiredRh);
      }

      var labInputs = root.querySelectorAll("#rk-dry-winter-lab input");
      var inputIndex;
      for (inputIndex = 0; inputIndex < labInputs.length; inputIndex += 1) {
        labInputs[inputIndex].addEventListener("input", updateLab);
        labInputs[inputIndex].addEventListener("change", updateLab);
      }

      root.addEventListener("click", function (event) {
        var button = event.target.closest("[data-author-tab]");
        if (!button) return;
        if (!root.contains(button)) return;
        var tabName = button.getAttribute("data-author-tab");
        var buttons = root.querySelectorAll("[data-author-tab]");
        var panels = root.querySelectorAll("[data-author-panel]");
        var index;
        for (index = 0; index < buttons.length; index += 1) {
          var activeButton = buttons[index].getAttribute("data-author-tab") === tabName;
          buttons[index].classList.toggle("is-active", activeButton);
          buttons[index].setAttribute("aria-selected", activeButton ? "true" : "false");
        }
        for (index = 0; index < panels.length; index += 1) {
          var activePanel = panels[index].getAttribute("data-author-panel") === tabName;
          panels[index].classList.toggle("is-active", activePanel);
          panels[index].hidden = !activePanel;
        }
      });

      updateLab();
      updateProgress();
      window.addEventListener("scroll", requestProgress, { passive: true });
      window.addEventListener("resize", requestProgress);
      return true;
    }

    function startDryAirGuide() {
      var initialized = initDryAirGuide();
      if (!initialized) window.setTimeout(initDryAirGuide, 500);
    }

    if (document.readyState === "loading") {
      document.addEventListener("DOMContentLoaded", startDryAirGuide, { once: true });
    } else {
      startDryAirGuide();
    }

    window.setTimeout(initDryAirGuide, 900);
  }());
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-ogrzewanie-podlogowe-wysusza-powietrze-w-pomieszczeniach/">Czy ogrzewanie podłogowe wysusza powietrze w pomieszczeniach?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
